feat: add transaksional
This commit is contained in:
parent
786ccc8254
commit
2a982057d7
90
app/Filament/Resources/TrTransaksiResource.php
Normal file
90
app/Filament/Resources/TrTransaksiResource.php
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources;
|
||||||
|
|
||||||
|
use App\Filament\Resources\TrTransaksiResource\Pages;
|
||||||
|
use App\Filament\Resources\TrTransaksiResource\RelationManagers;
|
||||||
|
use App\Models\TrTransaksi;
|
||||||
|
use Filament\Forms;
|
||||||
|
use Filament\Forms\Form;
|
||||||
|
use Filament\Resources\Resource;
|
||||||
|
use Filament\Tables;
|
||||||
|
use Filament\Tables\Columns\TextColumn;
|
||||||
|
use Filament\Tables\Table;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||||
|
|
||||||
|
class TrTransaksiResource extends Resource
|
||||||
|
{
|
||||||
|
protected static ?string $model = TrTransaksi::class;
|
||||||
|
protected static ?string $pluralModelLabel = 'Transaksi Tindakan';
|
||||||
|
protected static ?string $navigationGroup = 'Transaksi';
|
||||||
|
protected static ?int $navigationSort = 2;
|
||||||
|
protected static ?string $navigationLabel = "Transaksi Tindakan";
|
||||||
|
|
||||||
|
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||||
|
|
||||||
|
public static function form(Form $form): Form
|
||||||
|
{
|
||||||
|
return $form
|
||||||
|
->schema([
|
||||||
|
Forms\Components\Select::make('id_registrasi')
|
||||||
|
->relationship('registrasi', 'id_registrasi')
|
||||||
|
->required(),
|
||||||
|
Forms\Components\Select::make('id_tindakan')
|
||||||
|
->relationship('tindakan', 'id_tindakan')
|
||||||
|
->required(),
|
||||||
|
Forms\Components\Select::make('id_pegawai')
|
||||||
|
->relationship('pegawai', 'id_pegawai')
|
||||||
|
->required(),
|
||||||
|
Forms\Components\TextInput::make('jml_tindakan')
|
||||||
|
->required(),
|
||||||
|
|
||||||
|
//
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function table(Table $table): Table
|
||||||
|
{
|
||||||
|
return $table
|
||||||
|
->defaultSort('created_at', 'desc')
|
||||||
|
->columns([
|
||||||
|
TextColumn::make('pegawai.nama_pegawai')->label('Pegawai'),
|
||||||
|
TextColumn::make('jml_tindakan')->label('Jumlah Tindakan')->default(function ($record) {
|
||||||
|
return count($record->id_tindakan);
|
||||||
|
}),
|
||||||
|
TextColumn::make('created_at')->label('Tanggal Dibuat'),
|
||||||
|
TextColumn::make('updated_at')->label('Tanggal Diubah'),
|
||||||
|
])
|
||||||
|
->filters([
|
||||||
|
//
|
||||||
|
])
|
||||||
|
->actions([
|
||||||
|
Tables\Actions\ViewAction::make(),
|
||||||
|
// Tables\Actions\EditAction::make(),
|
||||||
|
Tables\Actions\DeleteAction::make(),
|
||||||
|
])
|
||||||
|
->bulkActions([
|
||||||
|
Tables\Actions\BulkActionGroup::make([
|
||||||
|
Tables\Actions\DeleteBulkAction::make(),
|
||||||
|
]),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getRelations(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
//
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getPages(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'index' => Pages\ListTrTransaksis::route('/'),
|
||||||
|
'create' => Pages\CreateTrTransaksi::route('/create'),
|
||||||
|
'view' => Pages\ViewTrTransaksi::route('/{record}'),
|
||||||
|
// 'edit' => Pages\EditTrTransaksi::route('/{record}/edit'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\TrTransaksiResource\Pages;
|
||||||
|
|
||||||
|
use App\Filament\Resources\TrTransaksiResource;
|
||||||
|
use Filament\Actions;
|
||||||
|
use Filament\Resources\Pages\CreateRecord;
|
||||||
|
|
||||||
|
class CreateTrTransaksi extends CreateRecord
|
||||||
|
{
|
||||||
|
protected static string $resource = TrTransaksiResource::class;
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\TrTransaksiResource\Pages;
|
||||||
|
|
||||||
|
use App\Filament\Resources\TrTransaksiResource;
|
||||||
|
use Filament\Actions;
|
||||||
|
use Filament\Resources\Pages\EditRecord;
|
||||||
|
|
||||||
|
class EditTrTransaksi extends EditRecord
|
||||||
|
{
|
||||||
|
protected static string $resource = TrTransaksiResource::class;
|
||||||
|
|
||||||
|
protected function getHeaderActions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
Actions\ViewAction::make(),
|
||||||
|
Actions\DeleteAction::make(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\TrTransaksiResource\Pages;
|
||||||
|
|
||||||
|
use App\Filament\Resources\TrTransaksiResource;
|
||||||
|
use Filament\Actions;
|
||||||
|
use Filament\Resources\Pages\ListRecords;
|
||||||
|
|
||||||
|
class ListTrTransaksis extends ListRecords
|
||||||
|
{
|
||||||
|
protected static string $resource = TrTransaksiResource::class;
|
||||||
|
|
||||||
|
protected function getHeaderActions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
Actions\CreateAction::make(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filament\Resources\TrTransaksiResource\Pages;
|
||||||
|
|
||||||
|
use App\Filament\Resources\TrTransaksiResource;
|
||||||
|
use Filament\Actions;
|
||||||
|
use Filament\Resources\Pages\ViewRecord;
|
||||||
|
|
||||||
|
class ViewTrTransaksi extends ViewRecord
|
||||||
|
{
|
||||||
|
protected static string $resource = TrTransaksiResource::class;
|
||||||
|
|
||||||
|
protected function getHeaderActions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
Actions\EditAction::make(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -9,4 +9,22 @@ class TrTransaksi extends Model
|
|||||||
protected $table = 'tr_transaksi';
|
protected $table = 'tr_transaksi';
|
||||||
protected $primaryKey = 'id_transaksi';
|
protected $primaryKey = 'id_transaksi';
|
||||||
protected $guarded = [];
|
protected $guarded = [];
|
||||||
|
protected $casts = [
|
||||||
|
'id_tindakan' => 'array',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function registrasi()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(TrRegistrasi::class, 'id_registrasi', 'id_registrasi');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tindakan()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(MsTindakan::class, 'id_tindakan', 'id_tindakan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function pegawai()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(MsPegawai::class, 'id_pegawai', 'id_pegawai');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,13 +14,12 @@ return new class extends Migration
|
|||||||
Schema::create('tr_transaksi', function (Blueprint $table) {
|
Schema::create('tr_transaksi', function (Blueprint $table) {
|
||||||
$table->id('id_transaksi');
|
$table->id('id_transaksi');
|
||||||
$table->unsignedBigInteger('id_registrasi');
|
$table->unsignedBigInteger('id_registrasi');
|
||||||
$table->string('id_tindakan');
|
// id tindakan as array cause has multiple tindakan
|
||||||
|
$table->json('id_tindakan');
|
||||||
$table->string('id_pegawai');
|
$table->string('id_pegawai');
|
||||||
$table->integer('jml_tindakan')->default(1);
|
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
$table->foreign('id_registrasi')->references('id_registrasi')->on('tr_registrasi');
|
$table->foreign('id_registrasi')->references('id_registrasi')->on('tr_registrasi');
|
||||||
$table->foreign('id_tindakan')->references('id_tindakan')->on('ms_tindakan');
|
|
||||||
$table->foreign('id_pegawai')->references('id_pegawai')->on('ms_pegawai');
|
$table->foreign('id_pegawai')->references('id_pegawai')->on('ms_pegawai');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,6 +29,7 @@ class DatabaseSeeder extends Seeder
|
|||||||
RuangPelayananSeeder::class,
|
RuangPelayananSeeder::class,
|
||||||
TindakanSeeder::class,
|
TindakanSeeder::class,
|
||||||
RegisterSeeder::class,
|
RegisterSeeder::class,
|
||||||
|
TransaksiSeed::class,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
44
database/seeders/TransaksiSeed.php
Normal file
44
database/seeders/TransaksiSeed.php
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Seeders;
|
||||||
|
|
||||||
|
use App\Models\MsAsuransi;
|
||||||
|
use App\Models\MsPasien;
|
||||||
|
use App\Models\MsPegawai;
|
||||||
|
use App\Models\MsRuangPelayanan;
|
||||||
|
use App\Models\MsTindakan;
|
||||||
|
use App\Models\TrRegistrasi;
|
||||||
|
use App\Models\TrTransaksi;
|
||||||
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
|
class TransaksiSeed extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$faker = \Faker\Factory::create();
|
||||||
|
|
||||||
|
// random id tindakan return array of id tindakan, 1-4
|
||||||
|
$id_tindakan = MsTindakan::all()->pluck('id_tindakan')->toArray();
|
||||||
|
|
||||||
|
// make sure id_tindakan more than 1
|
||||||
|
$id_tindakan = array_map(function ($id) {
|
||||||
|
return [$id];
|
||||||
|
}, $id_tindakan);
|
||||||
|
|
||||||
|
|
||||||
|
foreach (range(1, 10) as $i) {
|
||||||
|
TrTransaksi::create([
|
||||||
|
'id_registrasi' => TrRegistrasi::all()->random()->id_registrasi,
|
||||||
|
'id_tindakan' => $id_tindakan[array_rand($id_tindakan)],
|
||||||
|
'id_pegawai' => MsPegawai::all()->random()->id_pegawai,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user