거래명세서 납품일 선택할 수 있게 수정
This commit is contained in:
@@ -423,6 +423,33 @@ body {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
/* datepicker 팝업이 페이지 리셋 스타일에 영향받지 않도록 보호 */
|
||||
.ui-datepicker {
|
||||
z-index: 9999 !important;
|
||||
background: #fff;
|
||||
border: 1px solid #ccc;
|
||||
padding: 5px;
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.ui-datepicker th,
|
||||
.ui-datepicker td {
|
||||
padding: 3px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ui-datepicker td a,
|
||||
.ui-datepicker td span {
|
||||
display: block;
|
||||
padding: 3px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.ui-datepicker .ui-datepicker-header {
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* 버튼 */
|
||||
.button-area {
|
||||
text-align: center;
|
||||
@@ -448,39 +475,68 @@ body {
|
||||
color: white;
|
||||
}
|
||||
</style>
|
||||
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
var today = new Date();
|
||||
// yyyyMMdd 또는 yyyy-MM-dd 형식의 날짜를 "YYYY년 M월 D일 X요일" 형식으로 표시
|
||||
function fn_setDeliveryDate(dateStr) {
|
||||
if(!dateStr) return;
|
||||
|
||||
var year, month, day;
|
||||
if(dateStr.includes("-")) {
|
||||
var parts = dateStr.split("-");
|
||||
year = parseInt(parts[0]);
|
||||
month = parseInt(parts[1]);
|
||||
day = parseInt(parts[2]);
|
||||
} else if(dateStr.length >= 8) {
|
||||
year = parseInt(dateStr.substring(0, 4));
|
||||
month = parseInt(dateStr.substring(4, 6));
|
||||
day = parseInt(dateStr.substring(6, 8));
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
if(isNaN(year) || isNaN(month) || isNaN(day)) return;
|
||||
|
||||
var date = new Date(year, month - 1, day);
|
||||
var days = ['일', '월', '화', '수', '목', '금', '토'];
|
||||
var dateStr = today.getFullYear() + "년 " + (today.getMonth() + 1) + "월 " + today.getDate() + "일 " + days[today.getDay()] + "요일";
|
||||
var displayStr = year + "년 " + month + "월 " + day + "일 " + days[date.getDay()] + "요일";
|
||||
|
||||
// 표시용 날짜 (한글)
|
||||
$("#deliveryDate").text(dateStr);
|
||||
$("#deliveryDate").text(displayStr);
|
||||
|
||||
// 전송용 날짜 (YYYY-MM-DD) - hidden input에 저장
|
||||
var year = today.getFullYear();
|
||||
var month = String(today.getMonth() + 1).padStart(2, '0');
|
||||
var day = String(today.getDate()).padStart(2, '0');
|
||||
var isoDate = year + "-" + month + "-" + day;
|
||||
var isoDate = year + "-" + String(month).padStart(2, '0') + "-" + String(day).padStart(2, '0');
|
||||
$("#deliveryDateISO").val(isoDate);
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
// 기본값: 오늘 날짜
|
||||
var today = new Date();
|
||||
var todayISO = today.getFullYear() + "-" + String(today.getMonth() + 1).padStart(2, '0') + "-" + String(today.getDate()).padStart(2, '0');
|
||||
fn_setDeliveryDate(todayISO);
|
||||
|
||||
// datepicker 초기화
|
||||
$("#deliveryDatePicker").datepicker({
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
dateFormat: 'yy-mm-dd',
|
||||
onSelect: function(dateText) {
|
||||
fn_setDeliveryDate(dateText);
|
||||
}
|
||||
});
|
||||
|
||||
// 달력 아이콘 클릭 시 datepicker 표시
|
||||
$("#deliveryDateCalBtn").on('click', function(e) {
|
||||
e.preventDefault();
|
||||
$("#deliveryDatePicker").datepicker("show");
|
||||
});
|
||||
|
||||
fn_loadData();
|
||||
|
||||
// 날짜 수정 시 ISO 형식도 업데이트
|
||||
// 날짜 직접 수정 시 ISO 형식도 업데이트
|
||||
$("#deliveryDate").on('blur', function() {
|
||||
var dateText = $(this).text().trim();
|
||||
// 날짜 파싱 시도
|
||||
try {
|
||||
// "2025년 3월 5일 수요일" 형식 파싱
|
||||
var match = dateText.match(/(\d{4})년\s*(\d+)월\s*(\d+)일/);
|
||||
if (match) {
|
||||
var year = match[1];
|
||||
var month = String(match[2]).padStart(2, '0');
|
||||
var day = String(match[3]).padStart(2, '0');
|
||||
var isoDate = year + "-" + month + "-" + day;
|
||||
$("#deliveryDateISO").val(isoDate);
|
||||
console.log("날짜 업데이트: " + dateText + " → " + isoDate);
|
||||
if(match) {
|
||||
fn_setDeliveryDate(match[1] + "-" + match[2] + "-" + match[3]);
|
||||
}
|
||||
} catch(e) {
|
||||
console.error("날짜 파싱 실패:", e);
|
||||
@@ -623,6 +679,12 @@ function fn_loadSavedStatement(projectObjid, gridData) {
|
||||
// 고객사 정보
|
||||
$("#receiverName").text(firstItem.CUSTOMER || "");
|
||||
|
||||
// 저장된 납품일 복원
|
||||
var savedIsDt = savedData[0].isdt || savedData[0].ISDT || savedData[0].IsDt || "";
|
||||
if(savedIsDt && savedIsDt.length >= 8) {
|
||||
fn_setDeliveryDate(String(savedIsDt));
|
||||
}
|
||||
|
||||
// 품목 테이블 채우기
|
||||
var tbody = $("#itemsBody");
|
||||
tbody.empty();
|
||||
@@ -1041,6 +1103,8 @@ function fn_close() {
|
||||
<td class="date-label-cell">납품일</td>
|
||||
<td class="date-value-cell" colspan="4">
|
||||
<span id="deliveryDate" contenteditable="true">2025년 3월 5일 수요일</span>
|
||||
<img id="deliveryDateCalBtn" src="/images/date_icon.png" alt="달력" class="no-print" style="width:16px;height:16px;cursor:pointer;vertical-align:middle;margin-left:8px;">
|
||||
<input type="text" id="deliveryDatePicker" readonly style="width:1px;height:1px;border:none;padding:0;margin:0;opacity:0;overflow:hidden;">
|
||||
<input type="hidden" id="deliveryDateISO" value="">
|
||||
</td>
|
||||
<td class="supplier-label-cell" rowspan="5">
|
||||
|
||||
Reference in New Issue
Block a user