2023-10-06 17:24 청소년 강의 설정 수정 작업

This commit is contained in:
myname 2023-10-06 17:24:32 +09:00
parent 963bd9ae8d
commit 7591b18e89
28 changed files with 5250 additions and 515 deletions

View File

@ -0,0 +1,28 @@
package kcc.ve.adv.tngr.stngInfo.service;
import java.util.List;
public interface VEAStngMixService {
//VEA_LCTR_YR_STNG - 강의년도설정
VEAStngVO selectDetail_VEALYS(VEAStngVO paramVO) throws Exception; // R
//상태값 저장
int updateState(VEAStngVO paramVO) throws Exception; // U
//강의가능기간 일정 데이터 - 강의가능기간 세부 선택 데이터
List<VEAStngVO> selectList_VEALPPS_1(VEAStngVO paramVO) throws Exception; // LIST
//교육가능시수 데이터 - 교육가능시수 세부 선택 데이터
List<VEAStngVO> selectList_VEALPPS_2(VEAStngVO paramVO) throws Exception; // LIST
//강의가능기간에 불가능한 일자 가져오기
List<VEAStngVO> selectList_VEALPPS_3(VEAStngVO paramVO) throws Exception; // LIST
//VEA_DT_PSBL_TM_QNTTY_STNG - 일별가능시수 설정
VEAStngVO selectDetail_VEADPTQS(VEAStngVO paramVO) throws Exception; // R
//VEA_AREA_LCTR_STNG - 지역별 강의 가능 시간 정보
//강의가능기간 일정 데이터 - 강의가능기간 세부 선택 데이터
List<VEAStngVO> selectList_VEAALS_1(VEAStngVO paramVO) throws Exception; // LIST
}

View File

@ -12,4 +12,41 @@ public interface VEAStngService {
List<VEAStngVO> selectList_VEALYS(VEAStngVO paramVO) throws Exception; // LIST List<VEAStngVO> selectList_VEALYS(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEALYS(VEAStngVO paramVO) throws Exception; // Page List List<VEAStngVO> selectPagingList_VEALYS(VEAStngVO paramVO) throws Exception; // Page List
//VEA_LCTR_RNDS_STNG - 강의회차설정
void insert_VEALRS(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEALRS(VEAStngVO paramVO) throws Exception; // R
int update_VEALRS(VEAStngVO paramVO) throws Exception; // U
int delete_VEALRS(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEALRS(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEALRS(VEAStngVO paramVO) throws Exception; // Page List
//VEA_LCTR_PSBL_PRD_STNG - 강의기간설정
void insert_VEALPPS(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEALPPS(VEAStngVO paramVO) throws Exception; // R
int update_VEALPPS(VEAStngVO paramVO) throws Exception; // U
int delete_VEALPPS(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEALPPS(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEALPPS(VEAStngVO paramVO) throws Exception; // Page List
//etc
//강의기간이 기존 기간과 일치하는지 확인
List<VEAStngVO> selectList_VEALPPS_prdDupCheck(VEAStngVO paramVO) throws Exception; // 강의기간 중복 체크
//VEA_DT_PSBL_TM_QNTTY_STNG - 일별가능시수설정
void insert_VEADPTQS(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEADPTQS(VEAStngVO paramVO) throws Exception; // R
int update_VEADPTQS(VEAStngVO paramVO) throws Exception; // U
int delete_VEADPTQS(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEADPTQS(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEADPTQS(VEAStngVO paramVO) throws Exception; // Page List
//VEA_AREA_LCTR_STNG - 지역별강의설정
void insert_VEAALS(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEAALS(VEAStngVO paramVO) throws Exception; // R
int update_VEAALS(VEAStngVO paramVO) throws Exception; // U
int delete_VEAALS(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEAALS(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEAALS(VEAStngVO paramVO) throws Exception; // Page List
} }

View File

@ -49,9 +49,55 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
private String lctrPsblDdlnTm; //강의가능종료시간 private String lctrPsblDdlnTm; //강의가능종료시간
private String ttlEduCnfrmPsblChasi; //총교육확정가능차시 private String ttlEduCnfrmPsblChasi; //총교육확정가능차시
private String ttlRgstrChasi; //총접수차시 private String ttlRgstrChasi; //총접수차시
private String ttlRgstrChasiRegPnttm; //총접수차시등록일시 private String ttlRgstrChasiRegistPnttm; //총접수차시등록일시
private String ttlRgstrChasiRegisterId; //총정수차시등록자 private String ttlRgstrChasiRegisterId; //총정수차시등록자
//etc
private String code; //설정 년도
private String dpStrtDt; //표시용시작일자
private String dpStrtTm; //표시용시작시간
private String dpDdlnDt; //표시용마감일자
private String dpDdlnTm; //표시용마감시간
private String rgstrDateState; //일자기준접수상태 0,1,2 -기간전, 기간중, 기간후
//4 update
private String tableNm;
private String setQuery;
private String whereQuery;
//4 fullcalendar
private String start;
private String end;
private String title;
//지역별 강의 설정
private String userNm;
/**
* 링크 URL
*/
private String url;
/**
* 라인 배경컬러
*/
private String color;
/**
* 텍스트 컬러
*/
private String textColor;
/**
* 하루여부
*/
private boolean allDay;
public String getYr() { public String getYr() {
return yr; return yr;
@ -203,17 +249,125 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
public void setTtlRgstrChasi(String ttlRgstrChasi) { public void setTtlRgstrChasi(String ttlRgstrChasi) {
this.ttlRgstrChasi = ttlRgstrChasi; this.ttlRgstrChasi = ttlRgstrChasi;
} }
public String getTtlRgstrChasiRegPnttm() {
return ttlRgstrChasiRegPnttm;
}
public void setTtlRgstrChasiRegPnttm(String ttlRgstrChasiRegPnttm) {
this.ttlRgstrChasiRegPnttm = ttlRgstrChasiRegPnttm;
}
public String getTtlRgstrChasiRegisterId() { public String getTtlRgstrChasiRegisterId() {
return ttlRgstrChasiRegisterId; return ttlRgstrChasiRegisterId;
} }
public void setTtlRgstrChasiRegisterId(String ttlRgstrChasiRegisterId) { public void setTtlRgstrChasiRegisterId(String ttlRgstrChasiRegisterId) {
this.ttlRgstrChasiRegisterId = ttlRgstrChasiRegisterId; this.ttlRgstrChasiRegisterId = ttlRgstrChasiRegisterId;
} }
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getDpStrtDt() {
return dpStrtDt;
}
public void setDpStrtDt(String dpStrtDt) {
this.dpStrtDt = dpStrtDt;
}
public String getDpStrtTm() {
return dpStrtTm;
}
public void setDpStrtTm(String dpStrtTm) {
this.dpStrtTm = dpStrtTm;
}
public String getDpDdlnDt() {
return dpDdlnDt;
}
public void setDpDdlnDt(String dpDdlnDt) {
this.dpDdlnDt = dpDdlnDt;
}
public String getDpDdlnTm() {
return dpDdlnTm;
}
public void setDpDdlnTm(String dpDdlnTm) {
this.dpDdlnTm = dpDdlnTm;
}
public String getRgstrDateState() {
return rgstrDateState;
}
public void setRgstrDateState(String rgstrDateState) {
this.rgstrDateState = rgstrDateState;
}
public String getTableNm() {
return tableNm;
}
public void setTableNm(String tableNm) {
this.tableNm = tableNm;
}
public String getSetQuery() {
return setQuery;
}
public void setSetQuery(String setQuery) {
this.setQuery = setQuery;
}
public String getWhereQuery() {
return whereQuery;
}
public void setWhereQuery(String whereQuery) {
this.whereQuery = whereQuery;
}
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
public String getEnd() {
return end;
}
public void setEnd(String end) {
this.end = end;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getTextColor() {
return textColor;
}
public void setTextColor(String textColor) {
this.textColor = textColor;
}
public boolean isAllDay() {
return allDay;
}
public void setAllDay(boolean allDay) {
this.allDay = allDay;
}
public String getTtlRgstrChasiRegistPnttm() {
return ttlRgstrChasiRegistPnttm;
}
public void setTtlRgstrChasiRegistPnttm(String ttlRgstrChasiRegistPnttm) {
this.ttlRgstrChasiRegistPnttm = ttlRgstrChasiRegistPnttm;
}
/**
* @return the userNm
*/
public String getUserNm() {
return userNm;
}
/**
* @param userNm the userNm to set
*/
public void setUserNm(String userNm) {
this.userNm = userNm;
}
} }

View File

@ -33,14 +33,129 @@ public class VEAStngDAO extends EgovAbstractDAO {
return tlist; return tlist;
} }
/**
* L - Page
* @param addrVO
* @return
* @throws Exception
*/
public List<VEAStngVO> selectPagingList_VEALYS(VEAStngVO paramVO) throws Exception { public List<VEAStngVO> selectPagingList_VEALYS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrYrStngDAO.selectPagingList", paramVO); List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrYrStngDAO.selectPagingList", paramVO);
return tlist; return tlist;
} }
//VEA_LCTR_RNDS_STNG - 강의회차설정
public void insert_VEALRS(VEAStngVO paramVO) throws Exception {
insert("VEALctrRndsStngDAO.insert", paramVO);
}
public VEAStngVO selectDetail_VEALRS(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEALctrRndsStngDAO.selectDetail", paramVO);
}
public int update_VEALRS(VEAStngVO paramVO) throws Exception {
return update("VEALctrRndsStngDAO.update", paramVO);
}
public int delete_VEALRS(VEAStngVO paramVO) throws Exception {
return delete("VEALctrRndsStngDAO.delete", paramVO);
}
//L
public List<VEAStngVO> selectList_VEALRS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrRndsStngDAO.selectList", paramVO);
return tlist;
}
public List<VEAStngVO> selectPagingList_VEALRS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrRndsStngDAO.selectPagingList", paramVO);
return tlist;
}
//VEA_LCTR_PSBL_PRD_STNG - 강의기간설정
public void insert_VEALPPS(VEAStngVO paramVO) throws Exception {
insert("VEALctrPsblPrdStngDAO.insert", paramVO);
}
public VEAStngVO selectDetail_VEALPPS(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEALctrPsblPrdStngDAO.selectDetail", paramVO);
}
public int update_VEALPPS(VEAStngVO paramVO) throws Exception {
return update("VEALctrPsblPrdStngDAO.update", paramVO);
}
public int delete_VEALPPS(VEAStngVO paramVO) throws Exception {
return delete("VEALctrPsblPrdStngDAO.delete", paramVO);
}
//L
public List<VEAStngVO> selectList_VEALPPS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrPsblPrdStngDAO.selectList", paramVO);
return tlist;
}
public List<VEAStngVO> selectPagingList_VEALPPS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrPsblPrdStngDAO.selectPagingList", paramVO);
return tlist;
}
public List<VEAStngVO> selectList_VEALPPS_prdDupCheck(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrPsblPrdStngDAO.selectListPrdDupCheck", paramVO);
return tlist;
}
//VEA_DT_PSBL_TM_QNTTY_STNG - 일별가능시수설정
public void insert_VEADPTQS(VEAStngVO paramVO) throws Exception {
insert("VEADtPsblTmQnttyStngDAO.insert", paramVO);
}
public VEAStngVO selectDetail_VEADPTQS(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEADtPsblTmQnttyStngDAO.selectDetail", paramVO);
}
public int update_VEADPTQS(VEAStngVO paramVO) throws Exception {
return update("VEADtPsblTmQnttyStngDAO.update", paramVO);
}
public int delete_VEADPTQS(VEAStngVO paramVO) throws Exception {
return delete("VEADtPsblTmQnttyStngDAO.delete", paramVO);
}
//L
public List<VEAStngVO> selectList_VEADPTQS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEADtPsblTmQnttyStngDAO.selectList", paramVO);
return tlist;
}
public List<VEAStngVO> selectPagingList_VEADPTQS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEADtPsblTmQnttyStngDAO.selectPagingList", paramVO);
return tlist;
}
//VEA_AREA_LCTR_STNG - 지역별강의설정
public void insert_VEAALS(VEAStngVO paramVO) throws Exception {
insert("VEAAreaLctrStngDAO.insert", paramVO);
}
public VEAStngVO selectDetail_VEAALS(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEAAreaLctrStngDAO.selectDetail", paramVO);
}
public int update_VEAALS(VEAStngVO paramVO) throws Exception {
return update("VEAAreaLctrStngDAO.update", paramVO);
}
public int delete_VEAALS(VEAStngVO paramVO) throws Exception {
return delete("VEAAreaLctrStngDAO.delete", paramVO);
}
//L
public List<VEAStngVO> selectList_VEAALS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAAreaLctrStngDAO.selectList", paramVO);
return tlist;
}
public List<VEAStngVO> selectPagingList_VEAALS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAAreaLctrStngDAO.selectPagingList", paramVO);
return tlist;
}
} }

View File

@ -0,0 +1,47 @@
package kcc.ve.adv.tngr.stngInfo.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
@Repository("vEAStngMixDAO")
public class VEAStngMixDAO extends EgovAbstractDAO {
//VEA_LCTR_YR_STNG - 강의년도설정
public VEAStngVO selectDetail_VEALYS(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEALctrYrStngMixDAO.selectDetail_VEALYS", paramVO);
}
public int updateState(VEAStngVO paramVO) throws Exception {
return update("VEALctrYrStngMixDAO.updateState", paramVO);
}
//L
public List<VEAStngVO> selectList_VEALPPS_1(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrYrStngMixDAO.selectList_VEALPPS_1", paramVO);
return tlist;
}
public List<VEAStngVO> selectList_VEALPPS_2(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrYrStngMixDAO.selectList_VEALPPS_2", paramVO);
return tlist;
}
public List<VEAStngVO> selectList_VEALPPS_3(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrYrStngMixDAO.selectList_VEALPPS_3", paramVO);
return tlist;
}
public VEAStngVO selectDetail_VEADPTQS(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEALctrYrStngMixDAO.selectDetail_VEADPTQS", paramVO);
}
public List<VEAStngVO> selectList_VEAALS_1(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEALctrYrStngMixDAO.selectList_VEAALS_1", paramVO);
return tlist;
}
}

View File

@ -0,0 +1,60 @@
package kcc.ve.adv.tngr.stngInfo.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngMixService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
@Service("vEAStngMixService")
public class VEAStngMixServiceImpl implements VEAStngMixService {
//과정
@Resource(name="vEAStngMixDAO")
private VEAStngMixDAO vEAStngMixDAO;
/*
* void insert_VEALYS(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEALYS(VEAStngVO paramVO) throws Exception; // R
int update_VEALYS(VEAStngVO paramVO) throws Exception; // U
int delete_VEALYS(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEALYS(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEALYS(VEAStngVO paramVO) throws Exception; // Page List
* */
//R
public VEAStngVO selectDetail_VEALYS(VEAStngVO paramVO) throws Exception {
return vEAStngMixDAO.selectDetail_VEALYS(paramVO);
}
//U
public int updateState(VEAStngVO paramVO) throws Exception{
return vEAStngMixDAO.updateState(paramVO);
}
//List
public List<VEAStngVO> selectList_VEALPPS_1(VEAStngVO paramVO) throws Exception{
return vEAStngMixDAO.selectList_VEALPPS_1(paramVO);
}
public List<VEAStngVO> selectList_VEALPPS_2(VEAStngVO paramVO) throws Exception{
return vEAStngMixDAO.selectList_VEALPPS_2(paramVO);
}
public List<VEAStngVO> selectList_VEALPPS_3(VEAStngVO paramVO) throws Exception{
return vEAStngMixDAO.selectList_VEALPPS_3(paramVO);
}
public VEAStngVO selectDetail_VEADPTQS(VEAStngVO paramVO) throws Exception {
return vEAStngMixDAO.selectDetail_VEADPTQS(paramVO);
}
public List<VEAStngVO> selectList_VEAALS_1(VEAStngVO paramVO) throws Exception{
return vEAStngMixDAO.selectList_VEAALS_1(paramVO);
}
}

View File

@ -57,4 +57,141 @@ public class VEAStngServiceImpl implements VEAStngService {
public List<VEAStngVO> selectPagingList_VEALYS(VEAStngVO paramVO) throws Exception{ public List<VEAStngVO> selectPagingList_VEALYS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEALYS(paramVO); return vEAStngDAO.selectPagingList_VEALYS(paramVO);
} }
//VEA_LCTR_RNDS_STNG - 강의회차설정
//C
public void insert_VEALRS(VEAStngVO paramVO) throws Exception {
vEAStngDAO.insert_VEALRS(paramVO);
}
//R
public VEAStngVO selectDetail_VEALRS(VEAStngVO paramVO) throws Exception {
return vEAStngDAO.selectDetail_VEALRS(paramVO);
}
//U
public int update_VEALRS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.update_VEALRS(paramVO);
}
//D
public int delete_VEALRS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEALRS(paramVO);
}
//List
public List<VEAStngVO> selectList_VEALRS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEALRS(paramVO);
}
//paging List
public List<VEAStngVO> selectPagingList_VEALRS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEALRS(paramVO);
}
//VEA_LCTR_PSBL_PRD_STNG - 강의기간설정
//C
public void insert_VEALPPS(VEAStngVO paramVO) throws Exception {
vEAStngDAO.insert_VEALPPS(paramVO);
}
//R
public VEAStngVO selectDetail_VEALPPS(VEAStngVO paramVO) throws Exception {
return vEAStngDAO.selectDetail_VEALPPS(paramVO);
}
//U
public int update_VEALPPS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.update_VEALPPS(paramVO);
}
//D
public int delete_VEALPPS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEALPPS(paramVO);
}
//List
public List<VEAStngVO> selectList_VEALPPS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEALPPS(paramVO);
}
//paging List
public List<VEAStngVO> selectPagingList_VEALPPS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEALPPS(paramVO);
}
//기간 중복 체크
public List<VEAStngVO> selectList_VEALPPS_prdDupCheck(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEALPPS_prdDupCheck(paramVO);
}
//VEA_DT_PSBL_TM_QNTTY_STNG - 일별가능시수설정
//C
public void insert_VEADPTQS(VEAStngVO paramVO) throws Exception {
vEAStngDAO.insert_VEADPTQS(paramVO);
}
//R
public VEAStngVO selectDetail_VEADPTQS(VEAStngVO paramVO) throws Exception {
return vEAStngDAO.selectDetail_VEADPTQS(paramVO);
}
//U
public int update_VEADPTQS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.update_VEADPTQS(paramVO);
}
//D
public int delete_VEADPTQS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEADPTQS(paramVO);
}
//List
public List<VEAStngVO> selectList_VEADPTQS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEADPTQS(paramVO);
}
//paging List
public List<VEAStngVO> selectPagingList_VEADPTQS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEADPTQS(paramVO);
}
//VEA_AREA_LCTR_STNG - 지역별강의설정
//C
public void insert_VEAALS(VEAStngVO paramVO) throws Exception {
vEAStngDAO.insert_VEAALS(paramVO);
}
//R
public VEAStngVO selectDetail_VEAALS(VEAStngVO paramVO) throws Exception {
return vEAStngDAO.selectDetail_VEAALS(paramVO);
}
//U
public int update_VEAALS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.update_VEAALS(paramVO);
}
//D
public int delete_VEAALS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEAALS(paramVO);
}
//List
public List<VEAStngVO> selectList_VEAALS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEAALS(paramVO);
}
//paging List
public List<VEAStngVO> selectPagingList_VEAALS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEAALS(paramVO);
}
} }

View File

@ -203,6 +203,8 @@ public class VELctrDetailVO extends ComDefaultVO implements Serializable {
private String chasi; private String chasi;
private String rndsOrd;
public String getChasi() { public String getChasi() {
return chasi; return chasi;
@ -1035,5 +1037,11 @@ public class VELctrDetailVO extends ComDefaultVO implements Serializable {
public void setUserIdNum(String userIdNum) { public void setUserIdNum(String userIdNum) {
this.userIdNum = userIdNum; this.userIdNum = userIdNum;
} }
public String getRndsOrd() {
return rndsOrd;
}
public void setRndsOrd(String rndsOrd) {
this.rndsOrd = rndsOrd;
}
} }

View File

@ -1628,9 +1628,9 @@ public class OprtnInstrTngrPrflContoller {
//3. SelectPagingListQuery set 조건 설정 //3. SelectPagingListQuery set 조건 설정
String selectCondition = new String(); String selectCondition = new String();
//3.1 제출 완료 사용중인 데이터 조회 //3.1 제출 완료 사용중인 데이터 조회
selectCondition += "AND a.sbmt_yn='Y' AND a.use_yn = 'Y'"; selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'";
//3.2 강사 테이블 성인강사여부 Y인것만 조회 //3.2 강사 테이블 성인강사여부 Y인것만 조회
selectCondition += "AND (b.tngr_instr_yn ='Y' OR a.qlfct_end_yn = 'Y') "; selectCondition += "AND (b0.tngr_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') ";
//3.3 이름 검색 //3.3 이름 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){ if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){
//이름 암호화 - comDefaultVO 검색단어 공통 암호화 //이름 암호화 - comDefaultVO 검색단어 공통 암호화

View File

@ -32,6 +32,8 @@ import kcc.let.sym.ccm.cde.service.CmmnDetailCodeVO;
import kcc.let.sym.ccm.cde.service.EgovCcmCmmnDetailCodeManageService; import kcc.let.sym.ccm.cde.service.EgovCcmCmmnDetailCodeManageService;
import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
import kcc.ve.cmm.VeConstants; import kcc.ve.cmm.VeConstants;
import kcc.ve.cmm.VeInstrFeeMng; import kcc.ve.cmm.VeInstrFeeMng;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
@ -174,6 +176,10 @@ public class AreaLctrMngTngrController {
@Resource(name = "CmmnDetailCodeManageService") @Resource(name = "CmmnDetailCodeManageService")
private EgovCcmCmmnDetailCodeManageService cmmnDetailCodeManageService; private EgovCcmCmmnDetailCodeManageService cmmnDetailCodeManageService;
//강의설정 관리
@Resource(name = "vEAStngService")
private VEAStngService vEAStngService;
/** /**
* 지역별 강의관리 목록 화면 * 지역별 강의관리 목록 화면
*/ */
@ -448,6 +454,14 @@ public class AreaLctrMngTngrController {
try { try {
System.out.println("request.getParameterValues(rndsOrd");
System.out.println(request.getParameter("rndsOrd"));
System.out.println(request.getParameter("rndsOrd"));
System.out.println(request.getParameter("rndsOrd"));
//회차 고유 코드
String s_rndsOrd = request.getParameter("rndsOrd");
//세부과정 생성하기 //세부과정 생성하기
String[] a_checkList = request.getParameterValues("checkList"); String[] a_checkList = request.getParameterValues("checkList");
String s_checkList = ""; String s_checkList = "";
@ -456,6 +470,7 @@ public class AreaLctrMngTngrController {
s_checkList = s_checkList + a_checkList[i] + "_"; s_checkList = s_checkList + a_checkList[i] + "_";
} }
vELctrDetailVO.setAreaCd(s_checkList); vELctrDetailVO.setAreaCd(s_checkList);
vELctrDetailVO.setLctrAreaOrd(s_rndsOrd);
}catch(Exception ex) }catch(Exception ex)
{ {
@ -492,43 +507,44 @@ public class AreaLctrMngTngrController {
//로그인 처리==================================== //로그인 처리====================================
System.out.println(vELctrDetailVO.toString()); System.out.println("vELctrDetailVO.toString()");
System.out.println(vELctrDetailVO.getAreaCd()); System.out.println(vELctrDetailVO.getAreaCd());
System.out.println(vELctrDetailVO.getLctrAreaOrd());
System.out.println(request.getParameter("instrDiv")); //System.out.println(request.getParameter("instrDiv"));
System.out.println(request.getParameter("ddlnStateCd")); //System.out.println(request.getParameter("ddlnStateCd"));
try { try {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//String[] a_checkList = request.getParameterValues("checkList"); VEAStngVO vEAStngVO = new VEAStngVO();
String s_divStr = request.getParameter("instrDiv");
//
String s_rndsOrd = vELctrDetailVO.getLctrAreaOrd();
String[] a_areaCd = request.getParameter("areaCd").split("_"); String[] a_areaCd = request.getParameter("areaCd").split("_");
String s_lctrPsblStrtT = request.getParameter("lctrPsblStrtTm"); String s_lctrPsblStrtT = request.getParameter("lctrPsblStrtTm");
//String s_lctrPsblStrtM = request.getParameter("lctrPsblStrtM");
String s_lctrPsblEndT = request.getParameter("lctrPsblEndTm");
//String s_lctrPsblEndM = request.getParameter("lctrPsblEndM");
//String[] a_areaCd = vELctrDetailVO.getAreaCd().split("_"); String s_lctrPsblEndT = request.getParameter("lctrPsblEndTm");
vELctrDetailVO.setInstrDiv(s_divStr);
//vELctrDetailVO.setLctrPsblStrtTm(s_lctrPsblStrtT+":"+s_lctrPsblStrtM);
//vELctrDetailVO.setLctrPsblEndTm(s_lctrPsblEndT+":"+s_lctrPsblEndM); vEAStngVO.setRndsOrd(s_rndsOrd);
if(s_lctrPsblStrtT != null && !"".equals(s_lctrPsblStrtT)) { if(s_lctrPsblStrtT != null && !"".equals(s_lctrPsblStrtT)) {
vELctrDetailVO.setLctrPsblStrtTm(s_lctrPsblStrtT+":00"); vEAStngVO.setLctrPsblStrtTm(s_lctrPsblStrtT+":00");
} }
if(s_lctrPsblEndT != null && !"".equals(s_lctrPsblEndT)) { if(s_lctrPsblEndT != null && !"".equals(s_lctrPsblEndT)) {
vELctrDetailVO.setLctrPsblEndTm(s_lctrPsblEndT+":00"); vEAStngVO.setLctrPsblDdlnTm(s_lctrPsblEndT+":00");
} }
vELctrDetailVO.setFrstRegisterId(loginVO.getUniqId());
vELctrDetailVO.setLastUpdusrId(loginVO.getUniqId()); vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
for (int i=0;i<a_areaCd.length;i++) { for (int i=0;i<a_areaCd.length;i++) {
if (!"".equals(a_areaCd[i])) { if (!"".equals(a_areaCd[i])) {
vELctrDetailVO.setAreaCd(a_areaCd[i]); vEAStngVO.setAreaCd(a_areaCd[i]);
vELctrAreaMngService.insert(vELctrDetailVO); vEAStngService.update_VEAALS(vEAStngVO);
} }
} }

View File

@ -112,9 +112,10 @@
<sqlMap resource="egovframework/sqlmap/ve/asgnm/VEAsgnm_NOTI_SQL_Tibero.xml"/> <sqlMap resource="egovframework/sqlmap/ve/asgnm/VEAsgnm_NOTI_SQL_Tibero.xml"/>
<!-- 청소년 추가 --> <!-- 청소년 추가 -->
<!-- <sqlMap resource="egovframework/sqlmap/ve/tngr/VEADtPsblTmQnttyStng_SQL_Tibero.xml"/> 일별가능시수설정 --> <sqlMap resource="egovframework/sqlmap/ve/tngr/VEADtPsblTmQnttyStng_SQL_Tibero.xml"/> <!-- 일별가능시수설정 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrYrStng_SQL_Tibero.xml"/> <!-- 강의년도설정 --> <sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrYrStng_SQL_Tibero.xml"/> <!-- 강의년도설정 -->
<!-- <sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrRndsStng_SQL_Tibero.xml"/> 강의회차설정 --> <sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrYrStngMix_SQL_Tibero.xml"/> <!-- 강의년도설정(MIX) -->
<!-- <sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrPsblPrdStng_SQL_Tibero.xml"/> 강의가능기간설정 --> <sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrRndsStng_SQL_Tibero.xml"/> <!-- 강의회차설정 -->
<!-- <sqlMap resource="egovframework/sqlmap/ve/tngr/VEAAreaLctrStng_SQL_Tibero.xml"/> 지역별강의설정 --> <sqlMap resource="egovframework/sqlmap/ve/tngr/VEALctrPsblPrdStng_SQL_Tibero.xml"/> <!-- 강의가능기간설정 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAAreaLctrStng_SQL_Tibero.xml"/> <!-- 지역별강의설정 -->
</sqlMapConfig> </sqlMapConfig>

View File

@ -630,6 +630,7 @@
AND cc.instr_detail_ord >a.instr_detail_ord AND cc.instr_detail_ord >a.instr_detail_ord
) AS instrMdfyOrd ) AS instrMdfyOrd
/*
, (SELECT f.one_depth_nm , (SELECT f.one_depth_nm
FROM ve_rsdnc f FROM ve_rsdnc f
WHERE f.post_id = MAX(e.area_cd) WHERE f.post_id = MAX(e.area_cd)
@ -637,6 +638,29 @@
) AS lctrAreaNm ) AS lctrAreaNm
, COUNT(e.area_cd) AS lctrAreaCnt , COUNT(e.area_cd) AS lctrAreaCnt
*/
, ( SELECT f.one_depth_nm
FROM ve_rsdnc f
WHERE f.post_id = (
SELECT MAX(ee.area_cd)
FROM ve_lctr_area ee
WHERE ee.instr_div = d.instr_div
AND ee.user_id = d.user_id
AND ee.lctr_stng_ord=d.lctr_stng_ord
)
GROUP BY f.one_depth_nm
) AS lctrAreaNm
, (
SELECT count(1)
FROM ve_lctr_area ee
WHERE ee.instr_div = d.instr_div
AND ee.user_id = d.user_id
AND ee.lctr_stng_ord=d.lctr_stng_ord
) AS lctrAreaCnt
, CASE WHEN d.mon_lctr_yn = 'Y' THEN 1 , CASE WHEN d.mon_lctr_yn = 'Y' THEN 1
ELSE 0 ELSE 0
END AS monLctrYn END AS monLctrYn
@ -658,26 +682,44 @@
AND g.instr_detail_ord = '1' AND g.instr_detail_ord = '1'
AND g.instr_div = a.instr_div AND g.instr_div = a.instr_div
)AS regSbmtPnttm )AS regSbmtPnttm
FROM
ve_instr b FROM ( SELECT COUNT(1) OVER() AS totCnt ,
a0.instr_div AS instrDiv ,
a0.user_id AS userId ,
a0.instr_detail_ord AS instrDetailOrd
FROM ve_instr b0 ,
ve_instr_detail a0
WHERE 1 =1
/*
AND a0.user_id=b0.user_id
AND a0.sbmt_yn='Y'
AND a0.use_yn = 'Y'
AND
(
b0.tngr_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y'
)
AND a0.instr_div='10'
*/
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
GROUP BY a0.instr_div ,
a0.user_id ,
a0.instr_detail_ord
) a00
, <include refid="VEInstrMixDAO.detail_table_name"/> a , <include refid="VEInstrMixDAO.detail_table_name"/> a
LEFT OUTER JOIN ve_lctr_stng d LEFT OUTER JOIN ve_lctr_stng d
ON (d.instr_div = a.instr_div ON (d.instr_div = a.instr_div
AND d.user_id = a.user_id AND d.user_id = a.user_id
AND d.use_yn='Y' AND d.use_yn='Y'
) )
LEFT OUTER JOIN ve_lctr_area e WHERE 1=1
ON ( e.instr_div = d.instr_div AND a00.instrDiv =a.instr_div
AND e.user_id = d.user_id AND a00.userId =a.user_id
AND e.lctr_stng_ord=d.lctr_stng_ord AND a00.instrDetailOrd=a.instr_detail_ord
)
WHERE
1=1
AND a.user_id=b.user_id
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="searchQlfctEndYn"> <isNotEmpty property="searchQlfctEndYn">
<isEqual property="searchQlfctEndYn" compareValue="Y"> <isEqual property="searchQlfctEndYn" compareValue="Y">
@ -697,8 +739,6 @@
AND a.instr_div=#instrDiv# AND a.instr_div=#instrDiv#
</isNotEmpty> </isNotEmpty>
GROUP BY a.user_id, a.instr_div
<isNotEmpty property="searchStartDt"> <isNotEmpty property="searchStartDt">
<isNotEmpty property="searchEndDt"> <isNotEmpty property="searchEndDt">
HAVING TO_CHAR(regSbmtPnttm, 'YYYYMMDD') >= REPLACE(#searchStartDt#, '.', '') HAVING TO_CHAR(regSbmtPnttm, 'YYYYMMDD') >= REPLACE(#searchStartDt#, '.', '')
@ -708,7 +748,7 @@
ORDER BY 1 ORDER BY 1
<isEmpty property="orderByQuery"> <isEmpty property="orderByQuery">
, b.user_id desc , a.user_id desc
</isEmpty> </isEmpty>
<isNotEmpty property="orderByQuery"> <isNotEmpty property="orderByQuery">
, $orderByQuery$ , $orderByQuery$

View File

@ -318,22 +318,26 @@
<!-- 설정 년월L --> <!-- 설정 년월L -->
<select id="VELctrMIXDAO.selectStngMntList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectStngMntList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
/* VELctrMIXDAO.selectStngMntList */
SELECT b.stngMnt SELECT b.stngMnt
, CASE WHEN TO_CHAR(SYSDATE,'MM') = b.stngMnt then 1 else 0 end AS useYn
/*
, IF (DATE_FORMAT(NOW(),'%m')= b.stngMnt, 1, 0) useYn , IF (DATE_FORMAT(NOW(),'%m')= b.stngMnt, 1, 0) useYn
*/
FROM FROM
( (
SELECT '01' stngMnt SELECT '01' stngMnt FROM DUAL
UNION ALL SELECT '02' UNION ALL SELECT '02' FROM DUAL
UNION ALL SELECT '03' UNION ALL SELECT '03' FROM DUAL
UNION ALL SELECT '04' UNION ALL SELECT '04' FROM DUAL
UNION ALL SELECT '05' UNION ALL SELECT '05' FROM DUAL
UNION ALL SELECT '06' UNION ALL SELECT '06' FROM DUAL
UNION ALL SELECT '07' UNION ALL SELECT '07' FROM DUAL
UNION ALL SELECT '08' UNION ALL SELECT '08' FROM DUAL
UNION ALL SELECT '09' UNION ALL SELECT '09' FROM DUAL
UNION ALL SELECT '10' UNION ALL SELECT '10' FROM DUAL
UNION ALL SELECT '11' UNION ALL SELECT '11' FROM DUAL
UNION ALL SELECT '12' UNION ALL SELECT '12' FROM DUAL
)b )b
ORDER BY b.stngMnt ORDER BY b.stngMnt
</select> </select>

View File

@ -7,13 +7,20 @@
<!-- 공통 테이블 명 --> <!-- 공통 테이블 명 -->
<sql id="VEAAreaLctrStngDAO.table_name"> <sql id="VEAAreaLctrStngDAO.table_name">
ve_edu_aplct_onln vea_area_lctr_stng
</sql> </sql>
<!-- 저장용 공통 컬럼 명 --> <!-- 저장용 공통 컬럼 명 -->
<sql id="VEAAreaLctrStngDAO.column_name"> <sql id="VEAAreaLctrStngDAO.column_name">
edu_aplct_ord, rnds_ord,
prcs_ord, area_cd,
lctr_psbl_strt_tm,
lctr_psbl_ddln_tm,
ttl_edu_cnfrm_psbl_chasi,
ttl_rgstr_chasi,
ttl_rgstr_chasi_regist_pnttm,
ttl_rgstr_chasi_register_id,
frst_regist_pnttm, frst_regist_pnttm,
frst_register_id, frst_register_id,
@ -25,12 +32,21 @@
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
<sql id="VEAAreaLctrStngDAO.select_column_name"> <sql id="VEAAreaLctrStngDAO.select_column_name">
a.edu_aplct_ord AS eduAplctOrd,
a.prcs_ord AS prcsOrd,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm, a.rnds_ord AS rndsOrd,
a.area_cd AS areaCd,
a.lctr_psbl_strt_tm AS lctrPsblStrtTm,
a.lctr_psbl_ddln_tm AS lctrPsblDdlnTm,
a.ttl_edu_cnfrm_psbl_chasi AS ttlEduCnfrmPsblChasi,
a.ttl_rgstr_chasi AS ttlRgstrChasi,
a.ttl_rgstr_chasi_regist_pnttm AS ttlRgstrChasiRegistPnttm,
a.ttl_rgstr_chasi_register_id AS ttlRgstrChasiRegisterId,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId, a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm, TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId a.last_updusr_id AS lastUpdusrId
</sql> </sql>
@ -40,8 +56,16 @@
INSERT INTO <include refid="VEAAreaLctrStngDAO.table_name"/> ( INSERT INTO <include refid="VEAAreaLctrStngDAO.table_name"/> (
<include refid="VEAAreaLctrStngDAO.column_name"/> <include refid="VEAAreaLctrStngDAO.column_name"/>
)VALUES( )VALUES(
#eduAplctOrd#, #rndsOrd#,
#prcsOrd#, #areaCd#,
#lctrPsblStrtTm#,
#lctrPsblDdlnTm#,
#ttlEduCnfrmPsblChasi#,
#ttlRgstrChasi#,
#ttlRgstrChasiRegistPnttm#,
#ttlRgstrChasiRegisterId#,
SYSDATE, SYSDATE,
#frstRegisterId#, #frstRegisterId#,
SYSDATE, SYSDATE,
@ -56,44 +80,68 @@
FROM FROM
<include refid="VEAAreaLctrStngDAO.table_name"/> a <include refid="VEAAreaLctrStngDAO.table_name"/> a
WHERE WHERE
a.edu_aplct_ord = #eduAplctOrd# a.rnds_ord = #rndsOrd#
AND a.prcs_ord = #prcsOrd# AND a.area_cd = #areaCd#
</select> </select>
<!-- 강사 정보 U --> <!-- 강사 정보 U -->
<update id="VEAAreaLctrStngDAO.update" parameterClass="VEAStngVO"> <update id="VEAAreaLctrStngDAO.update" parameterClass="VEAStngVO">
UPDATE
<include refid="VEAAreaLctrStngDAO.table_name"/>
SET
LAST_UPDT_PNTTM = SYSDATE /* VEAAreaLctrStngDAO.update */
,LAST_UPDUSR_ID = #lastUpdusrId# MERGE INTO <include refid="VEAAreaLctrStngDAO.table_name"/>
USING DUAL
ON(rnds_ord=#rndsOrd# AND area_cd=#areaCd#)
WHERE WHEN NOT MATCHED THEN
edu_aplct_ord = #eduAplctOrd# INSERT
AND prcs_ord = #prcsOrd# (
</update> <include refid="VEAAreaLctrStngDAO.column_name"/>
)
VALUES(
#rndsOrd#,
#areaCd#,
<!-- 강사 정보 U --> #lctrPsblStrtTm#,
<update id="VEAAreaLctrStngDAO.updateBulk" parameterClass="VEAStngVO"> #lctrPsblDdlnTm#,
INSERT INTO <include refid="VEAAreaLctrStngDAO.table_name"/> #ttlEduCnfrmPsblChasi#,
( #ttlRgstrChasi#,
edu_aplct_ord, #ttlRgstrChasiRegistPnttm#,
prcs_ord, #ttlRgstrChasiRegisterId#,
frst_regist_pnttm, SYSDATE,
frst_register_id #frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET last_updt_pnttm = SYSDATE
, last_updusr_id = #frstRegisterId#
) <isNotEmpty property="lctrPsblStrtTm">
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId# , lctr_psbl_strt_tm = #lctrPsblStrtTm#
FROM ve_prcs_onln_cntnt </isNotEmpty>
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
<isNotEmpty property="lctrPsblDdlnTm">
, lctr_psbl_ddln_tm = #lctrPsblDdlnTm#
</isNotEmpty>
<isNotEmpty property="ttlEduCnfrmPsblChasi">
, ttl_edu_cnfrm_psbl_chasi = #ttlEduCnfrmPsblChasi#
</isNotEmpty>
<isNotEmpty property="ttlRgstrChasi">
, ttl_rgstr_chasi = #ttlRgstrChasi#
</isNotEmpty>
<isNotEmpty property="ttlRgstrChasiRegistPnttm">
, ttl_rgstr_chasi_regist_pnttm = #ttlRgstrChasiRegistPnttm#
</isNotEmpty>
<isNotEmpty property="ttlRgstrChasiRegisterId">
, ttl_rgstr_chasi_register_id = #ttlRgstrChasiRegisterId#
</isNotEmpty>
</update> </update>
@ -102,13 +150,14 @@
DELETE FROM DELETE FROM
<include refid="VEAAreaLctrStngDAO.table_name"/> <include refid="VEAAreaLctrStngDAO.table_name"/>
WHERE WHERE
edu_aplct_ord = #eduAplctOrd# rnds_ord = #rndsOrd#
AND area_cd = #areaCd#
<isNotEmpty property="prcsOrd"> <isNotEmpty property="prcsOrd">
AND prcs_ord = #prcsOrd# AND prcs_ord = #prcsOrd#
</isNotEmpty> </isNotEmpty>
</delete> </delete>
<!-- 강사 정보 L --> <!-- 강사 정보 L -->
@ -140,24 +189,23 @@
$selectPagingListQuery$ $selectPagingListQuery$
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="eduAplctOrd"> <isNotEmpty property="rndsOrd">
AND a.edu_aplct_ord=#eduAplctOrd# AND a.rnds_ord=#rndsOrd#
</isNotEmpty> </isNotEmpty>
ORDER BY 1
ORDER BY 1=1
<isEmpty property="orderByQuery"> <isEmpty property="orderByQuery">
, a.edu_aplct_ord desc , a.area_cd desc
</isEmpty> </isEmpty>
<isNotEmpty property="orderByQuery"> <isNotEmpty property="orderByQuery">
, $orderByQuery$ , $orderByQuery$
</isNotEmpty> </isNotEmpty>
/*
LIMIT #recordCountPerPage# OFFSET #firstIndex# LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select> </select>

View File

@ -7,13 +7,15 @@
<!-- 공통 테이블 명 --> <!-- 공통 테이블 명 -->
<sql id="VEADtPsblTmQnttyStngDAO.table_name"> <sql id="VEADtPsblTmQnttyStngDAO.table_name">
ve_edu_aplct_onln vea_dt_psbl_tm_qntty_stng
</sql> </sql>
<!-- 저장용 공통 컬럼 명 --> <!-- 저장용 공통 컬럼 명 -->
<sql id="VEADtPsblTmQnttyStngDAO.column_name"> <sql id="VEADtPsblTmQnttyStngDAO.column_name">
edu_aplct_ord, dt_psbl_tm_qntty_ord,
prcs_ord, yr,
trgt_dt,
psbl_tm_qntty,
frst_regist_pnttm, frst_regist_pnttm,
frst_register_id, frst_register_id,
@ -25,12 +27,14 @@
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
<sql id="VEADtPsblTmQnttyStngDAO.select_column_name"> <sql id="VEADtPsblTmQnttyStngDAO.select_column_name">
a.edu_aplct_ord AS eduAplctOrd, a.dt_psbl_tm_qntty_ord AS dtPsblTmQnttyOrd,
a.prcs_ord AS prcsOrd, a.yr AS yr,
a.trgt_dt AS trgtDt,
a.psbl_tm_qntty AS psblTmQntty,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm, TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId, a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm, TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId a.last_updusr_id AS lastUpdusrId
</sql> </sql>
@ -40,8 +44,11 @@
INSERT INTO <include refid="VEADtPsblTmQnttyStngDAO.table_name"/> ( INSERT INTO <include refid="VEADtPsblTmQnttyStngDAO.table_name"/> (
<include refid="VEADtPsblTmQnttyStngDAO.column_name"/> <include refid="VEADtPsblTmQnttyStngDAO.column_name"/>
)VALUES( )VALUES(
#eduAplctOrd#, #dtPsblTmQnttyOrd#,
#prcsOrd#, #yr#,
#trgtDt#,
#psblTmQntty#,
SYSDATE, SYSDATE,
#frstRegisterId#, #frstRegisterId#,
SYSDATE, SYSDATE,
@ -56,13 +63,54 @@
FROM FROM
<include refid="VEADtPsblTmQnttyStngDAO.table_name"/> a <include refid="VEADtPsblTmQnttyStngDAO.table_name"/> a
WHERE WHERE
a.edu_aplct_ord = #eduAplctOrd# a.dt_psbl_tm_qntty_ord = #dtPsblTmQnttyOrd#
AND a.prcs_ord = #prcsOrd#
</select> </select>
<!-- 강사 정보 U --> <!-- 강사 정보 U -->
<update id="VEADtPsblTmQnttyStngDAO.update" parameterClass="VEAStngVO"> <update id="VEADtPsblTmQnttyStngDAO.update" parameterClass="VEAStngVO">
/* VEADtPsblTmQnttyStngDAO.update */
MERGE INTO <include refid="VEADtPsblTmQnttyStngDAO.table_name"/>
USING DUAL
ON(dt_psbl_tm_qntty_ord=#dtPsblTmQnttyOrd#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEADtPsblTmQnttyStngDAO.column_name"/>
)
VALUES(
#dtPsblTmQnttyOrd#,
#yr#,
#trgtDt#,
#psblTmQntty#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET last_updt_pnttm = SYSDATE
, last_updusr_id = #frstRegisterId#
<isNotEmpty property="yr">
, yr = #yr#
</isNotEmpty>
<isNotEmpty property="trgtDt">
, trgt_dt = #trgtDt#
</isNotEmpty>
<isNotEmpty property="psblTmQntty">
, psbl_tm_qntty = #psblTmQntty#
</isNotEmpty>
</update>
<!-- 강사 정보 U -->
<update id="VEADtPsblTmQnttyStngDAO.updateBulk" parameterClass="VEAStngVO">
UPDATE UPDATE
<include refid="VEADtPsblTmQnttyStngDAO.table_name"/> <include refid="VEADtPsblTmQnttyStngDAO.table_name"/>
SET SET
@ -71,28 +119,7 @@
,LAST_UPDUSR_ID = #lastUpdusrId# ,LAST_UPDUSR_ID = #lastUpdusrId#
WHERE WHERE
edu_aplct_ord = #eduAplctOrd# dt_psbl_tm_qntty_ord = #dtPsblTmQnttyOrd#
AND prcs_ord = #prcsOrd#
</update>
<!-- 강사 정보 U -->
<update id="VEADtPsblTmQnttyStngDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEADtPsblTmQnttyStngDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update> </update>
@ -102,7 +129,7 @@
DELETE FROM DELETE FROM
<include refid="VEADtPsblTmQnttyStngDAO.table_name"/> <include refid="VEADtPsblTmQnttyStngDAO.table_name"/>
WHERE WHERE
edu_aplct_ord = #eduAplctOrd# dt_psbl_tm_qntty_ord = #dtPsblTmQnttyOrd#
<isNotEmpty property="prcsOrd"> <isNotEmpty property="prcsOrd">
AND prcs_ord = #prcsOrd# AND prcs_ord = #prcsOrd#
</isNotEmpty> </isNotEmpty>
@ -140,24 +167,25 @@
$selectPagingListQuery$ $selectPagingListQuery$
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="eduAplctOrd"> <isNotEmpty property="dtPsblTmQnttyOrd">
AND a.edu_aplct_ord=#eduAplctOrd# AND a.dt_psbl_tm_qntty_ord=#dtPsblTmQnttyOrd#
</isNotEmpty> </isNotEmpty>
ORDER BY 1=1 ORDER BY 1
<isEmpty property="orderByQuery"> <isEmpty property="orderByQuery">
, a.edu_aplct_ord desc , a.dt_psbl_tm_qntty_ord desc
</isEmpty> </isEmpty>
<isNotEmpty property="orderByQuery"> <isNotEmpty property="orderByQuery">
, $orderByQuery$ , $orderByQuery$
</isNotEmpty> </isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
LIMIT #recordCountPerPage# OFFSET #firstIndex# */
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select> </select>

View File

@ -7,46 +7,79 @@
<!-- 공통 테이블 명 --> <!-- 공통 테이블 명 -->
<sql id="VEALctrPsblPrdStngDAO.table_name"> <sql id="VEALctrPsblPrdStngDAO.table_name">
ve_edu_aplct_onln vea_lctr_psbl_prd_stng
</sql> </sql>
<!-- 저장용 공통 컬럼 명 --> <!-- 저장용 공통 컬럼 명 -->
<sql id="VEALctrPsblPrdStngDAO.column_name"> <sql id="VEALctrPsblPrdStngDAO.column_name">
edu_aplct_ord, lctr_psbl_prd_ord,
prcs_ord,
rnds_ord,
lctr_psbl_strt_dt,
lctr_psbl_ddln_dt,
lctr_psbl_yn,
top_lctr_psbl_prd_ord,
frst_regist_pnttm, frst_regist_pnttm,
frst_register_id, frst_register_id,
last_updt_pnttm, last_updt_pnttm,
last_updusr_id last_updusr_id
</sql> </sql>
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
<sql id="VEALctrPsblPrdStngDAO.select_column_name"> <sql id="VEALctrPsblPrdStngDAO.select_column_name">
a.edu_aplct_ord AS eduAplctOrd, a.lctr_psbl_prd_ord AS lctrPsblPrdOrd,
a.prcs_ord AS prcsOrd,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm, a.rnds_ord AS rndsOrd,
a.lctr_psbl_strt_dt AS lctrPsblStrtDt,
a.lctr_psbl_ddln_dt AS lctrPsblDdlnDt,
a.lctr_psbl_yn AS lctrPsblYn,
a.top_lctr_psbl_prd_ord AS topLctrPsblPrdOrd,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId, a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm, TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId a.last_updusr_id AS lastUpdusrId
</sql> </sql>
<!-- 강사 등록 C --> <!-- 강사 등록 C -->
<insert id="VEALctrPsblPrdStngDAO.insert" parameterClass="VEAStngVO"> <insert id="VEALctrPsblPrdStngDAO.insert" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEALctrPsblPrdStngDAO.table_name"/> ( /* VEALctrPsblPrdStngDAO.insert */
<include refid="VEALctrPsblPrdStngDAO.column_name"/> MERGE INTO <include refid="VEALctrPsblPrdStngDAO.table_name"/>
)VALUES( USING DUAL
#eduAplctOrd#, ON(lctr_psbl_prd_ord=#lctrPsblPrdOrd#)
#prcsOrd#,
SYSDATE, WHEN NOT MATCHED THEN
#frstRegisterId#, INSERT
SYSDATE, (
#lastUpdusrId# <include refid="VEALctrPsblPrdStngDAO.column_name"/>
) )
VALUES(
#lctrPsblPrdOrd#,
#rndsOrd#,
#lctrPsblStrtDt#,
#lctrPsblDdlnDt#,
#lctrPsblYn#,
#topLctrPsblPrdOrd#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET rnds_ord = #rndsOrd#
, lctr_psbl_strt_dt = #lctrPsblStrtDt#
, lctr_psbl_ddln_dt = #lctrPsblDdlnDt#
, lctr_psbl_yn = #lctrPsblYn#
, top_lctr_psbl_prd_ord = #topLctrPsblPrdOrd#
, last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
</insert> </insert>
<!-- 강사 정보 R --> <!-- 강사 정보 R -->
@ -56,43 +89,55 @@
FROM FROM
<include refid="VEALctrPsblPrdStngDAO.table_name"/> a <include refid="VEALctrPsblPrdStngDAO.table_name"/> a
WHERE WHERE
a.edu_aplct_ord = #eduAplctOrd# a.lctr_psbl_prd_ord = #lctrPsblPrdOrd#
AND a.prcs_ord = #prcsOrd#
</select> </select>
<!-- 강사 정보 U --> <!-- 강사 정보 U -->
<update id="VEALctrPsblPrdStngDAO.update" parameterClass="VEAStngVO"> <update id="VEALctrPsblPrdStngDAO.update" parameterClass="VEAStngVO">
UPDATE /* VEALctrPsblPrdStngDAO.update */
<include refid="VEALctrPsblPrdStngDAO.table_name"/> MERGE INTO <include refid="VEALctrPsblPrdStngDAO.table_name"/>
SET USING DUAL
ON(lctr_psbl_prd_ord=#lctrPsblPrdOrd#)
LAST_UPDT_PNTTM = SYSDATE WHEN NOT MATCHED THEN
,LAST_UPDUSR_ID = #lastUpdusrId# INSERT
(
<include refid="VEALctrPsblPrdStngDAO.column_name"/>
)
VALUES(
#lctrPsblPrdOrd#,
WHERE #rndsOrd#,
edu_aplct_ord = #eduAplctOrd# #lctrPsblStrtDt#,
AND prcs_ord = #prcsOrd# #lctrPsblDdlnDt#,
</update> #lctrPsblYn#,
#topLctrPsblPrdOrd#,
<!-- 강사 정보 U --> SYSDATE,
<update id="VEALctrPsblPrdStngDAO.updateBulk" parameterClass="VEAStngVO"> #frstRegisterId#,
INSERT INTO <include refid="VEALctrPsblPrdStngDAO.table_name"/> NULL,
( NULL
edu_aplct_ord, )
prcs_ord, WHEN MATCHED THEN
UPDATE
SET last_updt_pnttm = SYSDATE
, last_updusr_id = #frstRegisterId#
frst_regist_pnttm, , lctr_psbl_strt_dt = #lctrPsblStrtDt#
frst_register_id , lctr_psbl_ddln_dt = #lctrPsblDdlnDt#
) <isNotEmpty property="lctrPsblYn">
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId# , lctr_psbl_yn = #lctrPsblYn#
FROM ve_prcs_onln_cntnt </isNotEmpty>
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y' <isNotEmpty property="rndsOrd">
ON DUPLICATE KEY UPDATE , rnds_ord = #rndsOrd#
last_updt_pnttm=SYSDATE, </isNotEmpty>
last_updusr_id=#lastUpdusrId#
<isNotEmpty property="topLctrPsblPrdOrd">
, top_lctr_psbl_prd_ord = #topLctrPsblPrdOrd#
</isNotEmpty>
</update> </update>
@ -102,17 +147,13 @@
DELETE FROM DELETE FROM
<include refid="VEALctrPsblPrdStngDAO.table_name"/> <include refid="VEALctrPsblPrdStngDAO.table_name"/>
WHERE WHERE
edu_aplct_ord = #eduAplctOrd# lctr_psbl_prd_ord = #lctrPsblPrdOrd#
<isNotEmpty property="prcsOrd">
AND prcs_ord = #prcsOrd#
</isNotEmpty>
</delete> </delete>
<!-- 강사 정보 L --> <!-- 강사 정보 L -->
<select id="VEALctrPsblPrdStngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO"> <select id="VEALctrPsblPrdStngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEALctrPsblPrdStngDAO.selectList */
SELECT SELECT
<include refid="VEALctrPsblPrdStngDAO.select_column_name"/> <include refid="VEALctrPsblPrdStngDAO.select_column_name"/>
FROM FROM
@ -120,6 +161,14 @@
WHERE WHERE
1=1 1=1
<isNotEmpty property="rndsOrd">
AND a.rnds_ord=#rndsOrd#
</isNotEmpty>
<isNotEmpty property="whereQuery">
$whereQuery$
</isNotEmpty>
</select> </select>
@ -147,7 +196,7 @@
ORDER BY 1=1 ORDER BY 1
<isEmpty property="orderByQuery"> <isEmpty property="orderByQuery">
, a.edu_aplct_ord desc , a.edu_aplct_ord desc
@ -156,9 +205,27 @@
, $orderByQuery$ , $orderByQuery$
</isNotEmpty> </isNotEmpty>
/*
LIMIT #recordCountPerPage# OFFSET #firstIndex# LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select> </select>
<!-- 강의 기간 중복 체크 L -->
<select id="VEALctrPsblPrdStngDAO.selectListPrdDupCheck" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEALctrPsblPrdStngDAO.select_column_name"/>
FROM
<include refid="VEALctrPsblPrdStngDAO.table_name"/> a
WHERE
a.LCTR_PSBL_YN ='Y'
AND (
a.LCTR_PSBL_STRT_DT BETWEEN #lctrPsblStrtDt# AND #lctrPsblDdlnDt#
OR a.LCTR_PSBL_DDLN_DT BETWEEN #lctrPsblStrtDt# AND #lctrPsblDdlnDt#
OR #lctrPsblStrtDt# BETWEEN a.LCTR_PSBL_STRT_DT AND a.LCTR_PSBL_DDLN_DT
OR #lctrPsblDdlnDt# BETWEEN a.LCTR_PSBL_STRT_DT AND a.LCTR_PSBL_DDLN_DT
)
</select>
</sqlMap> </sqlMap>

View File

@ -7,13 +7,20 @@
<!-- 공통 테이블 명 --> <!-- 공통 테이블 명 -->
<sql id="VEALctrRndsStngDAO.table_name"> <sql id="VEALctrRndsStngDAO.table_name">
ve_edu_aplct_onln vea_lctr_rnds_stng
</sql> </sql>
<!-- 저장용 공통 컬럼 명 --> <!-- 저장용 공통 컬럼 명 -->
<sql id="VEALctrRndsStngDAO.column_name"> <sql id="VEALctrRndsStngDAO.column_name">
edu_aplct_ord, rnds_ord,
prcs_ord, yr,
rnds_nm,
ord,
rgstr_strt_pnttm,
rgstr_ddln_pnttm,
rgstr_state,
rgstr_state_chng_id,
frst_regist_pnttm, frst_regist_pnttm,
frst_register_id, frst_register_id,
@ -25,28 +32,73 @@
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
<sql id="VEALctrRndsStngDAO.select_column_name"> <sql id="VEALctrRndsStngDAO.select_column_name">
a.edu_aplct_ord AS eduAplctOrd, a.rnds_ord AS rndsOrd,
a.prcs_ord AS prcsOrd, a.yr AS yr,
a.rnds_nm AS rndsNm,
a.ord AS ord,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm, a.rgstr_strt_pnttm AS rgstrStrtPnttm,
substring(a.rgstr_strt_pnttm,1,10) AS dpStrtDt,
substring(a.rgstr_strt_pnttm,11,2) AS dpStrtTm,
a.rgstr_ddln_pnttm AS rgstrDdlnPnttm,
substring(a.rgstr_ddln_pnttm,1,10) AS dpDdlnDt,
substring(a.rgstr_ddln_pnttm,11,2) AS dpDdlnTm,
a.rgstr_state AS rgstrState,
a.rgstr_state_chng_id AS rgstrStateChngId,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId, a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm, TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId a.last_updusr_id AS lastUpdusrId
</sql> </sql>
<!-- 강사 등록 C --> <!-- 강사 등록 C -->
<insert id="VEALctrRndsStngDAO.insert" parameterClass="VEAStngVO"> <insert id="VEALctrRndsStngDAO.insert" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEALctrRndsStngDAO.table_name"/> ( /* VEALctrRndsStngDAO.insert */
<include refid="VEALctrRndsStngDAO.column_name"/> MERGE INTO <include refid="VEALctrRndsStngDAO.table_name"/>
)VALUES( USING DUAL
#eduAplctOrd#, ON(rnds_ord=#rndsOrd#)
#prcsOrd#,
SYSDATE, WHEN NOT MATCHED THEN
#frstRegisterId#, INSERT
SYSDATE, (
#lastUpdusrId# <include refid="VEALctrRndsStngDAO.column_name"/>
) )
VALUES(
#rndsOrd#,
#yr#,
#rndsNm#,
#ord#,
#rgstrStrtPnttm#,
#rgstrDdlnPnttm#,
#rgstrState#,
#rgstrStateChngId#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET rnds_nm = #rndsNm#
, ord = #ord#
, rgstr_strt_pnttm = #rgstrStrtPnttm#
, rgstr_ddln_pnttm = #rgstrDdlnPnttm#
, rgstr_state = #rgstrState#
, rgstr_state_chng_id = #rgstrStateChngId#
, last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
</insert> </insert>
<!-- 강사 정보 R --> <!-- 강사 정보 R -->
@ -56,26 +108,54 @@
FROM FROM
<include refid="VEALctrRndsStngDAO.table_name"/> a <include refid="VEALctrRndsStngDAO.table_name"/> a
WHERE WHERE
a.edu_aplct_ord = #eduAplctOrd# a.rnds_ord = #rndsOrd#
AND a.prcs_ord = #prcsOrd#
</select> </select>
<!-- 강사 정보 U --> <!-- 강사 정보 U -->
<update id="VEALctrRndsStngDAO.update" parameterClass="VEAStngVO"> <update id="VEALctrRndsStngDAO.update" parameterClass="VEAStngVO">
UPDATE /* VEALctrRndsStngDAO.update */
<include refid="VEALctrRndsStngDAO.table_name"/> MERGE INTO <include refid="VEALctrRndsStngDAO.table_name"/>
SET USING DUAL
ON(rnds_ord=#rndsOrd#)
LAST_UPDT_PNTTM = SYSDATE WHEN NOT MATCHED THEN
,LAST_UPDUSR_ID = #lastUpdusrId# INSERT
(
<include refid="VEALctrRndsStngDAO.column_name"/>
)
VALUES(
#rndsOrd#,
#yr#,
#rndsNm#,
#ord#,
WHERE #rgstrStrtPnttm#,
edu_aplct_ord = #eduAplctOrd# #rgstrDdlnPnttm#,
AND prcs_ord = #prcsOrd# #rgstrState#,
#rgstrStateChngId#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET rnds_nm = #rndsNm#
, ord = #ord#
, rgstr_strt_pnttm = #rgstrStrtPnttm#
, rgstr_ddln_pnttm = #rgstrDdlnPnttm#
, rgstr_state = #rgstrState#
, rgstr_state_chng_id = #rgstrStateChngId#
, last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
</update> </update>
<!-- 강사 정보 U --> <!-- 강사 정보 U -->
<!--
<update id="VEALctrRndsStngDAO.updateBulk" parameterClass="VEAStngVO"> <update id="VEALctrRndsStngDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEALctrRndsStngDAO.table_name"/> INSERT INTO <include refid="VEALctrRndsStngDAO.table_name"/>
( (
@ -96,23 +176,20 @@
</update> </update>
-->
<!-- 강사 정보 D --> <!-- 강사 정보 D -->
<delete id="VEALctrRndsStngDAO.delete" parameterClass="VEAStngVO"> <delete id="VEALctrRndsStngDAO.delete" parameterClass="VEAStngVO">
DELETE FROM DELETE FROM
<include refid="VEALctrRndsStngDAO.table_name"/> <include refid="VEALctrRndsStngDAO.table_name"/> a
WHERE WHERE
edu_aplct_ord = #eduAplctOrd# a.rnds_ord = #rndsOrd#
<isNotEmpty property="prcsOrd">
AND prcs_ord = #prcsOrd#
</isNotEmpty>
</delete> </delete>
<!-- 강사 정보 L --> <!-- 강사 정보 L -->
<select id="VEALctrRndsStngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO"> <select id="VEALctrRndsStngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEALctrRndsStngDAO.selectList */
SELECT SELECT
<include refid="VEALctrRndsStngDAO.select_column_name"/> <include refid="VEALctrRndsStngDAO.select_column_name"/>
FROM FROM
@ -120,6 +197,9 @@
WHERE WHERE
1=1 1=1
<isNotEmpty property="yr">
AND a.yr=#yr#
</isNotEmpty>
</select> </select>
@ -147,7 +227,7 @@
ORDER BY 1=1 ORDER BY 1
<isEmpty property="orderByQuery"> <isEmpty property="orderByQuery">
, a.edu_aplct_ord desc , a.edu_aplct_ord desc
@ -157,7 +237,10 @@
</isNotEmpty> </isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex# /*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select> </select>

View File

@ -0,0 +1,420 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 교육 결과 테이블 -->
<sqlMap namespace="VEALctrYrStngMix">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<typeAlias alias="SchduleManageVO" type="kcc.kccadr.sch.service.SchduleManageVO"/>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEALctrYrStngMixDAO.select_column_name">
a.yr AS yr,
a.psbl_tm_qntty AS psblTmQntty,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId
</sql>
<!-- 강의년도설정 R -->
<select id="VEALctrYrStngMixDAO.selectDetail_VEALYS" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEALctrYrStngMixDAO.selectDetail_VEALYS */
SELECT
<include refid="VEALctrYrStngDAO.select_column_name"/>
, a0.code AS code
, b.rnds_ord AS rndsOrd
, b.ord AS ord
, b.rgstr_strt_pnttm AS rgstrStrtPnttm
, b.rgstr_ddln_pnttm AS rgstrDdlnPnttm
, b.rgstr_state AS rgstrState
, b.rgstr_state_chng_id AS rgstrStateChngId
, substring(b.rgstr_strt_pnttm,1,10) AS dpStrtDt
, substring(b.rgstr_strt_pnttm,11,2) AS dpStrtTm
, substring(b.rgstr_ddln_pnttm,1,10) AS dpDdlnDt
, substring(b.rgstr_ddln_pnttm,11,2) AS dpDdlnTm
, CASE
WHEN (b.rgstr_strt_pnttm > TO_CHAR(SYSDATE,'YYYY.MM.DDHH24')) THEN 0 /*기간전*/
WHEN (TO_CHAR(SYSDATE,'YYYY.MM.DDHH24') > b.rgstr_ddln_pnttm) THEN 2 /*기간후*/
WHEN (TO_CHAR(SYSDATE,'YYYY.MM.DDHH24') >= b.rgstr_strt_pnttm
AND
b.rgstr_ddln_pnttm >= TO_CHAR(SYSDATE,'YYYY.MM.DDHH24')) THEN 1 /*기간중*/
END rgstrDateState
FROM LETTCCMMNDETAILCODE a0
LEFT OUTER JOIN vea_lctr_yr_stng a
ON (a0.code=a.yr)
LEFT OUTER JOIN vea_lctr_rnds_stng b
ON (
a.yr=b.yr
AND b.RNDS_ORD =#rndsOrd#
)
WHERE a0.code_id='VE0029'
AND a0.code=#yr#
</select>
<!-- 상태값만 변경하기 U -->
<update id="VEALctrYrStngMixDAO.updateState" parameterClass="VEAStngVO">
/* VEALctrYrStngMixDAO.update */
UPDATE $tableNm$
SET $setQuery$
, last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
WHERE $whereQuery$
</update>
<!-- 강의가능기간 달력 용 데이터 -->
<select id="VEALctrYrStngMixDAO.selectList_VEALPPS_1" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEALctrYrStngMixDAO.selectList_VEALPPS_1 */
/*
SELECT '가능일1' title
, '2023-09-01' "START"
, '2023-09-01' "END"
, 1 allday
FROM dual
UNION ALL
SELECT '가능일2' title
, '2023-09-05' "START"
, '2023-09-10' "END"
, 1 allday
FROM dual
*/
SELECT aaa.datez "START"
, aaa.datez "END"
, 1 allDay
, aaa.datez AS rndsNm
/*
, ccc.LCTR_PSBL_PRD_ORD AS lctrPsblPrdOrd
*/
, CASE WHEN ddd.LCTR_PSBL_STRT_DT IS NULL THEN ccc.LCTR_PSBL_PRD_ORD ELSE ddd.LCTR_PSBL_PRD_ORD END AS lctrPsblPrdOrd
, ccc.RNDS_ORD AS rndsOrd
, 'E6E6E6' "color"
, ddd.LCTR_PSBL_STRT_DT AS lctrPsblStrtDt
, CASE WHEN ddd.LCTR_PSBL_STRT_DT IS NULL THEN '가능일' ELSE '불가능일' END AS title
FROM (
SELECT
to_date(aa.yr_mnt_day_str,'YYYY-MM-DD') AS datez
, to_char(to_date(aa.yr_mnt_day_str,'YYYY-MM-DD'),'d') AS num_week
, aa.yr_mnt_day_str AS datez_str
FROM (
SELECT a.yr||b.mnt AS yr_mnt_str
, to_date(a.yr||b.mnt,'YYYYMM') AS yr_mnt_date
, last_day(to_date(a.yr||b.mnt,'YYYYMM')) AS yr_mnt_last_day
, a.yr||'.'||b.mnt||'.'||c.dayz AS yr_mnt_day_str
FROM (
SELECT $yr$ yr
FROM dual
UNION ALL
SELECT $yr$+1 yr
FROM dual
)a
,(
SELECT '01' mnt FROM dual
UNION ALL SELECT '02' mnt FROM dual
UNION ALL SELECT '03' mnt FROM dual
UNION ALL SELECT '04' mnt FROM dual
UNION ALL SELECT '05' mnt FROM dual
UNION ALL SELECT '06' mnt FROM dual
UNION ALL SELECT '07' mnt FROM dual
UNION ALL SELECT '08' mnt FROM dual
UNION ALL SELECT '09' mnt FROM dual
UNION ALL SELECT '10' mnt FROM dual
UNION ALL SELECT '11' mnt FROM dual
UNION ALL SELECT '12' mnt FROM dual
)b
,(
SELECT '01' dayz FROM dual
UNION ALL SELECT '02' mnt FROM dual
UNION ALL SELECT '03' mnt FROM dual
UNION ALL SELECT '04' mnt FROM dual
UNION ALL SELECT '05' mnt FROM dual
UNION ALL SELECT '06' mnt FROM dual
UNION ALL SELECT '07' mnt FROM dual
UNION ALL SELECT '08' mnt FROM dual
UNION ALL SELECT '09' mnt FROM dual
UNION ALL SELECT '10' mnt FROM dual
UNION ALL SELECT '11' mnt FROM dual
UNION ALL SELECT '12' mnt FROM dual
UNION ALL SELECT '13' mnt FROM dual
UNION ALL SELECT '14' mnt FROM dual
UNION ALL SELECT '15' mnt FROM dual
UNION ALL SELECT '16' mnt FROM dual
UNION ALL SELECT '17' mnt FROM dual
UNION ALL SELECT '18' mnt FROM dual
UNION ALL SELECT '19' mnt FROM dual
UNION ALL SELECT '20' mnt FROM dual
UNION ALL SELECT '21' mnt FROM dual
UNION ALL SELECT '22' mnt FROM dual
UNION ALL SELECT '23' mnt FROM dual
UNION ALL SELECT '24' mnt FROM dual
UNION ALL SELECT '25' mnt FROM dual
UNION ALL SELECT '26' mnt FROM dual
UNION ALL SELECT '27' mnt FROM dual
UNION ALL SELECT '28' mnt FROM dual
UNION ALL SELECT '29' mnt FROM dual
UNION ALL SELECT '30' mnt FROM dual
UNION ALL SELECT '31' mnt FROM dual
)c
)aa
WHERE to_char(aa.yr_mnt_last_day,'YYYY.MM.DD')>=aa.yr_mnt_day_str
)aaa
LEFT OUTER JOIN vea_lctr_psbl_prd_stng ddd
on(
ddd.LCTR_PSBL_YN ='N'
AND ddd.LCTR_PSBL_STRT_DT = aaa.datez_str
)
,
(
SELECT to_char(to_date(#dpStrtDt#,'YYYY-MM-DD'),'YYYY.MM.DD') AS strt_dt
, to_char(add_months(to_date(#dpStrtDt#,'YYYY-MM-DD'),2),'YYYY.MM.DD') AS ddln_dt
FROM dual
)bbb
, vea_lctr_psbl_prd_stng ccc
WHERE aaa.datez_str BETWEEN bbb.strt_dt AND bbb.ddln_dt
AND aaa.num_week in(2,3,4,5,6)
AND aaa.datez_str BETWEEN ccc.lctr_psbl_strt_dt AND ccc.lctr_psbl_ddln_dt
AND ccc.lctr_psbl_yn='Y'
ORDER BY aaa.datez
</select>
<!-- 교육가능시수 달력 용 데이터 -->
<select id="VEALctrYrStngMixDAO.selectList_VEALPPS_2" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEALctrYrStngMixDAO.selectList_VEALPPS_2 */
/*
SELECT '가능일1' title
, '2023-09-01' "START"
, '2023-09-01' "END"
, 1 allday
FROM dual
UNION ALL
SELECT '가능일2' title
, '2023-09-05' "START"
, '2023-09-10' "END"
, 1 allday
FROM dual
*/
SELECT aaa.datez "START"
, aaa.datez "END"
, 1 allDay
, aaa.datez AS rndsNm
, ccc.yr
, bbb.DT_PSBL_TM_QNTTY_ORD AS dtPsblTmQnttyOrd
, CASE
WHEN ddd.LCTR_PSBL_PRD_ORD IS NOT NULL THEN '불가능'
WHEN bbb.DT_PSBL_TM_QNTTY_ORD IS NULL THEN to_char(ccc.psbl_tm_qntty)
ELSE to_char(bbb.PSBL_TM_QNTTY)
END AS title
, ddd.LCTR_PSBL_PRD_ORD
, eee.LCTR_PSBL_PRD_ORD
FROM (
SELECT
to_date(aa.yr_mnt_day_str,'YYYY-MM-DD') AS datez
, to_char(to_date(aa.yr_mnt_day_str,'YYYY-MM-DD'),'d') AS num_week
, aa.yr_mnt_day_str AS datez_str
FROM (
SELECT a.yr||b.mnt AS yr_mnt_str
, to_date(a.yr||b.mnt,'YYYYMM') AS yr_mnt_date
, last_day(to_date(a.yr||b.mnt,'YYYYMM')) AS yr_mnt_last_day
, a.yr||'.'||b.mnt||'.'||c.dayz AS yr_mnt_day_str
FROM (
SELECT $yr$ yr
FROM dual
UNION ALL
SELECT $yr$+1 yr
FROM dual
)a
,(
SELECT '01' mnt FROM dual
UNION ALL SELECT '02' mnt FROM dual
UNION ALL SELECT '03' mnt FROM dual
UNION ALL SELECT '04' mnt FROM dual
UNION ALL SELECT '05' mnt FROM dual
UNION ALL SELECT '06' mnt FROM dual
UNION ALL SELECT '07' mnt FROM dual
UNION ALL SELECT '08' mnt FROM dual
UNION ALL SELECT '09' mnt FROM dual
UNION ALL SELECT '10' mnt FROM dual
UNION ALL SELECT '11' mnt FROM dual
UNION ALL SELECT '12' mnt FROM dual
)b
,(
SELECT '01' dayz FROM dual
UNION ALL SELECT '02' mnt FROM dual
UNION ALL SELECT '03' mnt FROM dual
UNION ALL SELECT '04' mnt FROM dual
UNION ALL SELECT '05' mnt FROM dual
UNION ALL SELECT '06' mnt FROM dual
UNION ALL SELECT '07' mnt FROM dual
UNION ALL SELECT '08' mnt FROM dual
UNION ALL SELECT '09' mnt FROM dual
UNION ALL SELECT '10' mnt FROM dual
UNION ALL SELECT '11' mnt FROM dual
UNION ALL SELECT '12' mnt FROM dual
UNION ALL SELECT '13' mnt FROM dual
UNION ALL SELECT '14' mnt FROM dual
UNION ALL SELECT '15' mnt FROM dual
UNION ALL SELECT '16' mnt FROM dual
UNION ALL SELECT '17' mnt FROM dual
UNION ALL SELECT '18' mnt FROM dual
UNION ALL SELECT '19' mnt FROM dual
UNION ALL SELECT '20' mnt FROM dual
UNION ALL SELECT '21' mnt FROM dual
UNION ALL SELECT '22' mnt FROM dual
UNION ALL SELECT '23' mnt FROM dual
UNION ALL SELECT '24' mnt FROM dual
UNION ALL SELECT '25' mnt FROM dual
UNION ALL SELECT '26' mnt FROM dual
UNION ALL SELECT '27' mnt FROM dual
UNION ALL SELECT '28' mnt FROM dual
UNION ALL SELECT '29' mnt FROM dual
UNION ALL SELECT '30' mnt FROM dual
UNION ALL SELECT '31' mnt FROM dual
)c
)aa
WHERE to_char(aa.yr_mnt_last_day,'YYYY.MM.DD')>=aa.yr_mnt_day_str
)aaa
LEFT OUTER JOIN vea_dt_psbl_tm_qntty_stng bbb
on(
aaa.datez_str=bbb.trgt_dt
AND bbb.yr=#yr#
)
LEFT OUTER JOIN vea_lctr_psbl_prd_stng ddd
on(
ddd.LCTR_PSBL_YN ='N'
AND ddd.LCTR_PSBL_STRT_DT = aaa.datez_str
)
LEFT OUTER JOIN vea_lctr_psbl_prd_stng eee
on(
aaa.datez_str BETWEEN eee.lctr_psbl_strt_dt AND eee.lctr_psbl_ddln_dt
AND eee.lctr_psbl_yn='Y'
)
, vea_lctr_yr_stng ccc
WHERE 1=1
AND aaa.num_week in(2,3,4,5,6)
AND ccc.yr=#yr#
AND eee.LCTR_PSBL_PRD_ORD is not null
ORDER BY aaa.datez
</select>
<!-- 강의가능기간 해당 기간의 불가능한 일자 가져오기 -->
<select id="VEALctrYrStngMixDAO.selectList_VEALPPS_3" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEALctrYrStngMixDAO.selectList_VEALPPS_3 */
SELECT LCTR_PSBL_PRD_ORD AS lctrPsblPrdOrd
, LCTR_PSBL_STRT_DT AS lctrPsblStrtDt
FROM vea_lctr_psbl_prd_stng
WHERE TOP_LCTR_PSBL_PRD_ORD =#lctrPsblPrdOrd#
AND LCTR_PSBL_YN ='N'
ORDER BY LCTR_PSBL_STRT_DT
</select>
<!-- 강의년도설정 R -->
<select id="VEALctrYrStngMixDAO.selectDetail_VEADPTQS" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEALctrYrStngMixDAO.selectDetail_VEADPTQS */
SELECT a.yr
, b.dt_psbl_tm_qntty_ord AS dtPsblTmQnttyOrd
, b.trgt_dt AS trgtDt
, CASE WHEN b.PSBL_TM_QNTTY IS NULL THEN a.PSBL_TM_QNTTY ELSE b.PSBL_TM_QNTTY END AS psblTmQntty
, #dpStrtDt# AS dpStrtDt
FROM vea_lctr_yr_stng a
LEFT OUTER JOIN vea_dt_psbl_tm_qntty_stng b
on(
b.DT_PSBL_TM_QNTTY_ORD =#dtPsblTmQnttyOrd#
)
WHERE a.yr=#yr#
</select>
<!-- 지역별 강의 가능 시간 정보 -->
<select id="VEALctrYrStngMixDAO.selectList_VEAALS_1" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEALctrYrStngMixDAO.selectList_VEAALS_1 */
SELECT
aaa.area_cd AS areaCd ,
bbb.lctr_psbl_strt_tm AS lctrPsblStrtTm ,
bbb.lctr_psbl_ddln_tm AS lctrPsblDdlnTm ,
TO_CHAR(bbb.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm ,
bbb.frst_register_id AS frstRegisterId ,
ddd.user_nm AS userNm ,
TO_CHAR(bbb.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm ,
bbb.last_updusr_id AS lastUpdusrId ,
bbb.ttl_edu_cnfrm_psbl_chasi AS ttlEduCnfrmPsblChasi
, bbb.ttl_rgstr_chasi AS ttlRgstrChasi
, bbb.ttl_rgstr_chasi_regist_pnttm AS ttlRgstrChasiRegistPnttm
, bbb.ttl_rgstr_chasi_register_id AS ttlRgstrChasiRegisterId
FROM ( SELECT
aa.area_cd
FROM ( SELECT
area_cd
FROM ve_lctr_area_mng a
WHERE instr_div='10'
UNION ALL
SELECT
a.code
FROM lettccmmndetailcode a
WHERE code_id='VE0008'
)
aa
GROUP BY
aa.area_cd
)
aaa
LEFT OUTER JOIN vea_area_lctr_stng bbb
ON (
aaa.area_cd =bbb.area_cd
AND bbb.rnds_ord = #rndsOrd#
)
LEFT OUTER JOIN lettccmmndetailcode ccc
ON (
ccc.code_id='VE0008'
AND aaa.area_cd=ccc.code
)
LEFT OUTER JOIN lettnemplyrinfo ddd
ON (
ddd.esntl_id=bbb.frst_register_id
)
WHERE 1=1
ORDER BY ccc.code_nm
</select>
</sqlMap>

View File

@ -38,16 +38,30 @@
<!-- 강의년도설정 C --> <!-- 강의년도설정 C -->
<insert id="VEALctrYrStngDAO.insert" parameterClass="VEAStngVO"> <insert id="VEALctrYrStngDAO.insert" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEALctrYrStngDAO.table_name"/> ( /* VEALctrYrStngDAO.insert */
<include refid="VEALctrYrStngDAO.column_name"/> MERGE INTO <include refid="VEALctrYrStngDAO.table_name"/>
)VALUES( USING DUAL
#yr#, ON(yr=#yr#)
#psblTmQntty#,
SYSDATE, WHEN NOT MATCHED THEN
#frstRegisterId#, INSERT
SYSDATE, (
#lastUpdusrId# <include refid="VEALctrYrStngDAO.column_name"/>
) )
VALUES(
#yr#,
#psblTmQntty#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET psbl_tm_qntty = #psblTmQntty#
, last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
</insert> </insert>
<!-- 강의년도설정 R --> <!-- 강의년도설정 R -->
@ -63,19 +77,30 @@
<!-- 강의년도설정 U --> <!-- 강의년도설정 U -->
<update id="VEALctrYrStngDAO.update" parameterClass="VEAStngVO"> <update id="VEALctrYrStngDAO.update" parameterClass="VEAStngVO">
UPDATE /* VEALctrYrStngDAO.update */
<include refid="VEALctrYrStngDAO.table_name"/> MERGE INTO <include refid="VEALctrYrStngDAO.table_name"/>
SET USING DUAL
ON(yr=#yr#)
LAST_UPDT_PNTTM = SYSDATE WHEN NOT MATCHED THEN
,LAST_UPDUSR_ID = #lastUpdusrId# INSERT
(
<include refid="VEALctrYrStngDAO.column_name"/>
)
VALUES(
#yr#,
#psblTmQntty#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET psbl_tm_qntty = #psblTmQntty#
, last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
<isNotEmpty property="psblTmQntty">
, psbl_tm_qntty =#psblTmQntty#
</isNotEmpty>
WHERE
a.yr = #yr#
</update> </update>
<!-- 강의년도설정 U --> <!-- 강의년도설정 U -->
@ -147,7 +172,7 @@
ORDER BY 1=1 ORDER BY 1
<isEmpty property="orderByQuery"> <isEmpty property="orderByQuery">
, a.edu_aplct_ord desc , a.edu_aplct_ord desc
@ -156,8 +181,10 @@
, $orderByQuery$ , $orderByQuery$
</isNotEmpty> </isNotEmpty>
/*
LIMIT #recordCountPerPage# OFFSET #firstIndex# LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select> </select>

View File

@ -81,6 +81,11 @@
$("input[name=searchEndDt]").val(endDt); $("input[name=searchEndDt]").val(endDt);
} }
function fncGoListReset(){
$("#rndsOrd").val('');
linkPage(1);
}
function fncGoList(){ function fncGoList(){
linkPage(1); linkPage(1);
} }
@ -197,6 +202,23 @@
//commonPopWindowopenForm("${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/popup/rgstrAplctMngDetailRfslSecurityPopup.do" , "700", height, "securityPop",$("#createForm")); //commonPopWindowopenForm("${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/popup/rgstrAplctMngDetailRfslSecurityPopup.do" , "700", height, "securityPop",$("#createForm"));
} }
//교육가능시수 팝업
function fncPsblTmQnttyPop(p_yr) { //교육가능시수 팝업
if(p_yr==''){
alert("대상 년도를 선택해주세요.");
return false;
}
//document.listForm.lctrPsblPrdOrd.value = p_lctrPsblPrdOrd;
//document.listForm.rndsOrd.value = p_rndsOrd;
//document.listForm.authorCode.value = vAuthorCode;
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advPsblTmQnttyCalendarPopup.do'/>";
window.open("#", "_PsblTmQnttyPop", "scrollbars = no, top=100px, left=100px, height=1000px, width=1200px");
document.listForm.target = "_PsblTmQnttyPop";
document.listForm.submit();
}
function fncDdlnState() { //메뉴생성 화면 호출 function fncDdlnState() { //메뉴생성 화면 호출
var list = $("input[name=checkList]:checked"); var list = $("input[name=checkList]:checked");
@ -251,6 +273,12 @@
return false; return false;
} }
var p_rndsOrd = $("#rndsOrd").val();
if(p_rndsOrd==''){
alert("강의가능 시간 변경 대상 회차를 선택해주세요.");
return false;
}
//document.listForm.authorCode.value = vAuthorCode; //document.listForm.authorCode.value = vAuthorCode;
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngLctrPsblTmPopup.do'/>"; document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngLctrPsblTmPopup.do'/>";
window.open("#", "_ctrPsblTmPop", "scrollbars = no, top=100px, left=100px, height=450px, width=450px"); window.open("#", "_ctrPsblTmPop", "scrollbars = no, top=100px, left=100px, height=450px, width=450px");
@ -260,25 +288,21 @@
//교육설정 등록여부 체크 //교육설정 등록여부 체크
function fncDupleCheck(thisObj){ function fncDupleCheck(thisObj){
var p_rgstrPsblTm = $(thisObj).closest("td").find("input[name=rgstrPsblTm]").val(); var p_ttlEduCnfrmPsblChasi = $(thisObj).closest("td").find("input[name=ttlEduCnfrmPsblChasi]").val();
var p_stngYr = $("#stngYr").val(); var p_rndsOrd = $("#rndsOrd").val();
var p_prdDivCd = $("#prdDivCd").val();
var p_instrDiv = $("input[name=instrDiv]").val();
var p_areaCd = $(thisObj).closest("tr").find("input[name=checkList]").val(); var p_areaCd = $(thisObj).closest("tr").find("input[name=checkList]").val();
//alert(p_areaCd); //alert(p_areaCd);
if(p_rgstrPsblTm != "") { if(p_ttlEduCnfrmPsblChasi != "") {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngrgstrPsblTmAjax.do", url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/areaLctrMngrgstrPsblTmAjax.do",
data:{ data:{
"instrDiv" : p_instrDiv, "rndsOrd" : p_rndsOrd,
"areaCd" : p_areaCd, "areaCd" : p_areaCd,
"stngYr" : p_stngYr, "ttlEduCnfrmPsblChasi" : p_ttlEduCnfrmPsblChasi,
"prdDivCd" : p_prdDivCd,
"rgstrPsblTm" : p_rgstrPsblTm,
}, },
dataType:'json', dataType:'json',
success:function(returnData){ success:function(returnData){
@ -340,6 +364,152 @@
}); });
} }
} }
//교육가능시수 변경
function fncEduPsblTmSave(thisObj){
var p_psblTmQntty = $(thisObj).closest("td").find("input[name=psblTmQntty]").val();
var p_stngYr = $("#stngYr").val();
//alert(p_areaCd);
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/psblTmQnttyAjax.do",
data:{
"yr" : p_stngYr,
"psblTmQntty" : p_psblTmQntty,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
fncGoList();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
//회차관리 팝업
function fncRndsStng() {
var p_stngYr = $("#stngYr").val();
if(p_stngYr==''){
alert("회차관리 대상 년도를 선택해주세요.");
return false;
}
document.listForm.yr.value = p_stngYr;
//document.listForm.authorCode.value = vAuthorCode;
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advRndsStngMngPopup.do'/>";
window.open("#", "_aplctPrdPop", "scrollbars = no, top=100px, left=100px, height=800px, width=1000px");
document.listForm.target = "_aplctPrdPop";
document.listForm.submit();
}
//강의가능기간 팝업
function fncLctrPrdPopup() {
var p_rndsOrd = $("#rndsOrd").val();
if(p_rndsOrd==''){
alert("강의가능기간 대상 회차를 선택해주세요.");
return false;
}
var p_stngYr = $("#stngYr").val();
document.listForm.yr.value = p_stngYr;
//document.listForm.rndsOrd.value = p_rndsOrd;
//document.listForm.authorCode.value = vAuthorCode;
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdMngPopup.do'/>";
window.open("#", "_lctrPrdPop", "scrollbars = no, top=100px, left=100px, height=800px, width=1100px");
document.listForm.target = "_lctrPrdPop";
document.listForm.submit();
}
//마감처리/해제
function fncRgstrStateSave(p_rndsOrd, p_rgstrState){
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/rgstrStateAjax.do",
data:{
"rndsOrd" : p_rndsOrd,
"rgstrState" : p_rgstrState,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
fncGoList();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
//불가능일자 가져와서 화면에 출력하기
function fncMakePsblNInfo(
p_lctrPsblPrdOrd
, p_td_name
){
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdMngPopupDpAjax.do",
data:{
"lctrPsblPrdOrd" : p_lctrPsblPrdOrd,
},
dataType:'json',
success:function(returnData){
//alert(JSON.stringify(returnData));
//alert(returnData.length);
if (returnData.length>0){
var v_out = "";
returnData.forEach(function(data) {
// code
v_out = v_out + data.lctrPsblStrtDt + "<br/>";
});
$("#"+p_td_name).prepend(v_out)
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
</script> </script>
<title>신청관리</title> <title>신청관리</title>
</head> </head>
@ -356,6 +526,7 @@
<input type="hidden" name="searchSortCnd" value="<c:out value="${vELctrDetailVO.searchSortCnd}" />" /> <input type="hidden" name="searchSortCnd" value="<c:out value="${vELctrDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vELctrDetailVO.searchSortOrd}" />" /> <input type="hidden" name="searchSortOrd" value="<c:out value="${vELctrDetailVO.searchSortOrd}" />" />
<input type="hidden" name="instrDiv" value="10"/> <input type="hidden" name="instrDiv" value="10"/>
<input type="hidden" name="yr" id="yr" value=""/>
<div class="cont_wrap"> <div class="cont_wrap">
@ -375,6 +546,23 @@
<!-- //cont_tit --> <!-- //cont_tit -->
<div class="cont"> <div class="cont">
<!--
<div class="btn_wrap btn_layout01">
<div class="btn_left">!-- 참고용 --</div>
<div class="btn_center"> 삭제 대상 //${selectBasicInfo}//</div>
<div class="btn_right" style="width: 100%">
<button class="btn_type06" onclick="fncDdlnState(); return false;" >신청상태변경</button>
<button class="btn_type06" onclick="fncAplctPrd(); return false;" >강의가능기간변경</button>
<button class="btn_type06" onclick="fncLctrPsblTm(); return false;" >강의가능시간변경</button>
<button class="btn_type06" onclick="fncRndsStng(); return false;" >회차관리</button>
</div>
</div>
-->
<!-- list_top --> <!-- list_top -->
<div class="list_top"> <div class="list_top">
<div class="list_top_1"> <div class="list_top_1">
@ -386,7 +574,17 @@
<p>&nbsp;&nbsp;&nbsp;년도&nbsp;&nbsp;</p> <p>&nbsp;&nbsp;&nbsp;년도&nbsp;&nbsp;</p>
<ve:select codeId="VE0029" name="stngYr" id="stngYr" css="class='sel_type1'" <ve:select codeId="VE0029" name="stngYr" id="stngYr" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.stngYr}" selectedValue="${vELctrDetailVO.stngYr}"
onChange="fncGoListReset(); return false;"
/> />
<p>&nbsp;&nbsp;&nbsp;회차&nbsp;&nbsp;</p>
<select class="sel_type1" name="rndsOrd" id="rndsOrd" title="줄 선택" style="width: 140px">
<option value='' <c:if test="${vELctrDetailVO.rndsOrd == ''}">selected</c:if>>전체</option>
<c:forEach var="list" items="${selectRndsList}" varStatus="status">
<option value='${list.rndsOrd}' <c:if test="${list.rndsOrd == vELctrDetailVO.rndsOrd}">selected</c:if>>${list.ord}</option>
</c:forEach>
</select>
<p>&nbsp;&nbsp;&nbsp;지역&nbsp;&nbsp;</p> <p>&nbsp;&nbsp;&nbsp;지역&nbsp;&nbsp;</p>
<ve:select codeId="VE0008" name="areaCd" id="areaCd" css="class='sel_type1'" <ve:select codeId="VE0008" name="areaCd" id="areaCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.areaCd}" defaultValue='' selectedValue="${vELctrDetailVO.areaCd}" defaultValue=''
@ -395,176 +593,195 @@
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button> <button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div> </div>
</div> </div>
<div class="list_top_2">
<div class="util_left">
<p>구분2</p>
</div>
<div class="util_right">
<p>신청상태&nbsp;&nbsp;</p>
<ve:select codeId="VE0014" name="ddlnStateCd" id="ddlnStateCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.ddlnStateCd}" defaultValue=''
defaultText='전체'
/>
<p>반기&nbsp;&nbsp;</p>
<ve:select codeId="VE0026" name="prdDivCd" id="prdDivCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.prdDivCd}"
/>
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div>
</div>
<!--
<c:if test="${not empty list}">
<div class="list_top_3">
<div class="util_left">
<p>접수일자</p>
</div>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="rgstrStrtDt" name="rgstrStrtDt" value="${list.get(0).rgstrStrtDt}">09시
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="rgstrEndDt" name="rgstrEndDt" value="${list.get(0).rgstrEndDt}">24시
</div>
<button class="btn_type08" onclick="fncGoList(); return false;">접수일자저장</button>
</div>
</div>
</c:if>
-->
<!-- <div class="list_top_1">
<div class="util_left">
<p>마감상태</p>
</div>
<div class="util_right">
<p>신청상태</p>
<ve:select codeId="VE0014" name="ddlnStateCd" id="ddlnStateCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.ddlnStateCd}" defaultValue=''
defaultText='전체'
/>
<p>년도</p>
<ve:select codeId="VE0029" name="stngYr" id="stngYr" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.stngYr}"
/>
<p>반기</p>
<ve:select codeId="VE0026" name="prdDivCd" id="prdDivCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.prdDivCd}"
/>
<p>지역</p>
<ve:select codeId="VE0008" name="areaCd" id="areaCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.areaCd}" defaultValue=''
defaultText='전체'
/>
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div>
<div class="util_left">
<p>마감상태</p>
</div>
<div class="util_right">
<p>마감상태</p>
<kc:select codeId="VE0014" name="ddlnStateCd" id="ddlnStateCd" css="class='sel_type1'"
selectedValue="${vELctrDetailVO.ddlnStateCd}" defaultValue=''
defaultText='전체'
/>
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div>
</div> -->
</div> </div>
<c:if test="${not empty list}">
<div class="btn_wrap btn_layout01">
<!-- //list_top -->
<!-- 새로운 board 시작 -->
<c:if test="${not empty selectBasicInfo}">
<div class="btn_wrap btn_layout01" style="margin-top:20px;margin-bottom:20px;">
<div class="btn_left"></div> <div class="btn_left"></div>
<div class="btn_center"></div> <div class="btn_center"></div>
<div class="btn_right" style="width: 100%"> <div class="btn_right" style="width: 100%">
<button class="btn_type06" onclick="fncDdlnState(); return false;" >신청상태변경</button> <button class="btn_type06" onclick="fncRndsStng(); return false;" >회차관리</button>
<!-- <button class="btn_type06" onclick="fncDdlnState1(); return false;" >신청상태변경</button> -->
<button class="btn_type06" onclick="fncAplctPrd(); return false;" >강의가능기간변경</button>
<button class="btn_type06" onclick="fncLctrPsblTm(); return false;" >강의가능시간변경</button>
</div> </div>
</div> </div>
<br/>
<div class="list_top"> <div class="tb_type01">
<div class="list_top_1"> <table>
<div class="util_left"> <colgroup>
<p>접수일자</p> <col style="width: 15%;">
</div> <col style="width: 15%;">
<div class="util_right"> <col style="width: 35%;">
<div class="calendar_wrap"> <col style="width: 35%;">
<input type="text" class="calendar" title="시작일 선택" id="rgstrStrtDt" name="rgstrStrtDt" value="${list.get(0).rgstrStrtDt}"> </colgroup>
</div> <tbody>
<p>&nbsp;&nbsp;09시&nbsp;&nbsp;</p> <tr>
~ <th><p><c:out value="${selectBasicInfo.code}"/>년도</p></th>
<div class="calendar_wrap"> <td>교육가능시수</td>
<input type="text" class="calendar" title="종료일 선택" id="rgstrEndDt" name="rgstrEndDt" value="${list.get(0).rgstrEndDt}"> <td>
</div> <c:choose>
<p>&nbsp;&nbsp;24시&nbsp;&nbsp;</p> <c:when test="${selectBasicInfo.psblTmQntty eq null}">
<button class="btn_type08" onclick="fncRgstrDateSave(); return false;">접수일자저장</button> 제한없음
</div> </c:when>
<c:when test="${selectBasicInfo.psblTmQntty eq ''}">
제한없음
</c:when>
<c:otherwise>
<c:out value="${selectBasicInfo.psblTmQntty}"/>
</c:otherwise>
</c:choose>
</td>
<td>
<input type="text" id="psblTmQntty" name="psblTmQntty" class="search_input"
placeholder="교육가능시수" value='<c:out value="${selectBasicInfo.psblTmQntty}"/>' onkeyDown="press(event);">
<button class="btn_type06" onclick="fncEduPsblTmSave(this); return false;"
style="height: 40px; border-radius: 5px; vertical-align: middle;">저장</button>
<button class="btn_type06" onclick="fncPsblTmQnttyPop('${vELctrDetailVO.stngYr}'); return false;"
style="height: 40px; border-radius: 5px; vertical-align: middle;">달력보기</button>
</td>
</tr>
<c:if test="${not empty selectBasicInfo.rndsOrd}">
<tr>
<th>${selectBasicInfo.ord}회차</th>
<th>접수일시</th>
<th>${selectBasicInfo.dpStrtDt}&nbsp;&nbsp;${selectBasicInfo.dpStrtTm}시 ~ ${selectBasicInfo.dpDdlnDt}&nbsp;&nbsp;${selectBasicInfo.dpDdlnTm}시</th>
<th>
<!--
<button class="btn_type06" onclick="fncDdlnState(); return false;" >접수일시관리</button>
-->
</th>
</tr>
<tr>
<th></th>
<th>접수상태</th>
<th>
<c:choose>
<c:when test="${selectBasicInfo.rgstrState ne '' and selectBasicInfo.rgstrState ne null}">
<ve:code codeId="VE0034" code="${selectBasicInfo.rgstrState}"/>
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${selectBasicInfo.rgstrDateState eq 0}">
접수기간전
</c:when>
<c:when test="${selectBasicInfo.rgstrDateState eq 1}">
접수기간중
</c:when>
<c:when test="${selectBasicInfo.rgstrDateState eq 2}">
접수기간후
</c:when>
<c:otherwise>
${selectBasicInfo.rgstrDateState}
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
</th>
<th>
<c:choose>
<c:when test="${selectBasicInfo.rgstrState ne '' and selectBasicInfo.rgstrState ne null}">
<button class="btn_type06" onclick="fncRgstrStateSave('${selectBasicInfo.rndsOrd}',''); return false;"
style="height: 40px; border-radius: 5px; vertical-align: middle;">마감해제</button>
</c:when>
<c:otherwise>
<button class="btn_type06" onclick="fncRgstrStateSave('${selectBasicInfo.rndsOrd}','03'); return false;"
style="height: 40px; border-radius: 5px; vertical-align: middle;">마감처리</button>
</c:otherwise>
</c:choose>
</th>
</tr>
<tr>
<th>
&nbsp;
</th>
<th>강의가능기간
<button class="btn_type06" onclick="fncLctrPrdPopup(); return false;"
style="height: 40px; border-radius: 5px; vertical-align: middle;">강의가능기간관리</button>
</th>
<th colspan="2">
<table class="pop_tb_type02" style="width:100%;">
<colgroup>
<col style="width: 40%;">
<col style="width: 40%;">
</colgroup>
<tbody>
<tr>
<th scope="row">강의가능기간</th>
<th scope="row">불가능일자</th>
</tr>
</tbody>
<tbody>
<c:forEach var="list" items="${selectBasicList}" varStatus="status">
<tr id='<c:out value="${list.lctrPsblPrdOrd}"/>'>
<td>
<c:out value="${list.lctrPsblStrtDt}"/>~<c:out value="${list.lctrPsblDdlnDt}"/>
</td>
<td id="td_${status.count}">
&nbsp;
<script>
fncMakePsblNInfo('${list.lctrPsblPrdOrd}', 'td_${status.count}');
</script>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</th>
</tr>
</c:if>
</tbody>
</table>
</div> </div>
<!--
<div class="list_top_1">
<div class="util_left">
<p>마감일자</p>
</div>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="deadlineDt" name="deadlineDt" value="${list.get(0).deadlineDt}">
</div>
<p>&nbsp;&nbsp;06시&nbsp;&nbsp;</p>
<button class="btn_type08" onclick="fncDeadLineDateSave(); return false;">마감일자저장</button>
</div>
</div>
-->
</div>
</c:if>
<!-- //list_top -->
<!-- list_top --> </c:if>
<!--
<div class="list_util">
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p> <c:if test="${not empty selectBasicInfo.rndsOrd}">
<div>
<select class="sel2" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px"> <!-- 새로운 board 시작 -->
<option value='10' <c:if test="${vELctrDetailVO.pageUnit == '10' or vELctrDetailVO.pageUnit == ''}">selected</c:if>>10줄</option> <div class="btn_wrap btn_layout01" style="margin-top:20px;margin-bottom:20px;">
<option value='20' <c:if test="${vELctrDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option> <div class="btn_left"></div>
<option value='30' <c:if test="${vELctrDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option> <div class="btn_center"></div>
<option value='100' <c:if test="${vELctrDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option> <div class="btn_right" style="width: 100%">
</select> <button class="btn_type06" onclick="fncLctrPsblTm(); return false;" >강의가능시간변경</button>
</div>
</div> </div>
</div>
-->
<!-- //list_top -->
<!-- list --> <!-- list -->
<div class="tb_type01"> <div class="tb_type01">
<table> <table>
<colgroup> <colgroup>
<col style="width: 5%"> <col style="width: 5%">
<col style="width: 7%"> <col style="width: 12%">
<%-- <col style="width: 8%"> --%> <%-- <col style="width: 8%"> --%>
<col style="width: 7%"> <col style="width: 12%">
<col style="width: 10%"> <col style="width: 10%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: auto"> <col style="width: auto">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 15%">
<col style="width: 15%">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="fn_egov_checkAll_PopupManage();" /><label for="checkAll"></label></th> <th><input type="checkbox" name="checkAll" id="checkAll" onclick="fn_egov_checkAll_PopupManage();" /><label for="checkAll"></label></th>
<th>지역</th> <th>지역</th>
<th>신청상태</th>
<th>강의가능시간</th> <th>강의가능시간</th>
<th>강의가능기간</th>
<th>등록자</th> <th>등록자</th>
<th>등록일</th> <th>등록일</th>
<th>지역별 총 접수시간(차시)</th> <th>지역별 총 접수시간(차시)</th>
@ -573,79 +790,36 @@
</thead> </thead>
<tbody> <tbody>
<c:set var="chasiSum" value="0" /> <c:forEach var="result" items="${list}" varStatus="status">
<c:set var="aplctChasiSum" value="0" />
<c:forEach var="list" items="${list}" varStatus="status">
<tr> <tr>
<td> <td>
<input name="checkList" id="${status.index}" value="${list.areaCd}" regId="${list.frstRegisterId}" title="Check" type="checkbox"/> <input name="checkList" id="${status.index}" value="${result.areaCd}" regId="${result.frstRegisterId}" title="Check" type="checkbox"/>
</td> </td>
<td> <td>
<!--<c:out value="${status.count}"/>--> <p><ve:code codeId="VE0008" code="${result.areaCd}"/></p>
<!--<c:out value="${list.areaCd}"/>-->
<p><ve:code codeId="VE0008" code="${list.areaCd}"/></p>
</td> </td>
<td> <td>
<p><ve:code codeId="VE0014" code="${list.ddlnStateCd}"/></p> <c:out value="${result.lctrPsblStrtTm}"/>~<c:out value="${result.lctrPsblDdlnTm}"/>
</td> </td>
<td> <td>
<c:out value="${list.lctrPsblStrtTm}"/>~<c:out value="${list.lctrPsblEndTm}"/> <c:out value="${result.userNm}"/>
</td> </td>
<td> <td>
<c:out value="${list.aplctPrdStrt}"/>~ <c:out value="${list.aplctPrdEnd}"/> <c:out value="${result.frstRegistPnttm}"/>
</td> </td>
<td> <td>
<c:out value="${list.userNm}"/> <input type="text" size="3" id="ttlEduCnfrmPsblChasi" name="ttlEduCnfrmPsblChasi" maxlength="10" value='<c:out value="${result.ttlEduCnfrmPsblChasi}"/>'/>
</td>
<td>
<c:out value="${list.frstRegistPnttm}"/>
</td>
<td>
<input type="text" size="3" id="rgstrPsblTm" name="rgstrPsblTm" maxlength="10" value='<c:out value="${list.rgstrPsblTm}"/>'/>
<button type="button" class="btn_type06" <button type="button" class="btn_type06"
onclick="fncDupleCheck(this); return false;" style="height: 40px; border-radius: 5px; vertical-align: middle;">수정</button> onclick="fncDupleCheck(this); return false;" style="height: 40px; border-radius: 5px; vertical-align: middle;">수정</button>
</td> </td>
<td> <td>
<c:if test="${list.areaCd eq '400'}">
<c:out value="${list.sumOnTtl}"/>
(<c:out value="${list.sumOnCnt}"/>)
<!--
<c:out value="${list.sumOn10Cnt}"/>
/<c:out value="${list.sumOn60Cnt}"/>
/<c:out value="${list.sumOn230Cnt}"/>
/<c:out value="${list.sumOnEtcCnt}"/>
-->
<c:set var="chasiSum" value="${chasiSum + list.sumOnTtl}" />
<c:set var="aplctChasiSum" value="${aplctChasiSum + list.sumOnCnt}" />
</c:if>
<c:if test="${list.areaCd ne '400'}">
<c:out value="${list.sumOffTtl}"/>
(<c:out value="${list.sumOffCnt}"/>)
<!--
<c:out value="${list.sumOff10Cnt}"/>
/<c:out value="${list.sumOff60Cnt}"/>
/<c:out value="${list.sumOff230Cnt}"/>
/<c:out value="${list.sumOffEtcCnt}"/>
-->
<c:set var="chasiSum" value="${chasiSum + list.sumOffTtl}" />
<c:set var="aplctChasiSum" value="${aplctChasiSum + list.sumOffCnt}" />
</c:if>
</td> </td>
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${not empty list and not empty selectTimeSum}"> <c:if test="${not empty list and not empty selectTimeSum}">
<tr> <tr>
<td colspan="7"> <td colspan="5">
&nbsp; &nbsp;
</td> </td>
<td> <td>
@ -657,14 +831,17 @@
</tr> </tr>
</c:if> </c:if>
<c:if test="${empty list}"> <c:if test="${empty list}">
<tr><td colspan="9"><spring:message code="common.nodata.msg" /></td></tr> <tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
</c:if> </c:if>
</tbody> </tbody>
</table> </table>
</div> </div>
<!-- //list --> <!-- //list -->
</c:if>
<c:if test="${not empty list}"> <c:if test="${not empty list}">
<!--
<div class="btn_wrap btn_layout01"> <div class="btn_wrap btn_layout01">
<div class="btn_left"></div> <div class="btn_left"></div>
<div class="btn_center"></div> <div class="btn_center"></div>
@ -672,6 +849,7 @@
<button class="btn_type04" onclick="fncCreate(); return false;" >교육신청 등록</button> <button class="btn_type04" onclick="fncCreate(); return false;" >교육신청 등록</button>
</div> </div>
</div> </div>
-->
</c:if> </c:if>

View File

@ -226,6 +226,7 @@
<col style="width: 20%"> <col style="width: 20%">
<col style="width: 20%"> <col style="width: 20%">
<col style="width: 20%"> <col style="width: 20%">
<col style="width: 20%">
<col style="width: auto"> <col style="width: auto">
</colgroup> </colgroup>
@ -265,7 +266,7 @@
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty list}"> <c:if test="${empty list}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr> <tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if> </c:if>
</tbody> </tbody>
</table> </table>

View File

@ -0,0 +1,356 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : advLctrPrdCalendarPopup.jsp
* @Description : 강의기간관리달력 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
.fc-day-sat { color:#0000FF; } /* 토요일 */
.fc-day-sun { color:#FF0000; } /* 일요일 */
</style>
<link type="text/css" rel="stylesheet" href="<c:url value='/js/fullcalendar/5.9.0/main.css' />" />
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/main.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/locales-all.js'/>"></script>
<script type="text/javascript">
$(document).ready(function(){
});
var ex_s_todate;// = info.startStr;
var calendar;
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('schduleManager');
calendar = new FullCalendar.Calendar(calendarEl, {
locale: 'ko',
timezone : "local",
weekends : true,
editable : false,
firstDay : 0, //월요일이 먼저 오게 하려면 1
dayMaxEvents: true,
navLinks: true,
navLinkDayClick: function(date, jsEvent) { //일자클릭
console.log('day', date.toISOString());
console.log('coords', jsEvent.pageX, jsEvent.pageY);
},
customButtons: {
myCustomButton: {
text: '오늘',
click: function(event, elm) {
alert('clicked the custom button!');
}
},viewWeekends : {
text : '주말',
click : function (event, elm) {
calendar.setOption("weekends" , calendar.getOption("weekends") ? false : true);
}
}
},buttonText: {
listMonth: '일정'
},
headerToolbar: {
left: 'prevYear nextYear today',
center: 'prev title next',
right: ' '
//right: 'dayGridMonth,listMonth'
},
eventSources: [
{
events: function(info, successCallback, failureCallback) {
console.log(info);
//alert(info.start);
//alert(info.startStr);
//alert(JSON.stringify(info));
//alert(JSON.stringify(info.startStr));
var s_todate = info.startStr;
ex_s_todate = info.startStr;
var searchDt = $("#searchCalendarCode").val();
$.ajax({
url: '<c:url value="/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdCalendarPopupAjax.do"/>',
type: 'POST',
dataType: 'json',
data: {
searchStartDt : "",
searchStartDt : s_todate,
todate : info.start,
dpStrtDt : s_todate,
dpDdlnDt : info.start,
//todate : info.startStr,
//todate : s_todate,
//todate : "",
searchYearMonth : function(){
return "";
}
},
success: function(data) {
successCallback(data);
// 날짜 계산
//setCalDate(data, info.startStr);
}
});
}
}
],
eventContent: function(arg, createElement) {
event.preventDefault();
console.log(arg.event._def.url);
arg.event._def.url = "#none";
},
eventClick: function(info) {
info.jsEvent.preventDefault();
/*
alert(info.event._def.extendedProps.lctrPsblPrdOrd);
alert(info.event._def.extendedProps.start);
alert(info.event._def.extendedProps.end);
alert(info.event._def.extendedProps.rndsNm);
alert(JSON.stringify(info.event._def.extendedProps));
*/
schDetailPop(
info.event._def.extendedProps.lctrPsblPrdOrd
, info.event._def.extendedProps.rndsOrd
, info.event._def.extendedProps.rndsNm
);
return false;
},
});
calendar.render();
});
function schDetailPop(
p_lctrPsblPrdOrd
, p_rndsOrd
, p_lctrPsblStrtDt
) {
//alert(p_lctrPsblPrdOrd);
fncChangePsblDay(p_lctrPsblPrdOrd, p_rndsOrd, p_lctrPsblStrtDt);
//calendar.fullCalendar('refetchEvents');
/*
window.open('', 'schDetailPop', "width=800, height=520, left=100, top=130","location = no","status= no","toolbars= no");
document.listForm.eduAplctOrd.value = schSeq ;
document.listForm.eduChasiOrd.value = schChasiSeq ;
document.listForm.method = "post";
document.listForm.action = "${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/SchduleManagerPopDetail.do";
document.listForm.target = "schDetailPop" ;
document.listForm.submit();
*/
}
//회차의 강의가능기간관리 삭제
function fncChangePsblDay(p_lctrPsblPrdOrd
, p_rndsOrd
, p_lctrPsblStrtDt){
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdChangeAjax.do",
data:{
"lctrPsblPrdOrd" : p_lctrPsblPrdOrd,
"rndsOrd" : p_rndsOrd,
"lctrPsblStrtDt" : p_lctrPsblStrtDt,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
//fncGoList();
//$('#schduleManager').fullCalendar('gotoDate', new Date('2023-10-01'));
window.location.reload(false);
}else{
alert("변경 중 오류가 발생하였습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
function excelDownLoad(){
var listForm = document.listForm ;
listForm.searchStartDt.value = ex_s_todate ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/tngrSchduleManagerExcelDownLoad.do'/>";
listForm.submit();
}
/*
*##############################################################################
* START
*##############################################################################
*/
// 날짜 계산
function setCalDate(data, startStr) {
// 현재월 구하기
startStr = startStr.substr(0, 10);
startStr = replaceAll(startStr, "-", "");
startStr = replaceAll(startStr, ".", "");
startStr = replaceAll(startStr, "/", "");
var todayYear = startStr.substring(0,4);
var todayMonth = 0;
var todayDay = startStr.substring(6,8);
if (todayDay == "01") {
todayMonth = startStr.substring(4,6);
}
else {
if (startStr.substring(4,6) == "12") {
todayMonth = "01";
}
else {
todayMonth = parseInt(startStr.substring(4,6), 10) + 1;
if (todayMonth < 10) {
todayMonth = "0" + todayMonth;
}
}
}
// End
//alert(todayMonth);
var monthCnt = 0;
var week1Cnt = 0, week2Cnt = 0, week3Cnt = 0, week4Cnt = 0, week5Cnt = 0, week6Cnt = 0;
var sHtml = "";
for (var j = 0; j < data.length; j++) {
var schStartDate = data[j].start.substr(0, 10);
schStartDate = replaceAll(schStartDate, "-", "");
schStartDate = replaceAll(schStartDate, ".", "");
schStartDate = replaceAll(schStartDate, "/", "");
var thisYear = schStartDate.substring(0,4);
var thisMonth = schStartDate.substring(4,6);
var thisDay = schStartDate.substring(6,8);
var thisWeek = getSecofWeek(schStartDate);
// 해당월 데이터만 처리
if (todayMonth == thisMonth) {
monthCnt++;
if (thisWeek == 1) {
week1Cnt++;
}
else if (thisWeek == 2) {
week2Cnt++;
}
else if (thisWeek == 3) {
week3Cnt++;
}
else if (thisWeek == 4) {
week4Cnt++;
}
else if (thisWeek == 5) {
week5Cnt++;
}
else if (thisWeek == 6) {
week6Cnt++;
}
}
}
sHtml += "전체 : " + monthCnt + "건";
sHtml += " &nbsp;(1주차 : " + week1Cnt + "건";
sHtml += ", &nbsp;&nbsp;2주차 : " + week2Cnt + "건";
sHtml += ", &nbsp;&nbsp;3주차 : " + week3Cnt + "건";
sHtml += ", &nbsp;&nbsp;4주차 : " + week4Cnt + "건";
sHtml += ", &nbsp;&nbsp;5주차 : " + week5Cnt + "건";
sHtml += ", &nbsp;&nbsp;6주차 : " + week6Cnt + "건)";
sHtml += '&nbsp;<button type="button" class="btn_down_excel" onclick="excelDownLoad();">일정현황 엑셀 다운로드</button>';
$("#weekCnt").html(sHtml);
}
// 해당일 주차 계산
function getSecofWeek(date) {
var d = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, date.substring(6,8) );
var fd = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, 1 );
return Math.ceil((parseInt(date.substring(6,8))+fd.getDay())/7);
}
// ReplaceAll
function replaceAll(str, searchStr, replaceStr) {
return str.split(searchStr).join(replaceStr);
}
</script>
<title>일정현황</title>
</head>
<body>
<form:form id="listForm" name="listForm" method="post">
<input type="hidden" name="eduAplctOrd" value="" />
<input type="hidden" name="eduChasiOrd" value="" />
<input type="hidden" name="searchStartDt" value="" />
</form:form>
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<input type="hidden" id="searchCalendarCode" value="">
<h2>강의가능기간현황</h2>
<!--
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>일정관리</p>
</li>
<li><span class="cur_nav">일정현황</span></li>
</ul>
-->
</div>
<!-- //cont_tit -->
<br />
<div style="float: right; padding-right: 40px; color: #777777;" id="weekCnt"></div>
<div class="cont">
<div id="schduleManager"></div>
</div>
</div>
</div>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,563 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : advLctrPrdMngPopup.jsp
* @Description : 강의기간관리 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/classic.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/classic.date.css">
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/picker.js"></script>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/picker.date.js"></script>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/legacy.js"></script>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/ko_KR.js"></script>
<script type="text/javascript">
</script>
<title>신청반려팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
var mode = '${adjReqMgrVO.mode}';
if(mode == "D"){
$("input[type=checkbox],textarea").not("textarea[name=rejtReson]").attr("disabled" , true);
}
});
function fncAprooval(){
var msg = "강의가능시간 변경";
var data1 = new FormData(document.getElementById("createForm"));
//console.log(data);
console.log(data1);
if (confirm(msg+" 하시겠습니까?")) {
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngLctrPsblTmPopupAjax.do",
//data: JSON.stringify(data),
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
console.log(returnData.rs);
if(returnData.result == 'success'){
alert("정상적으로 "+ msg +" 되었습니다.");
opener.location.reload();
self.close();
}else{
alert(returnData.message);
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function validationForm(data){
/*
var len = $("input[type='checkbox']:checked").length;
if (len <= 0) {
alert("보완요청항목을 선택해주세요.");
return false;
}
*/
if ($("[name='aprvlCn']").val() == '') {
alert("사유를 입력해주세요.");
return false;
}
/*
if ($("[name='adrSeq']").val() == '') {
alert("신청번호가 없습니다. 관리자에게 문의해주세요.");
return false;
}
*/
return true;
}
function fncGoEdit(){
var createForm = document.createForm ;
createForm.mode.value = "C";
createForm.action = "<c:url value='/kccadr/adjReqMgr/popup/adjReqMgrRegSecurityPopup.do'/>";
createForm.submit();
}
function fncStatusUpdate(confirmYn){
var msg = "승인";
var data = {};
data.adrSeq = '${security.adrSeq}';
data.edtSn = '${security.edtSn}';
data.apprYn = 'Y';
data.rejtReson = $("#rejtReson").val();
//data.statCd = '010100'; // 작성중 상태로 변경
if(confirmYn == "N"){
data.apprYn = 'N'; // 미승인 상태
msg = "반려";
}
if (confirm(msg+" 하시겠습니까?")) {
$.ajax({
type: "POST",
url: "/kccadr/adjReqMgr/popup/adjReqMgrRegSecurityStatusChange.do",
data: JSON.stringify(data),
dataType:'json',
async: false,
processData: false,
contentType: "application/json",
cache: false,
success: function (returnData, status) {
console.log(returnData.rs);
if(returnData.result == 'SUCCESS'){
alert("정상적으로 "+ msg +" 되었습니다.");
opener.location.reload();
self.close();
}else{
alert(returnData.message);
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function fncPopClose(){
self.close();
}
//강의가능기간 등록
function fncLctrPrdSave(p_rnds_ord){
//alert($("#ord_1").val());
//alert($(thisObj).closest("td"));
//alert($(thisObj).closest("td").find("input[name=ord_1]").length);
//var p_ord = $(thisObj).closest("td").find("input[name=ord_1]").val();
//var p_rgstrStrtPnttm_dt = $(thisObj).closest("td").find("input[name=rgstrStrtPnttm_dt]").val();
//var p_rgstrDdlnPnttm_dt = $(thisObj).closest("td").find("input[name=rgstrDdlnPnttm_dt]").val();
//var p_yr = $("#yr").val();
//var p_ord = $("#ord").val();
var p_rgstrStrtPnttm_dt = $("#rgstrStrtPnttm_dt").val();
//var p_rgstrStrtPnttm_tm = $("#rgstrStrtPnttm_tm").val();
var p_rgstrDdlnPnttm_dt = $("#rgstrDdlnPnttm_dt").val();
//var p_rgstrDdlnPnttm_tm = $("#rgstrDdlnPnttm_tm").val();
//alert(p_areaCd);
if (p_rgstrStrtPnttm_dt>p_rgstrDdlnPnttm_dt){
alert("강의가능시작일이 강의가능마감일 보다 클수 없습니다.");
return;
}
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdSaveAjax.do",
data:{
"rndsOrd" : p_rnds_ord,
"lctrPsblStrtDt" : p_rgstrStrtPnttm_dt,
"lctrPsblDdlnDt" : p_rgstrDdlnPnttm_dt,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("등록 처리 되었습니다.");
fncGoList();
}else if(returnData.result == "dup"){
alert("강의가능기간이 중복 되었습니다.");
fncGoList();
}else{
alert("등록 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.createForm ;
//listForm.pageIndex.value = pageNo ;
//listForm.searchCondition.value = $('#searchCondition').val();
//listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdMngPopup.do'/>";
listForm.submit();
}
//회차관리 변경
function fncRndsUpdate(p_lctrPsblPrdOrd){
//alert($("#ord_1").val());
//alert($(thisObj).closest("td"));
//alert($(thisObj).closest("td").find("input[name=ord_1]").length);
//var p_ord = $(thisObj).closest("td").find("input[name=ord_1]").val();
//$("#${list.rndsOrd}"+" #lctrPsblStrtTm").val('${list.dpStrtTm}');
var p_rgstrStrtPnttm_dt = $("#"+p_lctrPsblPrdOrd+" #aplctPrdStrt").val();
var p_rgstrDdlnPnttm_dt = $("#"+p_lctrPsblPrdOrd+" #aplctPrdEnd").val();
//alert(p_areaCd);
if (p_rgstrStrtPnttm_dt>p_rgstrDdlnPnttm_dt){
alert("강의가능시작일이 강의가능마감일 보다 클수 없습니다.");
return;
}
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdUpdateAjax.do",
data:{
"lctrPsblPrdOrd" : p_lctrPsblPrdOrd,
//"yr" : p_yr,
//"ord" : p_ord,
"lctrPsblStrtDt" : p_rgstrStrtPnttm_dt,
"lctrPsblDdlnDt" : p_rgstrDdlnPnttm_dt,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
fncGoList();
}else if(returnData.result == "dup"){
alert("강의가능기간이 중복 되었습니다.");
fncGoList();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
//회차의 강의가능기간관리 삭제
function fncLctrPrdDelete(p_lctrPsblPrdOrd){
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdDeleteAjax.do",
data:{
"lctrPsblPrdOrd" : p_lctrPsblPrdOrd,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("삭제 처리 되었습니다.");
fncGoList();
}else{
alert("삭제 중 오류가 발생하였습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
//강의가능기간 팝업
function fncCalendarPopup(p_lctrPsblPrdOrd) {
if(p_lctrPsblPrdOrd==''){
alert("대상 기간을 선택해주세요.");
return false;
}
document.listForm.lctrPsblPrdOrd.value = p_lctrPsblPrdOrd;
//document.listForm.rndsOrd.value = p_rndsOrd;
//document.listForm.authorCode.value = vAuthorCode;
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdCalendarPopup.do'/>";
window.open("#", "_CalendarPop", "scrollbars = no, top=100px, left=100px, height=1000px, width=1200px");
document.listForm.target = "_CalendarPop";
document.listForm.submit();
}
//불가능일자 가져와서 화면에 출력하기
function fncMakePsblNInfo(
p_lctrPsblPrdOrd
, p_td_name
){
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdMngPopupDpAjax.do",
data:{
"lctrPsblPrdOrd" : p_lctrPsblPrdOrd,
},
dataType:'json',
success:function(returnData){
//alert(JSON.stringify(returnData));
//alert(returnData.length);
if (returnData.length>0){
var v_out = "";
returnData.forEach(function(data) {
// code
v_out = v_out + data.lctrPsblStrtDt + "<br/>";
});
$("#"+p_td_name).prepend(v_out)
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
</script>
</head>
<body>
<!-- 팝업을 위한 mask -->
<div class="mask2" onclick="timeLayerUtil()"></div>
<div class="area_popup">
<!-- cont_tit -->
<div class="cont_tit">
<h2>강의가능기간관리</h2>
</div>
<!-- //cont_tit -->
<div class="cont_popup">
<form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="rndsOrd" id="rndsOrd" value="<c:out value="${selectBasicInfo.rndsOrd}" />">
<input type="hidden" name="yr" id="yr" value="<c:out value="${selectBasicInfo.yr}" />">
<input type="hidden" name="lctrPsblPrdOrd" id="lctrPsblPrdOrd" value="">
</form>
<form:form id="createForm" name="createForm" method="post" commandName="vELctrDetailVO" onsubmit="return false;">
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value="${vELctrDetailVO.instrDiv}" />">
<input type="hidden" name="areaCd" id="areaCd" value="<c:out value="${vELctrDetailVO.areaCd}" />">
<input type="hidden" name="stngYr" id="stngYr" value="<c:out value="${vELctrDetailVO.stngYr}" />">
<input type="hidden" name="prdDivCd" id="prdDivCd" value="<c:out value="${vELctrDetailVO.prdDivCd}" />">
<input type="hidden" name="rndsOrd" id="rndsOrd" value="<c:out value="${selectBasicInfo.rndsOrd}" />">
<input type="hidden" name="yr" id="yr" value="<c:out value="${selectBasicInfo.yr}" />">
<input type="hidden" name="lctrPsblPrdOrd" id="lctrPsblPrdOrd" value="">
<table class="pop_tb_type02">
<colgroup>
<col style="width: 140px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row" colspan="2">
<p class="req_text"><span>필수입력 항목</span></p>
<p>
&nbsp;&nbsp;&nbsp;구분&nbsp;&nbsp;
${selectBasicInfo.yr}년 ${selectBasicInfo.ord}회차
</p>
</th>
</tr>
</tbody>
</table>
<table class="pop_tb_type02">
<colgroup>
<col style="width: 21%;">
<col style="width: 33%;">
<col style="width: 33%;">
<col style="width: 15%;">
</colgroup>
<tbody>
<tr>
<th scope="row"></th>
<th scope="row">강의가능시작일</th>
<th scope="row">강의가능마감일</th>
<th scope="row">관리</th>
</tr>
</tbody>
<tbody>
<tr>
<!-- 회차 -->
<td>
강의가능기간
</td>
<td>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="rgstrStrtPnttm_dt"
name="rgstrStrtPnttm_dt">
</div>
~
</div>
</td>
<td>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="rgstrDdlnPnttm_dt"
name="rgstrDdlnPnttm_dt">
</div>
</div>
</td>
<td>
<div class="btn_wrap_pop btn_layout01" style="margin-top:10px;margin-bottom:10px;">
<div class="btn_center" style="width: 100%;">
<button class="btn_type04" onclick="fncLctrPrdSave('${selectBasicInfo.rndsOrd}'); return false;">등록</button>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<table class="pop_tb_type02">
<colgroup>
<col style="width: 5%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 30%;">
</colgroup>
<tbody>
<tr>
<th scope="row">NO</th>
<th scope="row">강의가능시작일</th>
<th scope="row">강의가능마감일</th>
<th scope="row">불가능일자</th>
<th scope="row">관리</th>
</tr>
</tbody>
<tbody>
<c:forEach var="list" items="${selectBasicList}" varStatus="status">
<tr id='<c:out value="${list.lctrPsblPrdOrd}"/>'>
<!-- 회차 -->
<td>
${status.count}
</td>
<td>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="aplctPrdStrt"
name="aplctPrdStrt" value='<c:out value="${list.lctrPsblStrtDt}"/>'>
</div>
</div>
</td>
<td>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="aplctPrdEnd"
name="aplctPrdEnd" value='<c:out value="${list.lctrPsblDdlnDt}"/>'>
</div>
</div>
</td>
<td id="td_${status.count}">
&nbsp;
<script>
fncMakePsblNInfo('${list.lctrPsblPrdOrd}', 'td_${status.count}');
</script>
</td>
<td>
<div class="btn_wrap_pop btn_layout01" style="margin-top:10px;margin-bottom:10px;">
<div class="btn_center" style="width: 100%;">
<button type="button" class="btn_type04" onclick="fncRndsUpdate('${list.lctrPsblPrdOrd}'); return false;">수정</button>
<button type="button" class="btn_type02" onclick="fncLctrPrdDelete('${list.lctrPsblPrdOrd}'); return false;">삭제</button>
<button type="button" class="btn_type02" onclick="fncCalendarPopup('${list.lctrPsblPrdOrd}'); return false;">달력보기</button>
</div>
</div>
</td>
</tr>
<script>
$("#${list.rndsOrd}"+" #lctrPsblStrtTm").val('${list.dpStrtTm}');
$("#${list.rndsOrd}"+" #lctrPsblEndTm").val('${list.dpDdlnTm}');
</script>
</c:forEach>
</tbody>
</table>
</form:form>
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center" style="width: 100%;">
<!-- <button type="button" class="btn_type04" onclick="fncAprooval(); return false;">확인</button> -->
<button type="button" class="btn_type02" onclick="window.close()">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,365 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : advPsblTmQnttyCalendarPopup.jsp
* @Description : 교육가능시수 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
.fc-day-sat { color:#0000FF; } /* 토요일 */
.fc-day-sun { color:#FF0000; } /* 일요일 */
</style>
<link type="text/css" rel="stylesheet" href="<c:url value='/js/fullcalendar/5.9.0/main.css' />" />
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/main.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/locales-all.js'/>"></script>
<script type="text/javascript">
$(document).ready(function(){
});
var ex_s_todate;// = info.startStr;
var calendar;
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('schduleManager');
calendar = new FullCalendar.Calendar(calendarEl, {
locale: 'ko',
timezone : "local",
weekends : true,
editable : false,
firstDay : 0, //월요일이 먼저 오게 하려면 1
dayMaxEvents: true,
navLinks: true,
navLinkDayClick: function(date, jsEvent) { //일자클릭
console.log('day', date.toISOString());
console.log('coords', jsEvent.pageX, jsEvent.pageY);
},
customButtons: {
myCustomButton: {
text: '오늘',
click: function(event, elm) {
alert('clicked the custom button!');
}
},viewWeekends : {
text : '주말',
click : function (event, elm) {
calendar.setOption("weekends" , calendar.getOption("weekends") ? false : true);
}
}
},buttonText: {
listMonth: '일정'
},
headerToolbar: {
left: 'prevYear nextYear today',
center: 'prev title next',
right: ' '
//right: 'dayGridMonth,listMonth'
},
eventSources: [
{
events: function(info, successCallback, failureCallback) {
console.log(info);
//alert(info.start);
//alert(info.startStr);
//alert(JSON.stringify(info));
//alert(JSON.stringify(info.startStr));
var s_todate = info.startStr;
ex_s_todate = info.startStr;
var searchDt = $("#searchCalendarCode").val();
$.ajax({
url: '<c:url value="/kccadr/oprtn/tngrVisitEdu/popup/advPsblTmQnttyCalendarPopupAjax.do"/>',
type: 'POST',
dataType: 'json',
data: {
searchStartDt : "",
searchStartDt : s_todate,
todate : info.start,
dpStrtDt : s_todate,
dpDdlnDt : info.start,
//todate : info.startStr,
//todate : s_todate,
//todate : "",
searchYearMonth : function(){
return "";
}
},
success: function(data) {
successCallback(data);
// 날짜 계산
//setCalDate(data, info.startStr);
}
});
}
}
],
eventContent: function(arg, createElement) {
event.preventDefault();
console.log(arg.event._def.url);
arg.event._def.url = "#none";
},
eventClick: function(info) {
info.jsEvent.preventDefault();
//alert(info.event._def.extendedProps.dtPsblTmQnttyOrd);
//alert(info.event._def.extendedProps.title);
//alert(info.title);
//alert(info.event._def.title);
//alert(JSON.stringify(info));
/*
alert(info.event._def.extendedProps.dtPsblTmQnttyOrd);
alert(info.event._def.extendedProps.start);
alert(info.event._def.extendedProps.end);
alert(info.event._def.extendedProps.rndsNm);
alert(JSON.stringify(info.event._def.extendedProps));
*/
if (info.event._def.title=="불가능"){
alert("해당 일자는 관리자가 교육 불가 일자로 설정하여 시수 설정이 불가능 합니다.");
}else{
dtPsblTmQnttyPop(
info.event._def.extendedProps.dtPsblTmQnttyOrd
, info.event._def.extendedProps.rndsNm
);
}
return false;
},
});
calendar.render();
});
function dtPsblTmQnttyPop(
p_dtPsblTmQnttyOrd
, p_dpStrtDt
) {
//alert(p_dtPsblTmQnttyOrd);
//alert(p_dpStrtDt);
//fncChangePsblDay(p_lctrPsblPrdOrd, p_rndsOrd, p_lctrPsblStrtDt);
//calendar.fullCalendar('refetchEvents');
document.listForm.dtPsblTmQnttyOrd.value = p_dtPsblTmQnttyOrd;
document.listForm.dpStrtDt.value = p_dpStrtDt;
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advPsblTmQnttyPopup.do'/>";
window.open("#", "_dtPsblTmQnttyPop", "scrollbars = no, top=100px, left=100px, height=450px, width=450px");
document.listForm.target = "_dtPsblTmQnttyPop";
document.listForm.submit();
}
//회차의 강의가능기간관리 삭제
function fncChangePsblDay(p_lctrPsblPrdOrd
, p_rndsOrd
, p_lctrPsblStrtDt){
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdChangeAjax.do",
data:{
"lctrPsblPrdOrd" : p_lctrPsblPrdOrd,
"rndsOrd" : p_rndsOrd,
"lctrPsblStrtDt" : p_lctrPsblStrtDt,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
//fncGoList();
//$('#schduleManager').fullCalendar('gotoDate', new Date('2023-10-01'));
window.location.reload(false);
}else{
alert("변경 중 오류가 발생하였습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
function excelDownLoad(){
var listForm = document.listForm ;
listForm.searchStartDt.value = ex_s_todate ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/tngrSchduleManagerExcelDownLoad.do'/>";
listForm.submit();
}
/*
*##############################################################################
* START
*##############################################################################
*/
// 날짜 계산
function setCalDate(data, startStr) {
// 현재월 구하기
startStr = startStr.substr(0, 10);
startStr = replaceAll(startStr, "-", "");
startStr = replaceAll(startStr, ".", "");
startStr = replaceAll(startStr, "/", "");
var todayYear = startStr.substring(0,4);
var todayMonth = 0;
var todayDay = startStr.substring(6,8);
if (todayDay == "01") {
todayMonth = startStr.substring(4,6);
}
else {
if (startStr.substring(4,6) == "12") {
todayMonth = "01";
}
else {
todayMonth = parseInt(startStr.substring(4,6), 10) + 1;
if (todayMonth < 10) {
todayMonth = "0" + todayMonth;
}
}
}
// End
//alert(todayMonth);
var monthCnt = 0;
var week1Cnt = 0, week2Cnt = 0, week3Cnt = 0, week4Cnt = 0, week5Cnt = 0, week6Cnt = 0;
var sHtml = "";
for (var j = 0; j < data.length; j++) {
var schStartDate = data[j].start.substr(0, 10);
schStartDate = replaceAll(schStartDate, "-", "");
schStartDate = replaceAll(schStartDate, ".", "");
schStartDate = replaceAll(schStartDate, "/", "");
var thisYear = schStartDate.substring(0,4);
var thisMonth = schStartDate.substring(4,6);
var thisDay = schStartDate.substring(6,8);
var thisWeek = getSecofWeek(schStartDate);
// 해당월 데이터만 처리
if (todayMonth == thisMonth) {
monthCnt++;
if (thisWeek == 1) {
week1Cnt++;
}
else if (thisWeek == 2) {
week2Cnt++;
}
else if (thisWeek == 3) {
week3Cnt++;
}
else if (thisWeek == 4) {
week4Cnt++;
}
else if (thisWeek == 5) {
week5Cnt++;
}
else if (thisWeek == 6) {
week6Cnt++;
}
}
}
sHtml += "전체 : " + monthCnt + "건";
sHtml += " &nbsp;(1주차 : " + week1Cnt + "건";
sHtml += ", &nbsp;&nbsp;2주차 : " + week2Cnt + "건";
sHtml += ", &nbsp;&nbsp;3주차 : " + week3Cnt + "건";
sHtml += ", &nbsp;&nbsp;4주차 : " + week4Cnt + "건";
sHtml += ", &nbsp;&nbsp;5주차 : " + week5Cnt + "건";
sHtml += ", &nbsp;&nbsp;6주차 : " + week6Cnt + "건)";
sHtml += '&nbsp;<button type="button" class="btn_down_excel" onclick="excelDownLoad();">일정현황 엑셀 다운로드</button>';
$("#weekCnt").html(sHtml);
}
// 해당일 주차 계산
function getSecofWeek(date) {
var d = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, date.substring(6,8) );
var fd = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, 1 );
return Math.ceil((parseInt(date.substring(6,8))+fd.getDay())/7);
}
// ReplaceAll
function replaceAll(str, searchStr, replaceStr) {
return str.split(searchStr).join(replaceStr);
}
</script>
<title>일정현황</title>
</head>
<body>
<form:form id="listForm" name="listForm" method="post">
<input type="hidden" name="dpStrtDt" id="dpStrtDt" value="" />
<input type="hidden" name="dtPsblTmQnttyOrd" id="dtPsblTmQnttyOrd" value="" />
</form:form>
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<input type="hidden" id="searchCalendarCode" value="">
<h2>교육가능시수현황</h2>
<!--
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>일정관리</p>
</li>
<li><span class="cur_nav">일정현황</span></li>
</ul>
-->
</div>
<!-- //cont_tit -->
<br />
<div style="float: right; padding-right: 40px; color: #777777;" id="weekCnt"></div>
<div class="cont">
<div id="schduleManager"></div>
</div>
</div>
</div>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,232 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : advPsblTmQnttyPopup.jsp
* @Description : 교육가능시수 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @version 1.0
* @see
*
*/
%>
<c:set var="URL" value="${pageContext.request.requestURL}" />
<c:set var="URI" value="${pageContext.request.requestURI}" />
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
</script>
<title>신청반려팝업</title>
<!-- ${URL} -->
<!-- ${URI} -->
<script type="text/javaScript" language="javascript">
function fncAprooval(){
var msg = "마감상태변경1";
var data1 = new FormData(document.getElementById("createForm"));
//console.log(data);
console.log(data1);
if (confirm(msg+" 하시겠습니까?")) {
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngDdlnStatePopupAjax.do",
//data: JSON.stringify(data),
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
console.log(returnData.rs);
if(returnData.result == 'success'){
alert("정상적으로 "+ msg +" 되었습니다.");
opener.location.reload();
self.close();
}else{
alert(returnData.message);
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function fncPopClose(){
self.close();
}
//특정일교육가능시수 변경
function fncEduPsblTmSave(thisObj){
//var p_psblTmQntty = $(thisObj).closest("td").find("input[name=psblTmQntty]").val();
var p_psblTmQntty = $("input[name=psblTmQntty]").val();
var p_trgtDt = '${selectBasicInfo.dpStrtDt}';
var p_dtPsblTmQnttyOrd = '${selectBasicInfo.dtPsblTmQnttyOrd}';
//alert(p_psblTmQntty);
if (p_psblTmQntty==""){
alert("교육가능시수 값은 반드시 필요합니다.");
return;
}
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advPsblTmQnttyPopupAjax.do",
data:{
"trgtDt" : p_trgtDt,
"dtPsblTmQnttyOrd" : p_dtPsblTmQnttyOrd,
"psblTmQntty" : p_psblTmQntty,
"code" : "I",
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
fncGoList();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
//특정일교육가능시수 변경
function fncEduPsblTmDelete(){
var p_trgtDt = '${selectBasicInfo.dpStrtDt}';
var p_dtPsblTmQnttyOrd = '${selectBasicInfo.dtPsblTmQnttyOrd}';
//alert(p_areaCd);
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/advPsblTmQnttyPopupAjax.do",
data:{
"trgtDt" : p_trgtDt,
"dtPsblTmQnttyOrd" : p_dtPsblTmQnttyOrd,
"code" : "D",
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("삭제 처리 되었습니다.");
fncGoList();
}else{
alert("삭제 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
function fncGoList(){
top.window.opener.location.reload();
self.close();
}
</script>
</head>
<body>
<div class="area_popup">
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" commandName="vELctrDetailVO" onsubmit="return false;">
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value="${vELctrDetailVO.instrDiv}" />">
<input type="hidden" name="areaCd" id="areaCd" value="<c:out value="${vELctrDetailVO.areaCd}" />">
<input type="hidden" name="stngYr" id="stngYr" value="<c:out value="${vELctrDetailVO.stngYr}" />">
<input type="hidden" name="prdDivCd" id="prdDivCd" value="<c:out value="${vELctrDetailVO.prdDivCd}" />">
<table class="pop_tb_type02">
<colgroup>
<col style="width: 100px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>${selectBasicInfo.dpStrtDt}</p>
</th>
<td>
<li>
<input type="text" id="psblTmQntty" name="psblTmQntty" class="search_input"
style="width: 140px; border-radius: 5px; vertical-align: middle;"
placeholder="교육가능시수" value='<c:out value="${selectBasicInfo.psblTmQntty}"/>' onkeyDown="press(event);">
<!-- <button class="btn_type06" onclick="fncEduPsblTmSave(this); return false;" -->
<!-- style="width: 80px; height: 40px; border-radius: 5px; vertical-align: middle;">저장</button> -->
<!--<kc:select codeId="VE0014" name="ddlnStateCd" id="ddlnStateCd" css="class='sel_type1'"
selectedValue="<c:out value='${info.ddlnStateCd}'/>" defaultValue='접수'
/>
-->
<!-- <button class="btn_search" onclick="fncGoList(); return false;">검색</button> -->
</li>
</td>
</tr>
</tbody>
</table>
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center" style="width: 100%;">
<!-- <button class="btn_type04" onclick="fncAprooval(); return false;">저장</button> -->
<button class="btn_type04" onclick="fncEduPsblTmSave(this); return false;">저장</button>
<button class="btn_type02" onclick="fncPopClose(); return false;">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</form:form>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,618 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : advRndsStngMngPopup.jsp
* @Description : 강의회차관리 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/classic.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/classic.date.css">
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/picker.js"></script>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/picker.date.js"></script>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/legacy.js"></script>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/ko_KR.js"></script>
<script type="text/javascript">
</script>
<title>신청반려팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
var mode = '${adjReqMgrVO.mode}';
if(mode == "D"){
$("input[type=checkbox],textarea").not("textarea[name=rejtReson]").attr("disabled" , true);
}
});
function fncAprooval(){
var msg = "강의가능시간 변경";
var data1 = new FormData(document.getElementById("createForm"));
//console.log(data);
console.log(data1);
if (confirm(msg+" 하시겠습니까?")) {
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/areaLctrMngLctrPsblTmPopupAjax.do",
//data: JSON.stringify(data),
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
console.log(returnData.rs);
if(returnData.result == 'success'){
alert("정상적으로 "+ msg +" 되었습니다.");
opener.location.reload();
self.close();
}else{
alert(returnData.message);
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function validationForm(data){
/*
var len = $("input[type='checkbox']:checked").length;
if (len <= 0) {
alert("보완요청항목을 선택해주세요.");
return false;
}
*/
if ($("[name='aprvlCn']").val() == '') {
alert("사유를 입력해주세요.");
return false;
}
/*
if ($("[name='adrSeq']").val() == '') {
alert("신청번호가 없습니다. 관리자에게 문의해주세요.");
return false;
}
*/
return true;
}
function fncGoEdit(){
var createForm = document.createForm ;
createForm.mode.value = "C";
createForm.action = "<c:url value='/kccadr/adjReqMgr/popup/adjReqMgrRegSecurityPopup.do'/>";
createForm.submit();
}
function fncStatusUpdate(confirmYn){
var msg = "승인";
var data = {};
data.adrSeq = '${security.adrSeq}';
data.edtSn = '${security.edtSn}';
data.apprYn = 'Y';
data.rejtReson = $("#rejtReson").val();
//data.statCd = '010100'; // 작성중 상태로 변경
if(confirmYn == "N"){
data.apprYn = 'N'; // 미승인 상태
msg = "반려";
}
if (confirm(msg+" 하시겠습니까?")) {
$.ajax({
type: "POST",
url: "/kccadr/adjReqMgr/popup/adjReqMgrRegSecurityStatusChange.do",
data: JSON.stringify(data),
dataType:'json',
async: false,
processData: false,
contentType: "application/json",
cache: false,
success: function (returnData, status) {
console.log(returnData.rs);
if(returnData.result == 'SUCCESS'){
alert("정상적으로 "+ msg +" 되었습니다.");
opener.location.reload();
self.close();
}else{
alert(returnData.message);
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function fncPopClose(){
self.close();
}
//회차관리 변경
function fncRndsSave(thisObj){
//alert($("#ord_1").val());
//alert($(thisObj).closest("td"));
//alert($(thisObj).closest("td").find("input[name=ord_1]").length);
var p_ord = $(thisObj).closest("td").find("input[name=ord_1]").val();
var p_rgstrStrtPnttm_dt = $(thisObj).closest("td").find("input[name=rgstrStrtPnttm_dt]").val();
var p_rgstrStrtPnttm_tm = $(thisObj).closest("td").find("input[name=rgstrStrtPnttm_tm]").val();
var p_rgstrDdlnPnttm_dt = $(thisObj).closest("td").find("input[name=rgstrDdlnPnttm_dt]").val();
var p_rgstrDdlnPnttm_tm = $(thisObj).closest("td").find("input[name=rgstrDdlnPnttm_tm]").val();
var p_yr = $("#yr").val();
var p_ord = $("#ord").val();
var p_rgstrStrtPnttm_dt = $("#rgstrStrtPnttm_dt").val();
var p_rgstrStrtPnttm_tm = $("#rgstrStrtPnttm_tm").val();
var p_rgstrDdlnPnttm_dt = $("#rgstrDdlnPnttm_dt").val();
var p_rgstrDdlnPnttm_tm = $("#rgstrDdlnPnttm_tm").val();
//alert(p_areaCd);
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advRndsSaveAjax.do",
data:{
"yr" : p_yr,
"ord" : p_ord,
"rgstrStrtPnttm" : p_rgstrStrtPnttm_dt+p_rgstrStrtPnttm_tm,
"rgstrDdlnPnttm" : p_rgstrDdlnPnttm_dt+p_rgstrDdlnPnttm_tm,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
fncGoList();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.createForm ;
//listForm.pageIndex.value = pageNo ;
//listForm.searchCondition.value = $('#searchCondition').val();
//listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advRndsStngMngPopup.do'/>";
listForm.submit();
}
//회차관리 변경
function fncRndsUpdate(p_rndsOrd){
//alert($("#ord_1").val());
//alert($(thisObj).closest("td"));
//alert($(thisObj).closest("td").find("input[name=ord_1]").length);
//var p_ord = $(thisObj).closest("td").find("input[name=ord_1]").val();
//$("#${list.rndsOrd}"+" #lctrPsblStrtTm").val('${list.dpStrtTm}');
var p_rgstrStrtPnttm_dt = $("#"+p_rndsOrd+" #aplctPrdStrt").val();
var p_rgstrStrtPnttm_tm = $("#"+p_rndsOrd+" #lctrPsblStrtTm").val();
var p_rgstrDdlnPnttm_dt = $("#"+p_rndsOrd+" #aplctPrdEnd").val();
var p_rgstrDdlnPnttm_tm = $("#"+p_rndsOrd+" #lctrPsblEndTm").val();
var p_ord = $("#"+p_rndsOrd+" #psblTmQntty").val();
//alert(p_areaCd);
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advRndsUpdateAjax.do",
data:{
"rndsOrd" : p_rndsOrd,
//"yr" : p_yr,
"ord" : p_ord,
"rgstrStrtPnttm" : p_rgstrStrtPnttm_dt+p_rgstrStrtPnttm_tm,
"rgstrDdlnPnttm" : p_rgstrDdlnPnttm_dt+p_rgstrDdlnPnttm_tm,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
fncGoList();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
//회차관리 삭제
function fncRndsDelete(p_rndsOrd){
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advRndsDeleteAjax.do",
data:{
"rndsOrd" : p_rndsOrd,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("삭제 처리 되었습니다.");
fncGoList();
}else{
alert("삭제 중 오류가 발생하였습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
</script>
</head>
<body>
<!-- 팝업을 위한 mask -->
<div class="mask2" onclick="timeLayerUtil()"></div>
<div class="area_popup">
<!-- cont_tit -->
<div class="cont_tit">
<h2>회차관리</h2>
</div>
<!-- //cont_tit -->
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" commandName="vELctrDetailVO" onsubmit="return false;">
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value="${vELctrDetailVO.instrDiv}" />">
<input type="hidden" name="areaCd" id="areaCd" value="<c:out value="${vELctrDetailVO.areaCd}" />">
<input type="hidden" name="stngYr" id="stngYr" value="<c:out value="${vELctrDetailVO.stngYr}" />">
<input type="hidden" name="prdDivCd" id="prdDivCd" value="<c:out value="${vELctrDetailVO.prdDivCd}" />">
<table class="pop_tb_type02">
<colgroup>
<col style="width: 140px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row" colspan="2">
<p class="req_text"><span>필수입력 항목</span></p>
<p>
&nbsp;&nbsp;&nbsp;년도&nbsp;&nbsp;
<kc:select codeId="VE0029" name="yr" id="yr" css="class='sel_type1'"
selectedValue="${vEAStngVO.yr}"
/>
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</p>
</th>
<!--
<td>
<div class="util_right">
&nbsp;&nbsp;&nbsp;년도&nbsp;&nbsp;
<kc:select codeId="VE0029" name="yr" id="yr" css="class='sel_type1'"
selectedValue="${vEAStngVO.yr}"
/>
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
</div>
</td>
-->
</tr>
</tbody>
</table>
<table class="pop_tb_type02">
<colgroup>
<col style="width: 21%;">
<col style="width: 33%;">
<col style="width: 33%;">
<col style="width: 15%;">
</colgroup>
<tbody>
<tr>
<th scope="row">회차명</th>
<th scope="row">접수시작일시</th>
<th scope="row">접수마감일시</th>
<th scope="row">관리</th>
</tr>
</tbody>
<tbody>
<tr>
<!-- 회차 -->
<td>
<div class="util_right">
<input type="text" id="ord" name="ord" class="search_input"
style="width:100px;" maxlength="3"
placeholder="숫자만" value='' onkeyDown="press(event);">회차
</td>
<td>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="rgstrStrtPnttm_dt"
name="rgstrStrtPnttm_dt">
</div>
<select name="rgstrStrtPnttm_tm" id="rgstrStrtPnttm_tm" class="hours_select" style="width:70px;"
title="시 선택">
<option value="선택">선택</option>
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>시
</div>
</td>
<td>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="rgstrDdlnPnttm_dt"
name="rgstrDdlnPnttm_dt">
</div>
<select name="rgstrDdlnPnttm_tm" id="rgstrDdlnPnttm_tm" class="hours_select" style="width:70px;"
title="시 선택">
<option value="선택">선택</option>
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>시
</div>
</td>
<td>
<div class="btn_wrap_pop btn_layout01" style="margin-top:10px;margin-bottom:10px;">
<div class="btn_center" style="width: 100%;">
<button class="btn_type04" onclick="fncRndsSave(this); return false;">등록</button>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<table class="pop_tb_type02">
<colgroup>
<col style="width: 20%;">
<col style="width: 30%;">
<col style="width: 30%;">
<col style="width: 20%;">
</colgroup>
<tbody>
<tr>
<th scope="row">회차명</th>
<th scope="row">접수시작일시</th>
<th scope="row">접수마감일시</th>
<th scope="row">관리</th>
</tr>
</tbody>
<tbody>
<c:forEach var="list" items="${selectBasicList}" varStatus="status">
<tr id='<c:out value="${list.rndsOrd}"/>'>
<!-- 회차 -->
<td>
<div class="util_right">
<input type="text" id="psblTmQntty" name="psblTmQntty" class="search_input"
style="width:100px;"
placeholder="회차" value='<c:out value="${list.ord}"/>' onkeyDown="press(event);">회차
</td>
<td>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="aplctPrdStrt"
name="aplctPrdStrt" value='<c:out value="${list.dpStrtDt}"/>'>
</div>
<select name="lctrPsblStrtTm" id="lctrPsblStrtTm" class="hours_select" style="width:70px;"
title="시 선택" value='<c:out value="${list.dpStrtTm}"/>'>
<option value="선택">선택</option>
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>시
</div>
</td>
<td>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="aplctPrdEnd"
name="aplctPrdEnd" value='<c:out value="${list.dpDdlnDt}"/>'>
</div>
<select name="lctrPsblEndTm" id="lctrPsblEndTm" class="hours_select" style="width:70px;"
title="시 선택" value='<c:out value="${list.dpDdlnTm}"/>'>
<option value="선택">선택</option>
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>시
</div>
</td>
<td>
<div class="btn_wrap_pop btn_layout01" style="margin-top:10px;margin-bottom:10px;">
<div class="btn_center" style="width: 100%;">
<button type="button" class="btn_type04" onclick="fncRndsUpdate('${list.rndsOrd}'); return false;">수정</button>
<button type="button" class="btn_type02" onclick="fncRndsDelete('${list.rndsOrd}'); return false;">삭제</button>
</div>
</div>
</td>
</tr>
<script>
$("#${list.rndsOrd}"+" #lctrPsblStrtTm").val('${list.dpStrtTm}');
$("#${list.rndsOrd}"+" #lctrPsblEndTm").val('${list.dpDdlnTm}');
</script>
</c:forEach>
</tbody>
</table>
</form:form>
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center" style="width: 100%;">
<button type="button" class="btn_type04" onclick="fncAprooval(); return false;">확인</button>
<button type="button" class="btn_type02" onclick="window.close()">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -160,6 +160,7 @@
<form:form id="createForm" name="createForm" method="post" commandName="vELctrDetailVO" onsubmit="return false;"> <form:form id="createForm" name="createForm" method="post" commandName="vELctrDetailVO" onsubmit="return false;">
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value="${vELctrDetailVO.instrDiv}" />"> <input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value="${vELctrDetailVO.instrDiv}" />">
<input type="hidden" name="areaCd" id="areaCd" value="<c:out value="${vELctrDetailVO.areaCd}" />"> <input type="hidden" name="areaCd" id="areaCd" value="<c:out value="${vELctrDetailVO.areaCd}" />">
<input type="hidden" name="lctrAreaOrd" id="lctrAreaOrd" value="<c:out value="${vELctrDetailVO.lctrAreaOrd}" />">
<input type="hidden" name="stngYr" id="stngYr" value="<c:out value="${vELctrDetailVO.stngYr}" />"> <input type="hidden" name="stngYr" id="stngYr" value="<c:out value="${vELctrDetailVO.stngYr}" />">
<input type="hidden" name="prdDivCd" id="prdDivCd" value="<c:out value="${vELctrDetailVO.prdDivCd}" />"> <input type="hidden" name="prdDivCd" id="prdDivCd" value="<c:out value="${vELctrDetailVO.prdDivCd}" />">