diff --git a/app/Console/Commands/SimulateCooperationTime.php b/app/Console/Commands/SimulateCooperationTime.php index 21c5f02..816b663 100644 --- a/app/Console/Commands/SimulateCooperationTime.php +++ b/app/Console/Commands/SimulateCooperationTime.php @@ -115,8 +115,8 @@ public function handle() } // 3. Update Status - $cooperation->update(['status' => CooperationStatus::VERIFICATION]); - $this->info('Status transitioned to VERIFICATION.'); + $cooperation->update(['status' => CooperationStatus::PAYMENT]); + $this->info('Status transitioned to PAYMENT.'); } else { $this->error('This ASSIGNMENT cooperation has no Task Assignment yet.'); } diff --git a/app/Console/Commands/UpdateCooperationStatusCommand.php b/app/Console/Commands/UpdateCooperationStatusCommand.php index da89fd7..a62214a 100644 --- a/app/Console/Commands/UpdateCooperationStatusCommand.php +++ b/app/Console/Commands/UpdateCooperationStatusCommand.php @@ -57,7 +57,7 @@ public function handle() Log::info("Updated {$updatedPending} cooperations from PENDING to ASSIGNMENT."); } - // 2. ASSIGNMENT -> VERIFICATION (taskAssignment->end_date) + // 2. ASSIGNMENT -> PAYMENT (taskAssignment->end_date) // Automatically reject media that haven't responded to the invitation $rejectedMedia = CooperationMedia::whereHas('cooperation', function ($query) use ($today) { $query->assignment()->whereHas('taskAssignment', function ($subQuery) use ($today) { @@ -75,10 +75,13 @@ public function handle() ->whereHas('taskAssignment', function ($query) use ($today) { $query->whereDate('end_date', '<', $today); }) - ->update(['status' => CooperationStatus::VERIFICATION]); + ->update([ + 'status' => CooperationStatus::PAYMENT, + 'payment_date' => $today, + ]); if ($updatedAssignment > 0) { - Log::info("Updated {$updatedAssignment} cooperations from ASSIGNMENT to VERIFICATION."); + Log::info("Updated {$updatedAssignment} cooperations from ASSIGNMENT to PAYMENT."); } $this->info('Cooperation statuses updated successfully.'); diff --git a/app/Enums/CooperationStatus.php b/app/Enums/CooperationStatus.php index 94fe138..c9537c8 100644 --- a/app/Enums/CooperationStatus.php +++ b/app/Enums/CooperationStatus.php @@ -13,16 +13,14 @@ enum CooperationStatus: int implements HasColor, HasLabel case PENDING = 1; case ASSIGNMENT = 2; - case VERIFICATION = 3; - case PAYMENT = 4; - case COMPLETED = 5; + case PAYMENT = 3; + case COMPLETED = 4; public function getLabel(): ?string { return match ($this) { self::PENDING => 'Menunggu', self::ASSIGNMENT => 'Media Order', - self::VERIFICATION => 'Verifikasi', self::PAYMENT => 'Pembayaran', self::COMPLETED => 'Selesai', }; @@ -33,7 +31,6 @@ public function getColor(): string|array|null return match ($this) { self::PENDING => 'warning', self::ASSIGNMENT => 'info', - self::VERIFICATION => 'primary', self::PAYMENT => 'slate', self::COMPLETED => 'success', }; diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/ProceedToPaymentAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/ProceedToPaymentAction.php deleted file mode 100644 index 939b65e..0000000 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Cooperation/ProceedToPaymentAction.php +++ /dev/null @@ -1,58 +0,0 @@ -label('Lanjutkan ke Pembayaran') - ->icon(Heroicon::OutlinedBanknotes) - ->color('success') - ->requiresConfirmation() - ->modalHeading(fn () => CheerfulNotification::getByKey('cooperation.proceed_to_payment_title')) - ->modalDescription(fn () => CheerfulNotification::getByKey('cooperation.proceed_to_payment_desc')) - ->action(function (Cooperation $record): void { - $record->update([ - 'status' => CooperationStatus::PAYMENT, - 'payment_date' => now()->toDateString(), - ]); - - CheerfulNotification::success( - CheerfulNotification::getByKey('cooperation.payment_stage_active'), - CheerfulNotification::getByKey('cooperation.payment_stage_changed_desc') - )->send(); - }) - ->visible(function (Cooperation $record): bool { - $user = auth()->user(); - - if (! $user || $user->hasRole(RoleEnum::PERUSAHAAN->value) || $record->status !== CooperationStatus::VERIFICATION) { - return false; - } - - // Check if all reports are verified (either Accepted or Rejected, not Pending) - $reports = $record->reports; - - if ($reports->isEmpty()) { - return true; - } - - return $reports->every(fn ($report) => $report->status !== ApprovalStatus::PENDING); - }); - } -} diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Report/AcceptAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Report/AcceptAction.php index 0950ca5..a09b13f 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Report/AcceptAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Report/AcceptAction.php @@ -50,7 +50,7 @@ protected function setUp(): void } }) ->visible( - fn (Report $record): bool => in_array($record->mediaTaskAssignment?->taskAssignment?->cooperation?->status, [CooperationStatus::ASSIGNMENT, CooperationStatus::VERIFICATION]) && + fn (Report $record): bool => $record->mediaTaskAssignment?->taskAssignment?->cooperation?->status === CooperationStatus::ASSIGNMENT && ! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && $record->status === ApprovalStatus::PENDING ); diff --git a/app/Filament/Resources/Manage/Cooperations/Actions/Report/RejectAction.php b/app/Filament/Resources/Manage/Cooperations/Actions/Report/RejectAction.php index 55e7f92..6c917e8 100644 --- a/app/Filament/Resources/Manage/Cooperations/Actions/Report/RejectAction.php +++ b/app/Filament/Resources/Manage/Cooperations/Actions/Report/RejectAction.php @@ -62,7 +62,7 @@ protected function setUp(): void } }) ->visible( - fn (Report $record): bool => in_array($record->mediaTaskAssignment?->taskAssignment?->cooperation?->status, [CooperationStatus::ASSIGNMENT, CooperationStatus::VERIFICATION]) && + fn (Report $record): bool => $record->mediaTaskAssignment?->taskAssignment?->cooperation?->status === CooperationStatus::ASSIGNMENT && ! auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && $record->status === ApprovalStatus::PENDING ) diff --git a/app/Filament/Resources/Manage/Cooperations/RelationManagers/TaskAssignmentRelationManager.php b/app/Filament/Resources/Manage/Cooperations/RelationManagers/TaskAssignmentRelationManager.php index b4e9516..4b5f2a4 100644 --- a/app/Filament/Resources/Manage/Cooperations/RelationManagers/TaskAssignmentRelationManager.php +++ b/app/Filament/Resources/Manage/Cooperations/RelationManagers/TaskAssignmentRelationManager.php @@ -43,11 +43,11 @@ public function table(Table $table): Table ...RowIndexColumn::make(), TextColumn::make('start_date') - ->label('Mulai') + ->label('Tanggal Mulai') ->date('l, d F Y'), TextColumn::make('end_date') - ->label('Selesai') + ->label('Tanggal Selesai') ->date('l, d F Y'), TextColumn::make('task_description') diff --git a/app/Filament/Resources/Manage/Cooperations/Tables/CooperationsTable.php b/app/Filament/Resources/Manage/Cooperations/Tables/CooperationsTable.php index 7da1d79..85cc231 100644 --- a/app/Filament/Resources/Manage/Cooperations/Tables/CooperationsTable.php +++ b/app/Filament/Resources/Manage/Cooperations/Tables/CooperationsTable.php @@ -13,7 +13,6 @@ use App\Filament\Resources\Manage\Cooperations\Actions\Cooperation\AcceptAction; use App\Filament\Resources\Manage\Cooperations\Actions\Cooperation\CompleteCooperationAction; use App\Filament\Resources\Manage\Cooperations\Actions\Cooperation\CreateTaskAssignmentAction; -use App\Filament\Resources\Manage\Cooperations\Actions\Cooperation\ProceedToPaymentAction; use App\Filament\Resources\Manage\Cooperations\Actions\Cooperation\RejectAction; use App\Filament\Resources\Manage\Cooperations\Actions\Cooperation\SendProposalAction; use App\Filament\Support\CheerfulNotification; @@ -260,8 +259,6 @@ public static function configure(Table $table): Table CreateTaskAssignmentAction::make(), - ProceedToPaymentAction::make(), - CompleteCooperationAction::make(), EditAction::make(), diff --git a/app/Filament/Widgets/Charts/CooperationStatusChart.php b/app/Filament/Widgets/Charts/CooperationStatusChart.php index 25c85dc..3e7c7e8 100644 --- a/app/Filament/Widgets/Charts/CooperationStatusChart.php +++ b/app/Filament/Widgets/Charts/CooperationStatusChart.php @@ -42,7 +42,6 @@ protected function getData(): array $colors[] = match ($case) { CooperationStatus::PENDING => '#F59E0B', CooperationStatus::ASSIGNMENT => '#3B82F6', - CooperationStatus::VERIFICATION => '#6366F1', CooperationStatus::PAYMENT => '#8B5CF6', CooperationStatus::COMPLETED => '#10B981', }; diff --git a/app/Models/Cooperation.php b/app/Models/Cooperation.php index 73a3439..464290c 100644 --- a/app/Models/Cooperation.php +++ b/app/Models/Cooperation.php @@ -48,12 +48,6 @@ protected function assignment(Builder $query): void $query->where('status', CooperationStatus::ASSIGNMENT); } - #[Scope] - protected function verification(Builder $query): void - { - $query->where('status', CooperationStatus::VERIFICATION); - } - #[Scope] protected function payment(Builder $query): void { diff --git a/tests/Unit/Enums/CooperationStatusTest.php b/tests/Unit/Enums/CooperationStatusTest.php index 8d610cc..39eb002 100644 --- a/tests/Unit/Enums/CooperationStatusTest.php +++ b/tests/Unit/Enums/CooperationStatusTest.php @@ -3,7 +3,7 @@ use App\Enums\CooperationStatus; test('cooperation status enum has expected cases', function () { - expect(CooperationStatus::cases())->toHaveCount(5); + expect(CooperationStatus::cases())->toHaveCount(4); }); test('cooperation status enum labels and colors', function (CooperationStatus $status, string $label, string $color) { @@ -12,7 +12,6 @@ })->with([ [CooperationStatus::PENDING, 'Menunggu', 'warning'], [CooperationStatus::ASSIGNMENT, 'Media Order', 'info'], - [CooperationStatus::VERIFICATION, 'Verifikasi', 'primary'], [CooperationStatus::PAYMENT, 'Pembayaran', 'slate'], [CooperationStatus::COMPLETED, 'Selesai', 'success'], ]); @@ -21,13 +20,12 @@ expect(CooperationStatus::options())->toEqual([ 1 => 'Menunggu', 2 => 'Media Order', - 3 => 'Verifikasi', 4 => 'Pembayaran', 5 => 'Selesai', ]); }); test('cooperation status enum values and comment', function () { - expect(CooperationStatus::values())->toEqual([1, 2, 3, 4, 5]); - expect(CooperationStatus::comment())->toBe('1: Menunggu, 2: Media Order, 3: Verifikasi, 4: Pembayaran, 5: Selesai'); + expect(CooperationStatus::values())->toEqual([1, 2, 4, 5]); + expect(CooperationStatus::comment())->toBe('1: Menunggu, 2: Media Order, 4: Pembayaran, 5: Selesai'); });