diff --git a/app/Http/Controllers/RegistrationController.php b/app/Http/Controllers/RegistrationController.php index f681b57..92010fe 100644 --- a/app/Http/Controllers/RegistrationController.php +++ b/app/Http/Controllers/RegistrationController.php @@ -75,7 +75,13 @@ class RegistrationController extends Controller */ public function create() { - $patients = Patient::select(['id', 'name'])->get(); + $patients = Patient::select(['id', 'name']) + ->whereNotExists(function($query) { + $query->select(DB::raw(1)) + ->from('t_registration') + ->whereRaw('t_registration.patient_id = m_patient.id'); + }) + ->get(); $employees = Employee::with('user:id,name')->get()->map(function ($employee) { return [ 'id' => $employee->id, diff --git a/app/Http/Controllers/TransactionController.php b/app/Http/Controllers/TransactionController.php index 0b7fc46..32aa057 100644 --- a/app/Http/Controllers/TransactionController.php +++ b/app/Http/Controllers/TransactionController.php @@ -98,6 +98,7 @@ class TransactionController extends Controller return [ 'id' => $employee->id, 'name' => $employee->user->name, + 'specialization' => $employee->specialization, ]; }); @@ -262,6 +263,7 @@ class TransactionController extends Controller return [ 'id' => $employee->id, 'name' => $employee->user->name, + 'specialization' => $employee->specialization, ]; }); diff --git a/resources/js/components/app-sidebar.tsx b/resources/js/components/app-sidebar.tsx index 3f73e26..dc5fc55 100644 --- a/resources/js/components/app-sidebar.tsx +++ b/resources/js/components/app-sidebar.tsx @@ -24,6 +24,11 @@ const mainNavItems: NavItem[] = [ href: '/dashboard', icon: LayoutGrid, }, + { + title: 'Data Pasien', + href: '/patients', + icon: LucideAmbulance, + }, { title: 'Registrasi', href: '/registrations', @@ -42,11 +47,6 @@ const masterNavItems = [ href: '/employees', icon: Users, }, - { - title: 'Data Pasien', - href: '/patients', - icon: LucideAmbulance, - }, { title: 'Data Asuransi', href: '/insurances', diff --git a/resources/js/pages/employees/form.tsx b/resources/js/pages/employees/form.tsx index 4df7a3c..f86388c 100644 --- a/resources/js/pages/employees/form.tsx +++ b/resources/js/pages/employees/form.tsx @@ -184,17 +184,38 @@ export default function EmployeeForm({ mode, employee }: EmployeeFormProps) { {data.birth_date ? ( format(new Date(data.birth_date), "dd/MM/yyyy") ) : ( - Pilih Tanggal + Pilih tanggal )} - - date && setData('birth_date', toLocalISOString(date))} - initialFocus - /> + + + + { + const currentDate = data.birth_date ? new Date(data.birth_date) : new Date(); + const newDate = new Date(currentDate); + newDate.setFullYear(parseInt(e.target.value)); + setData('birth_date', toLocalISOString(newDate)); + }} + className="border rounded px-2 py-1 text-sm" + > + {Array.from({ length: 100 }, (_, i) => new Date().getFullYear() - i).map((year) => ( + + {year} + + ))} + + + date && setData('birth_date', toLocalISOString(date))} + initialFocus + showOutsideDays={false} + /> + diff --git a/resources/js/pages/patients/form.tsx b/resources/js/pages/patients/form.tsx index e4cece8..8b03ccc 100644 --- a/resources/js/pages/patients/form.tsx +++ b/resources/js/pages/patients/form.tsx @@ -167,13 +167,34 @@ export default function PatientForm({ mode, patient }: PatientFormProps) { )} - - date && setData('birth_date', toLocalISOString(date))} - initialFocus - /> + + + + { + const currentDate = data.birth_date ? new Date(data.birth_date) : new Date(); + const newDate = new Date(currentDate); + newDate.setFullYear(parseInt(e.target.value)); + setData('birth_date', toLocalISOString(newDate)); + }} + className="border rounded px-2 py-1 text-sm" + > + {Array.from({ length: 100 }, (_, i) => new Date().getFullYear() - i).map((year) => ( + + {year} + + ))} + + + date && setData('birth_date', toLocalISOString(date))} + initialFocus + showOutsideDays={false} + /> + diff --git a/resources/js/pages/transactions/form.tsx b/resources/js/pages/transactions/form.tsx index 25be27b..e6b093c 100644 --- a/resources/js/pages/transactions/form.tsx +++ b/resources/js/pages/transactions/form.tsx @@ -303,7 +303,7 @@ export default function TransactionForm({ {employees.map((employee) => ( - {employee.name} + {employee.name} - {employee.specialization} ))} @@ -486,10 +486,11 @@ export default function TransactionForm({ Jumlah Pembayaran * { - const paidAmount = Math.max(0, parseFloat(e.target.value) || 0); + const numericValue = e.target.value.replace(/[^0-9]/g, ''); + const paidAmount = parseFloat(numericValue) || 0; setData('paid_amount', paidAmount); }} placeholder="Jumlah pembayaran" diff --git a/resources/js/pages/transactions/index.tsx b/resources/js/pages/transactions/index.tsx index d5c78bb..00e938c 100644 --- a/resources/js/pages/transactions/index.tsx +++ b/resources/js/pages/transactions/index.tsx @@ -150,7 +150,6 @@ export default function TransactionIndex() { No. Invoice No. Registrasi Nama Pasien - Asuransi Petugas Kasir Tanggal Transaksi Status @@ -163,7 +162,6 @@ export default function TransactionIndex() { {transaction.invoice_number} {transaction.registration_number} {transaction.patient_name} - {transaction.insurance_name || 'Tanpa Asuransi'} {transaction.cashier_name || 'N/A'} {new Date(transaction.transaction_datetime).toLocaleDateString('id-ID', {