feat: adjust trx and reg

This commit is contained in:
Nawcodes 2025-04-26 18:31:51 +07:00
parent 563d61c296
commit da7b37e83c
31 changed files with 137 additions and 38 deletions

View File

@ -9,4 +9,5 @@ use Filament\Resources\Pages\CreateRecord;
class CreateMsAsuransi extends CreateRecord class CreateMsAsuransi extends CreateRecord
{ {
protected static string $resource = MsAsuransiResource::class; protected static string $resource = MsAsuransiResource::class;
protected static ?string $title = 'Tambah Asuransi';
} }

View File

@ -9,7 +9,7 @@ use Filament\Resources\Pages\EditRecord;
class EditMsAsuransi extends EditRecord class EditMsAsuransi extends EditRecord
{ {
protected static string $resource = MsAsuransiResource::class; protected static string $resource = MsAsuransiResource::class;
protected static ?string $title = 'Edit Asuransi';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [

View File

@ -9,11 +9,13 @@ use Filament\Resources\Pages\ListRecords;
class ListMsAsuransis extends ListRecords class ListMsAsuransis extends ListRecords
{ {
protected static string $resource = MsAsuransiResource::class; protected static string $resource = MsAsuransiResource::class;
protected static ?string $title = 'Daftar Asuransi';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [
Actions\CreateAction::make()->label('Tambah Asuransi'), Actions\CreateAction::make()
->label('Tambah Asuransi')
->icon('heroicon-o-plus'),
]; ];
} }
} }

View File

@ -9,7 +9,7 @@ use Filament\Resources\Pages\ViewRecord;
class ViewMsAsuransi extends ViewRecord class ViewMsAsuransi extends ViewRecord
{ {
protected static string $resource = MsAsuransiResource::class; protected static string $resource = MsAsuransiResource::class;
protected static ?string $title = 'Detail Asuransi';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [

View File

@ -9,4 +9,5 @@ use Filament\Resources\Pages\CreateRecord;
class CreateMsPasien extends CreateRecord class CreateMsPasien extends CreateRecord
{ {
protected static string $resource = MsPasienResource::class; protected static string $resource = MsPasienResource::class;
protected static ?string $title = 'Tambah Pasien';
} }

View File

@ -9,7 +9,7 @@ use Filament\Resources\Pages\EditRecord;
class EditMsPasien extends EditRecord class EditMsPasien extends EditRecord
{ {
protected static string $resource = MsPasienResource::class; protected static string $resource = MsPasienResource::class;
protected static ?string $title = 'Edit Pasien';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [

View File

@ -9,11 +9,14 @@ use Filament\Resources\Pages\ListRecords;
class ListMsPasiens extends ListRecords class ListMsPasiens extends ListRecords
{ {
protected static string $resource = MsPasienResource::class; protected static string $resource = MsPasienResource::class;
protected static ?string $title = 'Daftar Pasien';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [
Actions\CreateAction::make()->label('Tambah Pasien'), Actions\CreateAction::make()
->label('Tambah Pasien')
->icon('heroicon-o-plus'),
]; ];
} }
} }

View File

@ -9,7 +9,7 @@ use Filament\Resources\Pages\ViewRecord;
class ViewMsPasien extends ViewRecord class ViewMsPasien extends ViewRecord
{ {
protected static string $resource = MsPasienResource::class; protected static string $resource = MsPasienResource::class;
protected static ?string $title = 'Detail Pasien';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [

View File

@ -9,4 +9,5 @@ use Filament\Resources\Pages\CreateRecord;
class CreateMsPegawai extends CreateRecord class CreateMsPegawai extends CreateRecord
{ {
protected static string $resource = MsPegawaiResource::class; protected static string $resource = MsPegawaiResource::class;
protected static ?string $title = 'Tambah Pegawai';
} }

View File

@ -9,7 +9,7 @@ use Filament\Resources\Pages\EditRecord;
class EditMsPegawai extends EditRecord class EditMsPegawai extends EditRecord
{ {
protected static string $resource = MsPegawaiResource::class; protected static string $resource = MsPegawaiResource::class;
protected static ?string $title = 'Edit Pegawai';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [

View File

@ -9,11 +9,13 @@ use Filament\Resources\Pages\ListRecords;
class ListMsPegawais extends ListRecords class ListMsPegawais extends ListRecords
{ {
protected static string $resource = MsPegawaiResource::class; protected static string $resource = MsPegawaiResource::class;
protected static ?string $title = 'Daftar Pegawai';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [
Actions\CreateAction::make()->label('Tambah Pegawai'), Actions\CreateAction::make()
->label('Tambah Pegawai')
->icon('heroicon-o-plus'),
]; ];
} }
} }

View File

@ -9,7 +9,7 @@ use Filament\Resources\Pages\ViewRecord;
class ViewMsPegawai extends ViewRecord class ViewMsPegawai extends ViewRecord
{ {
protected static string $resource = MsPegawaiResource::class; protected static string $resource = MsPegawaiResource::class;
protected static ?string $title = 'Detail Pegawai';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [

View File

@ -9,4 +9,5 @@ use Filament\Resources\Pages\CreateRecord;
class CreateMsRuangPelayanan extends CreateRecord class CreateMsRuangPelayanan extends CreateRecord
{ {
protected static string $resource = MsRuangPelayananResource::class; protected static string $resource = MsRuangPelayananResource::class;
protected static ?string $title = 'Tambah Ruang Pelayanan';
} }

View File

@ -9,7 +9,7 @@ use Filament\Resources\Pages\EditRecord;
class EditMsRuangPelayanan extends EditRecord class EditMsRuangPelayanan extends EditRecord
{ {
protected static string $resource = MsRuangPelayananResource::class; protected static string $resource = MsRuangPelayananResource::class;
protected static ?string $title = 'Edit Ruang Pelayanan';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [

View File

@ -9,11 +9,13 @@ use Filament\Resources\Pages\ListRecords;
class ListMsRuangPelayanans extends ListRecords class ListMsRuangPelayanans extends ListRecords
{ {
protected static string $resource = MsRuangPelayananResource::class; protected static string $resource = MsRuangPelayananResource::class;
protected static ?string $title = 'Daftar Ruang Pelayanan';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [
Actions\CreateAction::make(), Actions\CreateAction::make()
->label('Tambah Ruang Pelayanan')
->icon('heroicon-o-plus'),
]; ];
} }
} }

View File

@ -9,6 +9,7 @@ use Filament\Resources\Pages\ViewRecord;
class ViewMsRuangPelayanan extends ViewRecord class ViewMsRuangPelayanan extends ViewRecord
{ {
protected static string $resource = MsRuangPelayananResource::class; protected static string $resource = MsRuangPelayananResource::class;
protected static ?string $title = 'Detail Ruang Pelayanan';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {

View File

@ -8,6 +8,7 @@ use App\Models\MsTindakan;
use Filament\Forms; use Filament\Forms;
use Filament\Forms\Form; use Filament\Forms\Form;
use Filament\Resources\Resource; use Filament\Resources\Resource;
use Filament\Support\RawJs;
use Filament\Tables; use Filament\Tables;
use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table; use Filament\Tables\Table;
@ -30,11 +31,18 @@ class MsTindakanResource extends Resource
return $form return $form
->schema([ ->schema([
Forms\Components\TextInput::make('id_tindakan') Forms\Components\TextInput::make('id_tindakan')
->label('ID Tindakan')
->required() ->required()
->maxLength(255), ->maxLength(255),
Forms\Components\TextInput::make('nama_tindakan') Forms\Components\TextInput::make('nama_tindakan')
->required() ->required()
->maxLength(255), ->maxLength(255),
Forms\Components\TextInput::make('tarif_tindakan')
->mask(RawJs::make('$money($input)'))
->stripCharacters(',')
->numeric()
->required()
->prefix('Rp'),
]); ]);
} }
@ -46,6 +54,8 @@ class MsTindakanResource extends Resource
->columns([ ->columns([
TextColumn::make('id_tindakan')->label('ID Tindakan'), TextColumn::make('id_tindakan')->label('ID Tindakan'),
TextColumn::make('nama_tindakan')->label('Nama Tindakan'), TextColumn::make('nama_tindakan')->label('Nama Tindakan'),
TextColumn::make('tarif_tindakan')->label('Tarif Tindakan')
->money('IDR'),
TextColumn::make('created_at')->label('Tanggal Dibuat'), TextColumn::make('created_at')->label('Tanggal Dibuat'),
TextColumn::make('updated_at')->label('Tanggal Diubah'), TextColumn::make('updated_at')->label('Tanggal Diubah'),
]) ])

View File

@ -9,4 +9,5 @@ use Filament\Resources\Pages\CreateRecord;
class CreateMsTindakan extends CreateRecord class CreateMsTindakan extends CreateRecord
{ {
protected static string $resource = MsTindakanResource::class; protected static string $resource = MsTindakanResource::class;
protected static ?string $title = 'Tambah Tindakan';
} }

View File

@ -9,6 +9,7 @@ use Filament\Resources\Pages\EditRecord;
class EditMsTindakan extends EditRecord class EditMsTindakan extends EditRecord
{ {
protected static string $resource = MsTindakanResource::class; protected static string $resource = MsTindakanResource::class;
protected static ?string $title = 'Edit Tindakan';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {

View File

@ -9,11 +9,14 @@ use Filament\Resources\Pages\ListRecords;
class ListMsTindakans extends ListRecords class ListMsTindakans extends ListRecords
{ {
protected static string $resource = MsTindakanResource::class; protected static string $resource = MsTindakanResource::class;
protected static ?string $title = 'Daftar Tindakan';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [
Actions\CreateAction::make(), Actions\CreateAction::make()
->label('Tambah Tindakan')
->icon('heroicon-o-plus'),
]; ];
} }
} }

View File

@ -9,6 +9,7 @@ use Filament\Resources\Pages\ViewRecord;
class ViewMsTindakan extends ViewRecord class ViewMsTindakan extends ViewRecord
{ {
protected static string $resource = MsTindakanResource::class; protected static string $resource = MsTindakanResource::class;
protected static ?string $title = 'Detail Tindakan';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {

View File

@ -4,6 +4,10 @@ namespace App\Filament\Resources;
use App\Filament\Resources\TrRegistrasiResource\Pages; use App\Filament\Resources\TrRegistrasiResource\Pages;
use App\Filament\Resources\TrRegistrasiResource\RelationManagers; use App\Filament\Resources\TrRegistrasiResource\RelationManagers;
use App\Models\MsAsuransi;
use App\Models\MsPasien;
use App\Models\MsPegawai;
use App\Models\MsRuangPelayanan;
use App\Models\TrRegistrasi; use App\Models\TrRegistrasi;
use Filament\Forms; use Filament\Forms;
use Filament\Forms\Form; use Filament\Forms\Form;
@ -30,20 +34,32 @@ class TrRegistrasiResource extends Resource
->schema([ ->schema([
Forms\Components\DatePicker::make('tgl_registrasi'), Forms\Components\DatePicker::make('tgl_registrasi'),
Forms\Components\TextInput::make('nomor_kartu_asuransi') Forms\Components\TextInput::make('nomor_kartu_asuransi')
->required(), ->label('Nomor Kartu Asuransi')
->nullable(),
Forms\Components\Select::make('mr_pasien') Forms\Components\Select::make('mr_pasien')
->relationship('pasien', 'nama') ->label('Pasien')
->options(MsPasien::all()->pluck('nama', 'mr_pasien'))
->searchable()
->required(), ->required(),
Forms\Components\Select::make('id_asuransi') Forms\Components\Select::make('id_asuransi')
->relationship('asuransi', 'nama_asuransi') ->label('Asuransi')
->required(), ->options(MsAsuransi::all()->pluck('nama_asuransi', 'id_asuransi'))
->searchable()
->nullable(),
Forms\Components\Select::make('id_pegawai') Forms\Components\Select::make('id_pegawai')
->relationship('pegawai', 'nama_pegawai') ->label('Pegawai')
->options(MsPegawai::all()->pluck('nama_pegawai', 'id_pegawai'))
->searchable()
->required(), ->required(),
Forms\Components\Select::make('id_ruang_pelayanan') Forms\Components\Select::make('id_ruang_pelayanan')
->relationship('ruangPelayanan', 'nama_ruang_pelayanan') ->label('Ruang Pelayanan')
->options(MsRuangPelayanan::all()->pluck('nama_ruang_pelayanan', 'id_ruang_pelayanan'))
->searchable()
->required(), ->required(),
Forms\Components\Textarea::make('keterangan')
->label('Keterangan')
->nullable(),
]); ]);
} }
@ -56,11 +72,22 @@ class TrRegistrasiResource extends Resource
TextColumn::make('id_registrasi')->label('ID Registrasi'), TextColumn::make('id_registrasi')->label('ID Registrasi'),
TextColumn::make('tgl_registrasi')->label('Tanggal Registrasi'), TextColumn::make('tgl_registrasi')->label('Tanggal Registrasi'),
TextColumn::make('pasien.nama')->label('Pasien'), TextColumn::make('pasien.nama')->label('Pasien'),
TextColumn::make('asuransi.nama_asuransi')->label('Asuransi'), TextColumn::make('asuransi.nama_asuransi')->label('Asuransi')->default('-'),
TextColumn::make('pegawai.nama_pegawai')->label('Pegawai'), TextColumn::make('pegawai.nama_pegawai')->label('Pegawai'),
TextColumn::make('ruangPelayanan.nama_ruang_pelayanan')->label('Ruang Pelayanan'), TextColumn::make('ruangPelayanan.nama_ruang_pelayanan')->label('Ruang Pelayanan'),
TextColumn::make('created_at')->label('Tanggal Dibuat'), // id transaksi if has
// TextColumn::make('updated_at')->label('Tanggal Diubah'), // url
TextColumn::make('transaksi.id_transaksi')->label('ID Transaksi')
->url(
function ($record) {
// check if nullable dont create a link
if ($record->transaksi) {
return TrTransaksiResource::getUrl('view', ['record' => $record->transaksi->id_transaksi]);
}
}
)
->default('Belum Ada Transaksi')
->openUrlInNewTab(),
]) ])
->filters([ ->filters([
// //

View File

@ -9,4 +9,5 @@ use Filament\Resources\Pages\CreateRecord;
class CreateTrRegistrasi extends CreateRecord class CreateTrRegistrasi extends CreateRecord
{ {
protected static string $resource = TrRegistrasiResource::class; protected static string $resource = TrRegistrasiResource::class;
protected static ?string $title = 'Tambah Registrasi';
} }

View File

@ -9,6 +9,7 @@ use Filament\Resources\Pages\ListRecords;
class ListTrRegistrasis extends ListRecords class ListTrRegistrasis extends ListRecords
{ {
protected static string $resource = TrRegistrasiResource::class; protected static string $resource = TrRegistrasiResource::class;
protected static ?string $title = 'Daftar Registrasi';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {

View File

@ -9,11 +9,12 @@ use Filament\Resources\Pages\ViewRecord;
class ViewTrRegistrasi extends ViewRecord class ViewTrRegistrasi extends ViewRecord
{ {
protected static string $resource = TrRegistrasiResource::class; protected static string $resource = TrRegistrasiResource::class;
protected static ?string $title = 'Detail Registrasi';
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [
Actions\EditAction::make(), // Actions\EditAction::make(),
]; ];
} }
} }

View File

@ -4,6 +4,9 @@ namespace App\Filament\Resources;
use App\Filament\Resources\TrTransaksiResource\Pages; use App\Filament\Resources\TrTransaksiResource\Pages;
use App\Filament\Resources\TrTransaksiResource\RelationManagers; use App\Filament\Resources\TrTransaksiResource\RelationManagers;
use App\Models\MsPegawai;
use App\Models\MsTindakan;
use App\Models\TrRegistrasi;
use App\Models\TrTransaksi; use App\Models\TrTransaksi;
use Filament\Forms; use Filament\Forms;
use Filament\Forms\Form; use Filament\Forms\Form;
@ -29,17 +32,21 @@ class TrTransaksiResource extends Resource
return $form return $form
->schema([ ->schema([
Forms\Components\Select::make('id_registrasi') Forms\Components\Select::make('id_registrasi')
->relationship('registrasi', 'id_registrasi') ->label('Registrasi')
->options(TrRegistrasi::all()->pluck('id_registrasi', 'id_registrasi'))
->searchable()
->required(), ->required(),
Forms\Components\Select::make('id_tindakan') Forms\Components\Select::make('id_tindakan')
->relationship('tindakan', 'id_tindakan') ->label('Tindakan')
->options(MsTindakan::all()->pluck('nama_tindakan', 'id_tindakan'))
->searchable()
->multiple()
->required(), ->required(),
Forms\Components\Select::make('id_pegawai') Forms\Components\Select::make('id_pegawai')
->relationship('pegawai', 'id_pegawai') ->label('Pegawai')
->options(MsPegawai::all()->pluck('nama_pegawai', 'id_pegawai'))
->searchable()
->required(), ->required(),
Forms\Components\TextInput::make('jml_tindakan')
->required(),
// //
]); ]);
} }
@ -49,12 +56,14 @@ class TrTransaksiResource extends Resource
return $table return $table
->defaultSort('created_at', 'desc') ->defaultSort('created_at', 'desc')
->columns([ ->columns([
TextColumn::make('pegawai.nama_pegawai')->label('Pegawai'), TextColumn::make('id_transaksi')->label('ID Transaksi'),
TextColumn::make('jml_tindakan')->label('Jumlah Tindakan')->default(function ($record) { TextColumn::make('id_registrasi')->label('Registrasi')
return count($record->id_tindakan); ->url(fn($record) => TrRegistrasiResource::getUrl('view', ['record' => $record->id_registrasi]))
}), ->openUrlInNewTab(),
TextColumn::make('id_tindakan')->label('Tindakan')
->wrap(),
TextColumn::make('id_pegawai')->label('Pegawai'),
TextColumn::make('created_at')->label('Tanggal Dibuat'), TextColumn::make('created_at')->label('Tanggal Dibuat'),
TextColumn::make('updated_at')->label('Tanggal Diubah'),
]) ])
->filters([ ->filters([
// //

View File

@ -13,7 +13,9 @@ class ListTrTransaksis extends ListRecords
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [
Actions\CreateAction::make(), Actions\CreateAction::make()
->label('Tambah Transaksi')
->icon('heroicon-o-plus'),
]; ];
} }
} }

View File

@ -13,7 +13,7 @@ class ViewTrTransaksi extends ViewRecord
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [
Actions\EditAction::make(), // Actions\EditAction::make(),
]; ];
} }
} }

View File

@ -3,6 +3,7 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class TrRegistrasi extends Model class TrRegistrasi extends Model
{ {
@ -11,6 +12,16 @@ class TrRegistrasi extends Model
protected $keyType = 'string'; protected $keyType = 'string';
protected $guarded = []; protected $guarded = [];
protected static function booted()
{
static::creating(function ($model) {
if (empty($model->id_registrasi)) {
$model->id_registrasi = 'REG-' . strtoupper(Str::random(6));
}
});
}
public function pasien() public function pasien()
{ {
return $this->belongsTo(MsPasien::class, 'mr_pasien', 'mr_pasien'); return $this->belongsTo(MsPasien::class, 'mr_pasien', 'mr_pasien');
@ -35,4 +46,9 @@ class TrRegistrasi extends Model
{ {
return $this->belongsTo(MsTindakan::class, 'id_tindakan', 'id_tindakan'); return $this->belongsTo(MsTindakan::class, 'id_tindakan', 'id_tindakan');
} }
public function transaksi()
{
return $this->hasOne(TrTransaksi::class, 'id_registrasi', 'id_registrasi');
}
} }

View File

@ -3,6 +3,8 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class TrTransaksi extends Model class TrTransaksi extends Model
{ {
@ -14,6 +16,15 @@ class TrTransaksi extends Model
'id_tindakan' => 'array', 'id_tindakan' => 'array',
]; ];
protected static function booted()
{
static::creating(function ($model) {
if (empty($model->id_transaksi)) {
$model->id_transaksi = 'TRX-' . strtoupper(Str::random(6));
}
});
}
public function registrasi() public function registrasi()
{ {
return $this->belongsTo(TrRegistrasi::class, 'id_registrasi', 'id_registrasi'); return $this->belongsTo(TrRegistrasi::class, 'id_registrasi', 'id_registrasi');

View File

@ -19,6 +19,7 @@ return new class extends Migration
$table->string('id_pegawai'); $table->string('id_pegawai');
$table->string('id_ruang_pelayanan'); $table->string('id_ruang_pelayanan');
$table->string('nomor_kartu_asuransi')->nullable(); $table->string('nomor_kartu_asuransi')->nullable();
$table->text('keterangan')->nullable();
$table->timestamps(); $table->timestamps();