예산 배정 오류 수정.
parent
b2fccdd946
commit
e52dbd5498
|
|
@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
|
|||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
|
|
@ -205,9 +206,12 @@ public class BudgetController {
|
|||
|
||||
// 예산배정 - 등록(저장버튼)
|
||||
@PostMapping("/assign/save")
|
||||
public ResultResponse<?> saveAssign(@AuthenticationPrincipal UserInfo loginUser, @RequestBody BudgetDto.AssignSaveReqeust requestDto) {
|
||||
budgetService.updateAssignList(loginUser, requestDto);
|
||||
return new ResultResponse().successResponse(ResultResponseCode.SUCCESS);
|
||||
public List<ResultResponse<?>> saveAssign(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List<BudgetDto.AssignSaveReqeust> requestList) {
|
||||
List<ResultResponse<?>> responseList = new ArrayList<>();
|
||||
for(BudgetDto.AssignSaveReqeust requestDto : requestList){
|
||||
responseList.add(new ResultResponse(budgetService.updateAssignList(loginUser, requestDto)));
|
||||
}
|
||||
return responseList;
|
||||
}
|
||||
|
||||
// 집행관리
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import lombok.RequiredArgsConstructor;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
|
@ -330,38 +331,25 @@ public class BudgetService {
|
|||
|
||||
// 예산배정 - 등록(저장버튼)
|
||||
@Transactional
|
||||
public void updateAssignList(UserInfo loginUser, BudgetDto.AssignSaveReqeust requestDto){
|
||||
public ResultResponseCode updateAssignList(UserInfo loginUser, BudgetDto.AssignSaveReqeust requestDto){
|
||||
|
||||
// System.out.println(requestDto.getCode());
|
||||
// System.out.println(requestDto.getOrg());
|
||||
// System.out.println(requestDto.getYear());
|
||||
// System.out.println(requestDto.getAmount());
|
||||
// UpdateResult result = budgetRepository.callSpAddBudgetAssign(requestDto.getCode(),requestDto.getOrg(),requestDto.getOrg1(), requestDto.getAmount(), "2023-03-15");
|
||||
BudgetParams params = new BudgetParams();
|
||||
params.setCode(requestDto.getCode());
|
||||
params.setOrg(requestDto.getOrg());
|
||||
params.setOrg1(requestDto.getOrg1());
|
||||
params.setAmount(requestDto.getAmount());
|
||||
params.setDt("2023-03-15");
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
params.setDt(LocalDate.now().format(formatter));
|
||||
UpdateResult result = budgetMapper.callSpAddBudgetAssign(params);
|
||||
|
||||
// System.out.println(result.getErrorMessage());
|
||||
// System.out.println(result.getResultCode());
|
||||
// System.out.println(result.getResultCount());
|
||||
if(result.getResultCode().equals("100")) {
|
||||
return;
|
||||
return ResultResponseCode.SUCCESS;
|
||||
}else if(result.getResultCode().equals("72")) {
|
||||
// System.out.println(result.getErrorMessage());
|
||||
// System.out.println(result.getResultCode());
|
||||
// System.out.println(result.getResultCount());
|
||||
throw new BaseException(ResultResponseCode.EXPENSE_OVER_VALUE);
|
||||
return ResultResponseCode.EXPENSE_OVER_VALUE;
|
||||
} else {
|
||||
// System.out.println(result.getErrorMessage());
|
||||
// System.out.println(result.getResultCode());
|
||||
// System.out.println(result.getResultCount());
|
||||
throw new BaseException(ResultResponseCode.DUPLICATE_CODE);
|
||||
return ResultResponseCode.DUPLICATE_CODE;
|
||||
}
|
||||
|
||||
// return ResultResponseCode.ERROR;
|
||||
}
|
||||
|
||||
//집행관리
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
from sp_get_high_org_code(#{org})
|
||||
</select>
|
||||
<select id="callSpAddBudgetAssign" resultType="UpdateResult" parameterType="BudgetParams">
|
||||
call sp_add_budget_assign(#{code}, #{org}, #{org}1, #{amount}::int, #{dt}::date, 'admin', NULL,NULL,NULL)
|
||||
call sp_add_budget_assign(#{code}, #{org}, #{org1}, #{amount}::int, #{dt}::date, 'admin', NULL,NULL,NULL)
|
||||
</select>
|
||||
<select id="callSpGetBudgetExpenseInfo" resultType="ExpenseResult" parameterType="BudgetParams">
|
||||
select *
|
||||
|
|
|
|||
|
|
@ -1,130 +1,130 @@
|
|||
$(function(){
|
||||
$("#dateSelectorDiv").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko",
|
||||
autoclose: true
|
||||
});
|
||||
$("#dateSelectorDiv").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko",
|
||||
autoclose: true
|
||||
});
|
||||
})
|
||||
|
||||
$(document).on('click', '#addBtn', function (){
|
||||
if($("#assignlistcnt").val() == 0){
|
||||
alert('조회된 내역이 없습니다.');
|
||||
return;
|
||||
}
|
||||
getEditModal(0)
|
||||
if($("#assignlistcnt").val() == 0){
|
||||
alert('조회된 내역이 없습니다.');
|
||||
return;
|
||||
}
|
||||
getEditModal(0)
|
||||
})
|
||||
|
||||
$(document).ready(function(){
|
||||
if ($("#ResultRow").text().trim() == "") {
|
||||
assignSearch();
|
||||
} else {
|
||||
contentFade("out");
|
||||
}
|
||||
if ($("#ResultRow").text().trim() == "") {
|
||||
assignSearch();
|
||||
} else {
|
||||
contentFade("out");
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '#assignsearchBtn', function () {
|
||||
assignSearch();
|
||||
assignSearch();
|
||||
})
|
||||
|
||||
function assignSearch() {
|
||||
let stDate = $("#stDate").val()
|
||||
let edDate = $("#edDate").val()
|
||||
if ($("#stDate").val() == "") {
|
||||
alert('시작일을 선택해주세요');
|
||||
return;
|
||||
}
|
||||
let stDate = $("#stDate").val()
|
||||
let edDate = $("#edDate").val()
|
||||
if ($("#stDate").val() == "") {
|
||||
alert('시작일을 선택해주세요');
|
||||
return;
|
||||
}
|
||||
|
||||
if ($("#edDate").val() == "") {
|
||||
alert('종료일을 선택해주세요');
|
||||
return;
|
||||
}
|
||||
if ($("#edDate").val() == "") {
|
||||
alert('종료일을 선택해주세요');
|
||||
return;
|
||||
}
|
||||
|
||||
stDate = new Date(stDate);
|
||||
edDate = new Date(edDate);
|
||||
stDate = new Date(stDate);
|
||||
edDate = new Date(edDate);
|
||||
|
||||
if (stDate.getFullYear() != edDate.getFullYear()) {
|
||||
alert('같은 년도의 데이터만 조회가능합니다. ex)2021-01-01 ~ 2021-12-31');
|
||||
return;
|
||||
}
|
||||
if (stDate.getFullYear() != edDate.getFullYear()) {
|
||||
alert('같은 년도의 데이터만 조회가능합니다. ex)2021-01-01 ~ 2021-12-31');
|
||||
return;
|
||||
}
|
||||
|
||||
$("#year").val(stDate.getFullYear());
|
||||
$("#year").val(stDate.getFullYear());
|
||||
|
||||
contentFade("in");
|
||||
location.href = "/budget/assign?year=" + $("#year").val() + "&stDate=" + $("#stDate").val() + "&edDate=" + $("#edDate").val() + "&code=" + $("#code").val();
|
||||
contentFade("in");
|
||||
location.href = "/budget/assign?year=" + $("#year").val() + "&stDate=" + $("#stDate").val() + "&edDate=" + $("#edDate").val() + "&code=" + $("#code").val();
|
||||
}
|
||||
$(document).on('click', '#deleteBtn', function (){
|
||||
if($("input[name='budget']:checked").val() == undefined || $("input[name='budget']:checked").val()==null){
|
||||
alert('삭제할 항목을 선택해주세요');
|
||||
return;
|
||||
}
|
||||
console.dir($("input[name='budget']:checked")[0].dataset.name1);
|
||||
console.dir($("input[name='budget']:checked")[0].dataset.name2);
|
||||
console.dir($("input[name='budget']:checked")[0].dataset.name3);
|
||||
if(confirm('삭제하시겠습니까?')){
|
||||
let params = {};
|
||||
params.year = $("#searchYear").val();
|
||||
params.nameL1 = $("input[name='budget']:checked")[0].dataset.name1;
|
||||
params.nameL2 = $("input[name='budget']:checked")[0].dataset.name2;
|
||||
params.nameL3 = $("input[name='budget']:checked")[0].dataset.name3;
|
||||
console.dir(params);
|
||||
$.ajax({
|
||||
type : 'DELETE',
|
||||
data : params,
|
||||
if($("input[name='budget']:checked").val() == undefined || $("input[name='budget']:checked").val()==null){
|
||||
alert('삭제할 항목을 선택해주세요');
|
||||
return;
|
||||
}
|
||||
console.dir($("input[name='budget']:checked")[0].dataset.name1);
|
||||
console.dir($("input[name='budget']:checked")[0].dataset.name2);
|
||||
console.dir($("input[name='budget']:checked")[0].dataset.name3);
|
||||
if(confirm('삭제하시겠습니까?')){
|
||||
let params = {};
|
||||
params.year = $("#searchYear").val();
|
||||
params.nameL1 = $("input[name='budget']:checked")[0].dataset.name1;
|
||||
params.nameL2 = $("input[name='budget']:checked")[0].dataset.name2;
|
||||
params.nameL3 = $("input[name='budget']:checked")[0].dataset.name3;
|
||||
console.dir(params);
|
||||
$.ajax({
|
||||
type : 'DELETE',
|
||||
data : params,
|
||||
|
||||
url : "/budget/budgeting/code",
|
||||
url : "/budget/budgeting/code",
|
||||
|
||||
|
||||
beforeSend: function (xhr){
|
||||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||
},
|
||||
success : function(data) {
|
||||
if(data.code == "200"){
|
||||
alert("삭제되었습니다.");
|
||||
location.reload();
|
||||
}else{
|
||||
alert(data.message);
|
||||
}
|
||||
//location.reload();
|
||||
},
|
||||
error : function(xhr) {
|
||||
alert("삭제에 실패하였습니다.");
|
||||
}
|
||||
})
|
||||
}
|
||||
beforeSend: function (xhr){
|
||||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||
},
|
||||
success : function(data) {
|
||||
if(data.code == "200"){
|
||||
alert("삭제되었습니다.");
|
||||
location.reload();
|
||||
}else{
|
||||
alert(data.message);
|
||||
}
|
||||
//location.reload();
|
||||
},
|
||||
error : function(xhr) {
|
||||
alert("삭제에 실패하였습니다.");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
$(document).on('click', '#updateBtn', function (){
|
||||
if($("input[name='budget']:checked").val() == undefined || $("input[name='budget']:checked").val()==null){
|
||||
alert('수정할 항목을 선택해주세요');
|
||||
return;
|
||||
if($("input[name='budget']:checked").val() == undefined || $("input[name='budget']:checked").val()==null){
|
||||
alert('수정할 항목을 선택해주세요');
|
||||
return;
|
||||
}
|
||||
params = {}
|
||||
params.year = $("#searchYear").val()
|
||||
params.nameL1 = $("input[name='budget']:checked")[0].dataset.name1;
|
||||
params.nameL2 = $("input[name='budget']:checked")[0].dataset.name2;
|
||||
params.nameL3 = $("input[name='budget']:checked")[0].dataset.name3;
|
||||
|
||||
$.ajax({
|
||||
url: '/budget/budgeting/modal/edit',
|
||||
data: params,
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#editModalContent").empty().append(html);
|
||||
$("#year").val($("#searchYear").val())
|
||||
$(".dateSelector").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko",
|
||||
autoclose: true
|
||||
});
|
||||
$("#editModal").modal('show');
|
||||
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
params = {}
|
||||
params.year = $("#searchYear").val()
|
||||
params.nameL1 = $("input[name='budget']:checked")[0].dataset.name1;
|
||||
params.nameL2 = $("input[name='budget']:checked")[0].dataset.name2;
|
||||
params.nameL3 = $("input[name='budget']:checked")[0].dataset.name3;
|
||||
|
||||
$.ajax({
|
||||
url: '/budget/budgeting/modal/edit',
|
||||
data: params,
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#editModalContent").empty().append(html);
|
||||
$("#year").val($("#searchYear").val())
|
||||
$(".dateSelector").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko",
|
||||
autoclose: true
|
||||
});
|
||||
$("#editModal").modal('show');
|
||||
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
|
|
@ -182,207 +182,201 @@ $(document).on('click', '#updateBtn', function (){
|
|||
|
||||
function getEditModal(no){
|
||||
|
||||
params = {}
|
||||
params.stDate = $("#stDate").val();
|
||||
params.edDate = $("#edDate").val();
|
||||
params = {}
|
||||
params.stDate = $("#stDate").val();
|
||||
params.edDate = $("#edDate").val();
|
||||
|
||||
let stDate = new Date($("#stDate").val());
|
||||
params.year = stDate.getFullYear();
|
||||
params.code = $("#code").val();
|
||||
let stDate = new Date($("#stDate").val());
|
||||
params.year = stDate.getFullYear();
|
||||
params.code = $("#code").val();
|
||||
|
||||
|
||||
$.ajax({
|
||||
url: '/budget/assign/modal/edit',
|
||||
data: params,
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$.ajax({
|
||||
url: '/budget/assign/modal/edit',
|
||||
data: params,
|
||||
type: 'GET',
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
|
||||
$("#editModalContent").empty().append(html);
|
||||
$("#year").val($("#searchYear").val())
|
||||
$(".dateSelector").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko",
|
||||
autoclose: true
|
||||
});
|
||||
$("#editModalContent").empty().append(html);
|
||||
$("#year").val($("#searchYear").val())
|
||||
$(".dateSelector").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko",
|
||||
autoclose: true
|
||||
});
|
||||
|
||||
$("#editModal").modal('show');
|
||||
$("#editModal").modal('show');
|
||||
|
||||
},
|
||||
error:function(){
|
||||
},
|
||||
error:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
$(document).on('click', '#saveBtn', function (){
|
||||
if($("#nameL1").val() == ""){
|
||||
alert('사업명을 입력해주세요.');
|
||||
$("#position").focus();
|
||||
return;
|
||||
}
|
||||
if($("#nameL2").val() == ""){
|
||||
alert('구분을 입력해주세요.');
|
||||
$("#name").focus();
|
||||
return;
|
||||
}
|
||||
if($("#nameL3").val() == ""){
|
||||
alert('세부내역을 입력해주세요.');
|
||||
$("#name").focus();
|
||||
return;
|
||||
}
|
||||
if($("#nameL1").val() == ""){
|
||||
alert('사업명을 입력해주세요.');
|
||||
$("#position").focus();
|
||||
return;
|
||||
}
|
||||
if($("#nameL2").val() == ""){
|
||||
alert('구분을 입력해주세요.');
|
||||
$("#name").focus();
|
||||
return;
|
||||
}
|
||||
if($("#nameL3").val() == ""){
|
||||
alert('세부내역을 입력해주세요.');
|
||||
$("#name").focus();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
const formData = new FormData($("#budgetForm")[0]);
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : formData,
|
||||
url : "/budget/budgeting/code",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(data) {
|
||||
if(data.code == "200"){
|
||||
alert("저장되었습니다.");
|
||||
location.reload();
|
||||
}else{
|
||||
alert(data.message);
|
||||
}
|
||||
//location.reload();
|
||||
},
|
||||
error : function(xhr) {
|
||||
alert("저장에 실패하였습니다.");
|
||||
}
|
||||
})
|
||||
}
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
const formData = new FormData($("#budgetForm")[0]);
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : formData,
|
||||
url : "/budget/budgeting/code",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(data) {
|
||||
if(data.code == "200"){
|
||||
alert("저장되었습니다.");
|
||||
location.reload();
|
||||
}else{
|
||||
alert(data.message);
|
||||
}
|
||||
//location.reload();
|
||||
},
|
||||
error : function(xhr) {
|
||||
alert("저장에 실패하였습니다.");
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$(document).on('click', '#modifyBtn', function (){
|
||||
|
||||
if($("#nameL1").val() == ""){
|
||||
alert('사업명을 입력해주세요.');
|
||||
$("#position").focus();
|
||||
return;
|
||||
}
|
||||
if($("#nameL2").val() == ""){
|
||||
alert('구분을 입력해주세요.');
|
||||
$("#name").focus();
|
||||
return;
|
||||
}
|
||||
if($("#nameL3").val() == ""){
|
||||
alert('세부내역을 입력해주세요.');
|
||||
$("#name").focus();
|
||||
return;
|
||||
}
|
||||
if($("#nameL1").val() == ""){
|
||||
alert('사업명을 입력해주세요.');
|
||||
$("#position").focus();
|
||||
return;
|
||||
}
|
||||
if($("#nameL2").val() == ""){
|
||||
alert('구분을 입력해주세요.');
|
||||
$("#name").focus();
|
||||
return;
|
||||
}
|
||||
if($("#nameL3").val() == ""){
|
||||
alert('세부내역을 입력해주세요.');
|
||||
$("#name").focus();
|
||||
return;
|
||||
}
|
||||
|
||||
if(confirm("수정하시겠습니까?")){
|
||||
const formData = new FormData($("#budgetForm")[0]);
|
||||
$.ajax({
|
||||
type : 'PUT',
|
||||
data : formData,
|
||||
url : "/budget/budgeting/code",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(data) {
|
||||
if(data.code == "200"){
|
||||
alert("저장되었습니다.");
|
||||
location.reload();
|
||||
}else{
|
||||
alert(data.message);
|
||||
}
|
||||
//location.reload();
|
||||
},
|
||||
error : function(xhr) {
|
||||
alert("저장에 실패하였습니다.");
|
||||
}
|
||||
})
|
||||
}
|
||||
if(confirm("수정하시겠습니까?")){
|
||||
const formData = new FormData($("#budgetForm")[0]);
|
||||
$.ajax({
|
||||
type : 'PUT',
|
||||
data : formData,
|
||||
url : "/budget/budgeting/code",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(data) {
|
||||
if(data.code == "200"){
|
||||
alert("저장되었습니다.");
|
||||
location.reload();
|
||||
}else{
|
||||
alert(data.message);
|
||||
}
|
||||
//location.reload();
|
||||
},
|
||||
error : function(xhr) {
|
||||
alert("저장에 실패하였습니다.");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
$(document).on('click', '#tempBtn', function (){
|
||||
if(confirm("임시 저장하시겠습니까?")){
|
||||
$("#status").val("TEMP");
|
||||
const formData = new FormData($("#investigationEditForm")[0]);
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : formData,
|
||||
url : "/pds/ship",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(data) {
|
||||
alert("저장되었습니다.");
|
||||
location.reload();
|
||||
},
|
||||
error : function(xhr) {
|
||||
alert("저장에 실패하였습니다.");
|
||||
}
|
||||
})
|
||||
}
|
||||
if(confirm("임시 저장하시겠습니까?")){
|
||||
$("#status").val("TEMP");
|
||||
const formData = new FormData($("#investigationEditForm")[0]);
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : formData,
|
||||
url : "/pds/ship",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(data) {
|
||||
alert("저장되었습니다.");
|
||||
location.reload();
|
||||
},
|
||||
error : function(xhr) {
|
||||
alert("저장에 실패하였습니다.");
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$(document).on('click', '#assignSaveBtn', function (){
|
||||
let success = 0;
|
||||
let fail =0;
|
||||
let fail1 =0;
|
||||
if($("#assignCount").val()==0){
|
||||
alert('저장할 내역이 없습니다.');
|
||||
let success = 0;
|
||||
let fail =0;
|
||||
let fail1 =0;
|
||||
if($("#assignCount").val()==0){
|
||||
alert('저장할 내역이 없습니다.');
|
||||
}
|
||||
const paramList = [];
|
||||
for(let i =0 ; i < $("#assignCount").val() ; i ++){
|
||||
for(let j=0 ; j < $("#orgCount").val() ; j ++){
|
||||
const amount = $("#org"+j+"Amount"+i)
|
||||
if(amount.val() !== "" && amount.val() !== 0){
|
||||
const params = {}
|
||||
params.year = $("#assignYear").val();
|
||||
params.code = amount[0].dataset.code;
|
||||
params.amount = amount.val()
|
||||
params.org = $("#code").val();
|
||||
params.org1 = $("#orgSave"+j).text();
|
||||
paramList.push(params);
|
||||
}
|
||||
}
|
||||
for(let i =0 ; i < $("#assignCount").val() ; i ++){
|
||||
for(let j=0 ; j < $("#orgCount").val() ; j ++){
|
||||
params = {}
|
||||
params.year = $("#orgYear").val();
|
||||
// console.dir($("#org"+j+"_amount"+i)[0].dataset.code);
|
||||
params.code = $("#org"+j+"Amount"+i)[0].dataset.code;
|
||||
params.amount = $("#org"+j+"Amount"+i).val() == "" ? 0 :$("#org"+j+"Amount"+i).val()
|
||||
params.org = $("#code").val();
|
||||
params.org1 = $("#orgSave"+j).text();
|
||||
// console.dir(params.org);
|
||||
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : JSON.stringify(params),
|
||||
url : "/budget/assign/save",
|
||||
processData: false,
|
||||
contentType: 'application/json',
|
||||
async : false,
|
||||
beforeSend: function (xhr){
|
||||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||
},
|
||||
|
||||
success : function(data) {
|
||||
// console.log(data.code);
|
||||
if(data.code == "200"){
|
||||
success ++;
|
||||
}else if(data.code == "911"){
|
||||
fail1 ++;
|
||||
}else{
|
||||
fail++;
|
||||
}
|
||||
//location.reload();
|
||||
},
|
||||
error : function(xhr) {
|
||||
//alert("저장에 실패하였습니다.");
|
||||
fail++;
|
||||
}
|
||||
})
|
||||
}
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
data : JSON.stringify(paramList),
|
||||
url : "/budget/assign/save",
|
||||
contentType: 'application/json',
|
||||
beforeSend: function (xhr){
|
||||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||
},
|
||||
success : function(result) {
|
||||
for(const data of result){
|
||||
if(data.code == "200"){
|
||||
success ++;
|
||||
}else if(data.code == "911"){
|
||||
fail1 ++;
|
||||
}else{
|
||||
fail++;
|
||||
}
|
||||
}
|
||||
|
||||
// console.dir("success: "+ success +", fail:" + fail+fail1);
|
||||
if (fail1 > 0 || fail > 0) {
|
||||
}
|
||||
if (fail1 > 0 || fail > 0) {
|
||||
alert("저장에 성공하였습니다. \n일부는 저장에 실패 (금액 초과 [" + fail1 + "건], 에러 [" + fail + "건]) 하였습니다.");
|
||||
} else {
|
||||
} else {
|
||||
alert("저장에 성공하였습니다.");
|
||||
}
|
||||
location.reload();
|
||||
},
|
||||
error : function(xhr) {
|
||||
alert("저장에 실패하였습니다.");
|
||||
}
|
||||
location.reload();
|
||||
|
||||
|
||||
})
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
<h4 class="modal-title" th:text="${info eq null?'예산항목 추가':'예산항목 수정'}"></h4>
|
||||
<button type="button" class="btn btn-danger" data-bs-dismiss="modal" aria-hidden="true">x</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="budgetForm" action="#">
|
||||
<form id="budgetForm" action="#">
|
||||
<div class="modal-body">
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<input type="hidden" id="assignYear" name="assignYear" th:value="${searchParams.year}"/>
|
||||
|
|
@ -133,13 +133,13 @@
|
|||
</th:block>
|
||||
</tr>
|
||||
</tbody>
|
||||
<!-- </table>-->
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="javascript:;" class="btn btn-primary" id="assignSaveBtn">저장</a>
|
||||
<a href="javascript:;" class="btn btn-primary" id="modifyBtn" th:if="${cmd eq 'update'}">수정</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="javascript:;" class="btn btn-primary" id="assignSaveBtn">저장</a>
|
||||
<a href="javascript:;" class="btn btn-primary" id="modifyBtn" th:if="${cmd eq 'update'}">수정</a>
|
||||
</div>
|
||||
</form>
|
||||
</html>
|
||||
|
|
@ -3,205 +3,168 @@
|
|||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{layout/layout}">
|
||||
<th:block layout:fragment="script">
|
||||
<script type="text/javascript" th:src="@{/js/budget/expense.js}"></script>
|
||||
<script type="text/javascript" th:src="@{/js/budget/expense.js}"></script>
|
||||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main>
|
||||
<input type="hidden" id="menuKey" value="56">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<div class="mb-2">
|
||||
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>
|
||||
<h5 class="d-inline align-middle"> 집행관리</h5>
|
||||
<main>
|
||||
<input type="hidden" id="menuKey" value="56">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<div class="mb-2">
|
||||
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>
|
||||
<h5 class="d-inline align-middle"> 집행관리</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<p class="mb-0 mt-2">정보예산관리 > 집행관리</p>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<form id="assginForm" method="get" action="/budget/assign" onsubmit="return false;">
|
||||
<input type="hidden" name="year" id="year" th:value="${param.year}"/>
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="code" id="code">
|
||||
<option value="OG001" th:selected="${searchParams?.code eq '본청'}">본청</option>
|
||||
<option th:each="code, i : ${codeList}" th:value="${code?.orgCode}"
|
||||
th:text="${code?.orgName}" th:selected="${searchParams?.code eq code.orgCode}">
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="stDate" name="stDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.stDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="edDate" name="edDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.edDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12 overflow-auto">
|
||||
<table class="table table-sm table-bordered table-hover text-nowrap">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th rowspan="2">사업명</th>
|
||||
<th rowspan="2">구분</th>
|
||||
<th rowspan="2">세부내역</th>
|
||||
<th rowspan="2">예산총액</th>
|
||||
<th rowspan="2">예산총배정액<br>(누적)</th>
|
||||
<th colspan="2">집행액(총계)</th>
|
||||
<th colspan="4" class="w-400px" th:each="orglist : ${downOrgList}" th:text="${orglist.orgName}"></th>
|
||||
</tr>
|
||||
<tr class="table-secondary">
|
||||
<th>지출총액</th>
|
||||
<th>보유잔액</th>
|
||||
<th:block th:each="orglist : ${downOrgList}">
|
||||
<th class="w-100px">배정액</th>
|
||||
<th class="w-100px">지출총액</th>
|
||||
<th class="w-100px">잔액</th>
|
||||
<th class="w-100px">집행률</th>
|
||||
</th:block>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider" id="ResultRow">
|
||||
<tr class="faRptTr" th:each="info, i : ${list}" onclick="getEditModal(this)"
|
||||
th:data-name1="${info.budgetNameL1}"
|
||||
th:data-name2="${info.budgetNameL2}"
|
||||
th:data-name3="${info.budgetNameL3}">
|
||||
<td th:text="${info.budgetNameL1}"></td>
|
||||
<td th:text="${info.budgetNameL2}"></td>
|
||||
<td th:text="${info.budgetNameL3}"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.planAmount,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.totalAssignAmount,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseTAmount,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceTAmount,1,'COMMA')}" class="text-end"></td>
|
||||
<th:block th:each="orglist, j : ${downOrgList}">
|
||||
<th:block th:if="${j.index} == '0'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount1,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount1,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount1,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate1,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '1'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount2,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate2,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '2'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount3,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate3,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '3'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount4,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate4,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '4'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount5,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate5,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '5'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount6,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate6,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '6'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount7,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate7,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '7'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount8,1,'COMMA')}" class="text-end"></td>
|
||||
<td th:text="${#strings.concat(#numbers.formatInteger(info.expenseRate8,1,'COMMA'), '%')}" class="text-end"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto"></div>
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<p class="mb-0 mt-2">정보예산관리 > 집행관리</p>
|
||||
<!--<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn">-->
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<form id="assginForm" method="get" action="/budget/assign" onsubmit="return false;">
|
||||
<input type="hidden" name="year" id="year" th:value="${param.year}"/>
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="code" id="code">
|
||||
<option value="OG001" th:selected="${searchParams?.code eq '본청'}">본청</option>
|
||||
<option th:each="code, i : ${codeList}" th:value="${code?.orgCode}"
|
||||
th:text="${code?.orgName}"
|
||||
th:selected="${searchParams?.code eq code.orgCode}">
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="stDate" name="stDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.stDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="edDate" name="edDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.edDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class=" col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="table-responsive col-12">
|
||||
<table class="table table-sm table-bordered table-hover">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th rowspan="2">사업명</th>
|
||||
<th rowspan="2">구분</th>
|
||||
<th rowspan="2">세부내역</th>
|
||||
<th rowspan="2">예산총액</th>
|
||||
<th rowspan="2">예산총배정액<br>(누적)</th>
|
||||
<th colspan="2">집행액(총계)</th>
|
||||
<th colspan="4" class="w-400px" th:each="orglist : ${downOrgList}" th:text="${orglist.orgName}"></th>
|
||||
</tr>
|
||||
<tr class="table-secondary">
|
||||
<td>지출총액</td>
|
||||
<td>보유잔액</td>
|
||||
<th:block th:each="orglist : ${downOrgList}">
|
||||
<th class="w-100px">배정액</th>
|
||||
<th class="w-100px">지출총액</th>
|
||||
<th class="w-100px">잔액</th>
|
||||
<th class="w-100px">집행률</th>
|
||||
</th:block>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider" id="ResultRow">
|
||||
<tr class="faRptTr" th:each="info, i : ${list}" onclick="getEditModal(this)"
|
||||
th:data-name1="${info.budgetNameL1}"
|
||||
th:data-name2="${info.budgetNameL2}"
|
||||
th:data-name3="${info.budgetNameL3}">
|
||||
<td th:text="${info.budgetNameL1}"></td>
|
||||
<td th:text="${info.budgetNameL2}"></td>
|
||||
<td th:text="${info.budgetNameL3}"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.planAmount,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.totalAssignAmount,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseTAmount,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.balanceTAmount,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<th:block th:each="orglist, j : ${downOrgList}">
|
||||
<th:block th:if="${j.index} == '0'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount1,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount1,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount1,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate1,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '1'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount2,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount2,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount2,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate2,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '2'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount3,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount3,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount3,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate3,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '3'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount4,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount4,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount4,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate4,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '4'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount5,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount5,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount5,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate5,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '5'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount6,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount6,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount6,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate6,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '6'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount7,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount7,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount7,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate7,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${j.index} == '7'">
|
||||
<td th:text="${#numbers.formatInteger(info.periodAssignAmount8,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expensePAmount8,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.blanceAmount8,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
<td th:text="${#numbers.formatInteger(info.expenseRate8,1,'COMMA')}"
|
||||
class="text-end"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto"></div>
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<!--<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn">-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="editModal">
|
||||
<div class="modal-dialog modal-lg modal-dialog-scrollable">
|
||||
<div class="modal-content" id="editModalContent"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="editModal">
|
||||
<div class="modal-dialog modal-lg modal-dialog-scrollable">
|
||||
<div class="modal-content" id="editModalContent"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</html>
|
||||
|
|
@ -78,11 +78,11 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd gradeX reporterTr grid" th:each="info, i : ${list}">
|
||||
<td th:text="${info.expenseDate}"></td>
|
||||
<td th:text="${#strings.substringBefore(info.expenseDate, ' ')}"></td>
|
||||
<td th:text="${info.expenseItem}"></td>
|
||||
<td th:text="${info.amount}"></td>
|
||||
<td th:text="${info.modiId}"></td>
|
||||
<td th:text="${info.modiDate}"></td>
|
||||
<td th:text="${#strings.substringBefore(info.modiDate, '.')}"></td>
|
||||
|
||||
</tr>
|
||||
<th:block th:if="${#lists.isEmpty(list)}">
|
||||
|
|
|
|||
Loading…
Reference in New Issue