[CLAUDE] FE: PE bang ngan sach so am -> do + ngoac (...) hang 7/8/9 dong bo hang so sanh
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m45s
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m45s
Tra Sol (Zalo): cai nao la so am thi ngoac + mau do. Hang 7 (Ngan sach con lai) / 8 (Gia tri thuc hien du kien con lai) / 9 (Gia tri tong thuc hien du kien) dang dung fmtVnd (dau tru, mau mac dinh) -> chuyen sang fmtVndSigned (ngoac '(abs) d' cho so am, da co san) + span text-red-600 khi <0; dong bo voi cac hang 'So sanh' (cmpPeriod/cmp56/cmpFull da do+ngoac tu truoc). FE-only, 2 app SHA256-identical PeDetailTabs. Build PASS x2. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -1445,7 +1445,7 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly:
|
||||
<BudgetRow
|
||||
label="7. Ngân sách còn lại"
|
||||
sub="= Ngân sách full − 5"
|
||||
value={fmtVnd(row7)}
|
||||
value={<span className={cn(row7 < 0 && 'font-semibold text-red-600')}>{fmtVndSigned(row7)}</span>}
|
||||
third={fmtPct(row7, full) ?? undefined}
|
||||
/>
|
||||
|
||||
@ -1468,8 +1468,8 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly:
|
||||
onSave={v => adjustMut.mutate({ budgetPeriodAmount: ev.budgetPeriodAmount, expectedRemainingAmount: v })}
|
||||
/>
|
||||
) : (
|
||||
<span className={cn('font-mono tabular-nums', remainingOver ? 'font-semibold text-red-700' : 'text-slate-900')}>
|
||||
{fmtVnd(row8)}
|
||||
<span className={cn('font-mono tabular-nums', row8 < 0 ? 'font-semibold text-red-600' : remainingOver ? 'font-semibold text-red-700' : 'text-slate-900')}>
|
||||
{fmtVndSigned(row8)}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
@ -1481,7 +1481,7 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly:
|
||||
tone="brand"
|
||||
label="9. Giá trị tổng thực hiện dự kiến"
|
||||
sub="= 4 + 8"
|
||||
value={fmtVnd(row9)}
|
||||
value={<span className={cn(row9 < 0 && 'font-bold text-red-600')}>{fmtVndSigned(row9)}</span>}
|
||||
/>
|
||||
<BudgetRow
|
||||
tone="brand-soft"
|
||||
|
||||
@ -1445,7 +1445,7 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly:
|
||||
<BudgetRow
|
||||
label="7. Ngân sách còn lại"
|
||||
sub="= Ngân sách full − 5"
|
||||
value={fmtVnd(row7)}
|
||||
value={<span className={cn(row7 < 0 && 'font-semibold text-red-600')}>{fmtVndSigned(row7)}</span>}
|
||||
third={fmtPct(row7, full) ?? undefined}
|
||||
/>
|
||||
|
||||
@ -1468,8 +1468,8 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly:
|
||||
onSave={v => adjustMut.mutate({ budgetPeriodAmount: ev.budgetPeriodAmount, expectedRemainingAmount: v })}
|
||||
/>
|
||||
) : (
|
||||
<span className={cn('font-mono tabular-nums', remainingOver ? 'font-semibold text-red-700' : 'text-slate-900')}>
|
||||
{fmtVnd(row8)}
|
||||
<span className={cn('font-mono tabular-nums', row8 < 0 ? 'font-semibold text-red-600' : remainingOver ? 'font-semibold text-red-700' : 'text-slate-900')}>
|
||||
{fmtVndSigned(row8)}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
@ -1481,7 +1481,7 @@ function PeBudgetSummaryTable({ ev, readOnly }: { ev: PeDetailBundle; readOnly:
|
||||
tone="brand"
|
||||
label="9. Giá trị tổng thực hiện dự kiến"
|
||||
sub="= 4 + 8"
|
||||
value={fmtVnd(row9)}
|
||||
value={<span className={cn(row9 < 0 && 'font-bold text-red-600')}>{fmtVndSigned(row9)}</span>}
|
||||
/>
|
||||
<BudgetRow
|
||||
tone="brand-soft"
|
||||
|
||||
Reference in New Issue
Block a user