Compare commits
3 Commits
f04138f51a
...
59f5f87dad
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59f5f87dad | ||
|
|
a08a23ae25 | ||
|
|
b85323e5b2 |
@ -66,10 +66,6 @@ protected function setUp(): void
|
||||
return false;
|
||||
}
|
||||
|
||||
if (! $record->taskAssignment()->exists()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$cooperationMedia = $record->cooperationMedia()
|
||||
->whereHas('partnerMedia.company', function (Builder $query): void {
|
||||
$query->where('user_id', auth()->id());
|
||||
|
||||
@ -59,10 +59,6 @@ protected function setUp(): void
|
||||
return false;
|
||||
}
|
||||
|
||||
if (! $record->taskAssignment()->exists()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$cooperationMedia = $record->cooperationMedia()
|
||||
->whereHas('partnerMedia.company', function ($query) {
|
||||
$query->where('user_id', auth()->id());
|
||||
|
||||
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Resources\Manage\Cooperations\Actions\Report;
|
||||
|
||||
use App\Enums\ApprovalStatus;
|
||||
use App\Enums\RoleEnum;
|
||||
use App\Filament\Actions\Cheerful\EditAction;
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use App\Models\Report;
|
||||
use Filament\Forms\Components\DatePicker;
|
||||
use Filament\Forms\Components\SpatieMediaLibraryFileUpload;
|
||||
use Filament\Forms\Components\Textarea;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
|
||||
class EditReportAction extends EditAction
|
||||
{
|
||||
public static function getDefaultName(): ?string
|
||||
{
|
||||
return 'edit_report';
|
||||
}
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this
|
||||
->modalWidth('lg')
|
||||
->schema([
|
||||
TextInput::make('title')
|
||||
->label('Judul')
|
||||
->placeholder('Dirgahayu Purwakarta')
|
||||
->required()
|
||||
->autocomplete(false),
|
||||
|
||||
DatePicker::make('publication_date')
|
||||
->label('Tanggal Publikasi')
|
||||
->native(false)
|
||||
->displayFormat('l, d F Y')
|
||||
->required(),
|
||||
|
||||
TextInput::make('link')
|
||||
->label('Tautan')
|
||||
->placeholder('https://example.com')
|
||||
->maxLength(255)
|
||||
->url()
|
||||
->required()
|
||||
->autocomplete(false),
|
||||
|
||||
Textarea::make('description')
|
||||
->label('Deskripsi')
|
||||
->placeholder('....')
|
||||
->required()
|
||||
->autocomplete(false),
|
||||
|
||||
SpatieMediaLibraryFileUpload::make('image')
|
||||
->label('Gambar')
|
||||
->disk(config('filesystems.default'))
|
||||
->acceptedFileTypes(['image/*'])
|
||||
->maxSize(1024 * 3)
|
||||
->collection('reports')
|
||||
->image()
|
||||
->helperText('Format yang diterima: JPEG, PNG, GIF, WEBP. Ukuran maksimum: 3 MB.')
|
||||
->required(),
|
||||
])
|
||||
->successNotification(
|
||||
fn () => CheerfulNotification::success(
|
||||
CheerfulNotification::getByKey('cooperation.report_sent_success'),
|
||||
CheerfulNotification::getByKey('cooperation.report_sent_desc')
|
||||
)
|
||||
)
|
||||
->visible(fn (Report $record): bool => auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && $record->status === ApprovalStatus::PENDING);
|
||||
}
|
||||
}
|
||||
@ -49,6 +49,6 @@ protected function setUp(): void
|
||||
)->output();
|
||||
}, str($record->title)->slug().'.pdf');
|
||||
})
|
||||
->visible(fn () => auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value]));
|
||||
->visible(fn () => auth()->user()->hasRole([RoleEnum::ADMINISTRATOR->value, RoleEnum::DEVELOPER->value, RoleEnum::PERUSAHAAN->value]));
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,9 +2,12 @@
|
||||
|
||||
namespace App\Filament\Resources\Manage\Cooperations\RelationManagers;
|
||||
|
||||
use App\Enums\ApprovalStatus;
|
||||
use App\Enums\RoleEnum;
|
||||
use App\Filament\Actions\Cheerful\DeleteAction;
|
||||
use App\Filament\Columns\RowIndexColumn;
|
||||
use App\Filament\Resources\Manage\Cooperations\Actions\Report\AcceptAction;
|
||||
use App\Filament\Resources\Manage\Cooperations\Actions\Report\EditReportAction;
|
||||
use App\Filament\Resources\Manage\Cooperations\Actions\Report\ExportAllReportsPdfAction;
|
||||
use App\Filament\Resources\Manage\Cooperations\Actions\Report\ExportReportPdfAction;
|
||||
use App\Filament\Resources\Manage\Cooperations\Actions\Report\RejectAction;
|
||||
@ -98,6 +101,17 @@ public function table(Table $table): Table
|
||||
->recordActions([
|
||||
ExportReportPdfAction::make(),
|
||||
|
||||
EditReportAction::make(),
|
||||
|
||||
DeleteAction::make()
|
||||
->successNotification(
|
||||
fn () => CheerfulNotification::success(
|
||||
CheerfulNotification::getByKey('cooperation.report_sent_success'),
|
||||
CheerfulNotification::getByKey('cooperation.report_sent_desc')
|
||||
)
|
||||
)
|
||||
->visible(fn (Report $record): bool => auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value) && $record->status === ApprovalStatus::PENDING),
|
||||
|
||||
AcceptAction::make(),
|
||||
|
||||
RejectAction::make(),
|
||||
|
||||
@ -11,6 +11,9 @@
|
||||
use App\Filament\Support\CheerfulNotification;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
use Filament\Forms\Components\DatePicker;
|
||||
use Filament\Forms\Components\Textarea;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Support\Icons\Heroicon;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
@ -25,6 +28,11 @@ class TaskAssignmentRelationManager extends RelationManager
|
||||
|
||||
protected static bool $shouldSkipAuthorization = true;
|
||||
|
||||
public function isReadOnly(): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function canViewForRecord(Model $ownerRecord, string $pageClass): bool
|
||||
{
|
||||
if (auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value)) {
|
||||
@ -64,6 +72,35 @@ public function table(Table $table): Table
|
||||
->headerActions([
|
||||
CreateAction::make()
|
||||
->label('Buat Media Order')
|
||||
->modalWidth('md')
|
||||
->schema([
|
||||
DatePicker::make('start_date')
|
||||
->label('Tanggal Mulai')
|
||||
->native(false)
|
||||
->displayFormat('l, d F Y')
|
||||
->required(),
|
||||
|
||||
DatePicker::make('end_date')
|
||||
->label('Tanggal Selesai')
|
||||
->native(false)
|
||||
->displayFormat('l, d F Y')
|
||||
->required()
|
||||
->afterOrEqual('start_date'),
|
||||
|
||||
TextInput::make('report_amount')
|
||||
->label('Jumlah Bukti Tayang')
|
||||
->numeric()
|
||||
->minValue(1)
|
||||
->required()
|
||||
->autocomplete(false),
|
||||
|
||||
Textarea::make('task_description')
|
||||
->label('Deskripsi Tugas')
|
||||
->required()
|
||||
->rows(4)
|
||||
->placeholder('...')
|
||||
->autocomplete(false),
|
||||
])
|
||||
->visible(function (): bool {
|
||||
$user = auth()->user();
|
||||
|
||||
@ -93,6 +130,35 @@ public function table(Table $table): Table
|
||||
])
|
||||
->recordActions([
|
||||
EditAction::make()
|
||||
->modalWidth('md')
|
||||
->schema([
|
||||
DatePicker::make('start_date')
|
||||
->label('Tanggal Mulai')
|
||||
->native(false)
|
||||
->displayFormat('l, d F Y')
|
||||
->required(),
|
||||
|
||||
DatePicker::make('end_date')
|
||||
->label('Tanggal Selesai')
|
||||
->native(false)
|
||||
->displayFormat('l, d F Y')
|
||||
->required()
|
||||
->afterOrEqual('start_date'),
|
||||
|
||||
TextInput::make('report_amount')
|
||||
->label('Jumlah Bukti Tayang')
|
||||
->numeric()
|
||||
->minValue(1)
|
||||
->required()
|
||||
->autocomplete(false),
|
||||
|
||||
Textarea::make('task_description')
|
||||
->label('Deskripsi Tugas')
|
||||
->required()
|
||||
->rows(4)
|
||||
->placeholder('...')
|
||||
->autocomplete(false),
|
||||
])
|
||||
->successNotification(
|
||||
fn () => CheerfulNotification::success(
|
||||
CheerfulNotification::getByKey('cooperation.assignment_updated'),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user