예산 배정 오류 수정.
parent
b2fccdd946
commit
e52dbd5498
|
|
@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -205,9 +206,12 @@ public class BudgetController {
|
||||||
|
|
||||||
// 예산배정 - 등록(저장버튼)
|
// 예산배정 - 등록(저장버튼)
|
||||||
@PostMapping("/assign/save")
|
@PostMapping("/assign/save")
|
||||||
public ResultResponse<?> saveAssign(@AuthenticationPrincipal UserInfo loginUser, @RequestBody BudgetDto.AssignSaveReqeust requestDto) {
|
public List<ResultResponse<?>> saveAssign(@AuthenticationPrincipal UserInfo loginUser, @RequestBody List<BudgetDto.AssignSaveReqeust> requestList) {
|
||||||
budgetService.updateAssignList(loginUser, requestDto);
|
List<ResultResponse<?>> responseList = new ArrayList<>();
|
||||||
return new ResultResponse().successResponse(ResultResponseCode.SUCCESS);
|
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.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -330,38 +331,25 @@ public class BudgetService {
|
||||||
|
|
||||||
// 예산배정 - 등록(저장버튼)
|
// 예산배정 - 등록(저장버튼)
|
||||||
@Transactional
|
@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();
|
BudgetParams params = new BudgetParams();
|
||||||
params.setCode(requestDto.getCode());
|
params.setCode(requestDto.getCode());
|
||||||
params.setOrg(requestDto.getOrg());
|
params.setOrg(requestDto.getOrg());
|
||||||
params.setOrg1(requestDto.getOrg1());
|
params.setOrg1(requestDto.getOrg1());
|
||||||
params.setAmount(requestDto.getAmount());
|
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);
|
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")) {
|
if(result.getResultCode().equals("100")) {
|
||||||
return;
|
return ResultResponseCode.SUCCESS;
|
||||||
}else if(result.getResultCode().equals("72")) {
|
}else if(result.getResultCode().equals("72")) {
|
||||||
// System.out.println(result.getErrorMessage());
|
return ResultResponseCode.EXPENSE_OVER_VALUE;
|
||||||
// System.out.println(result.getResultCode());
|
|
||||||
// System.out.println(result.getResultCount());
|
|
||||||
throw new BaseException(ResultResponseCode.EXPENSE_OVER_VALUE);
|
|
||||||
} else {
|
} else {
|
||||||
// System.out.println(result.getErrorMessage());
|
return ResultResponseCode.DUPLICATE_CODE;
|
||||||
// System.out.println(result.getResultCode());
|
|
||||||
// System.out.println(result.getResultCount());
|
|
||||||
throw new BaseException(ResultResponseCode.DUPLICATE_CODE);
|
|
||||||
}
|
}
|
||||||
|
// return ResultResponseCode.ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
//집행관리
|
//집행관리
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
from sp_get_high_org_code(#{org})
|
from sp_get_high_org_code(#{org})
|
||||||
</select>
|
</select>
|
||||||
<select id="callSpAddBudgetAssign" resultType="UpdateResult" parameterType="BudgetParams">
|
<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>
|
||||||
<select id="callSpGetBudgetExpenseInfo" resultType="ExpenseResult" parameterType="BudgetParams">
|
<select id="callSpGetBudgetExpenseInfo" resultType="ExpenseResult" parameterType="BudgetParams">
|
||||||
select *
|
select *
|
||||||
|
|
|
||||||
|
|
@ -1,130 +1,130 @@
|
||||||
$(function(){
|
$(function(){
|
||||||
$("#dateSelectorDiv").datepicker({
|
$("#dateSelectorDiv").datepicker({
|
||||||
format: "yyyy-mm-dd",
|
format: "yyyy-mm-dd",
|
||||||
language: "ko",
|
language: "ko",
|
||||||
autoclose: true
|
autoclose: true
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#addBtn', function (){
|
$(document).on('click', '#addBtn', function (){
|
||||||
if($("#assignlistcnt").val() == 0){
|
if($("#assignlistcnt").val() == 0){
|
||||||
alert('조회된 내역이 없습니다.');
|
alert('조회된 내역이 없습니다.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
getEditModal(0)
|
getEditModal(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
if ($("#ResultRow").text().trim() == "") {
|
if ($("#ResultRow").text().trim() == "") {
|
||||||
assignSearch();
|
assignSearch();
|
||||||
} else {
|
} else {
|
||||||
contentFade("out");
|
contentFade("out");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('click', '#assignsearchBtn', function () {
|
$(document).on('click', '#assignsearchBtn', function () {
|
||||||
assignSearch();
|
assignSearch();
|
||||||
})
|
})
|
||||||
|
|
||||||
function assignSearch() {
|
function assignSearch() {
|
||||||
let stDate = $("#stDate").val()
|
let stDate = $("#stDate").val()
|
||||||
let edDate = $("#edDate").val()
|
let edDate = $("#edDate").val()
|
||||||
if ($("#stDate").val() == "") {
|
if ($("#stDate").val() == "") {
|
||||||
alert('시작일을 선택해주세요');
|
alert('시작일을 선택해주세요');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($("#edDate").val() == "") {
|
if ($("#edDate").val() == "") {
|
||||||
alert('종료일을 선택해주세요');
|
alert('종료일을 선택해주세요');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
stDate = new Date(stDate);
|
stDate = new Date(stDate);
|
||||||
edDate = new Date(edDate);
|
edDate = new Date(edDate);
|
||||||
|
|
||||||
if (stDate.getFullYear() != edDate.getFullYear()) {
|
if (stDate.getFullYear() != edDate.getFullYear()) {
|
||||||
alert('같은 년도의 데이터만 조회가능합니다. ex)2021-01-01 ~ 2021-12-31');
|
alert('같은 년도의 데이터만 조회가능합니다. ex)2021-01-01 ~ 2021-12-31');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#year").val(stDate.getFullYear());
|
$("#year").val(stDate.getFullYear());
|
||||||
|
|
||||||
contentFade("in");
|
contentFade("in");
|
||||||
location.href = "/budget/assign?year=" + $("#year").val() + "&stDate=" + $("#stDate").val() + "&edDate=" + $("#edDate").val() + "&code=" + $("#code").val();
|
location.href = "/budget/assign?year=" + $("#year").val() + "&stDate=" + $("#stDate").val() + "&edDate=" + $("#edDate").val() + "&code=" + $("#code").val();
|
||||||
}
|
}
|
||||||
$(document).on('click', '#deleteBtn', function (){
|
$(document).on('click', '#deleteBtn', function (){
|
||||||
if($("input[name='budget']:checked").val() == undefined || $("input[name='budget']:checked").val()==null){
|
if($("input[name='budget']:checked").val() == undefined || $("input[name='budget']:checked").val()==null){
|
||||||
alert('삭제할 항목을 선택해주세요');
|
alert('삭제할 항목을 선택해주세요');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.dir($("input[name='budget']:checked")[0].dataset.name1);
|
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.name2);
|
||||||
console.dir($("input[name='budget']:checked")[0].dataset.name3);
|
console.dir($("input[name='budget']:checked")[0].dataset.name3);
|
||||||
if(confirm('삭제하시겠습니까?')){
|
if(confirm('삭제하시겠습니까?')){
|
||||||
let params = {};
|
let params = {};
|
||||||
params.year = $("#searchYear").val();
|
params.year = $("#searchYear").val();
|
||||||
params.nameL1 = $("input[name='budget']:checked")[0].dataset.name1;
|
params.nameL1 = $("input[name='budget']:checked")[0].dataset.name1;
|
||||||
params.nameL2 = $("input[name='budget']:checked")[0].dataset.name2;
|
params.nameL2 = $("input[name='budget']:checked")[0].dataset.name2;
|
||||||
params.nameL3 = $("input[name='budget']:checked")[0].dataset.name3;
|
params.nameL3 = $("input[name='budget']:checked")[0].dataset.name3;
|
||||||
console.dir(params);
|
console.dir(params);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type : 'DELETE',
|
type : 'DELETE',
|
||||||
data : params,
|
data : params,
|
||||||
|
|
||||||
url : "/budget/budgeting/code",
|
url : "/budget/budgeting/code",
|
||||||
|
|
||||||
|
|
||||||
beforeSend: function (xhr){
|
beforeSend: function (xhr){
|
||||||
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||||
},
|
},
|
||||||
success : function(data) {
|
success : function(data) {
|
||||||
if(data.code == "200"){
|
if(data.code == "200"){
|
||||||
alert("삭제되었습니다.");
|
alert("삭제되었습니다.");
|
||||||
location.reload();
|
location.reload();
|
||||||
}else{
|
}else{
|
||||||
alert(data.message);
|
alert(data.message);
|
||||||
}
|
}
|
||||||
//location.reload();
|
//location.reload();
|
||||||
},
|
},
|
||||||
error : function(xhr) {
|
error : function(xhr) {
|
||||||
alert("삭제에 실패하였습니다.");
|
alert("삭제에 실패하였습니다.");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#updateBtn', function (){
|
$(document).on('click', '#updateBtn', function (){
|
||||||
if($("input[name='budget']:checked").val() == undefined || $("input[name='budget']:checked").val()==null){
|
if($("input[name='budget']:checked").val() == undefined || $("input[name='budget']:checked").val()==null){
|
||||||
alert('수정할 항목을 선택해주세요');
|
alert('수정할 항목을 선택해주세요');
|
||||||
return;
|
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){
|
function getEditModal(no){
|
||||||
|
|
||||||
params = {}
|
params = {}
|
||||||
params.stDate = $("#stDate").val();
|
params.stDate = $("#stDate").val();
|
||||||
params.edDate = $("#edDate").val();
|
params.edDate = $("#edDate").val();
|
||||||
|
|
||||||
let stDate = new Date($("#stDate").val());
|
let stDate = new Date($("#stDate").val());
|
||||||
params.year = stDate.getFullYear();
|
params.year = stDate.getFullYear();
|
||||||
params.code = $("#code").val();
|
params.code = $("#code").val();
|
||||||
|
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '/budget/assign/modal/edit',
|
url: '/budget/assign/modal/edit',
|
||||||
data: params,
|
data: params,
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
dataType:"html",
|
dataType:"html",
|
||||||
success: function(html){
|
success: function(html){
|
||||||
|
|
||||||
$("#editModalContent").empty().append(html);
|
$("#editModalContent").empty().append(html);
|
||||||
$("#year").val($("#searchYear").val())
|
$("#year").val($("#searchYear").val())
|
||||||
$(".dateSelector").datepicker({
|
$(".dateSelector").datepicker({
|
||||||
format: "yyyy-mm-dd",
|
format: "yyyy-mm-dd",
|
||||||
language: "ko",
|
language: "ko",
|
||||||
autoclose: true
|
autoclose: true
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#editModal").modal('show');
|
$("#editModal").modal('show');
|
||||||
|
|
||||||
},
|
},
|
||||||
error:function(){
|
error:function(){
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$(document).on('click', '#saveBtn', function (){
|
$(document).on('click', '#saveBtn', function (){
|
||||||
if($("#nameL1").val() == ""){
|
if($("#nameL1").val() == ""){
|
||||||
alert('사업명을 입력해주세요.');
|
alert('사업명을 입력해주세요.');
|
||||||
$("#position").focus();
|
$("#position").focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if($("#nameL2").val() == ""){
|
if($("#nameL2").val() == ""){
|
||||||
alert('구분을 입력해주세요.');
|
alert('구분을 입력해주세요.');
|
||||||
$("#name").focus();
|
$("#name").focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if($("#nameL3").val() == ""){
|
if($("#nameL3").val() == ""){
|
||||||
alert('세부내역을 입력해주세요.');
|
alert('세부내역을 입력해주세요.');
|
||||||
$("#name").focus();
|
$("#name").focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(confirm("저장하시겠습니까?")){
|
if(confirm("저장하시겠습니까?")){
|
||||||
const formData = new FormData($("#budgetForm")[0]);
|
const formData = new FormData($("#budgetForm")[0]);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type : 'POST',
|
type : 'POST',
|
||||||
data : formData,
|
data : formData,
|
||||||
url : "/budget/budgeting/code",
|
url : "/budget/budgeting/code",
|
||||||
processData: false,
|
processData: false,
|
||||||
contentType: false,
|
contentType: false,
|
||||||
success : function(data) {
|
success : function(data) {
|
||||||
if(data.code == "200"){
|
if(data.code == "200"){
|
||||||
alert("저장되었습니다.");
|
alert("저장되었습니다.");
|
||||||
location.reload();
|
location.reload();
|
||||||
}else{
|
}else{
|
||||||
alert(data.message);
|
alert(data.message);
|
||||||
}
|
}
|
||||||
//location.reload();
|
//location.reload();
|
||||||
},
|
},
|
||||||
error : function(xhr) {
|
error : function(xhr) {
|
||||||
alert("저장에 실패하였습니다.");
|
alert("저장에 실패하였습니다.");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$(document).on('click', '#modifyBtn', function (){
|
$(document).on('click', '#modifyBtn', function (){
|
||||||
|
|
||||||
if($("#nameL1").val() == ""){
|
if($("#nameL1").val() == ""){
|
||||||
alert('사업명을 입력해주세요.');
|
alert('사업명을 입력해주세요.');
|
||||||
$("#position").focus();
|
$("#position").focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if($("#nameL2").val() == ""){
|
if($("#nameL2").val() == ""){
|
||||||
alert('구분을 입력해주세요.');
|
alert('구분을 입력해주세요.');
|
||||||
$("#name").focus();
|
$("#name").focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if($("#nameL3").val() == ""){
|
if($("#nameL3").val() == ""){
|
||||||
alert('세부내역을 입력해주세요.');
|
alert('세부내역을 입력해주세요.');
|
||||||
$("#name").focus();
|
$("#name").focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(confirm("수정하시겠습니까?")){
|
if(confirm("수정하시겠습니까?")){
|
||||||
const formData = new FormData($("#budgetForm")[0]);
|
const formData = new FormData($("#budgetForm")[0]);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type : 'PUT',
|
type : 'PUT',
|
||||||
data : formData,
|
data : formData,
|
||||||
url : "/budget/budgeting/code",
|
url : "/budget/budgeting/code",
|
||||||
processData: false,
|
processData: false,
|
||||||
contentType: false,
|
contentType: false,
|
||||||
success : function(data) {
|
success : function(data) {
|
||||||
if(data.code == "200"){
|
if(data.code == "200"){
|
||||||
alert("저장되었습니다.");
|
alert("저장되었습니다.");
|
||||||
location.reload();
|
location.reload();
|
||||||
}else{
|
}else{
|
||||||
alert(data.message);
|
alert(data.message);
|
||||||
}
|
}
|
||||||
//location.reload();
|
//location.reload();
|
||||||
},
|
},
|
||||||
error : function(xhr) {
|
error : function(xhr) {
|
||||||
alert("저장에 실패하였습니다.");
|
alert("저장에 실패하였습니다.");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('click', '#tempBtn', function (){
|
$(document).on('click', '#tempBtn', function (){
|
||||||
if(confirm("임시 저장하시겠습니까?")){
|
if(confirm("임시 저장하시겠습니까?")){
|
||||||
$("#status").val("TEMP");
|
$("#status").val("TEMP");
|
||||||
const formData = new FormData($("#investigationEditForm")[0]);
|
const formData = new FormData($("#investigationEditForm")[0]);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type : 'POST',
|
type : 'POST',
|
||||||
data : formData,
|
data : formData,
|
||||||
url : "/pds/ship",
|
url : "/pds/ship",
|
||||||
processData: false,
|
processData: false,
|
||||||
contentType: false,
|
contentType: false,
|
||||||
success : function(data) {
|
success : function(data) {
|
||||||
alert("저장되었습니다.");
|
alert("저장되었습니다.");
|
||||||
location.reload();
|
location.reload();
|
||||||
},
|
},
|
||||||
error : function(xhr) {
|
error : function(xhr) {
|
||||||
alert("저장에 실패하였습니다.");
|
alert("저장에 실패하였습니다.");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$(document).on('click', '#assignSaveBtn', function (){
|
$(document).on('click', '#assignSaveBtn', function (){
|
||||||
let success = 0;
|
let success = 0;
|
||||||
let fail =0;
|
let fail =0;
|
||||||
let fail1 =0;
|
let fail1 =0;
|
||||||
if($("#assignCount").val()==0){
|
if($("#assignCount").val()==0){
|
||||||
alert('저장할 내역이 없습니다.');
|
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 ++){
|
$.ajax({
|
||||||
params = {}
|
type : 'POST',
|
||||||
params.year = $("#orgYear").val();
|
data : JSON.stringify(paramList),
|
||||||
// console.dir($("#org"+j+"_amount"+i)[0].dataset.code);
|
url : "/budget/assign/save",
|
||||||
params.code = $("#org"+j+"Amount"+i)[0].dataset.code;
|
contentType: 'application/json',
|
||||||
params.amount = $("#org"+j+"Amount"+i).val() == "" ? 0 :$("#org"+j+"Amount"+i).val()
|
beforeSend: function (xhr){
|
||||||
params.org = $("#code").val();
|
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||||
params.org1 = $("#orgSave"+j).text();
|
},
|
||||||
// console.dir(params.org);
|
success : function(result) {
|
||||||
|
for(const data of result){
|
||||||
$.ajax({
|
if(data.code == "200"){
|
||||||
type : 'POST',
|
success ++;
|
||||||
data : JSON.stringify(params),
|
}else if(data.code == "911"){
|
||||||
url : "/budget/assign/save",
|
fail1 ++;
|
||||||
processData: false,
|
}else{
|
||||||
contentType: 'application/json',
|
fail++;
|
||||||
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++;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (fail1 > 0 || fail > 0) {
|
||||||
// console.dir("success: "+ success +", fail:" + fail+fail1);
|
|
||||||
if (fail1 > 0 || fail > 0) {
|
|
||||||
alert("저장에 성공하였습니다. \n일부는 저장에 실패 (금액 초과 [" + fail1 + "건], 에러 [" + fail + "건]) 하였습니다.");
|
alert("저장에 성공하였습니다. \n일부는 저장에 실패 (금액 초과 [" + fail1 + "건], 에러 [" + fail + "건]) 하였습니다.");
|
||||||
} else {
|
} else {
|
||||||
alert("저장에 성공하였습니다.");
|
alert("저장에 성공하였습니다.");
|
||||||
|
}
|
||||||
|
location.reload();
|
||||||
|
},
|
||||||
|
error : function(xhr) {
|
||||||
|
alert("저장에 실패하였습니다.");
|
||||||
}
|
}
|
||||||
location.reload();
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@
|
||||||
<h4 class="modal-title" th:text="${info eq null?'예산항목 추가':'예산항목 수정'}"></h4>
|
<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>
|
<button type="button" class="btn btn-danger" data-bs-dismiss="modal" aria-hidden="true">x</button>
|
||||||
</div>
|
</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" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||||
<input type="hidden" id="assignYear" name="assignYear" th:value="${searchParams.year}"/>
|
<input type="hidden" id="assignYear" name="assignYear" th:value="${searchParams.year}"/>
|
||||||
|
|
@ -133,13 +133,13 @@
|
||||||
</th:block>
|
</th:block>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
<!-- </table>-->
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</div>
|
||||||
</div>
|
<div class="modal-footer">
|
||||||
<div class="modal-footer">
|
<a href="javascript:;" class="btn btn-primary" id="assignSaveBtn">저장</a>
|
||||||
<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>
|
||||||
<a href="javascript:;" class="btn btn-primary" id="modifyBtn" th:if="${cmd eq 'update'}">수정</a>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -3,205 +3,168 @@
|
||||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||||
layout:decorate="~{layout/layout}">
|
layout:decorate="~{layout/layout}">
|
||||||
<th:block layout:fragment="script">
|
<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>
|
</th:block>
|
||||||
<div layout:fragment="content">
|
<div layout:fragment="content">
|
||||||
<main>
|
<main>
|
||||||
<input type="hidden" id="menuKey" value="56">
|
<input type="hidden" id="menuKey" value="56">
|
||||||
<div class="row justify-content-between">
|
<div class="row justify-content-between">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<div class="mb-2">
|
<div class="mb-2">
|
||||||
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>
|
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>
|
||||||
<h5 class="d-inline align-middle"> 집행관리</h5>
|
<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>
|
||||||
|
</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>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<p class="mb-0 mt-2">정보예산관리 > 집행관리</p>
|
<!--<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn">-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
<div class="modal fade" id="editModal">
|
||||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
<div class="modal-dialog modal-lg modal-dialog-scrollable">
|
||||||
<div class="row mx-0">
|
<div class="modal-content" id="editModalContent"></div>
|
||||||
<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>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
</div>
|
</div>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -78,11 +78,11 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd gradeX reporterTr grid" th:each="info, i : ${list}">
|
<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.expenseItem}"></td>
|
||||||
<td th:text="${info.amount}"></td>
|
<td th:text="${info.amount}"></td>
|
||||||
<td th:text="${info.modiId}"></td>
|
<td th:text="${info.modiId}"></td>
|
||||||
<td th:text="${info.modiDate}"></td>
|
<td th:text="${#strings.substringBefore(info.modiDate, '.')}"></td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
<th:block th:if="${#lists.isEmpty(list)}">
|
<th:block th:if="${#lists.isEmpty(list)}">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue