Show linked codes as alias and code
This commit is contained in:
@@ -1842,10 +1842,12 @@ def _decorate_linked_code_names(linked_codes, conn=None):
|
|||||||
try:
|
try:
|
||||||
sales_code = _as_text(payload.get('salesCode')).strip()
|
sales_code = _as_text(payload.get('salesCode')).strip()
|
||||||
design_code = _as_text(payload.get('designCode')).strip()
|
design_code = _as_text(payload.get('designCode')).strip()
|
||||||
if sales_code and not _as_text(payload.get('salesName')).strip():
|
if sales_code:
|
||||||
payload['salesName'] = get_project_alias_name(conn, sales_code, 'sales')
|
# 연계코드는 페이지에서 항상 "약칭(코드번호)" 형태로 보여야 한다.
|
||||||
if design_code and not _as_text(payload.get('designName')).strip():
|
# 원본 REPORT_5가 긴 정식명을 주더라도 ERP 프로젝트 약칭 캐시를 우선 사용한다.
|
||||||
payload['designName'] = get_project_alias_name(conn, design_code, 'design')
|
payload['salesName'] = get_project_alias_name(conn, sales_code, 'sales') or _as_text(payload.get('salesName')).strip()
|
||||||
|
if design_code:
|
||||||
|
payload['designName'] = get_project_alias_name(conn, design_code, 'design') or _as_text(payload.get('designName')).strip()
|
||||||
return payload
|
return payload
|
||||||
finally:
|
finally:
|
||||||
if close_conn:
|
if close_conn:
|
||||||
|
|||||||
@@ -711,9 +711,19 @@
|
|||||||
return LINKED_CODE_BY_BUSINESS[key] || { salesCode: '', designCode: '' };
|
return LINKED_CODE_BY_BUSINESS[key] || { salesCode: '', designCode: '' };
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatLinkedCodeLabel(code, name) {
|
function compactLinkedCodeName(name, fallbackName) {
|
||||||
const cleanCode = String(code || '').trim();
|
|
||||||
const cleanName = String(name || '').trim();
|
const cleanName = String(name || '').trim();
|
||||||
|
const cleanFallback = String(fallbackName || '').trim();
|
||||||
|
if (!cleanName) return cleanFallback;
|
||||||
|
if (cleanFallback && (cleanName.length > 24 || cleanName.includes('[') || cleanName.includes('민간투자사업'))) {
|
||||||
|
return cleanFallback;
|
||||||
|
}
|
||||||
|
return cleanName;
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatLinkedCodeLabel(code, name, fallbackName = '') {
|
||||||
|
const cleanCode = String(code || '').trim();
|
||||||
|
const cleanName = compactLinkedCodeName(name, fallbackName);
|
||||||
if (!cleanCode) return '-';
|
if (!cleanCode) return '-';
|
||||||
if (!cleanName) return cleanCode;
|
if (!cleanName) return cleanCode;
|
||||||
return `${cleanName}(${cleanCode})`;
|
return `${cleanName}(${cleanCode})`;
|
||||||
@@ -915,8 +925,8 @@
|
|||||||
function renderDetailRows(detail) {
|
function renderDetailRows(detail) {
|
||||||
const linkedCodes = resolveLinkedCodes(detail);
|
const linkedCodes = resolveLinkedCodes(detail);
|
||||||
const linkedCodeText = [
|
const linkedCodeText = [
|
||||||
formatLinkedCodeLabel(linkedCodes.salesCode, linkedCodes.salesName),
|
formatLinkedCodeLabel(linkedCodes.salesCode, linkedCodes.salesName, detail.projectName),
|
||||||
formatLinkedCodeLabel(linkedCodes.designCode, linkedCodes.designName),
|
formatLinkedCodeLabel(linkedCodes.designCode, linkedCodes.designName, detail.projectName),
|
||||||
].join(' · ');
|
].join(' · ');
|
||||||
const rows = [
|
const rows = [
|
||||||
['사업코드', detail.businessCode],
|
['사업코드', detail.businessCode],
|
||||||
|
|||||||
Reference in New Issue
Block a user