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 $primaryKey = 'id_transaksi';
|
||||
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) {
|
||||
$table->id('id_transaksi');
|
||||
$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->integer('jml_tindakan')->default(1);
|
||||
$table->timestamps();
|
||||
|
||||
$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');
|
||||
});
|
||||
}
|
||||
|
||||
@ -29,6 +29,7 @@ class DatabaseSeeder extends Seeder
|
||||
RuangPelayananSeeder::class,
|
||||
TindakanSeeder::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