api 연동 매출부가세정보 안나오는 오류 수정
This commit is contained in:
@@ -611,10 +611,11 @@ function fn_FileRegist(objId, docType, docTypeName){
|
||||
<form name="form1" id="form1" method="post">
|
||||
<input type="hidden" name="actionType" id="actionType">
|
||||
<input type="hidden" name="shippingDateRequired" value="Y"> <!-- 출하일 필수 조건 -->
|
||||
<!-- 과세구분 코드 (SweetAlert에서 사용) -->
|
||||
<!-- 과세구분 코드 - 매출마감용 (과세매출/수출만 표시) -->
|
||||
<select id="hiddenTaxTypeList" style="display:none;">
|
||||
<option value="">선택</option>
|
||||
${codeMap.taxTypeList}
|
||||
<option value="0900216">과세매출</option>
|
||||
<option value="0900217">수출</option>
|
||||
</select>
|
||||
<div class="min_part_enroll">
|
||||
<div class="content-box">
|
||||
|
||||
@@ -238,6 +238,73 @@ public class SalesSlipApiClient {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 자동전표 데이터를 아마란스에서 삭제한다. (api11A17)
|
||||
* 필요 시 주석 해제 후 사용
|
||||
*
|
||||
public String deleteSalesSlip(String baseUrl, String coCd, String menuDt, int menuSq) throws Exception {
|
||||
String requestBody = "{\"coCd\":\"" + coCd + "\",\"menuDt\":\"" + menuDt + "\",\"menuSq\":" + menuSq + "}";
|
||||
|
||||
System.setProperty("https.protocols", "TLSv1.2");
|
||||
TrustManager[] trustAllCerts = new TrustManager[] {
|
||||
new X509TrustManager() {
|
||||
public X509Certificate[] getAcceptedIssuers() { return null; }
|
||||
public void checkClientTrusted(X509Certificate[] certs, String authType) {}
|
||||
public void checkServerTrusted(X509Certificate[] certs, String authType) {}
|
||||
}
|
||||
};
|
||||
SSLContext sc = SSLContext.getInstance("TLS");
|
||||
sc.init(null, trustAllCerts, new java.security.SecureRandom());
|
||||
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
||||
HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);
|
||||
|
||||
String urlPath = "/apiproxy/api11A17";
|
||||
String cleanBaseUrl = baseUrl.endsWith("/") ? baseUrl.substring(0, baseUrl.length() - 1) : baseUrl;
|
||||
String fullUrl = cleanBaseUrl + urlPath;
|
||||
|
||||
System.out.println("[SalesSlipApi] 삭제 요청 URL: " + fullUrl);
|
||||
System.out.println("[SalesSlipApi] 삭제 요청 Body: " + requestBody);
|
||||
|
||||
URL url = new URL(fullUrl);
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setConnectTimeout(30000);
|
||||
connection.setReadTimeout(30000);
|
||||
|
||||
try {
|
||||
connection.setRequestMethod("POST");
|
||||
connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
|
||||
connection.setRequestProperty("callerName", CALLER_NAME);
|
||||
connection.setRequestProperty("Authorization", "Bearer " + ACCESS_TOKEN);
|
||||
String transactionId = generateTransactionId();
|
||||
connection.setRequestProperty("transaction-id", transactionId);
|
||||
String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
|
||||
connection.setRequestProperty("timestamp", timestamp);
|
||||
connection.setRequestProperty("groupSeq", GROUP_SEQ);
|
||||
connection.setRequestProperty("wehago-sign", generateWehagoSign(ACCESS_TOKEN, transactionId, timestamp, urlPath));
|
||||
|
||||
connection.setDoOutput(true);
|
||||
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream(), StandardCharsets.UTF_8);
|
||||
writer.write(requestBody);
|
||||
writer.flush();
|
||||
writer.close();
|
||||
|
||||
int responseCode = connection.getResponseCode();
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(
|
||||
responseCode >= 200 && responseCode < 300 ? connection.getInputStream() : connection.getErrorStream(),
|
||||
StandardCharsets.UTF_8));
|
||||
StringBuilder response = new StringBuilder();
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) response.append(line);
|
||||
reader.close();
|
||||
|
||||
System.out.println("[SalesSlipApi] 삭제 응답: " + response.toString());
|
||||
return response.toString();
|
||||
} finally {
|
||||
connection.disconnect();
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* 국내 매출전표 JSON 생성 (세금계산서)
|
||||
*
|
||||
@@ -251,12 +318,13 @@ public class SalesSlipApiClient {
|
||||
* @param supplyAmount 공급가액
|
||||
* @param itemSummary 적요 (품명)
|
||||
* @param taxFg 세무구분코드 (convertTaxType으로 변환한 값)
|
||||
* @param issDt 신고기준일 (yyyyMMdd, 세금계산서발행일)
|
||||
* @return 전표 JSON 문자열
|
||||
*/
|
||||
public String buildDomesticSlipJson(String menuDt, int menuSq, String slipTitle,
|
||||
String trCd, String trNm,
|
||||
long totalAmount, long vatAmount, long supplyAmount,
|
||||
String itemSummary, String taxFg) {
|
||||
String itemSummary, String taxFg, String issDt) {
|
||||
StringBuilder json = new StringBuilder();
|
||||
json.append("{");
|
||||
json.append("\"coCd\":\"").append(CO_CD).append("\"");
|
||||
@@ -299,8 +367,10 @@ public class SalesSlipApiClient {
|
||||
json.append(",\"attrCd\":\"").append(ATTR_TAX_INVOICE).append("\"");
|
||||
json.append(",\"rmkDc\":\"").append(escapeJson(itemSummary)).append("\"");
|
||||
json.append(",\"taxFg\":\"").append(escapeJson(taxFg)).append("\"");
|
||||
json.append(",\"issDt\":\"").append(escapeJson(issDt)).append("\"");
|
||||
json.append(",\"jeonjaYn\":\"1\"");
|
||||
json.append(",\"supAm\":").append(supplyAmount);
|
||||
json.append(",\"vatDivCd\":\"").append(DIV_CD).append("\"");
|
||||
json.append(",\"ctDept\":\"").append(SALES_DEPT_CD).append("\"");
|
||||
json.append(",\"insertId\":\"").append(INSERT_ID).append("\"");
|
||||
json.append(",\"exFg\":\"1\"");
|
||||
|
||||
@@ -1154,7 +1154,7 @@ public Map<String, Object> saveSaleRegistration(HttpServletRequest request, Map<
|
||||
slipDate, menuSq, slipTitle,
|
||||
erpClientCd, customerName,
|
||||
totalAmount, totalVat, totalSupplyPrice,
|
||||
itemSummary, taxFg
|
||||
itemSummary, taxFg, slipDate
|
||||
);
|
||||
|
||||
// API 호출
|
||||
|
||||
Reference in New Issue
Block a user