2536 lines
110 KiB
PHP
2536 lines
110 KiB
PHP
|
|
<?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>
|