596 lines
24 KiB
PHP
596 lines
24 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Dashboard;
|
|
|
|
use App\Exports\CooperationExport;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\CooperationRequest;
|
|
use App\Models\Announcement;
|
|
use App\Models\Cooperation;
|
|
use App\Models\CooperationProposal;
|
|
use App\Models\Media;
|
|
use App\Models\MediaOrder;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Log;
|
|
use Maatwebsite\Excel\Facades\Excel;
|
|
|
|
class MediaCooperationController extends Controller
|
|
{
|
|
public function index(Request $request){
|
|
return view('dashboard.media-cooperations.index', [
|
|
'title' => 'Kerja Sama',
|
|
'date' => $request->input('date', null),
|
|
'month' => $request->input('month', null),
|
|
'year' => $request->input('year', null),
|
|
]);
|
|
}
|
|
|
|
public function create(){
|
|
return view('dashboard.media-cooperations.create', [
|
|
'title' => 'Tambah Kerja Sama',
|
|
'media' => Media::all()
|
|
]);
|
|
}
|
|
|
|
public function store(CooperationRequest $request){
|
|
$validatedData = $request->validated();
|
|
|
|
try{
|
|
if($request->hasFile('banner')){
|
|
$validatedData['banner'] = store_file($validatedData['banner'], '/uploads/cooperations')['randomFileName'];
|
|
}
|
|
|
|
$validatedData['offer_file_template'] = store_file($validatedData['offer_file_template'], '/uploads/cooperations')['randomFileName'];
|
|
|
|
$createdCooperation = DB::transaction(function()use($validatedData){
|
|
$createdCooperation = Cooperation::create($validatedData);
|
|
|
|
$allMediaIds = Media::pluck('id')->toArray();
|
|
if (in_array('all', $validatedData['media_ids'])) {
|
|
$createdCooperation->media()->attach($allMediaIds);
|
|
} else {
|
|
$createdCooperation->media()->attach($validatedData['media_ids']);
|
|
}
|
|
|
|
// Announcements
|
|
$userId = [];
|
|
if(in_array('all', $validatedData['media_ids'])){
|
|
foreach($allMediaIds as $mediaId){
|
|
$userId[] = Media::find($mediaId)->company->user->id;
|
|
}
|
|
}else{
|
|
foreach($validatedData['media_ids'] as $mediaId){
|
|
$userId[] = Media::find($mediaId)->company->user->id;
|
|
}
|
|
}
|
|
|
|
$announcementData = [
|
|
'headline' => 'Ajuan kerja sama baru: <u>'. $createdCooperation->name. '</u>',
|
|
'content' => '<p>Kerja Sama: <b>'. $validatedData['name']. '</b> </p>
|
|
<p>Periode Pengajuan: <b>'.idn_date($createdCooperation->start_date).'</b> s.d. <b>'.idn_date($createdCooperation->end_date).'</b></p>
|
|
<p>Deskripsi: <br>
|
|
'.$createdCooperation->description.'
|
|
</p>
|
|
',
|
|
'enhancer_id' => Auth::id()
|
|
];
|
|
$createdAnnouncement = Announcement::create($announcementData);
|
|
$createdAnnouncement->users()->attach($userId, ['category' => 'system']);
|
|
// End Announcements
|
|
|
|
return $createdCooperation;
|
|
});
|
|
|
|
if ($createdCooperation->media()->count() > 0) {
|
|
return redirect()->route('dashboard.cooperations.index')->with('success-status', 'Berhasil menambahkan kerja sama.');
|
|
} else {
|
|
return redirect()->back()->with('failed-status', 'Gagal menambahkan kerja sama');
|
|
}
|
|
}catch(\Exception $e){
|
|
Log::info("ERROR (Cooperation): ". $e);
|
|
return redirect()->back()->with('failed-status', 'Gagal menambahkan kerja sama');
|
|
}
|
|
}
|
|
|
|
public function edit($id){
|
|
$cooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
|
|
return view('dashboard.media-cooperations.edit', [
|
|
'title' => 'Ubah Kerja Sama',
|
|
'cooperation' => $cooperation,
|
|
'media' => Media::all(),
|
|
'selectedMediaIds' => $cooperation->media->pluck('id')->toArray()
|
|
]);
|
|
}
|
|
|
|
public function update(CooperationRequest $request, $id){
|
|
$validatedData = $request->validated();
|
|
|
|
try{
|
|
$cooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
|
|
$oldCooperationName = $cooperation->name;
|
|
|
|
if($request->hasFile('banner')){
|
|
delete_file('app/public/uploads/cooperations/'.$cooperation->banner);
|
|
$validatedData['banner'] = store_file($validatedData['banner'], '/uploads/cooperations')['randomFileName'];
|
|
}else{
|
|
$validatedData['banner'] = $cooperation->banner;
|
|
}
|
|
|
|
if($request->hasFile('offer_file_template')){
|
|
delete_file('app/public/uploads/cooperations/'.$cooperation->offer_file_template);
|
|
$validatedData['offer_file_template'] = store_file($validatedData['offer_file_template'], '/uploads/cooperations')['randomFileName'];
|
|
}else{
|
|
$validatedData['offer_file_template'] = $cooperation->offer_file_template;
|
|
}
|
|
|
|
$cooperation->update($validatedData);
|
|
if ($request->has('media_ids')) {
|
|
$cooperation->media()->sync($validatedData['media_ids']);
|
|
}
|
|
|
|
// Announcements
|
|
$userId = [];
|
|
foreach($validatedData['media_ids'] as $mediaId){
|
|
$userId[] = Media::find($mediaId)->company->user->id;
|
|
}
|
|
|
|
$announcementData = [
|
|
'headline' => 'Admin melakukan pembaruan pada ajuan kerja sama <u>'. $oldCooperationName. '</u>',
|
|
'content' => '<p>Admin telah melakukan pembaruan pada kerja sama <u>' . $oldCooperationName . '</u>.
|
|
Mohon untuk segera meninjau perubahan tersebut</p>
|
|
',
|
|
'enhancer_id' => Auth::id()
|
|
];
|
|
$createdAnnouncement = Announcement::create($announcementData);
|
|
$createdAnnouncement->users()->attach($userId, ['category' => 'system']);
|
|
// End Announcements
|
|
|
|
if ($cooperation->media()->count() > 0) {
|
|
return redirect()->back()->with('success-status', 'Berhasil mengubah kerja sama.');
|
|
} else {
|
|
return redirect()->back()->with('failed-status', 'Gagal mengubah kerja sama');
|
|
}
|
|
}catch(\Exception $e){
|
|
return redirect()->back()->with('failed-status', 'Gagal mengubah kerja sama');
|
|
}
|
|
|
|
}
|
|
|
|
public function show($id){
|
|
$mediaCooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
|
|
|
|
return view('dashboard.media-cooperations.show', [
|
|
'title' => 'Detail Kerja Sama',
|
|
'mediaCooperation' => $mediaCooperation
|
|
]);
|
|
}
|
|
|
|
public function export(Request $request)
|
|
{
|
|
|
|
try{
|
|
$year = $request->input('year', null);
|
|
$month = $request->input('month', null);
|
|
$date = $request->input('date', null);
|
|
|
|
$formattedNow = Carbon::parse(now())->locale('id')->translatedFormat('d-m-Y');
|
|
return Excel::download(new CooperationExport($year, $month, $date), 'cooperations-'.$formattedNow.'.xlsx');
|
|
}catch(\Exception $e){
|
|
return redirect()->back()->with('failed-status', 'Gagal melakukan proses export data.');
|
|
}
|
|
|
|
}
|
|
|
|
public function filter(Request $request){
|
|
|
|
try{
|
|
$filteredRequest = $request->except('_token');
|
|
|
|
$filterField = array_filter($filteredRequest, function ($value) {
|
|
return filled($value);
|
|
});
|
|
|
|
return redirect()->route('dashboard.cooperations.index', $filterField);
|
|
}catch(\Exception $e){
|
|
return redirect()->back()->with('status-failed', 'Gagal melakukan proses filtering data.');
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public function mediaProposal($id){
|
|
$mediaCooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
|
|
|
|
return view('dashboard.media-cooperations.media-proposals.index', [
|
|
'title' => 'Data Pengajuan Kerja Sama',
|
|
'mediaCooperation' => $mediaCooperation
|
|
]);
|
|
}
|
|
|
|
public function mediaProposalShow($id, $proposalId){
|
|
$proposal = CooperationProposal::with(['cooperation', 'media', 'journalists'])->findOrFail(decrypt_id($proposalId));
|
|
|
|
return view('dashboard.media-cooperations.media-proposals.show',[
|
|
'title' => 'Detail Ajuan Kerja Sama',
|
|
'proposal' => $proposal
|
|
]);
|
|
}
|
|
|
|
public function mediaProposalAccept($id, $proposalId){
|
|
|
|
try{
|
|
$proposal = CooperationProposal::with(['cooperation', 'media', 'journalists'])->findOrFail(decrypt_id($proposalId));
|
|
|
|
$acceptedProposal = $proposal->update([
|
|
'status' => '1'
|
|
]);
|
|
|
|
// Announcements
|
|
$announcementData = [
|
|
'headline' => 'Formulir ajuan kerja sama <u>'. $proposal->cooperation->name .'</u> telah <span class="text-primary">disetujui</span>',
|
|
'content' => '<p>Admin telah menyetujui formulir pengajuan kerja sama Anda.</p>
|
|
<p>Sekarang, kerja sama ini sudah tersedia di menu <b>Kerja Sama</b>. Harap tunggu hingga Admin menerbitkan <b>Media Order</b>.</p>',
|
|
'enhancer_id' => Auth::id()
|
|
];
|
|
$createdAnnouncement = Announcement::create($announcementData);
|
|
$createdAnnouncement->users()->attach($proposal->media->company->user->id, ['category' => 'system']);
|
|
// End Announcements
|
|
|
|
if ($acceptedProposal) {
|
|
return redirect()->back()->with('success-status', 'Berhasil menyetujui pengajuan kerja sama.');
|
|
} else {
|
|
return redirect()->back()->with('failed-status', 'Gagal menyetujui pengajuan kerja sama');
|
|
}
|
|
}catch(\Exception $e){
|
|
return redirect()->back()->with('failed-status', 'Gagal menyetujui pengajuan kerja sama');
|
|
}
|
|
|
|
}
|
|
|
|
public function mediaProposalReject($id, $proposalId){
|
|
$proposal = CooperationProposal::with(['cooperation', 'media', 'journalists'])->findOrFail(decrypt_id($proposalId));
|
|
|
|
return view('dashboard.media-cooperations.media-proposals.reject',[
|
|
'title' => 'Tolak Ajuan Kerja Sama',
|
|
'proposal' => $proposal
|
|
]);
|
|
}
|
|
|
|
public function mediaProposalRejectAction(Request $request, $id, $proposalId){
|
|
|
|
$validatedData = $request->validate([
|
|
'rejection_reason' => ['required'],
|
|
], [
|
|
'rejection_reason.required' => 'Alasan penolakan wajib diisi.',
|
|
]);
|
|
|
|
try{
|
|
$proposal = CooperationProposal::with(['cooperation', 'media', 'journalists'])->findOrFail(decrypt_id($proposalId));
|
|
|
|
$rejectedProposal = $proposal->update([
|
|
'status' => '2',
|
|
'rejection_reason' => $validatedData['rejection_reason']
|
|
]);
|
|
|
|
// Announcements
|
|
$announcementData = [
|
|
'headline' => 'Formulir ajuan kerja sama <u>'. $proposal->cooperation->name .'</u> <span class="text-danger">ditolak</span>',
|
|
'content' => '<p>Admin telah menolak formulir pengajuan kerja sama Anda.
|
|
<p>Alasan penolakan:<br> '.$validatedData['rejection_reason'].' </p>
|
|
</p>
|
|
',
|
|
'enhancer_id' => Auth::id()
|
|
];
|
|
$createdAnnouncement = Announcement::create($announcementData);
|
|
$createdAnnouncement->users()->attach($proposal->media->company->user->id, ['category' => 'system']);
|
|
// End Announcements
|
|
|
|
if ($rejectedProposal) {
|
|
return redirect()->back()->with('success-status', 'Berhasil menolak pengajuan kerja sama.');
|
|
} else {
|
|
return redirect()->back()->with('failed-status', 'Gagal menolak pengajuan kerja sama');
|
|
}
|
|
}catch(\Exception $e){
|
|
return redirect()->back()->with('failed-status', 'Gagal menolak pengajuan kerja sama');
|
|
}
|
|
|
|
}
|
|
|
|
public function process($id, $process, $paramMediaId = null){
|
|
$mediaCooperation = Cooperation::with([
|
|
'media',
|
|
'mediaOrder.media',
|
|
'mediaOrder.reports',
|
|
'mediaOrder.completions'
|
|
])->findOrFail(decrypt_id($id));
|
|
|
|
$data = [
|
|
'process' => $process,
|
|
'mediaCooperation' => $mediaCooperation,
|
|
'mediaOrder' => $mediaCooperation->mediaOrder,
|
|
'mediaId' => is_role(['3']) ? Auth::user()->company->media->id : null
|
|
];
|
|
|
|
if (is_role(['3']) && $data['mediaOrder'] && $data['mediaOrder']->reports) {
|
|
$reports = $data['mediaOrder']->reports->filter(function ($reports) use ($data) {
|
|
return $reports->media_id == Auth::user()->company->media->id;
|
|
});
|
|
|
|
if (filled($reports)) {
|
|
$isAllReportsAccepted = $reports->every(function ($item) {
|
|
return $item->status === '1';
|
|
});
|
|
|
|
$data['isAllReportsAccepted'] = $isAllReportsAccepted && ($reports->count() === $data['mediaOrder']->required_reports);
|
|
$data['isHaveReports'] = true;
|
|
} else {
|
|
$data['isAllReportsAccepted'] = false;
|
|
$data['isHaveReports'] = false;
|
|
}
|
|
} else {
|
|
$data['isAllReportsAccepted'] = false;
|
|
$data['isHaveReports'] = false;
|
|
}
|
|
|
|
// Tab Kerja Sama
|
|
if($process === 'cooperation'){
|
|
$data['title'] = 'Detail Kerja Sama';
|
|
|
|
if(is_role(['3'])){
|
|
$mediaOrderSafe = $data['mediaOrder'] ? $data['mediaOrder']->media->where('id', $data['mediaId'])->first() : null;
|
|
|
|
if($mediaOrderSafe){
|
|
$data['mediaOrderPivot'] = $mediaOrderSafe->pivot;
|
|
}
|
|
|
|
// Can Commented
|
|
if($mediaOrderSafe){
|
|
$reports = $data['mediaOrder']->reports->filter(function ($reports) use ($data) {
|
|
return $reports->media_id == Auth::user()->company->media->id;
|
|
});
|
|
}else{
|
|
$reports = null;
|
|
}
|
|
|
|
if(filled($reports)){
|
|
$data['isAllReportsAccepted'] = $reports->every(function ($item) {
|
|
return $item->status === '1';
|
|
});
|
|
$data['isHaveReports'] = true;
|
|
}else{
|
|
$data['isAllReportsAccepted'] = false;
|
|
$data['isHaveReports'] = false;
|
|
}
|
|
// Can Commented
|
|
|
|
}
|
|
|
|
return view('dashboard.media-cooperations.processes.cooperations.index', $data);
|
|
|
|
// Tab Media order
|
|
}else if($process === 'media-order'){
|
|
$data['title'] = 'Media Order';
|
|
|
|
if(is_role(['3'])){
|
|
$data['mediaOrderPivot'] = $data['mediaOrder']->media->where('id', $data['mediaId'])->first()->pivot;
|
|
|
|
// Can Commented
|
|
$reports = $data['mediaOrder']->reports->filter(function ($reports) use ($data) {
|
|
return $reports->media_id == Auth::user()->company->media->id;
|
|
});
|
|
|
|
if(filled($reports)){
|
|
$data['isAllReportsAccepted'] = $reports->every(function ($item) {
|
|
return $item->status === '1';
|
|
});
|
|
$data['isHaveReports'] = true;
|
|
}else{
|
|
$data['isAllReportsAccepted'] = false;
|
|
$data['isHaveReports'] = false;
|
|
}
|
|
// Can Commented
|
|
|
|
}
|
|
|
|
return view('dashboard.media-cooperations.processes.media-orders.index', $data);
|
|
|
|
// Tab laporan
|
|
}else if($process === 'reports'){
|
|
$data['title'] = 'Laporan';
|
|
|
|
if(is_role(['3'])){
|
|
$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;
|
|
// });
|
|
|
|
// if(filled($reports)){
|
|
// $data['isAllReportsAccepted'] = $reports->every(function ($item) {
|
|
// return $item->status === '1';
|
|
// });
|
|
// $data['isHaveReports'] = true;
|
|
// }else{
|
|
// $data['isAllReportsAccepted'] = false;
|
|
// $data['isHaveReports'] = false;
|
|
// }
|
|
// Can Commented
|
|
|
|
$reportCount = $reports->count();
|
|
$data['reportCount'] = $reportCount;
|
|
|
|
$data['cooperationCompletion'] = $data['mediaOrder']->completions()->where('media_id', $data['mediaId'])->first();
|
|
|
|
if($reportCount === $data['mediaOrder']->required_reports){
|
|
$data['isReportsCompleted'] = true;
|
|
}else{
|
|
$data['isReportsCompleted'] = false;
|
|
}
|
|
|
|
return view('dashboard.media-cooperations.processes.reports.index-media', $data);
|
|
}else{
|
|
$data['mediaOrder'] = $mediaCooperation->mediaOrder;
|
|
$data['reporterMedia'] = $paramMediaId ? Media::findOrFail(decrypt_id($paramMediaId)) : null;
|
|
$data['reporterMediaId'] = $paramMediaId ? decrypt_id($paramMediaId) : null;
|
|
|
|
if(!$paramMediaId){
|
|
return view('dashboard.media-cooperations.processes.reports.index-admin', $data);
|
|
}else{
|
|
return view('dashboard.media-cooperations.processes.reports.index-media', $data);
|
|
}
|
|
}
|
|
|
|
// if (is_role(['3'])) {
|
|
// // Pastikan mediaOrder dan relasi media tidak null
|
|
// if ($data['mediaOrder'] && $data['mediaOrder']->media && $data['mediaOrder']->media->where('id', $data['mediaId'])->first()) {
|
|
// $mediaOrderItem = $data['mediaOrder']->media->where('id', $data['mediaId'])->first();
|
|
// $data['mediaOrderPivot'] = $mediaOrderItem->pivot;
|
|
// } else {
|
|
// $data['mediaOrderPivot'] = null; // atau abort(404) jika dianggap error penting
|
|
// }
|
|
|
|
// $data['reporterMediaId'] = Auth::user()->company->media->id;
|
|
|
|
// // Can Commented
|
|
// $reports = null;
|
|
|
|
// if ($data['mediaOrder'] && $data['mediaOrder']->reports) {
|
|
// $reports = $data['mediaOrder']->reports->filter(function ($report) use ($data) {
|
|
// return $report->media_id == Auth::user()->company->media->id;
|
|
// });
|
|
// }
|
|
|
|
// if (filled($reports)) {
|
|
// $data['isAllReportsAccepted'] = $reports->every(function ($item) {
|
|
// return $item->status === '1';
|
|
// });
|
|
// $data['isHaveReports'] = true;
|
|
// } else {
|
|
// $data['isAllReportsAccepted'] = false;
|
|
// $data['isHaveReports'] = false;
|
|
// }
|
|
// // Can Commented
|
|
|
|
// $reportCount = filled($reports) ? $reports->count() : 0;
|
|
// $data['reportCount'] = $reportCount;
|
|
|
|
// $data['cooperationCompletion'] = $data['mediaOrder'] && $data['mediaOrder']->completions()
|
|
// ? $data['mediaOrder']->completions()->where('media_id', $data['mediaId'])->first()
|
|
// : null;
|
|
|
|
// if ($data['mediaOrder'] && $reportCount === $data['mediaOrder']->required_reports) {
|
|
// $data['isReportsCompleted'] = true;
|
|
// } else {
|
|
// $data['isReportsCompleted'] = false;
|
|
// }
|
|
|
|
// // $data['meuda']
|
|
|
|
// // dd($mediaCooperation);
|
|
|
|
// return view('dashboard.media-cooperations.processes.reports.index-media', $data);
|
|
// } else {
|
|
// $data['mediaOrder'] = $mediaCooperation->mediaOrder;
|
|
// $data['reporterMedia'] = $paramMediaId ? Media::findOrFail(decrypt_id($paramMediaId)) : null;
|
|
// $data['reporterMediaId'] = $paramMediaId ? decrypt_id($paramMediaId) : null;
|
|
|
|
// if (!$paramMediaId) {
|
|
// return view('dashboard.media-cooperations.processes.reports.index-admin', $data);
|
|
// } else {
|
|
// return view('dashboard.media-cooperations.processes.reports.index-media', $data);
|
|
// }
|
|
// }
|
|
|
|
|
|
// Tab Selesai
|
|
}else if($process === 'completion'){
|
|
$data['title'] = 'Penyelesaian';
|
|
|
|
$data['isHaveReports'] = true;
|
|
$data['isAllReportsAccepted'] = true;
|
|
|
|
$data['cooperationCompletion'] = $data['mediaOrder']->completions()->where('media_id', $data['mediaId'])->first();
|
|
|
|
if(is_role(['3'])){
|
|
$data['mediaOrderPivot'] = $data['mediaOrder']->media->where('id', $data['mediaId'])->first()->pivot;
|
|
|
|
// Can Commented
|
|
// $reports = $data['mediaOrder']->reports->filter(function ($reports) use ($data) {
|
|
// return $reports->media_id == Auth::user()->company->media->id;
|
|
// });
|
|
|
|
// if(filled($reports)){
|
|
// $data['isAllReportsAccepted'] = $reports->every(function ($item) {
|
|
// return $item->status === '1';
|
|
// });
|
|
// $data['isHaveReports'] = true;
|
|
// }else{
|
|
// $data['isAllReportsAccepted'] = false;
|
|
// $data['isHaveReports'] = false;
|
|
// }
|
|
// Can Commented
|
|
|
|
return view('dashboard.media-cooperations.processes.completions.index-media', $data);
|
|
}else{
|
|
abort(404);
|
|
}
|
|
|
|
}
|
|
else if($process === 'completions'){
|
|
$data['title'] = 'Penyelesaian';
|
|
|
|
$data['isHaveReports'] = true;
|
|
$data['isAllReportsAccepted'] = true;
|
|
|
|
$data['cooperationCompletion'] = $data['mediaOrder']->completions()->where('media_id', $data['mediaId'])->first();
|
|
|
|
if(is_role(['1'])){
|
|
return view('dashboard.media-cooperations.processes.completions.index-admin', $data);
|
|
}else{
|
|
abort(404);
|
|
}
|
|
|
|
}else{
|
|
abort(404);
|
|
}
|
|
}
|
|
|
|
public function destroy($id){
|
|
|
|
try{
|
|
$cooperation = Cooperation::with(['media', 'mediaOrder'])->findOrFail(decrypt_id($id));
|
|
|
|
if($cooperation->mediaOrder){
|
|
|
|
DB::transaction(function()use ($cooperation){
|
|
$cooperation->media()->detach();
|
|
$cooperation->delete();
|
|
});
|
|
|
|
return response()->json([
|
|
'status' => 'success',
|
|
'message' => 'Ajuan kerja sama dan semua media berhasil dihapus.'
|
|
]);
|
|
}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);
|
|
}
|
|
|
|
// return response()->json([
|
|
// 'status' => 'warning',
|
|
// 'message' => 'Aksi belum tersedia.'
|
|
// ]);
|
|
}
|
|
}
|