Compare commits

...

7 Commits

5 changed files with 112 additions and 89 deletions

View File

@ -9,6 +9,8 @@ import java.math.BigDecimal;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -16,6 +18,7 @@ import java.util.stream.Collectors;
import com.interplug.qcast.biz.canvaspopupstatus.CanvasPopupStatusService; import com.interplug.qcast.biz.canvaspopupstatus.CanvasPopupStatusService;
import com.interplug.qcast.biz.canvaspopupstatus.dto.CanvasPopupStatus; import com.interplug.qcast.biz.canvaspopupstatus.dto.CanvasPopupStatus;
import com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimRoofResponse; import com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimRoofResponse;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.ss.usermodel.WorkbookFactory;
@ -26,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.util.HtmlUtils;
import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriComponentsBuilder;
import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.DeserializationFeature;
import com.interplug.qcast.biz.canvasStatus.CanvasStatusService; import com.interplug.qcast.biz.canvasStatus.CanvasStatusService;
@ -1421,16 +1425,7 @@ public class EstimateService {
// 각도 매핑 함수 호출 // 각도 매핑 함수 호출
String mappedDegree = excelUtil.mapCompassDegree(degreeValue); String mappedDegree = excelUtil.mapCompassDegree(degreeValue);
// String compasDegImgUrl = frontUrl + "/static/images/canvas/deg/" + mappedDegree + ".png";
// URL url = new URL(compasDegImgUrl);
// URLConnection con = url.openConnection();
// HttpURLConnection exitCode = (HttpURLConnection)con;
// if (exitCode.getResponseCode() == 200) {
// InputStream imageInputStream = new URL(compasDegImgUrl).openStream();
// byte[] degImg = Util.toByteArray(imageInputStream);
// roofInfoResponse.setCompasDegImg(degImg);
// }
try { try {
// classpath에서 리소스 파일을 읽어옵니다 // classpath에서 리소스 파일을 읽어옵니다
@ -1469,6 +1464,31 @@ public class EstimateService {
for (ItemResponse itemResponse : estimateItemList) { for (ItemResponse itemResponse : estimateItemList) {
itemResponse.setNo(String.valueOf(j++)); itemResponse.setNo(String.valueOf(j++));
// itemName 디코딩 HTML Unescape 처리
String itemName = itemResponse.getItemName();
if (StringUtils.isNotEmpty(itemName)) {
try {
// 1. URL 디코딩 (% 처리)
if (itemName.contains("%")) {
itemName = URLDecoder.decode(itemName, StandardCharsets.UTF_8);
}
// 2. HTML Unescape 처리 (& 포함된 경우만)
// Φ1 -> Φ1 -> Φ1 순차적으로 복원
if (itemName.contains("&")) {
String prevName;
do {
prevName = itemName;
itemName = HtmlUtils.htmlUnescape(itemName);
} while (!prevName.equals(itemName) && itemName.contains("&"));
}
itemResponse.setItemName(itemName);
} catch (Exception e) {
log.warn("Excel itemName processing failed: {}", itemName);
}
}
// 문자열 통화로 변환 처리 // 문자열 통화로 변환 처리
itemResponse.setSalePrice( itemResponse.setSalePrice(
String.format("%1$,.0f", Double.parseDouble(itemResponse.getSalePrice()))); String.format("%1$,.0f", Double.parseDouble(itemResponse.getSalePrice())));
@ -1571,13 +1591,7 @@ public class EstimateService {
estimateResponse.setDrawingImg1(drawingImg1); estimateResponse.setDrawingImg1(drawingImg1);
} }
log.debug("url1 ::: {}", url); log.debug("url1 ::: {}", url);
// File file = new File(drawingDirPath + File.separator + baseDrawingImgName + "_1.png");
// if (file.exists()) {
// InputStream imageInputStream =
// new FileInputStream(drawingDirPath + File.separator + baseDrawingImgName + "_1.png");
// byte[] drawingImg1 = Util.toByteArray(imageInputStream);
// estimateResponse.setDrawingImg1(drawingImg1);
// }
String baseDrawingImgName2 = estimateRequest.getObjectNo() + "_" + estimateRequest.getPlanNo(); String baseDrawingImgName2 = estimateRequest.getObjectNo() + "_" + estimateRequest.getPlanNo();
URL url2 = new URL(drawingDirPath + File.separator + baseDrawingImgName2 + "_2.png"); URL url2 = new URL(drawingDirPath + File.separator + baseDrawingImgName2 + "_2.png");
URLConnection con2 = url2.openConnection(); URLConnection con2 = url2.openConnection();
@ -1589,13 +1603,7 @@ public class EstimateService {
estimateResponse.setDrawingImg2(drawingImg2); estimateResponse.setDrawingImg2(drawingImg2);
} }
log.debug("url2 ::: {}", url2); log.debug("url2 ::: {}", url2);
// file = new File(drawingDirPath + File.separator + baseDrawingImgName + "_2.png");
// if (file.exists()) {
// InputStream imageInputStream2 =
// new FileInputStream(drawingDirPath + File.separator + baseDrawingImgName + "_2.png");
// byte[] drawingImg2 = Util.toByteArray(imageInputStream2);
// estimateResponse.setDrawingImg2(drawingImg2);
// }
//userId 따른 영업점 주소, 전화, fax 정보 조회 //userId 따른 영업점 주소, 전화, fax 정보 조회
if(estimateRequest.getSaleStoreId() != null && "T01".equals(estimateRequest.getSaleStoreId())){ if(estimateRequest.getSaleStoreId() != null && "T01".equals(estimateRequest.getSaleStoreId())){
@ -1658,10 +1666,10 @@ public class EstimateService {
String userId = estimateRequest.getUserId(); String userId = estimateRequest.getUserId();
String storeLvl = estimateRequest.getStoreLvl(); String storeLvl = estimateRequest.getStoreLvl();
String saleStoreId = estimateRequest.getSaleStoreId(); String createStoreId = estimateRequest.getCreateStoreId();
if(storeLvl != null && storeLvl.equals("2")){ if(storeLvl != null && storeLvl.equals("2")){
if(!Objects.equals(Objects.requireNonNull(saleStoreId), userId)) if(!Objects.equals(createStoreId, userId))
templateFilePath = "pdf_download_quotation_detail_template2.html"; templateFilePath = "pdf_download_quotation_detail_template2.html";
} }
// 템플릿 html 조회 // 템플릿 html 조회
@ -1709,15 +1717,17 @@ public class EstimateService {
Workbook workbook = null; Workbook workbook = null;
String excelTemplateNam = "excel_download_quotation_detail_template.xlsx"; String excelTemplateNam = "excel_download_quotation_detail_template.xlsx";
String userId = estimateRequest.getUserId(); String userId = estimateRequest.getUserId();
String storeLvl = estimateRequest.getStoreLvl(); String storeLvl = estimateRequest.getStoreLvl();
String saleStoreId = estimateRequest.getSaleStoreId(); String createStoreId = estimateRequest.getCreateStoreId();
if(storeLvl != null && storeLvl.equals("2")){ if(storeLvl != null && storeLvl.equals("2")){
if(!Objects.equals(Objects.requireNonNull(saleStoreId), userId)) if(!Objects.equals(createStoreId, userId))
excelTemplateNam = "excel_download_quotation_detail_template2.xlsx"; excelTemplateNam = "excel_download_quotation_detail_template2.xlsx";
} }
// itemGroup이 "STAND_" 아닌 항목들만 필터링하여 새로운 리스트 생성 // itemGroup이 "STAND_" 아닌 항목들만 필터링하여 새로운 리스트 생성
List<ItemResponse> estimateItemList15 = estimateItemList.stream() List<ItemResponse> estimateItemList15 = estimateItemList.stream()
.filter(item -> !"STAND_".equals(item.getItemGroup())) .filter(item -> !"STAND_".equals(item.getItemGroup()))
@ -2125,13 +2135,15 @@ public class EstimateService {
+ StringUtils.defaultString(itemResponse.getItemName()) + "</td>"); + StringUtils.defaultString(itemResponse.getItemName()) + "</td>");
sb.append("<td style='width:120px;'>" + StringUtils.defaultString(itemResponse.getItemNo()) sb.append("<td style='width:120px;'>" + StringUtils.defaultString(itemResponse.getItemNo())
+ "</td>"); + "</td>");
sb.append("<td style='width:80px;text-align:right;'>" sb.append(
+ StringUtils.defaultString(itemResponse.getSalePrice()) + "</td>"); "<td class='hide-column' style='width:80px;text-align:right;'>"
+ StringUtils.defaultString(itemResponse.getSalePrice())
+ "</td>");
sb.append("<td style='width:60px;text-align:right;'>" sb.append("<td style='width:60px;text-align:right;'>"
+ StringUtils.defaultString(itemResponse.getAmount()) + "</td>"); + StringUtils.defaultString(itemResponse.getAmount()) + "</td>");
sb.append( sb.append(
"<td style='width:60px;'>" + StringUtils.defaultString(itemResponse.getUnit()) + "</td>"); "<td style='width:60px;'>" + StringUtils.defaultString(itemResponse.getUnit()) + "</td>");
sb.append("<td style='width:80px;text-align:right;'>" sb.append("<td class='hide-column' style='width:80px;text-align:right;'>"
+ StringUtils.defaultString(itemResponse.getSaleTotPrice()) + "</td>"); + StringUtils.defaultString(itemResponse.getSaleTotPrice()) + "</td>");
sb.append("</tr>"); sb.append("</tr>");
} }

View File

@ -219,4 +219,6 @@ public class EstimateRequest {
@Schema(description = "판매점레벨") @Schema(description = "판매점레벨")
private String storeLvl; private String storeLvl;
@Schema(description = "견적서생성판매점코드")
private String createStoreId;
} }

View File

@ -395,7 +395,7 @@
OR OR
(QCAST_CUST_PRD_ID IS NULL AND PC_ITEM_ID = PE.ITEM_ID) (QCAST_CUST_PRD_ID IS NULL AND PC_ITEM_ID = PE.ITEM_ID)
OR OR
(QCAST_CUST_PRD_ID IS NOT NULL AND QCAST_CUST_PRD_ID != PC_ITEM_ID AND PC_ITEM_ID = PE.ITEM_ID))), 0) AS MODULE_VOL_KW (QCAST_CUST_PRD_ID IS NOT NULL AND QCAST_CUST_PRD_ID != PC_ITEM_ID AND QCAST_CUST_PRD_ID = PE.ITEM_ID))), 0) AS MODULE_VOL_KW
FROM T_PLAN P WITH (NOLOCK) FROM T_PLAN P WITH (NOLOCK)
INNER JOIN T_PART_ESTIMATE PE WITH (NOLOCK) INNER JOIN T_PART_ESTIMATE PE WITH (NOLOCK)
ON P.OBJECT_NO = PE.OBJECT_NO ON P.OBJECT_NO = PE.OBJECT_NO

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.interplug.qcast.biz.excelDown.ExcelDownMapper"> <mapper namespace="com.interplug.qcast.biz.excelDown.ExcelDownMapper">
<select id="selectQuotPlanExclDownData" parameterType="com.interplug.qcast.biz.excelDown.dto.QuotRequest" <select id="selectQuotPlanExclDownData" parameterType="com.interplug.qcast.biz.excelDown.dto.QuotRequest"
resultType="com.interplug.qcast.biz.excelDown.dto.QuotPlanResponse"> resultType="com.interplug.qcast.biz.excelDown.dto.QuotPlanResponse">
@ -128,6 +129,8 @@
, CONVERT(varchar, A.DRAWING_ESTIMATE_CREATE_DATE, 120) AS DRAWING_ESTIMATE_CREATE_DATE/* プラン見積作成日 */ , CONVERT(varchar, A.DRAWING_ESTIMATE_CREATE_DATE, 120) AS DRAWING_ESTIMATE_CREATE_DATE/* プラン見積作成日 */
--> -->
FROM T_OBJECT B FROM T_OBJECT B
LEFT OUTER JOIN T_OBJECT_INFO OI
ON OI.OBJECT_NO = B.OBJECT_NO
LEFT OUTER JOIN T_PLAN A LEFT OUTER JOIN T_PLAN A
ON A.OBJECT_NO = B.OBJECT_NO ON A.OBJECT_NO = B.OBJECT_NO
LEFT OUTER JOIN M_COMM_L C1 LEFT OUTER JOIN M_COMM_L C1
@ -176,7 +179,7 @@
LEFT OUTER JOIN M_SALES_STORE Y LEFT OUTER JOIN M_SALES_STORE Y
ON G.FIRST_AGENT_ID = Y.SALE_STORE_ID /*1차점정보*/ ON G.FIRST_AGENT_ID = Y.SALE_STORE_ID /*1차점정보*/
WHERE A.DEL_FLG = 0 WHERE A.DEL_FLG = 0
AND B.DEL_FLG = 0 AND (B.DEL_FLG = 0 OR (OI.SOURCE_ORIGIN = 'QCAST_III' AND OI.ORG_DEL_FLG = '0'))
<if test="sch_startDt != null and sch_startDt != '' and sch_endDt != null and sch_endDt != ''"> <!-- 견적일 --> <if test="sch_startDt != null and sch_startDt != '' and sch_endDt != null and sch_endDt != ''"> <!-- 견적일 -->
AND B.ESTIMATE_DETAIL_CREATE_DATE <![CDATA[>=]]> #{sch_startDt} + ' 00:00:00' AND B.ESTIMATE_DETAIL_CREATE_DATE <![CDATA[>=]]> #{sch_startDt} + ' 00:00:00'
AND B.ESTIMATE_DETAIL_CREATE_DATE <![CDATA[<=]]> #{sch_endDt} + ' 23:59:59' AND B.ESTIMATE_DETAIL_CREATE_DATE <![CDATA[<=]]> #{sch_endDt} + ' 23:59:59'
@ -224,6 +227,8 @@
, D.FIRST_AGENT_FLG /* 一次代理店フラグ */ , D.FIRST_AGENT_FLG /* 一次代理店フラグ */
--> -->
FROM T_OBJECT C FROM T_OBJECT C
LEFT OUTER JOIN T_OBJECT_INFO OI
ON OI.OBJECT_NO = C.OBJECT_NO
LEFT OUTER JOIN M_SALES_STORE D LEFT OUTER JOIN M_SALES_STORE D
ON C.SALE_STORE_ID = D.SALE_STORE_ID ON C.SALE_STORE_ID = D.SALE_STORE_ID
LEFT OUTER JOIN T_PLAN B LEFT OUTER JOIN T_PLAN B
@ -251,7 +256,7 @@
LEFT OUTER JOIN M_BUSINESS_TEAM K LEFT OUTER JOIN M_BUSINESS_TEAM K
ON J.BUSINESS_TEAM_CD = K.BUSINESS_TEAM_CD ON J.BUSINESS_TEAM_CD = K.BUSINESS_TEAM_CD
AND K.DEL_FLG = 0 AND K.DEL_FLG = 0
WHERE C.DEL_FLG = 0 WHERE (C.DEL_FLG = 0 OR (OI.SOURCE_ORIGIN = 'QCAST_III' AND OI.ORG_DEL_FLG = '0'))
AND D.DEL_FLG = 0 AND D.DEL_FLG = 0
AND B.DEL_FLG = 0 AND B.DEL_FLG = 0
<if test="sch_startDt != null and sch_startDt != '' and sch_endDt != null and sch_endDt != ''"> <!-- 견적일 --> <if test="sch_startDt != null and sch_startDt != '' and sch_endDt != null and sch_endDt != ''"> <!-- 견적일 -->
@ -384,51 +389,51 @@
/* sqlid : com.interplug.qcast.api.excelDown.selectWarrantyIssuedCmpExclDownData (보증서발행완료 물건 엑셀 다운로드 데이터 조회)*/ /* sqlid : com.interplug.qcast.api.excelDown.selectWarrantyIssuedCmpExclDownData (보증서발행완료 물건 엑셀 다운로드 데이터 조회)*/
SELECT SELECT
A.OBJECT_NO /* 부동산 관리 번호 */ A.OBJECT_NO /* 부동산 관리 번호 */
, A.PLAN_NO /* 계획 */ , A.PLAN_NO /* 계획 */
, A.GUARANTEE_APPLY_DATE /* 보증서 신청일 */ , A.GUARANTEE_APPLY_DATE /* 보증서 신청일 */
, A.GUARANTEE_APPROVAL_DATE /* 보증서 승인일 */ , A.GUARANTEE_APPROVAL_DATE /* 보증서 승인일 */
, A.GUARANTEE_ISSUE_DATE /* 보증서 발행일 */ , A.GUARANTEE_ISSUE_DATE /* 보증서 발행일 */
, A.GUARANTEE_SEND_DATE /* 보증서 송부일 */ , A.GUARANTEE_SEND_DATE /* 보증서 송부일 */
, CASE , CASE
WHEN A.NATURAL_DISASTER_COPENSATE = 1 THEN '有' WHEN A.NATURAL_DISASTER_COPENSATE = 1 THEN '有'
WHEN A.NATURAL_DISASTER_COPENSATE = 0 THEN '無' WHEN A.NATURAL_DISASTER_COPENSATE = 0 THEN '無'
ELSE NULL END AS NATURAL_DISASTER_COPENSATE /* 자연재해보상가입 自然災害補償 */ ELSE NULL END AS NATURAL_DISASTER_COPENSATE /* 자연재해보상가입 自然災害補償 */
, A.GUARANTEE_OUTPUTTER_DISPLAY /* 보증서 출처 사이트 표시 플래그 */ , A.GUARANTEE_OUTPUTTER_DISPLAY /* 보증서 출처 사이트 표시 플래그 */
, A.MAX_PACKAGE /* MAX 패키지 */ , A.MAX_PACKAGE /* MAX 패키지 */
, A.EQUIP_GUARANTEE_YEARS /* 보증 연수 */ , A.EQUIP_GUARANTEE_YEARS /* 보증 연수 */
, A.SUNSHINE_COPENSATE_YEARS /* 일조 보증 연수 */ , A.SUNSHINE_COPENSATE_YEARS /* 일조 보증 연수 */
, A.GUARANTEE_RECEIVE_USER /* 보증서 송부 수취인 */ , A.GUARANTEE_RECEIVE_USER /* 보증서 송부 수취인 */
, A.GUARANTEE_RECEIVE_USER_KANA /* 보증서 송부 수취인 후리가나 */ , A.GUARANTEE_RECEIVE_USER_KANA /* 보증서 송부 수취인 후리가나 */
, A.GUARANTEE_RECEIVE_USER_TEL /* 보증서 송부 수취인 전화 번호 */ , A.GUARANTEE_RECEIVE_USER_TEL /* 보증서 송부 수취인 전화 번호 */
, A.GUARANTEE_RECEIVE_USER_ZIP_NO /* 보증서 송부 수취인 우편 번호 */ , A.GUARANTEE_RECEIVE_USER_ZIP_NO /* 보증서 송부 수취인 우편 번호 */
, A.GUARANTEE_RECEIVE_USER_PREF_ID /* 보증서 송부 수취인 도도부현 */ , A.GUARANTEE_RECEIVE_USER_PREF_ID /* 보증서 송부 수취인 도도부현 */
, A.GUARANTEE_RECEIVE_USER_ZIP_ADDRESS /* 보증서 송부 수취인 주소 */ , A.GUARANTEE_RECEIVE_USER_ZIP_ADDRESS /* 보증서 송부 수취인 주소 */
, A.SETUP_PLACE_OBJECT_NAME /* 설치 장소 물건명 */ , A.SETUP_PLACE_OBJECT_NAME /* 설치 장소 물건명 */
, A.SETUP_PLACE_ZIP_NO /* 설치 장소 우편 번호 */ , A.SETUP_PLACE_ZIP_NO /* 설치 장소 우편 번호 */
, A.SETUP_PLACE_PREF_ID /* 설치 장소 도도부현 */ , A.SETUP_PLACE_PREF_ID /* 설치 장소 도도부현 */
, A.SETUP_PLACE_ADDRESS /* 설치 장소 주소 */ , A.SETUP_PLACE_ADDRESS /* 설치 장소 주소 */
, A.GUARANTEE_SEND_ZIP_NO /* 보증서 송부 우편 번호 */ , A.GUARANTEE_SEND_ZIP_NO /* 보증서 송부 우편 번호 */
, A.GUARANTEE_SEND_ADDRESS /* 보증서 송부처 주소 */ , A.GUARANTEE_SEND_ADDRESS /* 보증서 송부처 주소 */
, A.GUARANTEE_SEND_STORE /* 보증서 송부처 대리점명 */ , A.GUARANTEE_SEND_STORE /* 보증서 송부처 대리점명 */
, A.GUARANTEE_SEND_STORE_CHARGER /* 보증서 송부처 대리점명 담당자 */ , A.GUARANTEE_SEND_STORE_CHARGER /* 보증서 송부처 대리점명 담당자 */
, A.OUTPUT_COMP_SALE_STORE_NAME /* 출력 대비표 판매점명 */ , A.OUTPUT_COMP_SALE_STORE_NAME /* 출력 대비표 판매점명 */
, A.GUARANTEE_SALE_STORE_ZIP_NO /* 보증서 판매점 우편 번호 */ , A.GUARANTEE_SALE_STORE_ZIP_NO /* 보증서 판매점 우편 번호 */
, A.GUARANTEE_SALE_STORE_ADDRESS /* 보증서 판매점 주소 */ , A.GUARANTEE_SALE_STORE_ADDRESS /* 보증서 판매점 주소 */
, A.GUARANTEE_SALE_STORE_TEL /* 보증서 판매점 전화 번호 */ , A.GUARANTEE_SALE_STORE_TEL /* 보증서 판매점 전화 번호 */
, A.COOPERATION_DATE /* 협력일 */ , A.COOPERATION_DATE /* 협력일 */
, A.STAND_GUARANTEE_NO_TARGET /* 가대 보증 대상외 */ , A.STAND_GUARANTEE_NO_TARGET /* 가대 보증 대상외 */
, A.STAND_GUARANTEE_SET /* 가대 보증 세트 */ , A.STAND_GUARANTEE_SET /* 가대 보증 세트 */
, A.NATURAL_DISASTER_COPENSATE_NOTIFIED_DATE /* 자연재해보상통지일 */ , A.NATURAL_DISASTER_COPENSATE_NOTIFIED_DATE /* 자연재해보상통지일 */
, A.EQUIP_GUARANTEE_NOTIFIED_DATE /* 연장기기 보증 통지일 */ , A.EQUIP_GUARANTEE_NOTIFIED_DATE /* 연장기기 보증 통지일 */
, A.CONSTRUCT_DATE /* 시공일 */ , A.CONSTRUCT_DATE /* 시공일 */
, A.CONSTRUCT_ID /* 시공 ID */ , A.CONSTRUCT_ID /* 시공 ID */
, A.CONSTRUCT_ID2 /* 시공 IdⅡ */ , A.CONSTRUCT_ID2 /* 시공 IdⅡ */
, A.GUARANTEE_PERSON_NAME /* 보증서 송부처 담당자명 */ , A.GUARANTEE_PERSON_NAME /* 보증서 송부처 담당자명 */
, A.GUARANTEE_PERSON_MAIL /* 보증서 송부처 e-mail */ , A.GUARANTEE_PERSON_MAIL /* 보증서 송부처 e-mail */
, A.GUARANTEE_PERSON_TEL /* 보증서 송부처 전화 번호 */ , A.GUARANTEE_PERSON_TEL /* 보증서 송부처 전화 번호 */
, A.GUARANTEE_REWMARKS /* 보증서 송부처 */ , A.GUARANTEE_REWMARKS /* 보증서 송부처 */
, A.GUARANTEE_OUTPUT_REWMARKS /* 비고 */ , A.GUARANTEE_OUTPUT_REWMARKS /* 비고 */
, A.LAST_EDIT_USER /* 최종 업데이트자 */ , A.LAST_EDIT_USER /* 최종 업데이트자 */
, A.LAST_EDIT_DATETIME /* 최종 갱신시 */ , A.LAST_EDIT_DATETIME /* 최종 갱신시 */
FROM T_GUARANTEE A FROM T_GUARANTEE A
LEFT OUTER JOIN T_OBJECT B LEFT OUTER JOIN T_OBJECT B

View File

@ -43,7 +43,7 @@
line-height: 115%; line-height: 115%;
color: #333 color: #333
} }
.month-table td { .month-table td {
word-break: break-all; word-break: break-all;
} }
@ -390,6 +390,10 @@
font-size: 8px; font-size: 8px;
} }
.hide-column {
display: none;
}
</style> </style>
</head> </head>
<body> <body>
@ -445,7 +449,7 @@
<span id="tel"></span> <span id="tel"></span>
</div> </div>
<div class="number"> <div class="number">
<span>FAX :</span> <span>FAX :</span>
<span id="fax"></span> <span id="fax"></span>
</div> </div>
</div> </div>
@ -492,7 +496,7 @@
<th style="width: 110px;">価格</th> <th style="width: 110px;">価格</th>
</tr> </tr>
</thead> </thead>
<tbody id="itemList_detail2"> <tbody id="itemList_detail" >
<!-- <tr>--> <!-- <tr>-->
<!-- <td>1</td>--> <!-- <td>1</td>-->
<!-- <td>Re.RISE 415</td>--> <!-- <td>Re.RISE 415</td>-->
@ -513,16 +517,16 @@
<!-- </tr>--> <!-- </tr>-->
<tr> <tr>
<td class="al-r" colspan="6">小計</td> <td class="al-r" colspan="6">小計</td>
<td class="al-r" ></td> <td class="al-r hide-column" id="supplyPrice"></td>
</tr> </tr>
<tr> <tr>
<td class="al-r" colspan="5">消費税</td> <td class="al-r" colspan="5">消費税</td>
<td class="al-r">(10%)</td> <td class="al-r">(10%)</td>
<td class="al-r" ></td> <td class="al-r hide-column" id="vatPrice"></td>
</tr> </tr>
<tr> <tr>
<td class="al-r end" colspan="6">合計金額</td> <td class="al-r end" colspan="6">合計金額</td>
<td class="al-r end" ></td> <td class="al-r end hide-column" id="totPrice1"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -676,13 +680,13 @@
<div class="section4"> <div class="section4">
<table class="mb20"> <table class="mb20">
<tbody> <tbody>
<tr> <tr>
<th class="col-15">物件番号</th> <th class="col-15">物件番号</th>
<td class="al-l" id="objectNo4" colspan="3"></td> <td class="al-l" id="objectNo4" colspan="3"></td>
<th class="col-15">作成日</th> <th class="col-15">作成日</th>
<td id="drawingEstimateCreateDate4"></td> <td id="drawingEstimateCreateDate4"></td>
</tr> </tr>
<tr> <tr>
<th class="col-15">物件名</th> <th class="col-15">物件名</th>
<td class="al-l" id="objectName" colspan="3"></td> <td class="al-l" id="objectName" colspan="3"></td>
<th class="col-15">積雪条件</th> <th class="col-15">積雪条件</th>
@ -797,7 +801,7 @@
<th class="col-15">作成日</th> <th class="col-15">作成日</th>
<td id="drawingEstimateCreateDate5"></td> <td id="drawingEstimateCreateDate5"></td>
</tr> </tr>
<tr> <tr>
<th class="col-15">物件名</th> <th class="col-15">物件名</th>
<td class="al-l" id="objectName5" colspan="3"></td> <td class="al-l" id="objectName5" colspan="3"></td>
<th class="col-15">積雪条件</th> <th class="col-15">積雪条件</th>
@ -828,13 +832,13 @@
</div> </div>
<table class="mb20"> <table class="mb20">
<thead> <thead>
<tr> <tr>
<th class="col-15">No</th> <th class="col-15">No</th>
<th class="col-15">部材名</th> <th class="col-15">部材名</th>
<th class="col-15">数量</th> <th class="col-15">数量</th>
</tr> </tr>
</thead> </thead>
<tbody id="standItemList_detail"> <tbody id="standItemList_detail">
</tbody> </tbody>
</table> </table>
@ -875,7 +879,7 @@
</div> </div>
<div class="section6"> <div class="section6">
<!-- <h1 class="title">重量算出シート</h1>--> <!-- <h1 class="title">重量算出シート</h1>-->
<div class="all-price-wrap"> <div class="all-price-wrap">
<div class="all-price"> <div class="all-price">
<span>重量算出シート</span> <span>重量算出シート</span>
@ -901,8 +905,8 @@
<!-- 시스템 중량 정보 --> <!-- 시스템 중량 정보 -->
<div style="text-align: right; font-size: 11px;"> <div style="text-align: right; font-size: 11px;">
<span>システム重量合計: </span><span id="totGrossWt"></span> kg <span>システム重量合計: </span><span id="totGrossWt"></span> kg
</div> </div>
<div style="text-align: right; font-size: 10px; color: #666; margin-bottom: 20px;"> <div style="text-align: right; font-size: 10px; color: #666; margin-bottom: 20px;">