V2025111901 #71
@@ -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() {
|
||||
'<table class="items-table category-section" data-category="category_' + newCategoryNo + '">' +
|
||||
'<colgroup>' +
|
||||
'<col style="width: 5%;">' +
|
||||
'<col style="width: 28%;">' +
|
||||
'<col style="width: 35%;">' +
|
||||
'<col style="width: 7%;">' +
|
||||
'<col style="width: 15%;">' +
|
||||
'<col style="width: 26%;">' +
|
||||
'<col style="width: 28.5%;">' +
|
||||
'<col style="width: 6.5%;">' +
|
||||
'<col style="width: 24%;">' +
|
||||
'<col style="width: 10%;">' +
|
||||
'</colgroup>' +
|
||||
'<tbody>' +
|
||||
@@ -605,11 +612,11 @@ function fn_createCategoryFromData(category) {
|
||||
'<table class="items-table category-section" data-category="' + category.category + '">' +
|
||||
'<colgroup>' +
|
||||
'<col style="width: 5%;">' +
|
||||
'<col style="width: 28%;">' +
|
||||
'<col style="width: 35%;">' +
|
||||
'<col style="width: 7%;">' +
|
||||
'<col style="width: 26%;">' +
|
||||
'<col style="width: 28.5%;">' +
|
||||
'<col style="width: 6.5%;">' +
|
||||
'<col style="width: 24%;">' +
|
||||
'<col style="width: 10%;">' +
|
||||
'<col style="width: 15%;">' +
|
||||
'</colgroup>' +
|
||||
'<tbody>' +
|
||||
'<tr class="category-row">' +
|
||||
@@ -1239,13 +1246,13 @@ function fn_generateAndUploadPdf(callback) {
|
||||
<!-- 초음파 CNC Machine (특별 영역) -->
|
||||
<table class="items-table category-section" data-category="cnc_machine">
|
||||
<colgroup>
|
||||
<col class="col-no">
|
||||
<col class="col-desc">
|
||||
<col class="col-spec">
|
||||
<col class="col-qty">
|
||||
<col class="col-price">
|
||||
<col class="col-amount">
|
||||
<col class="col-remark">
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 26%;">
|
||||
<col style="width: 28.5%;">
|
||||
<col style="width: 6.5%;">
|
||||
<col style="width: 12%;">
|
||||
<col style="width: 12%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -1269,12 +1276,12 @@ function fn_generateAndUploadPdf(callback) {
|
||||
<td><input type="text" class="item-remark" value="" style="width: 100%; border: none; background: transparent;"></td>
|
||||
</tr>
|
||||
<tr class="subtotal-row">
|
||||
<td colspan="2" style="text-align: center; font-weight: bold;">최종 견적가</td>
|
||||
<td colspan="2" style="text-align: center; font-weight: bold; font-size: 8pt;">최종 견적가</td>
|
||||
<td colspan="2">
|
||||
<input type="text" class="final-amount" value="" readonly style="width: 70%; border: none; background: transparent; text-align: right; font-weight: bold;">
|
||||
<span id="currency_display" style="font-weight: bold; margin-left: 5px;"></span>
|
||||
</td>
|
||||
<td style="text-align: center;">VAT 별도</td>
|
||||
<td style="text-align: center; font-size: 8pt;">VAT 별도</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1284,10 +1291,10 @@ function fn_generateAndUploadPdf(callback) {
|
||||
<table class="items-table category-section" data-category="structure" data-group="group1">
|
||||
<colgroup>
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 28%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 26%;">
|
||||
<col style="width: 28.5%;">
|
||||
<col style="width: 6.5%;">
|
||||
<col style="width: 24%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
@@ -1348,10 +1355,10 @@ Z: SRG25 P급, C0
|
||||
<table class="items-table category-section" data-category="spindle_module" data-group="group1">
|
||||
<colgroup>
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 28%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 26%;">
|
||||
<col style="width: 28.5%;">
|
||||
<col style="width: 6.5%;">
|
||||
<col style="width: 24%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
@@ -1389,10 +1396,10 @@ Z: SRG25 P급, C0
|
||||
<table class="items-table category-section" data-category="electric" data-group="group1">
|
||||
<colgroup>
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 28%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 26%;">
|
||||
<col style="width: 28.5%;">
|
||||
<col style="width: 6.5%;">
|
||||
<col style="width: 24%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
@@ -1433,10 +1440,10 @@ SIEMENS CONTROL PANEL 828D</textarea>
|
||||
<table class="items-table category-section" data-category="utility" data-group="group1">
|
||||
<colgroup>
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 28%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 26%;">
|
||||
<col style="width: 28.5%;">
|
||||
<col style="width: 6.5%;">
|
||||
<col style="width: 24%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
@@ -1484,10 +1491,10 @@ LUBRICATION
|
||||
<table class="items-table" id="group1_subtotal">
|
||||
<colgroup>
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 28%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 26%;">
|
||||
<col style="width: 28.5%;">
|
||||
<col style="width: 6.5%;">
|
||||
<col style="width: 24%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
@@ -1503,10 +1510,10 @@ LUBRICATION
|
||||
<table class="items-table category-section" data-category="option">
|
||||
<colgroup>
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 28%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 26%;">
|
||||
<col style="width: 28.5%;">
|
||||
<col style="width: 6.5%;">
|
||||
<col style="width: 24%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
@@ -1552,10 +1559,10 @@ NV4Blue(Renishaw)
|
||||
<table class="items-table category-section" data-category="setup">
|
||||
<colgroup>
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 28%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 26%;">
|
||||
<col style="width: 28.5%;">
|
||||
<col style="width: 6.5%;">
|
||||
<col style="width: 24%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
@@ -1597,10 +1604,10 @@ NV4Blue(Renishaw)
|
||||
<table class="items-table category-section" data-category="packing">
|
||||
<colgroup>
|
||||
<col style="width: 5%;">
|
||||
<col style="width: 28%;">
|
||||
<col style="width: 35%;">
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 26%;">
|
||||
<col style="width: 28.5%;">
|
||||
<col style="width: 6.5%;">
|
||||
<col style="width: 24%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
|
||||
@@ -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<String, Object> authParam = new java.util.HashMap<String, Object>();
|
||||
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<String, Object> authParam = new java.util.HashMap<String, Object>();
|
||||
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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user