결제 팝업 수정중

This commit is contained in:
hylee 2024-05-21 10:05:53 +09:00
parent e2431c4672
commit 4d6af35c42
3 changed files with 175 additions and 103 deletions

View File

@ -205,7 +205,7 @@ public class SelectTag extends SimpleTagSupport {
if (codeList != null) {
for (CmmnDetailCode code : codeList) {
String cd = code.getCode();
System.out.println("cd : "+ cd);
// System.out.println("cd : "+ cd);
boolean flag = true;
// 포함하는코드가 존재한다면..
if(CollectionUtils.isNotEmpty(includeSet)){
@ -234,11 +234,14 @@ public class SelectTag extends SimpleTagSupport {
}
}
}
tag.append("\n\t </select>");
} catch (Exception e) {
e.printStackTrace();
System.out.println("Exception Occured!!!");
}
// System.out.println("tag.toString() :: \n" + tag.toString());
out.print(tag.toString());
}

View File

@ -29,107 +29,176 @@
</script>
<title>수수료등록</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
$("#plus").on("click", function(){
var obj = $("#payTb > tbody");
var tr = obj.find("tr:eq(0)").clone(true);
tr.find("input:first").val('');
tr.find("select option:eq(0)").prop("selected", true);
tr.find("td:eq(2) > p").text(tr.find("select option:eq(0)").attr('cost'));
var len = obj.find("tr:not(:last)").length;
$.each(tr.find("input,select"), function(idx, obj){
obj.name = obj.name.replace(/\[.*\]/,'['+len+']');
});
tr.find("td:eq(2) > input[type=hidden]").val("<c:out value='${code[0].codeDc}' />".replace(/,/gi, ''));
obj.find("tr:last").before(tr);
// 합계 진행
setSumTotal();
});
$("select[name*=apprTy]").on("change", function(){
$(this).closest("td").next("td").find("p").text($('option:selected',this).attr('cost'));
$(this).closest("td").next("td").find("input").val($('option:selected',this).attr('cost').replace(/,/gi, ''));
setSumTotal();
});
});
function setSumTotal(){
var obj = $("#payTb > tbody");
var sum = 0;
$.each($("#payTb > tbody > tr:not(:last)"), function(idx, obj){
sum += parseInt($(this).find("td:eq(2)").text().replace(/,/gi, ''));
});
var regexp = /\B(?=(\d{3})+(?!\d))/g;
obj.find("tr:last > td:last").text(sum.toString().replace(regexp, ','));
}
function delBtnBind(thisObj){
var len = $("input[name*=apprRson]").length;
if(len <= 1 ){
alert("수수료근거가 최소 하나이상 되어야합니다.");
return false;
}else{
$(thisObj).closest("tr").remove();
setSumTotal();
}
}
function fncSave(){
var form = document.createForm;
var data = new FormData(form);
if(validatation(data)){
if(confirm("납부요청하시겠습니까?")){
$.ajax({
type:"POST",
url: '/kccadr/adjReqMgr/popup/adjReqMgrRegPaymentPopupSave.do',
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
opener.location.reload();
self.close();
}else{
alert(returnData.message);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
}
function validatation(data) {
var len = $("#payTb > tbody").find("tr:not(:last)").length;
if(len > 0 ){
for(var i=0; i < len; i++){
var price = $("[name='payment["+i+"].apprRson']").val();
if(price == ""){
alert("수수료 근거 "+(i+1)+"번째 입력 해주세요.");
return false;
}
}
}else if (len == 0) {
alert("수수료 근거를 입력해주세요.");
return false;
}
return true;
}
$(document).ready(function(){
function fncClose(){
self.close();
}
$("#plus").on("click", function(){
var obj = $("#payTb > tbody");
var tr = obj.find("tr:eq(0)").clone(true);
tr.find("input:first").val('');
tr.find("select option:eq(0)").prop("selected", true);
// Remove user-input text field if it exists
tr.find("input.user-input").remove();
// Update the p element and remove the display:none style
var pElement = tr.find("td:eq(2) > p");
pElement.text(tr.find("select option:eq(0)").attr('cost'));
pElement.removeAttr('style');
var len = obj.find("tr:not(:last)").length;
$.each(tr.find("input,select"), function(idx, obj){
obj.name = obj.name.replace(/\[.*\]/,'['+len+']');
});
tr.find("td:eq(2) > input[type=hidden]").val("<c:out value='${code[0].codeDc}' />".replace(/,/gi, ''));
obj.find("tr:last").before(tr);
// 합계 진행
setSumTotal();
});
$("select[name*=apprTy]").on("change", function(){
var cost = $('option:selected', this).attr('cost');
var nextTd = $(this).closest("td").next("td");
if (cost != "0") {
nextTd.find("p").text(formatNumber(cost)).show();
nextTd.find("input[type=hidden]").val(cost.replace(/,/g, ''));
nextTd.find("input.user-input").remove();
} else {
nextTd.find("p").hide();
if (nextTd.find("input.user-input").length === 0) {
nextTd.append('<input type="number" class="user-input" placeholder="Enter amount" oninput="updateHiddenInput(this); setSumTotal();" />');
}
nextTd.find("input[type=hidden]").val('0');
}
setSumTotal();
});
});
function updateHiddenInput(input) {
// Get the value from the input field
var value = input.value;
// Find the corresponding hidden input field
var hiddenInput = $(input).siblings('input[type="hidden"]');
// Update the value of the hidden input field
hiddenInput.val(value);
}
function formatNumber(num) {
// Ensure the input is a string and remove any existing commas
var str = num.toString().replace(/,/g, '');
// Add commas as thousand separators
var formatted = str.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return formatted;
}
function setSumTotal(){
var sum = 0;
$("#payTb > tbody > tr:not(:last)").each(function(idx, row){
var pText = $(row).find("td:eq(2) p").text();
var userInput = $(row).find("td:eq(2) input.user-input").val();
var hiddenInput = $(row).find("td:eq(2) input[type=hidden]").val();
console.log('pText :: ', pText)
console.log('userInput :: ', userInput)
console.log('hiddenInput :: ', hiddenInput)
var costText = pText || userInput || hiddenInput || "0";
if(userInput != undefined){
costText = userInput ;
}
console.log('costText : ', costText);
if (userInput) {
costText = userInput;
}
var cost = parseInt(costText.replace(/,/g, '')) || 0;
sum += cost;
});
var formattedSum = sum.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
$("#payTb > tbody > tr:last > td:last").text(formattedSum);
}
function delBtnBind(thisObj){
var len = $("input[name*=apprRson]").length;
if(len <= 1 ){
alert("수수료근거가 최소 하나이상 되어야합니다.");
return false;
} else {
$(thisObj).closest("tr").remove();
setSumTotal();
}
}
function fncSave(){
var form = document.createForm;
var data = new FormData(form);
if(validatation(data)){
if(confirm("납부요청하시겠습니까?")){
$.ajax({
type: "POST",
url: '/kccadr/adjReqMgr/popup/adjReqMgrRegPaymentPopupSave.do',
data: data,
dataType: 'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
opener.location.reload();
self.close();
} else {
alert(returnData.message);
}
},
error: function(request, status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
}
function validatation(data) {
var len = $("#payTb > tbody").find("tr:not(:last)").length;
if(len > 0 ){
for(var i = 0; i < len; i++){
var price = $("[name='payment["+i+"].apprRson']").val();
var adrCost = $("[name='payment["+i+"].adrCost']").val();
if(price == ""){
alert("수수료 근거 "+(i+1)+"번째 입력 해주세요.");
return false;
}
console.log('adrCost : ', adrCost);
if(adrCost == '' || adrCost == 0){
alert("금액 "+(i+1)+"번째를 입력 해주세요.");
return false;
}
}
} else if (len == 0) {
alert("수수료 근거를 입력해주세요.");
return false;
}
return true;
}
function fncClose(){
self.close();
}
</script>
</head>
<body>

View File

@ -464,14 +464,14 @@ function fn_countryCodeToggle(){
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>주소</p>
<p>주소 </p>
</th>
<td>
<label for="rpplPost${status.index}" class="label">우편번호 입력</label>
<form:input path="adjstRpplList[${status.index}].rpplPost" id="rpplPost${status.index}" size="20" cssClass="adr_input" value="${list.rpplPost}" readonly="${list.rpplUsrDiv eq '01' || empty list.rpplUsrDiv ? true : ''}" placeholder="우편번호입력"/>
<kc:select codeId="ITN018" defaultText="${empty list.countryCode ? '국적선택' : list.countryCode }" name="countryCode" id="countryCode" css="style='display:${list.rpplUsrDiv eq '01' || empty list.rpplUsrDiv ? 'none' : ''}' " onChange="AdjstReq.selectCountryCode(this);"/>
<button type="button" class="btnType01 btn_adr_search" onclick="fn_postCode(this);" title="새창팝업 열림" style="display: ${list.rpplUsrDiv ne '02' ? '' : 'none'}">우편번호 검색</button>
<button type="button" class="btnType01 btn_adr_search" onclick="fn_postCode(this);" title="새창팝업 열림">우편번호 검색</button>
<div class="detail_address">
<label for="rpplAddr${status.index}" class="label">주소 입력</label>
<form:input path="adjstRpplList[${status.index}].rpplAddr" id="rpplAddr${status.index}" value="${list.rpplAddr}" size="45" cssClass="searchResultAddr" readonly="${list.rpplUsrDiv eq '01' || empty list.rpplUsrDiv ? true : ''}" placeholder="주소를 입력해주세요."/>