Files
sam-kd/estimate/common/common_addrowJS.php

2536 lines
110 KiB
PHP
Raw Permalink Normal View History

<?php
// json파일에서 '스크린', '철재' 불러오기
$jsonFile = $_SERVER['DOCUMENT_ROOT'] . '/models/models.json';
$models = [];
if (file_exists($jsonFile)) {
$jsonContent = file_get_contents($jsonFile);
$models = json_decode($jsonContent, true);
if (!is_array($models)) {
$models = [];
}
}
$screenModels = array_filter($models, function ($m) {
return $m['slatitem'] === '스크린';
});
$steelModels = array_filter($models, function ($m) {
return $m['slatitem'] === '철재';
});
?>
<script>
const screenModelOptions = <?= json_encode(array_column($screenModels, 'model_name')) ?>;
const steelModelOptions = <?= json_encode(array_column($steelModels, 'model_name')) ?>;
</script>
<script>
function addRow(tableBody, rowData, typebutton, afterRow = null, autoData = {}) {
var newRow = $('<tr>');
var rowCount = tableBody.children('tr').length + 1;
newRow.append('<td class="text-center" style="width:80px;">' +
'<div class="d-flex justify-content-center align-items-center mt-1">' +
'<span class="text-primary fs-4 viewNoBtn add-row ms-1 me-1" data-table="' + tableBody.closest('table').attr('id') + '">+</span>' +
'<span class="text-danger fs-4 viewNoBtn remove-row ms-2 me-1">-</span>' +
'<span class="text-success fs-6 viewNoBtn copy-row ms-2"><i class="bi bi-copy"></i></span>' +
'</div></td>');
newRow.append('<td class="text-center" style="width:50px;">' +
'<div class="d-flex flex-column justify-content-center">' +
'<input type="text" name="col1[]" style="width:50px;" class="form-control text-center col-input col1" readonly autocomplete="off">' +
'</div></td>');
for (let i = 2; i <= 71; i++) {
let width = [2, 3, 4, 5, 7, 20, 22, 23, 29, 30, 36, 45].includes(i) ? '85px' : '50px';
width = [6].includes(i) ? '170px' : width;
width = [18].includes(i) ? '60px' : width;
width = [23,32,43,46,49,53,62].includes(i) ? '50px' : width; // 화면에 안보이는 수준이면 5px 적용, 검증할때는 50px로 한다.
let options = '';
if (i === 10) { // 스크린 제작사이즈 가로, 세로 설정 추가 250630
// 원래 1개의 열인데, 3개 생성함
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col10_SW[]" style="width:' + width + ';" class="form-control text-center text-primary fw-bold col-input col10_SW-input col10_SW" value="' + (rowData['col10_SW'] || rowData['col10'] || '') + '" autocomplete="off">' +
'</div></td>');
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col11_SH[]" style="width:' + width + ';" class="form-control text-center text-primary fw-bold col-input col11_SH-input col11_SH" value="' + (rowData['col11_SH'] || rowData['col11'] || '') + '" autocomplete="off">' +
'</div></td>');
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col10[]" style="width:' + width + ';" class="form-control text-center col-input col10-input col10" value="' + (rowData['col10'] || '') + '" autocomplete="off">' +
'</div></td>');
}
else if (i === 14) { // col14에 수량버튼
newRow.append('<td class="text-center" style="width:200px;">' +
'<div class="d-flex justify-content-center align-items-center">' +
'<input type="text" name="col14[]" style="width:' + width + ';" class="form-control text-center col-input col14-input col14" value="' + (rowData['col14'] || '') + '" autocomplete="off">' +
'<button type="button" class="btn btn-sm btn-outline-primary ms-1 calc-btn viewNoBtn" title="자동산출"><i class="bi bi-calculator-fill"></i></button>' +
'</div></td>');
}
else if (i === 36) {
// col36 셔터박스는 4가지 표현
let col36Value = rowData['col36'] || '';
let col36CustomValue = rowData['col36_custom'] || '';
let col36frontbottom = rowData['col36_frontbottom'] || '';
let col36railwidth = rowData['col36_railwidth'] || '';
let col36boxdirectionValue = rowData['col36_boxdirection'] || '';
let selectHtml = '<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select text-center w-auto viewmode me-2 col-select col' + i + '-select col' + i +' ">' +
'<option value=""> (없음) </option>' +
'<option value="500*380"' + (col36Value === '500*380' ? ' selected' : '') + '>500*380</option>' +
'<option value="500*350"' + (col36Value === '500*350' ? ' selected' : '') + '>500*350</option>' +
'<option value="custom"' + (col36Value === 'custom' ? ' selected' : '') + '>직접 입력</option>' +
'</select>';
let inputHtml = '<input type="text" name="col' + i + '_custom' + '[]" class="form-control text-center col36_custom col-input col' + i + '-custom-input" style="width:' + width + ';' +
(col36Value === 'custom' ? '' : 'display:none;') + '" value="' + (col36Value === 'custom' ? col36CustomValue : '') + '" placeholder="직접 입력">';
let inputHtmlfrontbottom = '<input type="text" name="col' + i + '_frontbottom' + '[]" class="form-control text-center col36_frontbottom col-input col' + i + '-frontbottom-input me-1 ms-1" style="width:50px;"' +
' value="' + (col36frontbottom === '' ? '50' : col36frontbottom) + '" placeholder="전면밑">';
let inputHtmlrailwidth = '<input type="text" name="col' + i + '_railwidth' + '[]" class="form-control text-center col36_railwidth col-input col' + i + '-railwidth-input me-1 ms-1" style="width:50px;"' +
' value="' + (col36railwidth === '' ? '70' : col36railwidth) + '" placeholder="레일폭">';
let selectHtmlboxdirection = '<select name="col' + i + '_boxdirection[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode me-1 ms-1 col-select col' + i +'_boxdirection">' +
'<option value="양면"' + (col36boxdirectionValue === '양면' ? ' selected' : '') + '>양면</option>' +
'<option value="밑면"' + (col36boxdirectionValue === '밑면' ? ' selected' : '') + '>밑면</option>' +
'<option value="후면"' + (col36boxdirectionValue === '후면' ? ' selected' : '') + '>후면</option>'
'</select>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center align-items-center">' +
selectHtml + inputHtml + inputHtmlfrontbottom + inputHtmlrailwidth + selectHtmlboxdirection +
'</div></td>');
// select의 값이 변경될 때, '직접 입력' 선택 시 input 필드를 보여줌
newRow.find('.col' + i + '-select').on('change', function() {
var selectedValue = $(this).val();
var customInput = $(this).closest('td').find('.col' + i + '-custom-input');
if (selectedValue === 'custom') {
customInput.show();
customInput.focus();
} else {
customInput.hide();
customInput.val('');
}
});
}
else if (i === 45) {
// col45 기존 처리
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col45[]" style="width:' + width + ';" class="form-control text-center col-input col45-input col45" value="' + (rowData['col45'] || '') + '" autocomplete="off">' +
'</div></td>');
// col45_wing 추가
let wingValue = (typeof rowData['col45_wing'] !== 'undefined' && rowData['col45_wing'] !== null && rowData['col45_wing'] !== '')
? rowData['col45_wing']
: ($('#maguriWing').val() || '');
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col45_wing[]" style="width:60px;" class="form-control text-center col-input col45Wing-input col45" value="' + wingValue + '" autocomplete="off">' +
'</div></td>');
continue;
}
else if ([4, 6, 7, 19, 21].includes(i)) {
// 기존 코드 유지
if (i === 4) {
let options = '<option value=""></option>';
screenModelOptions.forEach(function(model) {
var selected = (rowData['col' + i] === model) ? ' selected' : '';
options += '<option value="' + model + '"' + selected + '>' + model + '</option>';
});
newRow.append(
'<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col-select col' + i + '-select changeModel col' + i + ' ">' +
options +
'</select>' +
'</div>' +
'</td>'
);
}
else if (i === 6) {
options = '<option value="(없음)"> (없음) </option>' +
'<option value="벽면형(120*70)"' + (rowData['col' + i] === '벽면형(120*70)' ? ' selected' : '') + '>벽면형(120*70)</option>' +
'<option value="측면형(120*120)"' + (rowData['col' + i] === '측면형(120*120)' ? ' selected' : '') + '>측면형(120*120)</option>' +
'<option value="혼합형(120*70)(120*120)"' + (rowData['col' + i] === '혼합형(120*70)(120*120)' ? ' selected' : '') + '>혼합형(120*70)(120*120)</option>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col-select col' + i + '-select col' + i + ' ">' +
options +
'</select></div></td>');
} else if (i === 7) {
options = '<option value="(없음)"> (없음) </option>' +
'<option value="SUS마감"' + (rowData['col' + i] === 'SUS마감' ? ' selected' : '') + '>SUS마감</option>' +
'<option value="EGI마감"' + (rowData['col' + i] === 'EGI마감' ? ' selected' : '') + '>EGI마감</option>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col-select col' + i + '-select col' + i + ' ">' +
options +
'</select></div></td>');
} else if (i === 19) { // 모터 용량변경시
const capacityOptions = {
'380*180': ['150K', '300K', '400K'],
'530*320': ['300K', '400K'],
'600*350': ['500K', '600K'],
'690*390': ['800K', '1000K']
};
let selectedValue = rowData['col' + i];
let options = '<option value="(없음)"> (없음) </option>';
for (const motors of Object.values(capacityOptions)) {
for (const motor of motors) {
options += '<option value="' + motor + '"' +
(selectedValue === motor ? ' selected' : '') + '>' +
motor + '</option>';
}
}
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col-select col' + i + '-select col' + i + ' ">' +
options +
'</select></div></td>');
} else if (i === 21) {
options = '<option value=""> (없음) </option>' +
'<option value="4"' + (rowData['col' + i] === '4' ? ' selected' : '') + '>4</option>' +
'<option value="5"' + (rowData['col' + i] === '5' ? ' selected' : '') + '>5</option>' +
'<option value="6"' + (rowData['col' + i] === '6' ? ' selected' : '') + '>6</option>' +
'<option value="8"' + (rowData['col' + i] === '8' ? ' selected' : '') + '>8</option>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col-select col' + i + '-select col' + i + ' ">' +
options +
'</select></div></td>');
}
} else if ([18].includes(i)) {
let options = '';
// 경동,대한,기타로 계산서 발행 주체를 선택함
options = '<option value="(없음)"> (없음) </option>' +
'<option value="경동(견적가포함)" ' + (rowData['col18_brand'] === '경동(견적가포함)' ? ' selected' : '') + '>경동(견적가포함)</option>' +
'<option value="대한" ' + (rowData['col18_brand'] === '대한' ? ' selected' : '') + '>대한</option>' +
'<option value="기타" ' + (rowData['col18_brand'] === '기타' ? ' selected' : '') + '>기타</option>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '_brand[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col' + i + '_brand col-select col' + i + ' ">' +
options +
'</select></div></td>');
options = '<option value="(없음)"> (없음) </option>' +
'<option value="220V" ' + (rowData['col' + i] === '220V' ? ' selected' : '') + '>220V</option>' +
'<option value="380V" ' + (rowData['col' + i] === '380V' ? ' selected' : '') + '>380V</option>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col' + i + ' col-select col' + i + '-select">' +
options +
'</select></div></td>');
// 유선/무선 선택
options = '';
options = '<option value="(없음)"> (없음) </option>' +
'<option value="유선" ' + (rowData['col18_wireless'] === '유선' ? ' selected' : '') + '>유선</option>' +
'<option value="무선" ' + (rowData['col18_wireless'] === '무선' ? ' selected' : '') + '>무선</option>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col18_wireless[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col18_wireless col-select">' +
options +
'</select></div></td>');
}
else if ([59].includes(i)) {
let col59Value = rowData['col59'] || '1'; // 수량
let col59Inch = rowData['col59_inch'] || '2인치';
let col59Length = rowData['col59_length'] || '300';
let selectHtml = '<select name="col' + i + '_inch[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode me-2 col-select col' + i + '-inch-select">' +
'<option value="(없음)"> (없음) </option>' +
'<option value="2인치"' + (col59Inch === '2인치' ? ' selected' : '') + '>2인치</option>' +
'<option value="3인치"' + (col59Inch === '3인치' ? ' selected' : '') + '>3인치</option>' +
'</select>';
let inputHtmlLength = '<input type="text" name="col' + i + '_length[]" class="form-control text-center col-input col' + i + '-length-input me-2" style="width:60px;" ' +
'value="' + col59Length + '" placeholder="길이">';
let inputHtmlQty = '<input type="text" name="col' + i + '[]" class="form-control text-center col59-input col-input col' + i + '-qty-input" style="width:60px;" ' +
'value="' + col59Value + '" placeholder="수량">';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center align-items-center">' +
selectHtml + inputHtmlLength + inputHtmlQty +
'</div></td>');
}
else if ([5, 12, 13, 23, 37, 48, 51, 54, 58, 67].includes(i)) { // readonly 추가
// 기존 코드 유지
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col' + i + '[]" style="width:' + width + ';" class="form-control text-center col-input col' + i + '-input" readonly value="' + (rowData['col' + i] || '') + '" autocomplete="off">' +
'</div></td>');
} else {
// 기본 텍스트 필드 추가
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col' + i + '[]" style="width:' + width + ';" class="form-control text-center col-input col' + i + '-input col' + i + '" value="' + (rowData['col' + i] || '') + '" autocomplete="off">' +
'</div></td>');
}
}
// 기준 행 다음에 삽입하거나, 없으면 마지막에 삽입
if (afterRow && afterRow.length) {
afterRow.after(newRow);
} else {
tableBody.append(newRow);
}
// col4 모델 변경시
newRow.find('.col4-select').on('input change', function() {
var row = $(this).closest('tr');
modelChange_screen(row);
});
// col18 모터회사 변경시 처리
newRow.find('.col18_brand').on('change', function() {
var row = $(this).closest('tr');
const qty = row.find('.col14-input').val();
const col18_brandValue = row.find('.col18_brand').val();
if(col18_brandValue === '기타') {
row.find('.col15-input').val('');
row.find('.col16-input').val('');
row.find('.col17-input').val('');
row.find('.col18-select').val('(없음)');
row.find('.col18_wireless').val('(없음)');
row.find('.col19-select').val('(없음)');
row.find('.col20-input').val('');
return;
}
else if (col18_brandValue === '(없음)') { // 기타일 경우
row.find('.col18-select').val('(없음)');
row.find('.col18_wireless').val('(없음)');
row.find('.col19-select').val('(없음)');
row.find('.col20-input').val('');
return;
}
else { // 경동, 대한일 경우
row.find('.col15-input').val(qty);
row.find('.col16-input').val('');
row.find('.col17-input').val(qty);
row.find('.col18').val("220V");
row.find('.col18_wireless').val("유선");
row.find('.col18_brand').val(col18_brandValue);
updateCol21(newRow); // 샤프트 인치
updateCol19(newRow); // 모터용량산출
updateCol20(newRow); // 브라켓 산출
}
});
// col19 모터용량변경시
newRow.find('.col19-select').on('change', function() {
var row = $(this).closest('tr');
const col19Value = row.find('.col19-select').val();
if(col19Value === '(없음)' || col19Value === '') {
row.find('.col20-input').val('');
return;
}
updateCol20(row);
updateCol21(row);
});
// col21 샤프트인치를 모터에서 변경할 경우 샤프트 전체 인치를 변경해줌
newRow.find('.col21-select').on('input change', function() {
var row = $(this).closest('tr');
updateCol21_Force(row);
});
// col36 셔터박스 크기 변경시 강제로 마구리 크기 변경
newRow.find('.col36').on('input change', function() {
var row = $(this).closest('tr');
updateCol36_Force(row);
});
// col36_custom 셔터박스 크기 변경시 마구리 크기 변경
newRow.find('.col36_custom').on('input change', function() {
var row = $(this).closest('tr');
updateCol36_input(row);
});
// commonExe(newRow);
newRow.find('.col4-select').on('change', function() {
var col4Value = $(this).val();
var col5Input = $(this).closest('tr').find('.col5-input');
if (col4Value === "KSE01" || col4Value === "KSS01" || col4Value === "KSS02" || col4Value === "KDSS01" ) {
col5Input.val("실리카");
} else {
col5Input.val("와이어");
}
// commonExe(newRow);
});
newRow.find('.col4-select').trigger('change');
newRow.find('.col6-select').trigger('change');
newRow.find('.col8-input').trigger('change');
newRow.find('.col9-input').trigger('change');
// 스크린제작사이즈 col10_SW, col11_SH 강제 변경시
newRow.find('.col10_SW-input, .col11_SH-input').on('input change', function() {
var row = $(this).closest('tr');
console.log('col10_SW, col11_SH 제작사이즈 강제 변경 호출');
updateCol10and11_Force(row);
});
// col10, 11 제작사이즈 강제 변경시
newRow.find('.col10-input, .col11-input').on('input change', function() {
var row = $(this).closest('tr');
console.log('col10, 11 제작사이즈 강제 변경 호출');
updateCol12and13(row); // 면적, 중량 계산
updateCol10and11_Force(row);
});
// console.log('rowData : ' + rowData);
if(!(rowData['col14'] || '')) {
firstinput_screen(newRow);
}
updateSerialNumbers(tableBody); // 중요!
// ① data-auto 속성 세팅 및 기존 수동편집 표시
newRow.find('input, select').each(function() {
const $el = $(this);
// name 속성에서 [] 제거
const name = $el.attr('name').replace('[]', '');
// 자동산출 스냅샷 값
const aVal = autoData[name] || '';
// 실제 로드된 값
const curVal = $el.val() || '';
// data-auto 에 저장
$el.attr('data-auto', aVal);
// 값이 다르면 수동편집된 것으로 표시
if (curVal.toString() !== aVal.toString()) {
$el.addClass('manually-edited');
}
});
newRow.find('.calc-btn').on('click', function () {
if (mode !== 'view') {
Swal.fire({
title: '수량계산을 진행하시겠습니까?',
text: '기존 데이터에 덮어씁니다.',
icon: 'warning',
showCancelButton: true,
confirmButtonText: '예',
cancelButtonText: '아니오'
}).then((result) => {
if (result.isConfirmed) {
var row = $(this).closest('tr');
commonExe(row);
alertToast('산출 완료');
var qty14 = parseFloat(row.find('.col14-input').val()) || 0;
['.col15-input', '.col16-input', '.col17-input'].forEach(function (selector) {
var $el = row.find(selector);
var str = $el.val();
if (str !== '') {
var v = parseFloat(str);
if (!isNaN(v)) {
$el.val(qty14);
}
}
});
// 클릭 즉시 data-auto 갱신
row.find('input, select').each(function () {
$(this)
.attr('data-auto', $(this).val())
.removeClass('manually-edited');
});
calculateAmounts();
}
});
}
});
newRow.find('.col-input, .col-select').on('input change', function() {
Screen_updateTotals();
var $el = $(this);
var autoVal = $el.attr('data-auto') || '';
var curVal = $el.val() || '';
$el.toggleClass('manually-edited', curVal.toString() !== autoVal.toString());
calculateAmounts();
});
Screen_updateTotals();
// addRow 함수 맨 끝, newRow가 DOM에 붙은 직후에 추가
// ------------------------------------------------------
// col1~col70 input 요소들의 value 속성을 실제 값으로 셋해주기
// for (let i = 1; i <= 70; i++) {
// // name 속성(colX[]) 기준으로 선택
// newRow.find(`input[name="col${i}[]"]`).each(function() {
// this.setAttribute('value', this.value);
// });
// }
// ------------------------------------------------------
calculateAmounts();
}
function updateSerialNumbers(tableBody) {
tableBody.find('tr').each(function(index) {
// 1. 시리얼 넘버 갱신
$(this).find('.serial-number').text(index + 1);
// 2. col1[] 입력 필드 갱신
$(this).find('input[name="col1[]"]').val(index + 1);
});
}
function firstinput_screen(row) {
row.find('.col4-select').val('KSS01');
row.find('.col5-input').val('실리카');
row.find('.col6-select').val('벽면형(120*70)');
row.find('.col7-select').val('SUS마감');
row.find('.col14-input').val(1);
row.find('.col15-input').val(1);
row.find('.col17-input').val(1);
row.find('.col18').val("220V");
row.find('.col18_wireless').val("유선");
row.find('.col18_brand').val("경동(견적가포함)");
//모델 변경시킴
modelChange_screen(row);
}
function commonScreenFn(row)
{
updateCol12and13(row);
updateCol21(row); // 샤프트 인치를 먼저 산출해야 모터용량 산출됨
updateCol19(row);
updateCol20(row);
updateCol22(row);
updateCol23(row);
updateCol29(row); // 하부base
updateCol31to35(row);
updateCol36(row);
updateCol45(row);
updateCol37(row);
updateCol38to43(row);
updateCol44(row);
updateCol47(row);
updateCol48(row);
updateCol51(row);
updateCol54(row);
updateCol57(row);
updateCol58(row);
updateCol59(row);
updateCol60to65(row);
updateCol66(row);
updateCol67(row);
updateCol68to69(row);
updateCol70(row);
Screen_updateTotals();
}
function commonExe(row) {
updateCol10and11(row);
commonScreenFn(row);
}
// 모델변경시
function modelChange_screen(row) {
var model = row.find('.col4-select').val();
$("#model_name").val(model);
}
// 제작사이즈 강제로 변경시
function updateCol10and11_Force(row) {
// 제작치수 부분 제외한 공통함수 호출
commonScreenFn(row);
}
// 각 열에 대한 업데이트 함수들
function updateCol10and11(row) {
var makeWidth = $("#makeWidth").val();
var makeHeight = $("#makeHeight").val();
var col8Value = parseFloat(row.find('.col8-input').val()) || 0;
var col9Value = parseFloat(row.find('.col9-input').val()) || 0;
// 부자재 제작사이즈
row.find('.col10-input').val(col8Value + Number(makeWidth));
row.find('.col11-input').val(col9Value + Number(makeHeight));
// 스크린 제작사이즈 업데이트
row.find('.col10_SW-input').val(col8Value + Number(makeWidth));
row.find('.col11_SH-input').val(col9Value + Number(makeHeight));
row.find('.col15-input').val(1);
row.find('.col17-input').val(1);
row.find('.col18').val("220V");
row.find('.col18_wireless').val("유선");
row.find('.col18_brand').val("경동(견적가포함)");
}
function updateCol12and13(row) {
var col8Value = parseFloat(row.find('.col8-input').val()) || 0;
var col10Value = parseFloat(row.find('.col10-input').val()) || 0;
var col11Value = parseFloat(row.find('.col11-input').val()) || 0;
var area = (col10Value * col11Value) / 1000000;
row.find('.col12-input').val(area.toFixed(2));
var weight = (area * 2) + (col8Value / 1000 * 14.17);
row.find('.col13-input').val(weight.toFixed(2));
}
function updateCol19(row) {
var col21Value = parseFloat(row.find('.col21-select').val()) || 0;
var col13Value = parseFloat(row.find('.col13-input').val()) || 0;
var col19Select = row.find('.col19-select');
var motorCapacity = null;
if ((col21Value === 4 && col13Value <= 150) ||
(col21Value === 5 && col13Value <= 123) ||
(col21Value === 6 && col13Value <= 104)) {
motorCapacity = '150K';
} else if ((col21Value === 4 && col13Value > 150 && col13Value <= 300) ||
(col21Value === 5 && col13Value > 123 && col13Value <= 246) ||
(col21Value === 6 && col13Value > 104 && col13Value <= 208)) {
motorCapacity = '300K';
} else if ((col21Value === 4 && col13Value > 300 && col13Value <= 400) ||
(col21Value === 5 && col13Value > 246 && col13Value <= 327) ||
(col21Value === 6 && col13Value > 208 && col13Value <= 300)) {
motorCapacity = '400K';
} else if ((col21Value === 5 && col13Value > 327 && col13Value <= 500) ||
(col21Value === 6 && col13Value > 300 && col13Value <= 424)) {
motorCapacity = '500K';
} else if ((col21Value === 5 && col13Value > 500 && col13Value <= 600) ||
(col21Value === 6 && col13Value > 424 && col13Value <= 508)) {
motorCapacity = '600K';
} else if ((col21Value === 6 && col13Value > 600 && col13Value <= 800)) {
motorCapacity = '800K';
} else if ((col21Value === 6 && col13Value > 800 && col13Value <= 1000)) {
motorCapacity = '1000K';
}
// 값 설정
if (motorCapacity !== null && col19Select.find(`option[value="${motorCapacity}"]`).length > 0) {
col19Select.val(motorCapacity);
} else {
col19Select.val('(없음)');
}
// 1000K는 380V만 존재함
if (motorCapacity === '1000K') {
row.find('.col18').val('380V');
}
}
function updateCol20(row) {
// console.log('updateCol20 동작');
var motorValue = row.find('.col19-select').val();
var col20Input = row.find('.col20-input');
let bracketSize = '';
if (['150K', '300K', '400K'].includes(motorValue)) {
bracketSize = '380*180';
} else if (['300K', '400K'].includes(motorValue)) {
bracketSize = '530*320';
} else if (['500K', '600K'].includes(motorValue)) {
bracketSize = '600*350';
} else if (['800K', '1000K'].includes(motorValue)) {
bracketSize = '690*390';
} else {
bracketSize = '';
}
col20Input.val(bracketSize);
// 1000K는 380V만 존재함
if (motorValue === '1000K') {
row.find('.col18-select').val('380V');
}
updateCol22(row); // 이후 작업이 있다면 유지
}
function updateCol21(row) {
var col10Value = parseFloat(row.find('.col10-input').val()) || 0;
var Col21Input = row.find('.col21-select');
if (col10Value <= 6000) {
Col21Input.val(4);
} else if (col10Value > 6000 && col10Value <= 8200) {
Col21Input.val(5);
} else {
Col21Input.val(0);
}
//철재해당 공식
// var col10Value = parseFloat(row.find('.col10-input').val()) || 0; // 셔터 길이 기장
// var col13Value = parseFloat(row.find('.col13-input').val()) || 0; // 중량
// var col59Input = row.find('.col59-input');
// if (col10Value <= 4500) {
// if (col13Value <= 400) {
// col59Input.val(4);
// } else if (col13Value > 400) {
// col59Input.val(5);
// }
// } else if (col10Value > 4500 && col10Value <= 5600) {
// if (col13Value <= 600) {
// col59Input.val(5);
// } else if (col13Value > 600) {
// col59Input.val(6);
// }
// } else if (col10Value > 5600 && col10Value <= 7800) {
// if (col13Value <= 800) {
// col59Input.val(6);
// } else if (col13Value > 800) {
// col59Input.val(8);
// }
// } else if (col10Value > 7800 && col13Value <= 10000) {
// col59Input.val(8);
// } else {
// col59Input.val(0); // 조건에 맞지 않는 경우 기본값 0
// }
}
function updateCol21_Force(row) {
// console.log('모터 인치변경 시도');
var col21Value = parseFloat(row.find('.col21-select').val()) || '';
var col58Input = row.find('.col58-input');
col58Input.val(col21Value);
updateCol60to65(row); // 기존 로직
// 마지막에 수동 수정 여부 처리
Screen_updateTotals();
var $el = col58Input;
var autoVal = $el.attr('data-auto') || '';
var curVal = $el.val() || '';
$el.toggleClass('manually-edited', curVal.toString() !== autoVal.toString());
calculateAmounts(); // 최종 계산
}
function updateCol22(row) {
var col20Value = row.find('.col20-input').val();
var col22Input = row.find('.col22-input');
let bracketPipe = '';
switch (col20Value) {
case '380*180':
bracketPipe = '40*40*380';
break;
case '530*320':
bracketPipe = '50*50*530';
break;
case '600*350':
bracketPipe = '50*50*600';
break;
case '690*390':
bracketPipe = '50*50*690';
break;
default:
bracketPipe = '';
}
col22Input.val(bracketPipe);
}
function updateCol23(row) {
var col9Value = parseFloat(row.find('.col9-input').val()) || 0;
var col23Input = row.find('.col23-input');
// 오픈 높이에 250 더함
col23Input.val(col9Value + 250);
updateCol24to28(row);
}
function updateCol24to28(row) {
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col23Value = parseFloat(row.find('.col23-input').val()) || 0;
var col24Input = row.find('.col24-input');
col24Input.val(col23Value <= 2438 ? 2 : 0);
var col25Input = row.find('.col25-input');
col25Input.val((col23Value > 2438 && col23Value <= 3000) ? 2*col14Value : 0);
var col26Input = row.find('.col26-input');
col26Input.val((col23Value > 3000 && col23Value <= 3500) ? 2*col14Value : 0);
var col27Input = row.find('.col27-input');
col27Input.val((col23Value > 3500 && col23Value <= 4000) ? 2*col14Value : 0);
var col28Input = row.find('.col28-input');
col28Input.val((col23Value > 4000 && col23Value <= 4300) ? 2*col14Value : 0);
}
function updateCol29(row) {
var col6Value = row.find('.col6-select').val();
var col29Input = row.find('.col29-input');
var col30Input = row.find('.col30-input');
if (col6Value === "벽면형(120*70)") {
col29Input.val("130*80");
col30Input.val("130*80");
} else if (col6Value === "측면형(120*120)") {
col29Input.val("130*130");
col30Input.val("130*130");
} else if (col6Value === "혼합형(120*70)(120*120)") {
col29Input.val("130*80");
col30Input.val("130*130");
}
}
function updateCol31to35(row) {
// 레일용 연기차단재
var col24Value = parseFloat(row.find('.col24-input').val() ) || 0; // 셔터박스 크기 가져옴
var col25Value = parseFloat(row.find('.col25-input').val() ) || 0; // 셔터박스 크기 가져옴
var col26Value = parseFloat(row.find('.col26-input').val() ) || 0; // 셔터박스 크기 가져옴
var col27Value = parseFloat(row.find('.col27-input').val() ) || 0; // 셔터박스 크기 가져옴
var col28Value = parseFloat(row.find('.col28-input').val() ) || 0; // 셔터박스 크기 가져옴
row.find('.col31-input').val(col24Value*2);
row.find('.col32-input').val(col25Value*2);
row.find('.col33-input').val(col26Value*2);
row.find('.col34-input').val(col27Value*2);
row.find('.col35-input').val(col28Value*2);
}
function updateCol36(row) {
var col20Value = row.find('.col20-input').val();
var col36Select = row.find('.col36-select');
var col36Input = row.find('.col36-select');
var col45Input = row.find('.col45-input');
if (col20Value === "380*180") {
col36Select.val("500*380");
col45Input.val("505*385");
}
var col36Value = col36Input.val();
// col36Value가 undefined 또는 null이 아닌지 확인
if (col36Value && col36Value.includes('*')) {
var dimensions = col36Value.split('*');
var width = parseFloat(dimensions[0]); // 첫 번째 값
var height = parseFloat(dimensions[1]); // 두 번째 값
// 두 값에 +5를 적용
var newWidth = width + 5;
var newHeight = height + 5;
// 새로운 값 설정
col45Input.val(newWidth + '*' + newHeight);
}
// console.log('updateCol36 시작');
// console.log('col20Value : ' + col20Value);
// console.log('col36Select : ' + col36Select.val());
// console.log('col45Input : ' + col45Input.val());
}
function updateCol36_Force(row) {
var col36Input = row.find('.col36');
var col45Input = row.find('.col45-input');
var col36Value = col36Input.val();
// col36Value가 undefined 또는 null이 아닌지 확인
if (col36Value && col36Value.includes('*')) {
var dimensions = col36Value.split('*');
var width = parseFloat(dimensions[0]); // 첫 번째 값
var height = parseFloat(dimensions[1]); // 두 번째 값
// 두 값에 +5를 적용
var newWidth = width + 5;
var newHeight = height + 5;
// 새로운 값 설정
col45Input.val(newWidth + '*' + newHeight);
}
}
// 수동입력시 마구리 변경하는 로직
function updateCol36_input(row) {
var col36Input = row.find('.col36_custom');
var col45Input = row.find('.col45-input');
var col36Value = col36Input.val();
// col36Value가 undefined 또는 null이 아닌지 확인
if (col36Value && col36Value.includes('*')) {
var dimensions = col36Value.split('*');
var width = parseFloat(dimensions[0]); // 첫 번째 값
var height = parseFloat(dimensions[1]); // 두 번째 값
// 두 값에 +5를 적용
var newWidth = width + 5;
var newHeight = height + 5;
// 새로운 값 설정
col45Input.val(newWidth + '*' + newHeight);
}
}
function updateCol37(row) {
var col8Value = parseFloat(row.find('.col8-input').val()) || 0;
var col37Input = row.find('.col37-input');
col37Input.val(col8Value + 220);
}
function updateCol38to43(row) {
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col37Value = parseFloat(row.find('.col37-input').val() ) || 0;
var col38Value = (col37Value <= 1219) ? 1*col14Value :
(col37Value > 4150 && col37Value <= 4219) ? 1*col14Value :
(col37Value > 4219 && col37Value <= 4719) ? 1*col14Value :
(col37Value > 4876 && col37Value <= 5219) ? 1*col14Value :
(col37Value > 5219 && col37Value <= 5369) ? 1*col14Value :
(col37Value > 9026 && col37Value <= 9219) ? 1*col14Value :
0;
row.find('.col38-input').val(col38Value);
var col39Value = (col37Value > 1219 && col37Value <= 2438) ? 1*col14Value :
(col37Value > 4719 && col37Value <= 4876) ? 2*col14Value :
(col37Value > 5369 && col37Value <= 5938) ? 1*col14Value :
(col37Value > 6000 && col37Value <= 6438) ? 1*col14Value :
(col37Value > 6500 && col37Value <= 6588) ? 1*col14Value :
(col37Value > 8300 && col37Value <= 8376) ? 2*col14Value :
(col37Value > 8376 && col37Value <= 8438) ? 1*col14Value :
(col37Value > 8438 && col37Value <= 8876) ? 2*col14Value :
(col37Value > 9000 && col37Value <= 9026) ? 2*col14Value :
(col37Value > 9219 && col37Value <= 9438) ? 1*col14Value :
(col37Value > 10150 && col37Value <= 10738) ? 1*col14Value :
0;
row.find('.col39-input').val(col39Value);
var col40Value = (col37Value > 2438 && col37Value <= 3000) ? 1*col14Value :
(col37Value > 4050 && col37Value <= 4219) ? 1*col14Value :
(col37Value > 5369 && col37Value <= 5438) ? 1*col14Value :
(col37Value > 5938 && col37Value <= 6000) ? 2*col14Value :
(col37Value > 6438 && col37Value <= 6500) ? 1*col14Value :
(col37Value > 7000 && col37Value <= 7150) ? 1*col14Value :
(col37Value > 8376 && col37Value <= 8438) ? 2*col14Value :
(col37Value > 8876 && col37Value <= 9000) ? 3*col14Value :
(col37Value > 9438 && col37Value <= 10150) ? 2*col14Value :
(col37Value > 10738 && col37Value <= 11000) ? 1*col14Value :
0;
row.find('.col40-input').val(col40Value);
var col41Value = (col37Value > 3000 && col37Value <= 3500) ? 1*col14Value :
(col37Value > 4119 && col37Value <= 4719) ? 1*col14Value :
(col37Value > 5438 && col37Value <= 5938) ? 1*col14Value :
(col37Value > 6438 && col37Value <= 6500) ? 1*col14Value :
(col37Value > 6588 && col37Value <= 7000) ? 2*col14Value :
(col37Value > 7150 && col37Value <= 7650) ? 1*col14Value :
(col37Value > 8300 && col37Value <= 8376) ? 1*col14Value :
(col37Value > 9219 && col37Value <= 9438) ? 2*col14Value :
(col37Value > 9438 && col37Value <= 9500) ? 1*col14Value :
0;
row.find('.col41-input').val(col41Value);
var col42Value = (col37Value > 3500 && col37Value <= 4000) ? 1*col14Value :
(col37Value > 4876 && col37Value <= 5219) ? 1*col14Value :
(col37Value > 6000 && col37Value <= 6428) ? 1*col14Value :
(col37Value > 7150 && col37Value <= 7500) ? 1*col14Value :
(col37Value > 7650 && col37Value <= 8000) ? 2*col14Value :
(col37Value > 8000 && col37Value <= 8150) ? 1*col14Value :
(col37Value > 8428 && col37Value <= 8876) ? 1*col14Value :
(col37Value > 9026 && col37Value <= 9219) ? 2*col14Value :
(col37Value > 9500 && col37Value <= 10000) ? 1*col14Value :
(col37Value > 10150 && col37Value <= 10428) ? 2*col14Value :
(col37Value > 10738 && col37Value <= 11000) ? 2*col14Value :
0;
row.find('.col42-input').val(col42Value);
var col43Value = (col37Value > 4000 && col37Value <= 4150) ? 1*col14Value :
(col37Value > 5219 && col37Value <= 5369) ? 1*col14Value :
(col37Value > 6500 && col37Value <= 6588) ? 1*col14Value :
(col37Value > 7000 && col37Value <= 7150) ? 1*col14Value :
(col37Value > 7500 && col37Value <= 7650) ? 1*col14Value :
(col37Value > 8000 && col37Value <= 8150) ? 1*col14Value :
(col37Value > 8150 && col37Value <= 8300) ? 2*col14Value :
(col37Value > 9000 && col37Value <= 9026) ? 1*col14Value :
(col37Value > 10000 && col37Value <= 10150) ? 1*col14Value :
(col37Value > 10438 && col37Value <= 10738) ? 2*col14Value :
0;
row.find('.col43-input').val(col43Value);
}
function updateCol44(row) {
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col37Value = parseFloat(row.find('.col37-input').val()) || 0;
var col44Input = row.find('.col44-input');
col44Input.val(Math.ceil(col37Value / 1219) * col14Value );
}
function updateCol45(row) {
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col45Input = row.find('.col45-input');
var col46Input = row.find('.col46-input');
// col36Value 값 설정
var col36Value = row.find('.col36-select').val(); // 셔터박스크기 (예: "500*350")
if (col36Value === 'custom') { // 직접 입력 value가 'custom'이다.
col36Value = row.find('.col36_custom').val();
}
// col36Value 값 분리 및 계산
var result;
if (col36Value.includes('*')) {
var parts = col36Value.split('*'); // "*" 기준으로 나누기
var leftValue = parseInt(parts[0]) || 0; // 좌측 값
var rightValue = parseInt(parts[1]) || 0; // 우측 값
result = (leftValue + 5) + '*' + (rightValue + 5); // 각 값에 5를 더하고 다시 조합
} else {
result = "0"; // 잘못된 값 처리
}
col45Input.val(result); // col45Input에 설정된 값 적용
col46Input.val(col14Value * 2); // col46Input에 셔터수량 * 2 값 설정
// console.log('updateCol45 시작');
// console.log('col14Value : ' + col14Value);
// console.log('col45Input : ' + col45Input.val());
// console.log('col46Input : ' + col46Input.val());
}
function updateCol47(row) {
// 셔터박스 연기차단재
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col37Value = parseFloat(row.find('.col37-input').val()) || 0; // 서터 기장
var col47Input = row.find('.col47-input');
// ROUNDDOWN(AR8*2/3000+1,0)을 JavaScript로 변환
var calculatedValue = Math.floor((col37Value * 2 / 3000) + 1);
col47Input.val(calculatedValue * col14Value); // 결과에 셔터수량 곱셈 적용
}
function updateCol48(row) {
// 하장바 1.6T EGI
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col8Value = parseFloat(row.find('.col8-input').val()) || 0; // 오픈사이즈 가로
var col48Input = row.find('.col48-input');
col48Input.val(col8Value);
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col48Value = parseFloat(row.find('.col48-input').val()) || 0;
var col49Input = row.find('.col49-input');
col49Input.val((col48Value <= 3000) ? (col14Value) :
(col48Value > 4000 && col48Value <= 6000) ? (2*col14Value) :
(col48Value > 6000 && col48Value <= 7000) ? (col14Value) :
(col48Value > 8000 && col48Value <= 9000) ? (3*col14Value) : 0);
var col50Input = row.find('.col50-input');
col50Input.val((col48Value > 3000 && col48Value <= 4000) ? (col14Value) :
(col48Value > 6000 && col48Value <= 7000) ? (col14Value) :
(col48Value > 7000 && col48Value <= 8000) ? (2*col14Value) : 0);
}
function updateCol51(row) {
// 엘바 1.6T EGI
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col37Value = parseFloat(row.find('.col37-input').val()) || 0; // 셔터박스 기장
var col51Input = row.find('.col51-input');
col51Input.val(col37Value);
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col51Value = parseFloat(row.find('.col51-input').val()) || 0;
var col52Input = row.find('.col52-input');
col52Input.val((col51Value <= 3000) ? (2*col14Value) :
(col51Value > 4000 && col51Value <= 6000) ? (4*col14Value) :
(col51Value > 6000 && col51Value <= 7000) ? (2*col14Value) :
(col51Value > 8000 && col51Value <= 9000) ? (6*col14Value) : 0);
var col53Input = row.find('.col53-input');
col53Input.val((col51Value > 3000 && col51Value <= 4000) ? (2*col14Value) :
(col51Value > 6000 && col51Value <= 7000) ? (2*col14Value) :
(col51Value > 7000 && col51Value <= 8000) ? (4*col14Value) : 0);
}
function updateCol54(row) {
// 보강평철 1.2T EGI
var col37Value = parseFloat(row.find('.col37-input').val()) || 0;
var col54Input = row.find('.col54-input');
col54Input.val(col37Value);
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col54Value = parseFloat(row.find('.col54-input').val()) || 0;
var col31Value = row.find('.col31-input').val() || ""; // E8 값을 가져오기 위해 사용
var col55Input = row.find('.col55-input');
var col56Input = row.find('.col56-input');
// col55Input 값 설정
col55Input.val(0); // 기본값 설정
if (col54Value <= 3000) {
col55Input.val(1*col14Value);
} else if (col54Value > 4000 && col54Value <= 6000) {
col55Input.val(2*col14Value);
} else if (col54Value > 6000 && col54Value <= 7000) {
col55Input.val(1*col14Value);
} else if (col54Value > 8000 && col54Value <= 9000) {
col55Input.val(3*col14Value);
} else if (col54Value > 9000 && col54Value <= 10000) {
col55Input.val(2*col14Value);
} else if (col54Value > 10000 && col54Value <= 11000) {
col55Input.val(1*col14Value);
} else {
col55Input.val(0);
}
// col56Input 값 설정 (엑셀 공식 반영)
col56Input.val(0); // 기본값 설정
if (col54Value > 3000 && col54Value <= 4000) {
col56Input.val(1*col14Value);
} else if (col54Value > 6000 && col54Value <= 7000) {
col56Input.val(1*col14Value);
} else if (col54Value > 7000 && col54Value <= 8000) {
col56Input.val(2*col14Value);
} else if (col54Value > 9000 && col54Value <= 10000) {
col56Input.val(1*col14Value);
} else if (col54Value > 10000 && col54Value <= 11000) {
col56Input.val(2*col14Value);
} else if (col54Value > 11000 && col54Value <= 12000) {
col56Input.val(3*col14Value);
}
}
function updateCol57(row) {
//무게평철 12T KSS02는 1/2로 수량이 줄어듬 (2025/03/26 수정)
var col4Value = row.find('.col4-select').val() || ''; // 모델
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col8Value = parseFloat(row.find('.col8-input').val()) || 0;
var col57Input = row.find('.col57-input');
// console.log(col4Value);
if(col4Value === 'KSS02')
// col57Input 값 설정 (주어진 엑셀 공식 반영)
suPerEA = 1 ;
else
suPerEA = 2 ;
if (col8Value * suPerEA <= 2000) {
col57Input.val(1*col14Value);
} else if (col8Value * suPerEA > 2000 && col8Value * suPerEA <= 4000) {
col57Input.val(2*col14Value);
} else if (col8Value * suPerEA > 4000 && col8Value * suPerEA <= 6000) {
col57Input.val(3*col14Value);
} else if (col8Value * suPerEA > 6000 && col8Value * suPerEA <= 8000) {
col57Input.val(4*col14Value);
} else if (col8Value * suPerEA > 8000 && col8Value * suPerEA <= 10000) {
col57Input.val(5*col14Value);
} else if (col8Value * suPerEA > 10000 && col8Value * suPerEA <= 12000) {
col57Input.val(6*col14Value);
} else if (col8Value * suPerEA > 12000 && col8Value * suPerEA <= 14000) {
col57Input.val(7*col14Value);
} else if (col8Value * suPerEA > 14000 && col8Value * suPerEA <= 16000) {
col57Input.val(8*col14Value);
} else {
col57Input.val(0);
}
}
function updateCol58(row){
var col21Value = parseFloat(row.find('.col21-select').val()) || 0;
var col58Input = row.find('.col58-input');
col58Input.val(col21Value);
}
function updateCol59(row) {
// 3인치 감기샤프트
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
row.find('.col59-input').val(col14Value);
}
function updateCol60to65(row) {
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col21Value = parseFloat(row.find('.col21-select').val()) || 0;
var col8Value = parseFloat(row.find('.col8-input').val()) || 0;
// console.log('샤프트 수량 수정');
// console.log('인치 : ', col21Value);
row.find('.col60-input').val((col21Value == 4 && col8Value <= 3050) ? 1 * col14Value : 0);
row.find('.col61-input').val((col21Value == 4 && col8Value > 3050 && col8Value <= 4550) ? 1 * col14Value : 0);
row.find('.col62-input').val((col21Value == 4 && col8Value > 4550 && col8Value <= 6050) ? 1 * col14Value : 0);
row.find('.col63-input').val((col21Value == 5 && col8Value > 0 && col8Value <= 6050) ? 1 * col14Value : 0);
row.find('.col64-input').val((col21Value == 5 && col8Value > 6050 && col8Value <= 7050) ? 1 * col14Value : 0);
row.find('.col65-input').val((col21Value == 5 && col8Value > 7050) ? 1 * col14Value : 0);
}
function updateCol66(row) {
var col37Value = parseFloat(row.find('.col37-input').val()) || 0;
var col66Input = row.find('.col66-input');
col66Input.val((col37Value <= 1600) ? 3 :
(col37Value <= 2800) ? 4 :
(col37Value <= 4000) ? 5 :
(col37Value <= 5200) ? 6 :
(col37Value <= 6400) ? 7 :
(col37Value <= 7600) ? 8 :
(col37Value <= 8800) ? 9 : 0);
}
function updateCol67(row) {
var col37Value = parseFloat(row.find('.col37-input').val()) || 0;
var col66Value = parseFloat(row.find('.col66-input').val()) || 0;
row.find('.col67-input').val(col37Value + 3000 * col66Value);
// console.log('67 col: ', row.find('.col67-input').val());
}
function updateCol68to69(row) {
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col67Value = parseFloat(row.find('.col67-input').val()) || 0;
// col68 계산
var col68Input = row.find('.col68-input');
col68Input.val((col67Value <= 9000) ? 3 * col14Value:
(col67Value > 9000 && col67Value <= 12000) ? 4 * col14Value:
(col67Value > 12000 && col67Value <= 15000) ? 5 * col14Value :
(col67Value > 15000 && col67Value <= 18000) ? 6 * col14Value : 0) ;
// col69 계산
var col69Input = row.find('.col69-input');
col69Input.val((col67Value > 18000 && col67Value <= 24000) ? 4 * col14Value :
(col67Value > 24000 && col67Value <= 30000) ? 5 * col14Value :
(col67Value > 30000 && col67Value <= 36000) ? 6 * col14Value :
(col67Value > 36000 && col67Value <= 42000) ? 7 * col14Value :
(col67Value > 42000 && col67Value <= 48000) ? 8 * col14Value : 0) ;
}
function updateCol70(row) {
//환봉
var col14Value = parseFloat(row.find('.col14-input').val()) || 0; // 셔터수량
var col10Value = parseFloat(row.find('.col10-input').val()) || 0;
var col70Input = row.find('.col70-input');
col70Input.val((col10Value <= 3000) ? 1 * col14Value :
(col10Value <= 6000) ? 2 * col14Value :
(col10Value <= 9000) ? 3 * col14Value :
(col10Value <= 12000) ? 4 * col14Value : 0) ;
}
function Screen_updateTotals() {
// 합계를 계산할 열의 인덱스 (1-based, 실제로는 0-based로 사용)
var sumColumns = [ 14, 15, 16, 17, 18, 19, 20, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 49, 52, 53, 55, 56, 58, 59, 61, 62, 63, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77];
sumColumns.forEach(function (colIndex) {
var total = 0;
$('#estimateTable tbody tr').each(function () {
var $cell = $(this).find('td').eq(colIndex-1);
var val = '';
if ($cell.find('input').length > 0) {
val = $cell.find('input').val() || '';
} else if ($cell.find('select').length > 0) {
val = $cell.find('select').val() || '';
}
var numericValue = parseFloat(val.toString().replace(/,/g, '')) || 0;
total += numericValue;
});
// 합계를 해당 열의 footer에 업데이트 (0일 경우 공백)
var formattedTotal = total === 0 ? '' : total.toLocaleString();
$('#totalCol' + colIndex).text(formattedTotal); // screen은 totalCol입니다.
});
}
// 철재스라트 계산식
// 철재스라트 계산식
// 철재스라트 계산식
// 철재스라트 계산식
function addRow_slat(tableBody, rowData, typebutton, afterRow = null, autoData = {}) {
// console.log('rowData',rowData);
var newRow = $('<tr>');
var rowCount = tableBody.children('tr').length + 1;
newRow.append('<td class="text-center" style="width:80px;">' +
'<div class="d-flex justify-content-center align-items-center mt-1">' +
'<span class="text-primary fs-4 viewNoBtn add-row-slat ms-1 me-1" data-table="' + tableBody.closest('table').attr('id') + '">+</span>' +
'<span class="text-danger fs-4 viewNoBtn remove-row ms-2 me-1">-</span>' +
'<span class="text-success fs-6 viewNoBtn copy-row ms-2"><i class="bi bi-copy"></i></span>' +
'</div></td>');
newRow.append('<td class="text-center" style="width:50px;">' +
'<div class="d-flex flex-column justify-content-center">' +
'<input type="text" name="col1[]" style="width:50px;" class="form-control text-center col-input col1" readonly autocomplete="off">' +
'</div></td>');
for (let i = 2; i <= 77; i++) {
let width = [2, 3, 4, 5, 7, 21, 23, 24, 30,31, 37, 46].includes(i) ? '85px' : '50px';
width = [6].includes(i) ? '170px' : width;
width = [19].includes(i) ? '60px' : width;
width = [24,33,44,47,50,54,63].includes(i) ? '50px' : width; // 화면에 안보이는 수준이면 5px 적용, 검증할때는 50px로 한다.
if (i === 9) {
newRow.append('<td class="text-center" style="width:200px;">' +
'<div class="d-flex justify-content-center align-items-center">' +
'<input type="text" name="col9[]" style="width:' + width + ';" class="form-control text-center col' + i + ' col-input col9-input" value="' + (rowData['col9'] || '') + '" autocomplete="off">' +
'</div></td>');
}
else if (i === 10) { // 스크린 제작사이즈 가로, 세로 설정 추가 250630
// 원래 1개의 열인데, 3개 생성함
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col10_SW[]" style="width:' + width + ';" class="form-control text-center text-primary fw-bold col-input col10_SW-input col10_SW" value="' + (rowData['col10_SW'] || rowData['col10'] || '') + '" autocomplete="off">' +
'</div></td>');
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col11_SH[]" style="width:' + width + ';" class="form-control text-center text-primary fw-bold col-input col11_SH-input col11_SH" value="' + (rowData['col11_SH'] || rowData['col11'] || '') + '" autocomplete="off">' +
'</div></td>');
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col10[]" style="width:' + width + ';" class="form-control text-center col-input col10-input col10" value="' + (rowData['col10'] || '') + '" autocomplete="off">' +
'</div></td>');
}
else if (i === 15) {
// 15번 오픈사이즈 높이 옆에 버튼생성
newRow.append('<td class="text-center" style="width:200px;">' +
'<div class="d-flex justify-content-center align-items-center">' +
'<input type="text" name="col15[]" style="width:' + width + ';" class="form-control text-center col' + i + ' col-input col15-input" value="' + (rowData['col15'] || '') + '" autocomplete="off">' +
'<button type="button" class="btn btn-sm btn-outline-primary ms-1 calc-slat-btn viewNoBtn" title="자동산출"><i class="bi bi-calculator-fill"></i></button>' +
'</div></td>');
}
else if (i === 37) {
// col37 셔터박스는 4가지 표현
let col37Value = rowData['col37'] || '650*550';
let col37CustomValue = rowData['col37_custom'] || '';
let col37frontbottom = rowData['col37_frontbottom'] || '';
let col37railwidth = rowData['col37_railwidth'] || '';
let col37boxdirectionValue = rowData['col37_boxdirection'] || '';
// console.log('col37 표현',col37Value);
let selectHtml = '<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode me-2 col-select col' + i + '-select col' + i +' ">' +
'<option value=""' + (col37Value === '' ? ' selected' : '') + '>(없음)</option>' +
'<option value="650*500"' + (col37Value === '650*500' ? ' selected' : '') + '>650*500</option>' +
'<option value="650*550"' + (col37Value === '650*550' ? ' selected' : '') + '>650*550</option>' +
'<option value="700*550"' + (col37Value === '700*550' ? ' selected' : '') + '>700*550</option>' +
'<option value="700*600"' + (col37Value === '700*600' ? ' selected' : '') + '>700*600</option>' +
'<option value="780*600"' + (col37Value === '780*600' ? ' selected' : '') + '>780*600</option>' +
'<option value="780*650"' + (col37Value === '780*650' ? ' selected' : '') + '>780*650</option>' +
'<option value="custom"' + (col37Value === 'custom' ? ' selected' : '') + '>직접 입력</option>' +
'</select>';
let inputHtml = '<input type="text" name="col' + i + '_custom' + '[]" class="form-control text-center col37_custom col-input col' + i + '-custom-input" style="width:' + width + ';' +
(col37Value === 'custom' ? '' : 'display:none;') + '" value="' + (col37Value === 'custom' ? col37CustomValue : '') + '" placeholder="직접 입력">';
let inputHtmlfrontbottom = '<input type="text" name="col' + i + '_frontbottom' + '[]" class="form-control text-center col37_frontbottom col-input col' + i + '-frontbottom-input me-1 ms-1" style="width:50px;"' +
' value="' + (col37frontbottom === '' ? '50' : col37frontbottom) + '" placeholder="전면밑">';
let inputHtmlrailwidth = '<input type="text" name="col' + i + '_railwidth' + '[]" class="form-control text-center col37_railwidth col-input col' + i + '-railwidth-input me-1 ms-1" style="width:50px;"' +
' value="' + (col37railwidth === '' ? '75' : col37railwidth) + '" placeholder="레일폭">';
let selectHtmlboxdirection = '<select name="col' + i + '_boxdirection[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode me-1 ms-1 col-select col' + i +'_boxdirection">' +
'<option value="양면"' + (col37boxdirectionValue === '양면' ? ' selected' : '') + '>양면</option>' +
'<option value="밑면"' + (col37boxdirectionValue === '밑면' ? ' selected' : '') + '>밑면</option>' +
'<option value="후면"' + (col37boxdirectionValue === '후면' ? ' selected' : '') + '>후면</option>'
'</select>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center align-items-center">' +
selectHtml + inputHtml + inputHtmlfrontbottom + inputHtmlrailwidth + selectHtmlboxdirection +
'</div></td>');
// select의 값이 변경될 때, '직접 입력' 선택 시 input 필드를 보여줌
newRow.find('.col' + i + '-select').on('change', function() {
var selectedValue = $(this).val();
var customInput = $(this).closest('td').find('.col' + i + '-custom-input');
if (selectedValue === 'custom') {
customInput.show();
customInput.focus();
} else {
customInput.hide();
customInput.val('');
}
});
}
else if (i === 46) { // 마구리 날개
// col46 기존 처리
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col46[]" style="width:' + width + ';" class="form-control text-center col-input col46-input" value="' + rowData['col46'] + '" autocomplete="off">' +
'</div></td>');
// col46_wing 추가
let wingValue = (typeof rowData['col46_wing'] !== 'undefined' && rowData['col46_wing'] !== null && rowData['col46_wing'] !== '')
? rowData['col46_wing']
: ($('#maguriWing').val() || '');
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col46_wing[]" style="width:60px;" class="form-control text-center col-input col46Wing-input" value="' + wingValue + '" autocomplete="off">' +
'</div></td>');
continue;
}
else if ([4].includes(i)) {
// 기존 옵션 설정 코드 유지
let options = '<option value="(없음)">(없음)</option>';
steelModelOptions.forEach(function(model) { // '철재'스라트
var selected = (rowData['col' + i] === model) ? ' selected' : '';
options += '<option value="' + model + '"' + selected + '>' + model + '</option>';
});
newRow.append(
'<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col-select col' + i + '-select changeModel">' +
options +
'</select>' +
'</div>' +
'</td>'
);
// 투시창 선택 옵션 기능 추가
options = '';
let col4_quartzValue = rowData['col4_quartz'] || '';
options = '<option value="(없음)">(없음)</option>' +
'<option value="투시창"' + (col4_quartzValue === '투시창' ? ' selected' : '') + '>투시창</option>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col4_quartz[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col-select col4_quartz col4_quartz-select" >' +
options +
'</select></div></td>');
}
else if ([6, 7, 20, 22].includes(i)) {
// 기존 코드 유지
let options = '';
if (i === 6)
{
options = '<option value="(없음)">(없음)</option>' +
'<option value="벽면형(130*75)"' + (rowData['col' + i] === '벽면형(130*75)' ? ' selected' : '') + '>벽면형(130*75)</option>' +
'<option value="측면형(130*125)"' + (rowData['col' + i] === '측면형(130*125)' ? ' selected' : '') + '>측면형(130*125)</option>' +
'<option value="혼합형(130*75)(130*125)"' + (rowData['col' + i] === '혼합형(130*75)(130*125)' ? ' selected' : '') + '>혼합형(130*75)(130*125)</option>';
}
else if (i === 7)
{
options = '<option value="(없음)">(없음)</option>' +
'<option value="SUS마감" ' + (rowData['col' + i] === 'SUS마감' ? ' selected' : '') + '>SUS마감</option>' +
'<option value="EGI마감" ' + (rowData['col' + i] === 'EGI마감' ? ' selected' : '') + '>EGI마감</option>';
}
else if (i === 20) {
const capacityOptions = {
'530*320': ['300K', '400K'],
'600*350': ['500K', '600K'],
'690*390': ['800K', '1000K','방폭모터']
};
let selectedValue = rowData['col' + i] || '';
options = '<option value="(없음)">(없음)</option>'; // ❗ 여기에서 let 제거
for (const motors of Object.values(capacityOptions)) {
for (const motor of motors) {
options += '<option value="' + motor + '"' +
(selectedValue === motor ? ' selected' : '') + '>' +
motor + '</option>';
}
}
}
else if (i === 22) {
options = '<option value=""> (없음) </option>' +
'<option value="4"' + (rowData['col' + i] === '4' ? ' selected' : '') + '>4</option>' +
'<option value="5"' + (rowData['col' + i] === '5' ? ' selected' : '') + '>5</option>' +
'<option value="6"' + (rowData['col' + i] === '6' ? ' selected' : '') + '>6</option>' +
'<option value="8"' + (rowData['col' + i] === '8' ? ' selected' : '') + '>8</option>';
}
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col' + i + ' col-select col' + i + '-select">' +
options +
'</select></div></td>');
}
else if ([19].includes(i))
{
// 기존 코드 유지
let options = '';
// 경동,대한,기타로 계산서 발행 주체를 선택함
options = '<option value="(없음)"> (없음) </option>' +
'<option value="경동(견적가포함)" ' + (rowData['col19_brand'] === '경동(견적가포함)' ? ' selected' : '') + '>경동(견적가포함)</option>' +
'<option value="대한" ' + (rowData['col19_brand'] === '대한' ? ' selected' : '') + '>대한</option>' +
'<option value="기타" ' + (rowData['col19_brand'] === '기타' ? ' selected' : '') + '>기타</option>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '_brand[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col' + i + '_brand col-select ">' +
options +
'</select></div></td>');
options = '<option value="(없음)">(없음)</option>' +
'<option value="220V" ' + (rowData['col' + i] === '220V' ? ' selected' : '') + '>220V</option>' +
'<option value="380V" ' + (rowData['col' + i] === '380V' ? ' selected' : '') + '>380V</option>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col' + i + '[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col' + i + ' col-select col' + i + '-select">' +
options +
'</select></div></td>');
// 유선/무선 선택
options = '';
options = '<option value="(없음)">(없음)</option>' +
'<option value="유선" ' + (rowData['col19_wireless'] === '유선' ? ' selected' : '') + '>유선</option>' +
'<option value="무선" ' + (rowData['col19_wireless'] === '무선' ? ' selected' : '') + '>무선</option>';
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<select name="col19_wireless[]" style="font-size:0.7rem; height:30px;" class="form-select w-auto text-center viewmode col19_wireless col-select">' +
options +
'</select></div></td>');
}
else if ([5, 12, 13, 24, 38, 49, 52,53,54, 55,56,57,58, 59, 60, 73].includes(i))
{
// 기존 코드 유지
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col' + i + '[]" style="width:' + width + ';" class="form-control text-center col' + i + ' col-input col' + i + '-input" readonly value="' + (rowData['col' + i] || '') + '" autocomplete="off">' +
'</div></td>');
} else {
// 기본 텍스트 필드 추가
newRow.append('<td class="text-center">' +
'<div class="d-flex justify-content-center">' +
'<input type="text" name="col' + i + '[]" style="width:' + width + ';" class="form-control text-center col' + i +' col-input col' + i + '-input" value="' + (rowData['col' + i] || '') + '" autocomplete="off">' +
'</div></td>');
}
}
// 기준 행 다음에 삽입하거나, 없으면 마지막에 삽입
if (afterRow && afterRow.length) {
afterRow.after(newRow);
} else {
tableBody.append(newRow);
}
// KQTS01 선택 시 투시창 옵션 활성화 로직
newRow.find('.col4-select').on('change', function() {
const selectedValue = $(this).val();
const col4QuartzSelect = newRow.find('.col4_quartz');
if (selectedValue === 'KQTS01') {
col4QuartzSelect.prop('disabled', false); // 활성화
} else {
col4QuartzSelect.prop('disabled', true).val(''); // 비활성화 및 선택 해제
}
});
// col4 모델 변경시
newRow.find('.col4-select').on('input change', function() {
var row = $(this).closest('tr');
modelChange_slat(row);
});
// col22 브라켓 인치변경
newRow.find('.col22-select').on('input change', function() {
var row = $(this).closest('tr');
Slat_updateCol22_Force(row);
});
// col37 셔터박스 크기 변경시 강제로 마구리 크기 변경
newRow.find('.col37').on('input change', function() {
var row = $(this).closest('tr');
Slat_updateCol37_Force(row);
});
// col20 모터용량 변경시 적용
newRow.find('.col20-select').on('input change', function() {
var row = $(this).closest('tr');
const col20Value = row.find('.col20-select').val();
// if(col20Value === '(없음)' || col20Value === '') {
// row.find('.col10-input').val('');
// return;
// }
// 1000K는 380V만 존재함
if (col20Value === '1000K') {
row.find('.col19-select').val('380V');
}
Slat_updateCol21(row);
Slat_updateCol22(row);
});
// col18 모터회사 변경시 처리
newRow.find('.col19_brand').on('change', function() {
var row = $(this).closest('tr');
const qty = row.find('.col15-input').val();
const col19_brandValue = row.find('.col19_brand').val();
if(col19_brandValue === '기타') {
row.find('.col16-input').val('');
row.find('.col17-input').val('');
row.find('.col18-input').val('');
row.find('.col19_wireless').val('(없음)');
row.find('.col19-select').val('(없음)');
row.find('.col20-select').val('(없음)');
row.find('.col21-input').val('');
return;
}
else if (col19_brandValue === '(없음)') { // 기타일 경우
row.find('.col19_wireless').val('(없음)');
row.find('.col19-select').val('(없음)');
row.find('.col20-select').val('(없음)');
row.find('.col21-input').val('');
return;
}
else { // 경동, 대한일 경우
row.find('.col16-input').val(qty);
row.find('.col17-input').val('');
row.find('.col18-input').val(qty);
row.find('.col19').val("220V");
row.find('.col19_wireless').val("유선");
row.find('.col19_brand').val(col19_brandValue);
Slat_updateCol22(newRow); // 샤프트 인치
Slat_updateCol20(newRow); // 모터용량산출
Slat_updateCol21(newRow); // 브라켓 산출
}
});
// col37 셔터박스 크기 변경시 마구리 크기 변경
newRow.find('.col37_custom').on('input', function() {
var row = $(this).closest('tr');
Slat_updateCol37_input(row);
});
newRow.find('.col4-select').on('change', function() {
var col4Value = $(this).val();
var col5Input = $(this).closest('tr').find('.col5-input');
var col7Input = $(this).closest('tr').find('.col7-select');
});
// console.log('rowData : ' + rowData);
if(!(rowData['col15'] || '')) {
newRow.find('.col15-input').val(1);
firstinput_slat(newRow);
}
newRow.find('.col4-select').trigger('change');
newRow.find('.col6-select').trigger('change');
newRow.find('.col8-input').trigger('change');
newRow.find('.col9-input').trigger('change');
// 철재슬렛 제작사이즈 col10_SW, col11_SH 강제 변경시
newRow.find('.col10_SW-input, .col11_SH-input').on('input change', function() {
var row = $(this).closest('tr');
console.log('철재슬렛 제작사이즈 col10_SW, col11_SH 강제 변경 호출');
// 제작사이즈 변경과 같이 호출함
Slat_updateCol10and11_Force(row);
});
// col10, 11 제작사이즈 강제 변경시
newRow.find('.col10-input, .col11-input').on('input change', function() {
var row = $(this).closest('tr');
console.log('col10, 11 철재 제작사이즈 강제 변경 호출');
Slat_updateCol12and13(row); // 면적, 중량 계산
Slat_updateCol10and11_Force(row);
});
updateSerialNumbers(tableBody); // 일련번호 수정
// ① data-auto 속성 세팅 및 기존 수동편집 표시
newRow.find('input, select').each(function() {
const $el = $(this);
// name 속성에서 [] 제거
const name = $el.attr('name').replace('[]', '');
// 자동산출 스냅샷 값
const aVal = autoData[name] || '';
// 실제 로드된 값
const curVal = $el.val() || '';
// data-auto 에 저장
$el.attr('data-auto', aVal);
// 값이 다르면 수동편집된 것으로 표시
if (curVal.toString() !== aVal.toString()) {
$el.addClass('manually-edited');
}
});
newRow.find('.calc-slat-btn').on('click', function () {
if (mode !== 'view') {
Swal.fire({
title: '수량계산을 진행하시겠습니까?',
text: '기존 데이터에 덮어씁니다.',
icon: 'warning',
showCancelButton: true,
confirmButtonText: '예',
cancelButtonText: '아니오'
}).then((result) => {
if (result.isConfirmed) {
var row = $(this).closest('tr');
Slat_commonExe(row);
alertToast('산출 완료');
// --- col16, col17, col18 에 col15 곱하기 로직 추가 ---
var qty15 = parseFloat(row.find('.col15-input').val()) || 0;
['.col16-input', '.col17-input', '.col18-input'].forEach(function (selector) {
var $el = row.find(selector);
var str = $el.val();
if (str !== '') {
var v = parseFloat(str);
if (!isNaN(v)) {
$el.val(qty15);
}
}
});
// 클릭 즉시 data-auto 갱신
row.find('input, select').each(function () {
$(this)
.attr('data-auto', $(this).val())
.removeClass('manually-edited');
});
calculateAmounts();
}
});
}
});
newRow.find('.col-input, .col-select').on('input change', function() {
Slat_updateTotals();
var $el = $(this);
var autoVal = $el.attr('data-auto') || '';
var curVal = $el.val() || '';
$el.toggleClass('manually-edited', curVal.toString() !== autoVal.toString());
calculateAmounts();
});
// 전체 계산
Slat_updateTotals();
calculateAmounts();
}
function firstinput_slat(row) {
row.find('.col4-select').val('KQTS01');
row.find('.col4_quartz').val('(없음)');
row.find('.col5-input').val('철재');
row.find('.col6-select').val('벽면형(130*75)');
row.find('.col7-select').val('SUS마감');
row.find('.col19').val("220V");
row.find('.col19_wireless').val("유선");
row.find('.col19_brand').val("경동(견적가포함)");
var col15Value = row.find('.col15-input').val();
row.find('.col16-input').val(col15Value);
row.find('.col18-input').val(col15Value);
//모델 변경시킴
modelChange_slat(row);
}
// 모델변경시
function modelChange_slat(row) {
var model = row.find('.col4-select').val();
$("#model_name").val(model);
}
function Slat_commonExeFn(row) {
Slat_updateCol12and13(row);
Slat_updateCol14(row);
Slat_updateCol22(row); // 브라켓 인치를 먼저 산출한다.
Slat_updateCol20(row); // 모터 용량산출
Slat_updateCol21(row);
Slat_updateCol23(row);
Slat_updateCol24(row);
Slat_updateCol30(row); // 30,31 하부 base1, 2
Slat_updateCol32to36(row);
Slat_updateCol37(row);
Slat_updateCol38(row);
Slat_updateCol39to44(row);
Slat_updateCol45(row);
Slat_updateCol46(row); // 마구리 47번도 함께 실행됨
Slat_updateCol48(row);
Slat_updateCol49to51(row);
Slat_updateCol52to54(row);
Slat_updateCol55(row);
Slat_updateCol56to57(row);
Slat_updateCol60to71(row);
Slat_updateCol72(row);
Slat_updateCol73(row);
Slat_updateCol74to75(row);
Slat_updateCo76(row);
// Slat_updateCo77(row);
Slat_updateTotals();
}
function Slat_commonExe(row) {
Slat_updateCol10and11(row);
Slat_commonExeFn(row);
}
// 각 열에 대한 업데이트 함수들
function Slat_updateCol10and11_Force(row) {
// 제작치수 부분 제외한 공통함수 호출
Slat_commonExeFn(row);
}
// 각 열에 대한 업데이트 함수들
function Slat_updateCol10and11(row) {
var makeWidth = $("#makeWidth").val();
var makeHeight = $("#makeHeight").val();
var col8Value = parseFloat(row.find('.col8-input').val()) || 0;
var col9Value = parseFloat(row.find('.col9-input').val()) || 0;
row.find('.col10-input').val(col8Value + Number(makeWidth));
row.find('.col11-input').val(col9Value + Number(makeHeight));
row.find('.col10_SW-input').val(col8Value + Number(makeWidth));
row.find('.col11_SH-input').val(col9Value + Number(makeHeight));
}
function Slat_updateCol12and13(row) {
var col8Value = parseFloat(row.find('.col8-input').val()) || 0;
var col10Value = parseFloat(row.find('.col10-input').val()) || 0;
var col11Value = parseFloat(row.find('.col11-input').val()) || 0;
var area = (col10Value * col11Value) / 1000000;
row.find('.col12-input').val(area.toFixed(2));
var weight = (area * 25) ;
row.find('.col13-input').val(weight.toFixed(2));
}
function Slat_updateCol14(row) { // 투시창 수량
var col4_quartzValue = row.find('.col4_quartz-select').val() ; // D8에 해당하는 값 select 주의
var col4Value = row.find('.col4-select').val() ;
var col8Value = parseFloat(row.find('.col8-input').val()) || 0; // H8에 해당하는 값
var col14Input = row.find('.col14-input'); // 투시창 수량을 설정할 입력 필드
// console.log('col4Value',col4Value);
// console.log('col4_quartzValue', col4_quartzValue);
if (col4Value === "KQTS01" && col4_quartzValue === '투시창') {
if (col8Value <= 4000) {
col14Input.val(1);
} else if (col8Value > 4000 && col8Value <= 7000) {
col14Input.val(2);
} else if (col8Value > 7000 && col8Value <= 8000) {
col14Input.val(3);
} else {
col14Input.val(0); // 조건에 맞지 않으면 0 설정
}
} else {
col14Input.val(0); // D8이 "KQTS01투시창"이 아닐 때 기본값 0 설정
}
}
function Slat_updateCol20(row) {
// console.log('모터용량변경 함수 호출');
var col22Value = parseFloat(row.find('.col22-select').val()) || 0; // 샤프트 인치
var col13Value = parseFloat(row.find('.col13-input').val()) || 0; // 중량
var col20Select = row.find('.col20-select'); // 모터 용량 select
var motorCapacity = null;
// 모터 용량 산출 조건
if ((col22Value === 4 && col13Value <= 300) ||
(col22Value === 5 && col13Value <= 246) ||
(col22Value === 6 && col13Value <= 208)) {
motorCapacity = '300K';
} else if ((col22Value === 4 && col13Value > 300 && col13Value <= 400) ||
(col22Value === 5 && col13Value > 246 && col13Value <= 327) ||
(col22Value === 6 && col13Value > 208 && col13Value <= 277)) {
motorCapacity = '400K';
} else if ((col22Value === 5 && col13Value > 327 && col13Value <= 500) ||
(col22Value === 6 && col13Value > 277 && col13Value <= 424) ||
(col22Value === 8 && col13Value <= 324)) {
motorCapacity = '500K';
} else if ((col22Value === 5 && col13Value > 500 && col13Value <= 600) ||
(col22Value === 6 && col13Value > 424 && col13Value <= 508) ||
(col22Value === 8 && col13Value > 324 && col13Value <= 388)) {
motorCapacity = '600K';
} else if ((col22Value === 6 && col13Value > 600 && col13Value <= 800) ||
(col22Value === 6 && col13Value > 508 && col13Value <= 800) ||
(col22Value === 8 && col13Value > 388 && col13Value <= 611)) {
motorCapacity = '800K';
} else if ((col22Value === 6 && col13Value > 800 && col13Value <= 1000) ||
(col22Value === 8 && col13Value > 611 && col13Value <= 1000)) {
motorCapacity = '1000K';
}
// select에 값 설정 (option이 있는 경우만)
if (motorCapacity !== null && col20Select.find(`option[value="${motorCapacity}"]`).length > 0) {
col20Select.val(motorCapacity);
} else {
col20Select.val('');
}
// 1000K는 380V만 존재함
if (motorCapacity === '1000K') {
row.find('.col19-select').val('380V');
}
Slat_updateCol21(row); // 이후 단계 함수 호출
}
function Slat_updateCol21(row) {
// console.log('Slat_updateCol21 동작');
var motorValue = row.find('.col20-select').val();
var col21Input = row.find('.col21-input');
let bracketSize = '';
if (['300K', '400K'].includes(motorValue)) {
bracketSize = '530*320';
} else if (['500K', '600K'].includes(motorValue)) {
bracketSize = '600*350';
} else if (['800K', '1000K'].includes(motorValue)) {
bracketSize = '690*390';
} else {
bracketSize = '';
}
col21Input.val(bracketSize);
Slat_updateCol23(row); // 이후 작업이 있다면 유지
}
function Slat_updateCol22(row) {
var col10Value = parseFloat(row.find('.col10-input').val()) || 0; // 셔터 길이 기장
var col13Value = parseFloat(row.find('.col13-input').val()) || 0; // 중량
var col22Input = row.find('.col22-select'); // 브라켓 인치
var col59Input = row.find('.col59-input'); // 브라켓 인치
var inch = 0;
if (col10Value <= 4500) {
if (col13Value <= 400) {
inch = 4;
} else if (col13Value > 400) {
inch = 5;
}
} else if (col10Value > 4500 && col10Value <= 5600) {
if (col13Value <= 600) {
inch = 5;
} else if (col13Value > 600) {
inch = 6;
}
} else if (col10Value > 5600 && col10Value <= 7800) {
if (col13Value <= 800) {
inch = 6;
} else if (col13Value > 800) {
inch = 8;
}
} else if (col10Value > 7800 && col13Value <= 10000) {
inch = 8;
} else {
inch = 0; // 조건에 맞지 않는 경우 기본값 0
}
col22Input.val(inch);
col59Input.val(inch);
}
function Slat_updateCol22_Force(row) {
// 브라켓 인치값을 col59에 반영
var col22Value = parseFloat(row.find('.col22-select').val()) || '';
var col59Input = row.find('.col59-input');
col59Input.val(col22Value);
Slat_updateCol60to71(row); // 기존로직
var $el = col59Input;
var autoVal = $el.attr('data-auto') || '';
var curVal = $el.val() || '';
$el.toggleClass('manually-edited', curVal.toString() !== autoVal.toString());
// 총합/계산 함수 등 호출
Slat_updateTotals();
calculateAmounts();
}
function Slat_updateCol23(row) {
var col21Value = row.find('.col21-input').val();
var col23Input = row.find('.col23-input');
if (col21Value === "380*180") {
col23Input.val("40*40*380");
} else if (col21Value === "530*320") {
col23Input.val("50*50*530");
} else if (col21Value === "600*350") {
col23Input.val("50*50*600");
} else if (col21Value === "690*390") {
col23Input.val("50*50*690");
} else {
col23Input.val("50*50*690");
}
}
function Slat_updateCol24(row) {
var col9Value = parseFloat(row.find('.col9-input').val()) || 0;
var col24Input = row.find('.col24-input');
col24Input.val(col9Value + 250);
Slat_updateCol25to29(row);
}
function Slat_updateCol25to29(row) {
var col15Value = parseFloat(row.find('.col15-input').val()) || 0; // 셔터수량
var col24Value = parseFloat(row.find('.col24-input').val()) || 0;
var col25Input = row.find('.col25-input');
col25Input.val(col24Value <= 2438 ? 2 : 0);
var col26Input = row.find('.col26-input');
col26Input.val((col24Value > 2438 && col24Value <= 3000) ? 2*col15Value : 0);
var col27Input = row.find('.col27-input');
col27Input.val((col24Value > 3000 && col24Value <= 3500) ? 2*col15Value : 0);
var col28Input = row.find('.col28-input');
col28Input.val((col24Value > 3500 && col24Value <= 4000) ? 2*col15Value : 0);
var col29Input = row.find('.col29-input');
col29Input.val((col24Value > 4000 && col24Value <= 4300) ? 2*col15Value : 0);
Slat_updateCol30(row);
}
function Slat_updateCol30(row) {
var col6Value = row.find('.col6-select').val();
var col30Input = row.find('.col30-input');
var col31Input = row.find('.col31-input');
if (col6Value === "벽면형(130*75)") {
col30Input.val("140*85");
col31Input.val("140*85");
} else if (col6Value === "측면형(130*155)") {
col30Input.val("140*165");
col31Input.val("140*165");
} else if (col6Value === "측면형(130*125)") {
col30Input.val("140*135");
col31Input.val("140*135");
} else if (col6Value === "벽면형(120*70)") {
col30Input.val("130*80");
col31Input.val("130*80");
} else if (col6Value === "측면형(120*120)") {
col30Input.val("130*130");
col30Input.val("130*130");
} else if (col6Value === "와이드벽면형(180*70)") {
col30Input.val("190*80");
col31Input.val("190*80");
} else if (col6Value === "와이드측면형(180*120)") {
col30Input.val("190*130");
col31Input.val("190*130");
} else if (col6Value === "혼합형(130*75)(130*125)") {
col30Input.val("140*85");
col31Input.val("140*135");
} else if (col6Value === "혼합형(120*70)(120*120)") {
col30Input.val("130*80");
col31Input.val("130*130");
} else if (col6Value === "와이드혼합형(180*70)(180*120)") {
col30Input.val("190*80");
col31Input.val("190*130");
} else {
col30Input.val(0); // 조건에 맞지 않으면 0 설정
}
}
function Slat_updateCol32to36(row) {
var col25Value = parseFloat(row.find('.col25-input').val() ) || 0;
var col26Value = parseFloat(row.find('.col26-input').val() ) || 0;
var col27Value = parseFloat(row.find('.col27-input').val() ) || 0;
var col28Value = parseFloat(row.find('.col28-input').val() ) || 0;
var col29Value = parseFloat(row.find('.col29-input').val() ) || 0;
row.find('.col32-input').val(col25Value);
row.find('.col33-input').val(col26Value);
row.find('.col34-input').val(col27Value);
row.find('.col35-input').val(col28Value);
row.find('.col36-input').val(col29Value);
}
function Slat_updateCol37(row) {
var col37Input = row.find('.col37-select');
var col46Input = row.find('.col46-input');
var col21Value = row.find('.col21-input').val(); // 브라켓 크기
// console.log('셔터크기변경 셔터박스 값 호출');
var currentCol37 = col37Input.val();
if (currentCol37 !== 'custom' ) { // 직접입력이 아닌경우 'custom'
if (col21Value === "530*320") {
if (currentCol37 !== "650*550" && currentCol37 !== "650*500") {
col37Input.val("650*550");
}
} else if (col21Value === "600*350") {
if (currentCol37 !== "700*600" && currentCol37 !== "700*550") {
col37Input.val("700*600");
}
} else if (col21Value === "690*390") {
if (currentCol37 !== "780*650" && currentCol37 !== "780*600") {
col37Input.val("780*650");
}
}
}
// console.log('currentCol37', currentCol37 );
var col37Value = col37Input.val();
if (col37Value && col37Value.includes('*')) {
var dimensions = col37Value.split('*');
var width = parseFloat(dimensions[0]);
var height = parseFloat(dimensions[1]);
var newWidth = width + 5;
var newHeight = height + 5;
col46Input.val(newWidth + '*' + newHeight);
}
}
function Slat_updateCol37_Force(row) {
// console.log('강제로 셔터박스 강제 호출');
var col37Input = row.find('.col37');
var col46Input = row.find('.col46-input');
var col37Value = col37Input.val();
if(col37Value !== '') {
// col31Value가 undefined 또는 null이 아닌지 확인
if (col37Value && col37Value.includes('*')) {
var dimensions = col37Value.split('*');
var width = parseFloat(dimensions[0]); // 첫 번째 값
var height = parseFloat(dimensions[1]); // 두 번째 값
// 두 값에 +5를 적용
var newWidth = width + 5;
var newHeight = height + 5;
// 새로운 값 설정
col46Input.val(newWidth + '*' + newHeight);
}
}
else
{
row.find('.col37_frontbottom').val('');
row.find('.col37_railwidth').val('');
}
}
// 수동입력시 마구리 변경하는 로직
function Slat_updateCol37_input(row) {
// console.log('강제로 마구리크기 수정 호출');
var col37Input = row.find('.col37_custom');
var col46Input = row.find('.col46-input');
var col37Value = col37Input.val();
if (col37Value && col37Value.includes('*')) {
var dimensions = col37Value.split('*');
var width = parseFloat(dimensions[0]); // 첫 번째 값
var height = parseFloat(dimensions[1]); // 두 번째 값
// 두 값에 +5를 적용
var newWidth = width + 5;
var newHeight = height + 5;
// 새로운 값 설정
col46Input.val(newWidth + '*' + newHeight);
}
}
function Slat_updateCol38(row) {
var col8Value = parseFloat(row.find('.col8-input').val()) || 0;
var col38Input = row.find('.col38-input');
col38Value = col8Value + 240; // 철재는 기본 240, 스크린은 220
col38Input.val(col38Value);
}
function Slat_updateCol39to44(row) {
var col15Value = parseFloat(row.find('.col15-input').val()) || 0; // 셔터수량
var col38Value = parseFloat(row.find('.col38-input').val() ) || 0;
var col39Value = (col38Value <= 1219) ? 1*col15Value :
(col38Value > 4150 && col38Value <= 4219) ? 1*col15Value :
(col38Value > 4219 && col38Value <= 4719) ? 1*col15Value :
(col38Value > 4876 && col38Value <= 5219) ? 1*col15Value :
(col38Value > 5219 && col38Value <= 5369) ? 1*col15Value :
(col38Value > 9026 && col38Value <= 9219) ? 1*col15Value :
0;
row.find('.col39-input').val(col39Value);
var col40Value = (col38Value > 1219 && col38Value <= 2438) ? 1*col15Value :
(col38Value > 4719 && col38Value <= 4876) ? 2*col15Value :
(col38Value > 5369 && col38Value <= 5938) ? 1*col15Value :
(col38Value > 6000 && col38Value <= 6438) ? 1*col15Value :
(col38Value > 6500 && col38Value <= 6588) ? 1*col15Value :
(col38Value > 8300 && col38Value <= 8376) ? 2*col15Value :
(col38Value > 8376 && col38Value <= 8438) ? 1*col15Value :
(col38Value > 8438 && col38Value <= 8876) ? 2*col15Value :
(col38Value > 9000 && col38Value <= 9026) ? 2*col15Value :
(col38Value > 9219 && col38Value <= 9438) ? 1*col15Value :
(col38Value > 10150 && col38Value <= 10738) ? 1*col15Value :
0;
row.find('.col40-input').val(col40Value);
var col41Value = (col38Value > 2438 && col38Value <= 3000) ? 1*col15Value :
(col38Value > 4150 && col38Value <= 4219) ? 1*col15Value :
(col38Value > 5369 && col38Value <= 5438) ? 1*col15Value :
(col38Value > 5938 && col38Value <= 6000) ? 2*col15Value :
(col38Value > 6438 && col38Value <= 6500) ? 1*col15Value :
(col38Value > 7000 && col38Value <= 7150) ? 1*col15Value :
(col38Value > 8376 && col38Value <= 8438) ? 2*col15Value :
(col38Value > 8876 && col38Value <= 9000) ? 3*col15Value :
(col38Value > 9438 && col38Value <= 10150) ? 2*col15Value :
(col38Value > 10738 && col38Value <= 11000) ? 1*col15Value :
0;
row.find('.col41-input').val(col41Value);
var col42Value = (col38Value > 3000 && col38Value <= 3500) ? 1*col15Value :
(col38Value > 4219 && col38Value <= 4719) ? 1*col15Value :
(col38Value > 5438 && col38Value <= 5938) ? 1*col15Value :
(col38Value > 6438 && col38Value <= 6500) ? 1*col15Value :
(col38Value > 6588 && col38Value <= 7000) ? 2*col15Value :
(col38Value > 7150 && col38Value <= 7650) ? 1*col15Value :
(col38Value > 8300 && col38Value <= 8376) ? 1*col15Value :
(col38Value > 9219 && col38Value <= 9438) ? 2*col15Value :
(col38Value > 9438 && col38Value <= 9500) ? 1*col15Value :
0;
row.find('.col42-input').val(col42Value);
var col43Value = (col38Value > 3500 && col38Value <= 4000) ? 1*col15Value :
(col38Value > 4876 && col38Value <= 5219) ? 1*col15Value :
(col38Value > 6000 && col38Value <= 6438) ? 1*col15Value :
(col38Value > 7150 && col38Value <= 7500) ? 1*col15Value :
(col38Value > 7650 && col38Value <= 8000) ? 2*col15Value :
(col38Value > 8000 && col38Value <= 8150) ? 1*col15Value :
(col38Value > 8438 && col38Value <= 8876) ? 1*col15Value :
(col38Value > 9026 && col38Value <= 9219) ? 2*col15Value :
(col38Value > 9500 && col38Value <= 10000) ? 1*col15Value :
(col38Value > 10150 && col38Value <= 10438) ? 2*col15Value :
(col38Value > 10738 && col38Value <= 11000) ? 2*col15Value :
0;
row.find('.col43-input').val(col43Value);
var col44Value = (col38Value > 4000 && col38Value <= 4150) ? 1*col15Value :
(col38Value > 5219 && col38Value <= 5369) ? 1*col15Value :
(col38Value > 6500 && col38Value <= 6588) ? 1*col15Value :
(col38Value > 7000 && col38Value <= 7150) ? 1*col15Value :
(col38Value > 7500 && col38Value <= 7650) ? 1*col15Value :
(col38Value > 8000 && col38Value <= 8150) ? 1*col15Value :
(col38Value > 8150 && col38Value <= 8300) ? 2*col15Value :
(col38Value > 9000 && col38Value <= 9026) ? 1*col15Value :
(col38Value > 10000 && col38Value <= 10150) ? 1*col15Value :
(col38Value > 10438 && col38Value <= 10738) ? 2*col15Value :
0;
row.find('.col44-input').val(col44Value);
}
function Slat_updateCol45(row) {
var col15Value = parseFloat(row.find('.col15-input').val()) || 0; // 셔터수량
var col38Value = parseFloat(row.find('.col38-input').val()) || 0; // AR8에 해당하는 값
var col45Input = row.find('.col45-input');
// ROUNDUP(AR8/1219, 0) 계산
var roundedResult = Math.ceil(col38Value / 1219);
col45Input.val(roundedResult); // 계산된 ROUNDUP 결과 적용
}
function Slat_updateCol46(row) {
var col15Value = parseFloat(row.find('.col15-input').val()) || 0; // 셔터수량
var col46Input = row.find('.col46-input');
var col47Input = row.find('.col47-input');
// col37Value 값 설정
var col37Value = row.find('.col37-select').val(); // 셔터박스크기 (예: "500*350")
if (col37Value === 'custom') { // custom 직접 입력 value가 '직접입력'이다.
col37Value = row.find('.col37_custom').val();
}
// col37Value 값 분리 및 계산
var result;
if (col37Value.includes('*')) {
var parts = col37Value.split('*'); // "*" 기준으로 나누기
var leftValue = parseInt(parts[0]) || 0; // 좌측 값
var rightValue = parseInt(parts[1]) || 0; // 우측 값
result = (leftValue + 5) + '*' + (rightValue + 5); // 각 값에 5를 더하고 다시 조합
} else {
result = "0"; // 잘못된 값 처리
}
col46Input.val(result); // col46Input에 설정된 값 적용
col47Input.val(col15Value * 2); // col47Input에 셔터수량 * 2 값 설정
}
function Slat_updateCol48(row) {
// 셔터 연기차단재 W80 3000mm
var col15Value = parseFloat(row.find('.col15-input').val()) || 0; // 셔터수량
var col38Value = parseFloat(row.find('.col38-input').val()) || 0; // AR8에 해당
var col48Input = row.find('.col48-input');
// ROUNDDOWN(AR8*2/3000+1,0)을 JavaScript로 변환
var calculatedValue = Math.floor((col38Value * 2 / 3000) + 1);
col48Input.val(calculatedValue * col15Value); // 결과에 셔터수량 곱셈 적용
}
function Slat_updateCol49to51(row) {
// 스크린에만 해당됨 (하단마감재 하장바)
var col8Value = parseFloat(row.find('.col8-input').val()) || 0; // 셔터 오픈사이즈 (가로)
var col15Value = parseFloat(row.find('.col15-input').val()) || 0; // 셔터수량
var col49Input = row.find('.col49-input');
var col50Input = row.find('.col50-input');
var col51Input = row.find('.col51-input');
col49Input.val(col8Value); // 기본값 설정
// col50Input 계산
var col50Qty = 0;
if (col8Value <= 3000) {
col50Qty = 1;
} else if (col8Value > 4000 && col8Value <= 6000) { // 4000 초과로 수정
col50Qty = 2;
} else if (col8Value > 6000 && col8Value <= 7000) {
col50Qty = 1;
} else if (col8Value > 8000 && col8Value <= 9000) {
col50Qty = 3;
} else if (col8Value > 9000 && col8Value <= 10000) {
col50Qty = 2;
} else if (col8Value > 10000 && col8Value <= 11000) {
col50Qty = 1;
}
col50Input.val(col50Qty * col15Value); // col50 산출 수량에 셔터수량 곱셈 적용
var col51Qty = 0;
if (col8Value > 3000 && col8Value <= 4000) {
col51Qty = 1;
} else if (col8Value > 6000 && col8Value <= 7000) {
col51Qty = 1;
} else if (col8Value > 7000 && col8Value <= 8000) {
col51Qty = 2;
} else if (col8Value > 9000 && col8Value <= 10000) {
col51Qty = 1;
} else if (col8Value > 10000 && col8Value <= 11000) {
col51Qty = 2;
} else if (col8Value > 11000 && col8Value <= 12000) {
col51Qty = 3;
}
col51Input.val(col51Qty * col15Value); // col51 산출 수량에 셔터수량 곱셈 적용
}
function Slat_updateCol52to54(row) {
// 스크린에만 해당됨 (하단마감재 엘바)
var col52Input = row.find('.col52-input');
var col53Input = row.find('.col53-input');
var col54Input = row.find('.col54-input');
col52Input.val(0); // 기본값 설정
col53Input.val(0); // 기본값 설정
col54Input.val(0); // 기본값 설정
}
function Slat_updateCol55(row) {
// 스크린에만 해당됨 (하단마감재 보강평철)
var col55Input = row.find('.col55-input');
col55Input.val(0); // 기본값 설정
}
function Slat_updateCol56to57(row) {
// 스크린에만 해당됨 (하단마감재 보강평철)
var col56Input = row.find('.col56-input');
var col57Input = row.find('.col57-input');
col56Input.val(0); // 기본값 설정
col57Input.val(0); // 기본값 설정
}
function Slat_updateCol58(row) {
var col58Input = row.find('.col58-input'); // 12T 무게평철 스크린에만 해당됨 (철재는 해당없음)
col58Input.val(0);
}
function Slat_updateCol59(row) {
var col10Value = parseFloat(row.find('.col10-input').val()) || 0; // 셔터 길이 기장
var col13Value = parseFloat(row.find('.col13-input').val()) || 0; // 중량
var col59Input = row.find('.col59-input');
if (col10Value <= 4500) {
if (col13Value <= 400) {
col59Input.val(4);
} else if (col13Value > 400) {
col59Input.val(5);
}
} else if (col10Value > 4500 && col10Value <= 5600) {
if (col13Value <= 600) {
col59Input.val(5);
} else if (col13Value > 600) {
col59Input.val(6);
}
} else if (col10Value > 5600 && col10Value <= 7800) {
if (col13Value <= 800) {
col59Input.val(6);
} else if (col13Value > 800) {
col59Input.val(8);
}
} else if (col10Value > 7800 && col13Value <= 10000) {
col59Input.val(8);
} else {
col59Input.val(0); // 조건에 맞지 않는 경우 기본값 0
}
}
function Slat_updateCol60to71(row) {
var col15Value = parseFloat(row.find('.col15-input').val()) || 0; // 셔터수량
var col59Value = parseFloat(row.find('.col22-select').val()) || 0; // 브라켓인치 샤프트 인치
var col10Value = parseFloat(row.find('.col10-input').val()) || 0; // 제작사이즈 가로
// console.log('샤프트 길이산출',col10Value);
row.find('.col61-input').val((col59Value === 4 && col10Value <= 3050) ? col15Value : 0);
row.find('.col62-input').val((col59Value === 4 && col10Value > 3050 && col10Value <= 4550) ? col15Value : 0);
row.find('.col63-input').val((col59Value === 4 && col10Value > 4550 && col10Value <= 6050) ? col15Value : 0);
row.find('.col64-input').val((col59Value === 5 && col10Value <= 5900 ) ? col15Value : 0);
row.find('.col65-input').val((col59Value === 5 && col10Value > 5900 && col10Value <= 6900) ? col15Value : 0);
row.find('.col66-input').val((col59Value === 5 && col10Value > 6900 && col10Value <= 8250) ? col15Value : 0);
row.find('.col67-input').val(0); // 철재는 0
row.find('.col68-input').val((col59Value === 6 && col10Value <= 6000) ? col15Value : 0);
row.find('.col69-input').val((col59Value === 6 && col10Value > 6000 && col10Value <= 7000) ? col15Value : 0);
row.find('.col70-input').val((col59Value === 6 && col10Value > 7000 && col10Value <= 7800) ? col15Value : 0);
row.find('.col71-input').val((col59Value === 8 ) ? col15Value : 0);
}
function Slat_updateCol72(row) {
var col38Value = parseFloat(row.find('.col38-input').val()) || 0; // 셔터박스 사이즈
var col72Input = row.find('.col72-input');
col72Input.val((col38Value <= 1600) ? 3 :
(col38Value <= 2800) ? 4 :
(col38Value <= 4000) ? 5 :
(col38Value <= 5200) ? 6 :
(col38Value <= 6400) ? 7 :
(col38Value <= 7600) ? 8 :
(col38Value <= 8800) ? 9 :
(col38Value <= 10000) ? 10 :
(col38Value <= 12000) ? 11 : 0);
}
function Slat_updateCol73(row) {
var col38Value = parseFloat(row.find('.col38-input').val()) || 0; // 서터박스 사이즈
var col72Value = parseFloat(row.find('.col72-input').val()) || 0;
row.find('.col73-input').val(col38Value + 3000 * col72Value);
}
function Slat_updateCol74to75(row) {
var col15Value = parseFloat(row.find('.col15-input').val()) || 0; // 셔터수량
var col73Value = parseFloat(row.find('.col73-input').val()) || 0;
var col74Input = row.find('.col74-input');
col74Input.val((col73Value <= 9000) ? 3 * col15Value:
(col73Value > 9000 && col73Value <= 12000) ? 4 * col15Value:
(col73Value > 12000 && col73Value <= 15000) ? 5 * col15Value :
(col73Value > 15000 && col73Value <= 18000) ? 6 * col15Value : 0) ;
var col75Input = row.find('.col75-input');
col75Input.val((col73Value > 18000 && col73Value <= 24000) ? 4 * col15Value :
(col73Value > 24000 && col73Value <= 30000) ? 5 * col15Value :
(col73Value > 30000 && col73Value <= 36000) ? 6 * col15Value :
(col73Value > 36000 && col73Value <= 42000) ? 7 * col15Value :
(col73Value > 42000 && col73Value <= 48000) ? 8 * col15Value : 0) ;
}
function Slat_updateCo76(row) {
// 조인트바
var col15Value = parseFloat(row.find('.col15-input').val()) || 0; // 셔터수량
var col10Value = parseFloat(row.find('.col10-input').val()) || 0; // 제작사이즈 (가로)
var col76Input = row.find('.col76-input');
console.log('조인트바 계산 col10Value : ', col10Value);
console.log('조인트바 계산 col15Value : ', col15Value);
var calculatedValue = 2 + Math.floor((col10Value - 500) / 1000);
col76Input.val(calculatedValue * col15Value);
console.log('조인트바 계산 col76 : ', col76Input.val());
}
function Slat_updateTotals() {
var sumColumns = [16, 17, 18, 19, 20, 21, 22, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47, 48, 49, 50, 51, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84];
sumColumns.forEach(function (colIndex) {
var total = 0;
$('#estimateSlatTable tbody tr').each(function () {
var $cell = $(this).find('td').eq(colIndex - 1);
var val = '';
if ($cell.find('input').length > 0) {
val = $cell.find('input').val() || '';
} else if ($cell.find('select').length > 0) {
val = $cell.find('select').val() || '';
}
var numericValue = parseFloat(val.toString().replace(/,/g, '')) || 0;
total += numericValue;
});
// 합계를 해당 열의 footer에 업데이트 (0일 경우 공백)
var formattedTotal = total === 0 ? '' : total.toLocaleString();
$('#estimateSlattotalCol' + colIndex).text(formattedTotal);
});
}
</script>