From 299313149692b006aae1d4e72b734a7a2b79a712 Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 28 Mar 2026 21:28:53 +0700 Subject: [PATCH] 690328:2128 Fixing Refactor uuid by Kimi #12 --- ...119442391-1908b04cd11e739233ee8977de00dc57 | Bin 71011 -> 71011 bytes .../reference/disciplines/page.tsx | 6 +++--- .../doc-control/reference/rfa-types/page.tsx | 6 +++--- .../components/numbering/template-editor.tsx | 10 +++++----- frontend/components/rfas/form.tsx | 12 ++++++------ 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/backend/src/.jest-cache/haste-map-60cab15b743c6776f41d29bcac696b99-0ca4a1d6e3dfec1d63b61b0119442391-1908b04cd11e739233ee8977de00dc57 b/backend/src/.jest-cache/haste-map-60cab15b743c6776f41d29bcac696b99-0ca4a1d6e3dfec1d63b61b0119442391-1908b04cd11e739233ee8977de00dc57 index 66badb70231c982b0541a0731244588b7292c74f..abb55eb8ac9e3c19c13e936b082420d21b873ea3 100644 GIT binary patch delta 982 zcmX|AeN5DK81MQ1?zsEK9UL6oafn{rfnXBnRJO)Tk)!RBG-M&6Q7Xin5(v2|ByA?v zTx-fFMT;pej5vgd2P!LG1g%x$E!>JFBGDEdrO1R6N$e+o^vAP3&$H+GJkRHOnQ*Bl zT&k9{8Z>D)^I44#VL@AmjL=+E*;Daplb$cg>BJ6Q9kJvcMLevx6JBrDqS%m#IiGfn zM7)c%h{M7Y|KHUZwF5L7clv4q$*=Jtww^yf~$ca zz!T7mcuOPBn{Oh|G=e?BolEG?nO}z8nhOLqz!5TtNP7W(Sh0~%_`zTTZRG(3;@g)no>Vx32>bceRtdeOPRABzXANJEryVcrK zc-=}Hv1#or@%mLU5~d&1a@z%~fTyvYhnsIpZ1^gR9&$nLmwNu@i!|cWi$_(waOFCo zt#d6qIzN=?8Kit`Ms2SdHMs`3dfuS;|2>Ow-f*_*Vd&Y;D|$x-ZGv@R8P9%yO^p=; zG59P=#|Qh<1x^h$;OgLI%>5XG=|LIVVSgNO>d~O|U-fgm4nuvrDGqyow_y1VUo@v0 zP}ZgAfUy^3Y#)`8?B2>*lVil^+%sZn{3mW^3*evmrMs}q_^{!&OQLl+S7JosY&Jcy zr1jr<1$DEx@T(^n1)fP@t^*tI2lDZMqm(ZkkvV)JUD^GFjLdmI-gCD_kOSinEd0y; heP-@$9hc0piz=H`xU)De_7R)9uqbPHsiKvu{{ulLuFL=c delta 1023 zcmXAndr*{R6vjK>?z$}O!tS!TyDS%3L5f&Nz)|s%R+d62WC>yy7G_aD=7`%`W zWYANyFflMBq>v(VU`Q^q1Y=6BQPwzU%}|mJ1#(N*ywL~#^*-~?bI$ua=XtN!ORv{U z8>{3zDt9MT$=BnaOARNvT8UFsp~M|-HAE()s*Je$xDrk758(7@!ML9bPU+pS&Z{1$ zJl5i1KmxxuH-^yf8H*{e3>?#2VbZ0bUzdg?PYsH7&xvOa&KP=d)8vgH!)Nd^4d8^2 z6~W#&vB$TL!Z2nEK&7z|I&;40I?Lr|8DXAZKg!Ksa0X@}BG8L@emEi7KN)J@bZ++l zLBv+17AI-v#^jxN+CJGJ*Tw>mu&WQ4%NG{*iLt0ke#|a=Rr+E-c~2N2Z9sJS-QXZQT;m zVY*Psmx|sLP*-qTT=L8vPZu^2x0hDPW;5|DJ&ur)!AH-=Rtytrs^%l8dNW5=UJ`5z z+{lQt6>5C4U(OBH8wq|5E$sX{Sm4VI6Oz^)8XA$4Xj;)ZdL*{;LPZ)~G-I zL&cHTHYjl6Pb1$QI!8D#^ak5+ObXb+3e=6Lv1DX$HiGtHtAIYMCqFsbAVI=JHU`FX zP_|QtD-+kyJk`lflLFx*r#FW>8wCuuD!BbtB5~Hgt4Yjm;X@VKKh~5EXhoL TYgzPTW?AO0t=o5tYOm~n7eckp diff --git a/frontend/app/(admin)/admin/doc-control/reference/disciplines/page.tsx b/frontend/app/(admin)/admin/doc-control/reference/disciplines/page.tsx index 3f9dff9..76d5990 100644 --- a/frontend/app/(admin)/admin/doc-control/reference/disciplines/page.tsx +++ b/frontend/app/(admin)/admin/doc-control/reference/disciplines/page.tsx @@ -81,12 +81,12 @@ export default function DisciplinesPage() { queryKey={['disciplines', selectedContractId ?? 'all']} fetchFn={async () => { const items = await masterDataService.getDisciplines(selectedContractId ? selectedContractId : undefined); - // ADR-019: Map contractId INT → contract UUID for edit mode select matching + // ADR-019: Map contract.publicId UUID for edit mode select matching return items.map((item) => { - const rec = item as Discipline & { contract?: { id?: number; uuid?: string }; contractId?: number | string }; + const rec = item as Discipline & { contract?: { publicId?: string }; contractId?: number | string }; return { ...item, - contractId: rec.contract?.id || rec.contract?.uuid || String(rec.contractId), + contractId: rec.contract?.publicId || (rec.contractId ? String(rec.contractId) : null), } as Discipline; }); }} diff --git a/frontend/app/(admin)/admin/doc-control/reference/rfa-types/page.tsx b/frontend/app/(admin)/admin/doc-control/reference/rfa-types/page.tsx index dc6e1dc..da2fd67 100644 --- a/frontend/app/(admin)/admin/doc-control/reference/rfa-types/page.tsx +++ b/frontend/app/(admin)/admin/doc-control/reference/rfa-types/page.tsx @@ -84,12 +84,12 @@ export default function RfaTypesPage() { queryKey={['rfa-types', selectedContractId ?? 'all']} fetchFn={async () => { const items = await masterDataService.getRfaTypes(selectedContractId ? selectedContractId : undefined); - // ADR-019: Map contractId INT → contract UUID for edit mode select matching + // ADR-019: Map contract.publicId UUID for edit mode select matching return items.map((item) => { - const rec = item as RfaType & { contract?: { id?: number | string; uuid?: string }; contract_id?: number | string }; + const rec = item as RfaType & { contract?: { publicId?: string }; contractId?: number | string }; return { ...item, - contractId: rec.contract?.id || rec.contract?.uuid || (rec.contract_id ? String(rec.contract_id) : null), + contractId: rec.contract?.publicId || (rec.contractId ? String(rec.contractId) : null), } as RfaType; }); }} diff --git a/frontend/components/numbering/template-editor.tsx b/frontend/components/numbering/template-editor.tsx index 814e630..41e7756 100644 --- a/frontend/components/numbering/template-editor.tsx +++ b/frontend/components/numbering/template-editor.tsx @@ -46,8 +46,8 @@ export function TemplateEditor({ onCancel, }: TemplateEditorProps) { const [format, setFormat] = useState(template?.formatTemplate || ''); - const [typeId, setTypeId] = useState(template?.correspondenceTypeId?.toString() || ''); - const [disciplineId, setDisciplineId] = useState(template?.disciplineId?.toString() || '0'); + const [typeId, setTypeId] = useState(template?.correspondenceTypeId ? String(template.correspondenceTypeId) : ''); + const [disciplineId, setDisciplineId] = useState(template?.disciplineId ? String(template.disciplineId) : '0'); const [reset, setReset] = useState(template?.resetSequenceYearly ?? true); const [preview, setPreview] = useState(''); @@ -64,7 +64,7 @@ export function TemplateEditor({ // Dynamic context based on selection (optional visual enhancement) if (v.key === '{TYPE}' && typeId) { const t = correspondenceTypes.find( - (ct) => ct.id?.toString() === typeId + (ct) => String(ct.publicId) === typeId ); if (t) replacement = t.typeCode; } @@ -120,7 +120,7 @@ export function TemplateEditor({ Default (All Types) {correspondenceTypes.map((type) => { return ( - + {type.typeCode} - {type.typeName} ); @@ -142,7 +142,7 @@ export function TemplateEditor({ All Disciplines {disciplines.map((d) => ( - + {d.disciplineCode} - {d.codeNameEn || d.codeNameTh} ))} diff --git a/frontend/components/rfas/form.tsx b/frontend/components/rfas/form.tsx index 76b6a91..1a544f1 100644 --- a/frontend/components/rfas/form.tsx +++ b/frontend/components/rfas/form.tsx @@ -25,7 +25,7 @@ import { Contract } from '@/types/contract'; const rfaSchema = z.object({ projectId: z.string().min(1, 'Project is required'), // ADR-019: UUID contractId: z.string().min(1, 'Contract is required'), - disciplineId: z.number({ message: 'Discipline is required' }).min(1, 'Discipline is required'), + disciplineId: z.union([z.string().min(1, 'Discipline is required'), z.number().min(1, 'Discipline is required')]), rfaTypeId: z.string().min(1, 'Type is required'), // ADR-019: UUID subject: z.string().min(5, 'Subject must be at least 5 characters'), description: z.string().optional(), @@ -165,7 +165,7 @@ export function RFAForm() { defaultValues: { projectId: '', contractId: '', - disciplineId: 0, + disciplineId: '', rfaTypeId: '', subject: '', description: '', @@ -366,7 +366,7 @@ export function RFAForm() { onValueChange={(val) => { setValue('projectId', val); setValue('contractId', ''); - setValue('disciplineId', 0); + setValue('disciplineId', ''); setValue('rfaTypeId', ''); setValue('shopDrawingRevisionIds', []); setValue('asBuiltDrawingRevisionIds', []); @@ -402,7 +402,7 @@ export function RFAForm() { value={selectedContractId || undefined} onValueChange={(val) => { setValue('contractId', val); - setValue('disciplineId', 0); + setValue('disciplineId', ''); setValue('rfaTypeId', ''); setValue('shopDrawingRevisionIds', []); setValue('asBuiltDrawingRevisionIds', []); @@ -434,8 +434,8 @@ export function RFAForm() {