| No | +Nama Kegiatan | +Tanggal Mulai | +Tanggal Selesai | +Dibuat Pada | +Status | ++ |
|---|
diff --git a/app/Helpers/CustomHelper.php b/app/Helpers/CustomHelper.php
index b81a556..c04403e 100644
--- a/app/Helpers/CustomHelper.php
+++ b/app/Helpers/CustomHelper.php
@@ -148,3 +148,9 @@ function get_cooperation_notif() {
}
}
}
+
+if (! function_exists('slugify')) {
+ function slugify($param) {
+ return Str::slug($param);
+ }
+}
diff --git a/app/Http/Controllers/Dashboard/CooperationRequestController.php b/app/Http/Controllers/Dashboard/CooperationRequestController.php
index 07128e4..63dc6ae 100644
--- a/app/Http/Controllers/Dashboard/CooperationRequestController.php
+++ b/app/Http/Controllers/Dashboard/CooperationRequestController.php
@@ -3,7 +3,9 @@
namespace App\Http\Controllers\Dashboard;
use App\Http\Controllers\Controller;
+use App\Http\Requests\JournalistCooperationProposalRequest;
use App\Models\Cooperation;
+use App\Models\CooperationProposal;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@@ -66,12 +68,36 @@ public function accept(Request $request, $id){
}
public function proposal($id){
+ $cooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
+
+ $mediaCooperationPivot = $cooperation->media()
+ ->where('media.id', Auth::user()->company->media->id)
+ ->first()->pivot;
+
return view('dashboard.cooperation-requests.proposal', [
'title' => 'Ajukan Kerjasama',
- 'user' => Auth::user()
+ 'user' => Auth::user(),
+ 'cooperation' => $cooperation,
+ 'mediaCooperationPivot' => $mediaCooperationPivot
]);
}
+ public function proposalAction(JournalistCooperationProposalRequest $request, $id){
+ $validatedData = $request->validated();
+ $validatedData['cooperation_id'] = decrypt_id($id);
+ $validatedData['media_id'] = Auth::user()->company->media->id;
+ $validatedData['attachment'] = store_file($validatedData['attachment'], '/uploads/cooperation-proposals', 'public')['randomFileName'];
+
+ $createdCooperationProposal = CooperationProposal::create($validatedData);
+ $createdCooperationProposal->journalists()->attach($validatedData['journalist_ids']);
+
+ if ($createdCooperationProposal->journalists()->count() > 0) {
+ return redirect()->back()->with('success-status', 'Berhasil melakukan pengajuan kerjasama.');
+ } else {
+ return redirect()->back()->with('failed-status', 'Gagal melakukan pengajuan kerjasama');
+ }
+ }
+
public function reject($id){
$cooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id));
diff --git a/app/Http/Controllers/Dashboard/DatatableController.php b/app/Http/Controllers/Dashboard/DatatableController.php
index ba744b5..c7bfdd0 100644
--- a/app/Http/Controllers/Dashboard/DatatableController.php
+++ b/app/Http/Controllers/Dashboard/DatatableController.php
@@ -8,6 +8,7 @@
use App\Models\Company;
use App\Models\ContentRecap;
use App\Models\Cooperation;
+use App\Models\CooperationProposal;
use App\Models\GovernmentAgency;
use App\Models\IssueManagement;
use App\Models\Journalist;
@@ -783,14 +784,17 @@ public function cooperationMedia(Request $request, $id){
->addColumn('classification', function ($data) {
return ucfirst($data->classification);
})
- ->addColumn('status', function ($data) {
+ ->addColumn('status', function ($data) use ($cooperation) {
switch($data->pivot->status){
case 0:
return 'Menunggu';
case 1:
$status = 'Menerima
';
- if(true){
+ $isCooperationProposalExists = CooperationProposal::where('cooperation_id', '=', $cooperation->id)
+ ->where('media_id', '=', $data->id)->exists();
+
+ if(!$isCooperationProposalExists){
$status .= 'Belum Pengajuan';
}else{
$status .= 'Sudah Pengajuan';
@@ -852,12 +856,19 @@ public function cooperationRequest(Request $request){
$mediaId = $user->company->media->id;
$media = Media::with('cooperations')->findOrFail($mediaId);
- // $currentDate = Carbon::now()->format('Y-m-d');
$data = $media->cooperations()
- ->where('start_date', '<=', Carbon::now()->locale('id')->toDateString())
- ->where('end_date', '>=', Carbon::now()->locale('id')->toDateString())
- ->get();
+ ->where(function ($query) {
+ $query->where('media_cooperations.status', '!=', 0)
+ ->orWhere(function ($q) {
+ $q->where('media_cooperations.status', 0)
+ ->where('cooperations.end_date', '>=', now()->toDateString());
+ });
+ })
+ ->where('cooperations.start_date', '<=', now()->toDateString())
+ ->get();
+
+
return DataTables::of($data)
->addIndexColumn()
@@ -873,14 +884,17 @@ public function cooperationRequest(Request $request){
->addColumn('posted_at', function ($data) {
return idn_date($data->created_at, 'l, d F Y');
})
- ->addColumn('status', function ($data){
+ ->addColumn('status', function ($data) use ($media){
+ $isCooperationProposalExists = CooperationProposal::where('cooperation_id', '=', $data->id)
+ ->where('media_id', '=', $media->id)->exists();
+
switch($data->pivot->status){
case '0':
return 'Menunggu';
case 1:
$status = 'Menerima
';
- if(true){
+ if(!$isCooperationProposalExists){
$status .= 'Belum Mengajukan';
}else{
$status .= 'Sudah Mengajukan';
@@ -894,7 +908,11 @@ public function cooperationRequest(Request $request){
}
})
- ->addColumn('action', function ($data) {
+ ->addColumn('action', function ($data) use ($media) {
+
+ $isCooperationProposalExists = CooperationProposal::where('cooperation_id', '=', $data->id)
+ ->where('media_id', '=', $media->id)->exists();
+
$showUrl = route('dashboard.cooperations.requests.show', ['id' => encrypt_id($data->id)]);
// $editUrl = route('dashboard.cooperations.edit', ['id' => encrypt_id($data->id)]);
@@ -913,7 +931,10 @@ public function cooperationRequest(Request $request){