feat(returns): v8.59 반품 입고 중복 경고 및 송장 공백 매칭 개선

- 반품 입고 시 이미 등록된 송장번호면 중복 경고 안내창 표시
- 송장번호 입력값 strip 및 조회 쿼리 TRIM 적용으로 공백 매칭 문제 해결

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-15 12:27:42 +09:00
parent 7afe90646b
commit a2a5d53d9b
4 changed files with 62 additions and 8 deletions
+18 -2
View File
@@ -1673,7 +1673,7 @@ document.addEventListener('DOMContentLoaded', () => {
e.preventDefault();
const payload = {
receive_date: document.getElementById('rec-date').value,
tracking_no: document.getElementById('rec-tracking-no').value,
tracking_no: document.getElementById('rec-tracking-no').value.trim(),
mall: document.getElementById('rec-mall').value,
receiver_name: document.getElementById('rec-name').value,
phone: document.getElementById('rec-phone').value,
@@ -1691,7 +1691,12 @@ document.addEventListener('DOMContentLoaded', () => {
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(payload)
});
if(res.ok) {
let result = {};
try {
result = await res.json();
} catch(err) {}
if(res.ok && result.success !== false) {
formRec.reset();
document.getElementById('rec-date').value = new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60000).toISOString().split('T')[0];
if(recId) recId.value = '';
@@ -1701,6 +1706,17 @@ document.addEventListener('DOMContentLoaded', () => {
if (typeof loadReturnRequests === 'function') {
loadReturnRequests();
}
} else if (result.error_type === 'duplicate') {
const dup = result.data || {};
alert(
`🚨 [안내] 이미 입고된 송장번호입니다.\n\n` +
`• 입고날짜: ${dup.receive_date || ''}\n` +
`• 이름: ${dup.receiver_name || ''}\n` +
`• 핸드폰 번호: ${dup.phone || ''}\n` +
`• 쇼핑몰: ${dup.mall || ''}\n` +
`• 입고상태: ${dup.receive_status || ''}\n` +
`• 비고: ${dup.remarks || ''}`
);
} else {
alert('등록 실패');
}