diff options
Diffstat (limited to 'lib/vendors/table/request-pq-dialog.tsx')
| -rw-r--r-- | lib/vendors/table/request-pq-dialog.tsx | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/lib/vendors/table/request-pq-dialog.tsx b/lib/vendors/table/request-pq-dialog.tsx index a0c24dc6..5b5f722c 100644 --- a/lib/vendors/table/request-pq-dialog.tsx +++ b/lib/vendors/table/request-pq-dialog.tsx @@ -127,14 +127,38 @@ export function RequestPQDialog({ vendors, showTrigger = true, onSuccess, ...pro }
}, [type])
- // 기본계약서 템플릿 로딩
+ // 기본계약서 템플릿 로딩 및 자동 선택
React.useEffect(() => {
setIsLoadingTemplates(true)
getALLBasicContractTemplates()
- .then(setBasicContractTemplates)
+ .then((templates) => {
+ setBasicContractTemplates(templates)
+
+ // 벤더 국가별 자동 선택 로직
+ if (vendors.length > 0) {
+ const isAllForeign = vendors.every(vendor => vendor.country !== 'KR')
+ const isAllDomestic = vendors.every(vendor => vendor.country === 'KR')
+
+ if (isAllForeign) {
+ // 외자: 준법서약 (영문), GTC만 선택
+ const foreignTemplates = templates.filter(template =>
+ template.templateName?.includes('준법서약') && template.templateName?.includes('영문') ||
+ template.templateName?.includes('GTC')
+ )
+ setSelectedTemplateIds(foreignTemplates.map(t => t.id))
+ } else if (isAllDomestic) {
+ // 내자: 준법서약 (영문), GTC 제외한 모든 템플릿 선택
+ const domesticTemplates = templates.filter(template => {
+ const name = template.templateName?.toLowerCase() || ''
+ return !(name.includes('준법서약') && name.includes('영문')) && !name.includes('gtc')
+ })
+ setSelectedTemplateIds(domesticTemplates.map(t => t.id))
+ }
+ }
+ })
.catch(() => toast.error("기본계약서 템플릿 로딩 실패"))
.finally(() => setIsLoadingTemplates(false))
- }, [])
+ }, [vendors])
React.useEffect(() => {
if (!props.open) {
@@ -527,6 +551,10 @@ export function RequestPQDialog({ vendors, showTrigger = true, onSuccess, ...pro {selectedTemplateIds.length > 0 && (
<div className="text-xs text-muted-foreground">
{selectedTemplateIds.length}개 템플릿이 선택되었습니다.
+ {vendors.length > 0 && vendors.every(v => v.country !== 'KR') &&
+ " (외자 벤더 - 자동 선택됨)"}
+ {vendors.length > 0 && vendors.every(v => v.country === 'KR') &&
+ " (내자 벤더 - 자동 선택됨)"}
</div>
)}
</div>
|
