diff --git a/WebContent/WEB-INF/view/contractMgmt/estimateTemplate2.jsp b/WebContent/WEB-INF/view/contractMgmt/estimateTemplate2.jsp index 0464287..d1b5f0e 100644 --- a/WebContent/WEB-INF/view/contractMgmt/estimateTemplate2.jsp +++ b/WebContent/WEB-INF/view/contractMgmt/estimateTemplate2.jsp @@ -132,28 +132,35 @@ body { width: 100%; border-collapse: collapse; margin-bottom: 0; + table-layout: fixed; /* 고정 레이아웃으로 컬럼 너비 강제 */ } .items-table th, .items-table td { border: 1px solid #000; - padding: 8px; + padding: 4px 2px; /* 패딩 축소 */ font-size: 9pt; + overflow: hidden; /* 내용이 넘칠 경우 숨김 */ + word-wrap: break-word; /* 긴 단어 줄바꿈 */ } .items-table th { background-color: #E8E8E8; font-weight: bold; text-align: center; + font-size: 8pt; /* 헤더 글자 크기 축소 */ + padding: 3px 2px; /* 헤더 패딩 더 축소 */ + line-height: 1.2; /* 줄 간격 축소 */ } -.items-table .col-no { width: 5%; text-align: center; } -.items-table .col-desc { width: 25%; } -.items-table .col-spec { width: 30%; } -.items-table .col-qty { width: 7%; text-align: center; } -.items-table .col-price { width: 12%; text-align: right; } -.items-table .col-amount { width: 12%; text-align: right; } -.items-table .col-remark { width: 9%; text-align: center; } +/* colgroup으로 너비 제어하므로 클래스 기반 너비는 제거하거나 주석 처리 */ +.items-table .col-no { text-align: center; } +.items-table .col-desc { } +.items-table .col-spec { } +.items-table .col-qty { text-align: center; } +.items-table .col-price { text-align: right; } +.items-table .col-amount { text-align: right; } +.items-table .col-remark { text-align: center; } .category-row { background-color: #f0f0f0; @@ -541,10 +548,10 @@ function fn_addCategory() { '' + '' + '' + - '' + - '' + - '' + - '' + + '' + + '' + + '' + + '' + '' + '' + '' + @@ -605,11 +612,11 @@ function fn_createCategoryFromData(category) { '
' + '' + '' + - '' + - '' + - '' + + '' + + '' + + '' + + '' + '' + - '' + '' + '' + '' + @@ -1239,13 +1246,13 @@ function fn_generateAndUploadPdf(callback) {
- - - - - - - + + + + + + + @@ -1269,12 +1276,12 @@ function fn_generateAndUploadPdf(callback) { - + - +
최종 견적가최종 견적가 VAT 별도VAT 별도
@@ -1284,10 +1291,10 @@ function fn_generateAndUploadPdf(callback) { - - - - + + + + @@ -1348,10 +1355,10 @@ Z: SRG25 P급, C0
- - - - + + + + @@ -1389,10 +1396,10 @@ Z: SRG25 P급, C0
- - - - + + + + @@ -1433,10 +1440,10 @@ SIEMENS CONTROL PANEL 828D
- - - - + + + + @@ -1484,10 +1491,10 @@ LUBRICATION
- - - - + + + + @@ -1503,10 +1510,10 @@ LUBRICATION
- - - - + + + + @@ -1552,10 +1559,10 @@ NV4Blue(Renishaw)
- - - - + + + + @@ -1597,10 +1604,10 @@ NV4Blue(Renishaw)
- - - - + + + + diff --git a/WebContent/WEB-INF/view/partMng/structureList.jsp b/WebContent/WEB-INF/view/partMng/structureList.jsp index 1f136a1..cc54f73 100644 --- a/WebContent/WEB-INF/view/partMng/structureList.jsp +++ b/WebContent/WEB-INF/view/partMng/structureList.jsp @@ -4,18 +4,23 @@ <%@ page import="java.util.*" %> <%@include file= "/init.jsp" %> <% -// 권한 체크: AUTHORITY_MASTER의 OBJID가 41000668인 그룹에 속한 사용자인지 확인 +// 권한 체크: AUTHORITY_MASTER의 OBJID가 41000668인 그룹에 속한 사용자 또는 관리자인지 확인 boolean hasStatusChangeAuth = false; try { - org.apache.ibatis.session.SqlSession sqlSession = com.pms.common.SqlMapConfig.getInstance().getSqlSession(); - java.util.Map authParam = new java.util.HashMap(); - authParam.put("userId", connectUserId); - authParam.put("masterObjid", "41000668"); - - Integer authCount = (Integer)sqlSession.selectOne("common.checkUserAuthority", authParam); - hasStatusChangeAuth = (authCount != null && authCount > 0); - - sqlSession.close(); + // 관리자는 자동으로 권한 부여 + if(isAdmin) { + hasStatusChangeAuth = true; + } else { + org.apache.ibatis.session.SqlSession sqlSession = com.pms.common.SqlMapConfig.getInstance().getSqlSession(); + java.util.Map authParam = new java.util.HashMap(); + authParam.put("userId", connectUserId); + authParam.put("masterObjid", "41000668"); + + Integer authCount = (Integer)sqlSession.selectOne("common.checkUserAuthority", authParam); + hasStatusChangeAuth = (authCount != null && authCount > 0); + + sqlSession.close(); + } } catch(Exception e) { e.printStackTrace(); }