[CLAUDE] PurchaseEvaluation: gop Ten goi thau = chon Hang muc cong viec (anh Kiet FDC chot 14:06) - 1 select set ca workItemId + tenGoiThau, phieu cu giu-nguyen null-safe, SHA256 mirror x2 app (S58)
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m24s
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m24s
This commit is contained in:
@ -185,12 +185,30 @@ export function PeHeaderForm({
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Label>Tên gói thầu *</Label>
|
||||
<Input
|
||||
value={form.tenGoiThau}
|
||||
onChange={e => setForm({ ...form, tenGoiThau: e.target.value })}
|
||||
placeholder="vd Cung cấp bê tông"
|
||||
/>
|
||||
{/* [S58] anh Kiệt (FDC) chốt 06-11: "Hạng mục công việc CHÍNH LÀ tên gói
|
||||
thầu" → gộp 2 field S57bis thành 1 select: chọn hạng mục set cả
|
||||
workItemId + tenGoiThau (= tên hạng mục). Phiếu cũ (workItemId null,
|
||||
tên nhập tay): option đầu "Giữ nguyên" — không ép đổi, PUT null-safe. */}
|
||||
<Label>Tên gói thầu (Hạng mục công việc) *</Label>
|
||||
<Select
|
||||
value={form.workItemId}
|
||||
onChange={e => {
|
||||
const id = e.target.value
|
||||
const w = workItems.data?.find(x => x.id === id)
|
||||
setForm({ ...form, workItemId: id, tenGoiThau: id ? (w?.name ?? '') : (editId ? form.tenGoiThau : '') })
|
||||
}}
|
||||
>
|
||||
<option value="">
|
||||
{editId && form.tenGoiThau && !form.workItemId
|
||||
? `Giữ nguyên: ${form.tenGoiThau}`
|
||||
: '-- Chọn hạng mục công việc --'}
|
||||
</option>
|
||||
{workItems.data?.map(w => (
|
||||
<option key={w.id} value={w.id}>
|
||||
{w.category ? `[${w.category}] ` : ''}{w.code} — {w.name}
|
||||
</option>
|
||||
))}
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
@ -207,23 +225,6 @@ export function PeHeaderForm({
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{/* S57bis — phiếu dạng "Dự án – Hạng mục công việc" (sếp chốt). Edit-mode
|
||||
CHO đổi (BE UpdateDraft hỗ trợ); phiếu cũ null → bắt đầu rỗng, không ép. */}
|
||||
<Label>Hạng mục công việc {!editId && '*'}</Label>
|
||||
<Select
|
||||
value={form.workItemId}
|
||||
onChange={e => setForm({ ...form, workItemId: e.target.value })}
|
||||
>
|
||||
<option value="">{editId ? '— (giữ nguyên / chưa gắn)' : '-- Chọn --'}</option>
|
||||
{workItems.data?.map(w => (
|
||||
<option key={w.id} value={w.id}>
|
||||
{w.category ? `[${w.category}] ` : ''}{w.code} — {w.name}
|
||||
</option>
|
||||
))}
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div className="mb-1.5 flex items-center justify-between">
|
||||
<Label className="mb-0">Ngân sách (đối chiếu chi phí)</Label>
|
||||
|
||||
Reference in New Issue
Block a user