feat(admin): finish the screens that were stopping one step short
Five places where the data existed and the screen did not use it. Booking a whole course had no button because it needs a doctor and the course does not carry one — each session can be with a different doctor. The page now asks for the doctor the same way the resource booking page does, and the button explains that it is all-or-nothing before it is pressed. A course whose package does not cover the remaining sessions is still valid — the rest is simply charged normally — but nobody was told. The course response carries package_balance and the shortfall, and the page warns. Before session six, not during it. The credit ledger already returned who recorded a row and which appointment it belonged to, and showed neither. An adjustable ledger without the name of the person who adjusted it is half an audit trail. Version history printed a JSON blob of each version's effects, which does not answer the question anyone actually has: what changed? It now diffs each version against the previous one, field by field, and says so plainly when a version changed nothing meaningful. A resource with no calendar showed "—" for utilization. Null means undefined, not zero, and the next step is always the same: set up the calendar. It is a link now. The report range also accepts a custom from/to, kept in the URL like the rest. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import React, { useState } from 'react';
|
||||
import { useParams } from 'react-router-dom';
|
||||
import { Link, useParams } from 'react-router-dom';
|
||||
import PageHeader from '../components/ui/PageHeader';
|
||||
import DataTable, { type Column } from '../components/ui/DataTable';
|
||||
import Modal from '../components/ui/Modal';
|
||||
@@ -66,6 +66,30 @@ export default function PatientPackageLedgerPage() {
|
||||
</span>
|
||||
),
|
||||
},
|
||||
{
|
||||
// «چه کسی» و «کدام نوبت» از قبل در پاسخ بودند و نمایش داده نمیشدند. دفترِ
|
||||
// اصلاحپذیر بدون نامِ اصلاحکننده، نصف حسابرسی است.
|
||||
key: 'created_by',
|
||||
header: 'ثبتکننده',
|
||||
render: (r) => (
|
||||
<span style={{ fontSize: 12, color: 'var(--text-3)' }}>{r.created_by ?? 'سیستم'}</span>
|
||||
),
|
||||
},
|
||||
{
|
||||
key: 'appointment_uuid',
|
||||
header: 'نوبت',
|
||||
render: (r) =>
|
||||
r.appointment_uuid ? (
|
||||
<Link
|
||||
to={`/admin/appointments/${r.appointment_uuid}`}
|
||||
style={{ fontSize: 12, color: 'var(--primary)' }}
|
||||
>
|
||||
مشاهدهٔ نوبت
|
||||
</Link>
|
||||
) : (
|
||||
<span style={{ fontSize: 12, color: 'var(--text-3)' }}>—</span>
|
||||
),
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user