fix: refine task assignment logic and enhance cooperation form with status selection
This commit is contained in:
parent
59b9a8ce92
commit
f04138f51a
@ -109,7 +109,7 @@ protected function setUp(): void
|
|||||||
|
|
||||||
return $user && ! $user->hasRole(RoleEnum::PERUSAHAAN->value)
|
return $user && ! $user->hasRole(RoleEnum::PERUSAHAAN->value)
|
||||||
&& ! $record->taskAssignment()->exists()
|
&& ! $record->taskAssignment()->exists()
|
||||||
&& in_array($record->status, [CooperationStatus::PENDING, CooperationStatus::ASSIGNMENT]);
|
&& $record->status === CooperationStatus::ASSIGNMENT;
|
||||||
})
|
})
|
||||||
->modalWidth(Width::Large);
|
->modalWidth(Width::Large);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Filament\Resources\Manage\Cooperations\RelationManagers;
|
namespace App\Filament\Resources\Manage\Cooperations\RelationManagers;
|
||||||
|
|
||||||
|
use App\Enums\CooperationStatus;
|
||||||
use App\Enums\RoleEnum;
|
use App\Enums\RoleEnum;
|
||||||
use App\Filament\Actions\Cheerful\CreateAction;
|
use App\Filament\Actions\Cheerful\CreateAction;
|
||||||
use App\Filament\Actions\Cheerful\DeleteAction;
|
use App\Filament\Actions\Cheerful\DeleteAction;
|
||||||
@ -79,23 +80,9 @@ public function table(Table $table): Table
|
|||||||
->accepted()
|
->accepted()
|
||||||
->exists();
|
->exists();
|
||||||
|
|
||||||
if (! $isPartner) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$hasAcceptedProposal = $cooperation->proposal()->accepted()->exists();
|
$hasAcceptedProposal = $cooperation->proposal()->accepted()->exists();
|
||||||
|
|
||||||
if (! $hasAcceptedProposal) {
|
return $isPartner && $hasAcceptedProposal && $cooperation->status === CooperationStatus::ASSIGNMENT;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$taskAssignment = $cooperation->taskAssignment;
|
|
||||||
|
|
||||||
if (! $taskAssignment) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $taskAssignment->reports()->count() < $taskAssignment->report_amount;
|
|
||||||
})
|
})
|
||||||
->successNotification(
|
->successNotification(
|
||||||
fn () => CheerfulNotification::success(
|
fn () => CheerfulNotification::success(
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Filament\Resources\Manage\Cooperations\Schemas;
|
namespace App\Filament\Resources\Manage\Cooperations\Schemas;
|
||||||
|
|
||||||
|
use App\Enums\CooperationStatus;
|
||||||
use App\Enums\NotifStyle;
|
use App\Enums\NotifStyle;
|
||||||
use App\Filament\Support\CheerfulNotification;
|
use App\Filament\Support\CheerfulNotification;
|
||||||
use App\Models\PartnerMedia;
|
use App\Models\PartnerMedia;
|
||||||
@ -37,7 +38,7 @@ public static function configure(Schema $schema): Schema
|
|||||||
->required()
|
->required()
|
||||||
->maxLength(200),
|
->maxLength(200),
|
||||||
|
|
||||||
Grid::make(2)
|
Grid::make(3)
|
||||||
->schema([
|
->schema([
|
||||||
DatePicker::make('initial_submission_date')
|
DatePicker::make('initial_submission_date')
|
||||||
->label('Tanggal Pengajuan Awal')
|
->label('Tanggal Pengajuan Awal')
|
||||||
@ -55,6 +56,12 @@ public static function configure(Schema $schema): Schema
|
|||||||
->required()
|
->required()
|
||||||
->afterOrEqual('initial_submission_date')
|
->afterOrEqual('initial_submission_date')
|
||||||
->minDate(fn (Get $get) => $get('initial_submission_date')),
|
->minDate(fn (Get $get) => $get('initial_submission_date')),
|
||||||
|
|
||||||
|
Select::make('status')
|
||||||
|
->label('Status')
|
||||||
|
->options(CooperationStatus::options())
|
||||||
|
->required()
|
||||||
|
->native(false),
|
||||||
]),
|
]),
|
||||||
|
|
||||||
Select::make('partner_media_ids')
|
Select::make('partner_media_ids')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user