
<aside> 💡 전체 코드는 https://github.com/pastelto/HelloWorks.git 에서 확인할 수 있습니다.
📌 전자결재
[일반결재 작성하기]
일반결재 작성시 라디오버튼을 클릭하면 그 값에 따라 사용자의 입력란이 변경됩니다. 각각의 라디오버튼 값에 연결되는 form 태그 내부 항목들은 라디오버튼이 selected = false 일 때 disabled 됩니다.
결재 작성하기 기능은 반드시 1명 이상의 결재라인을 추가해야 합니다. 결재라인 추가 버튼 클릭시 window.open() 메소드를 통해 팝업창이 호출되며, 이때 라디오 버튼으로 선택한 세부항목의 결재라인 테이블에만 값을 입력해야 하므로 구분을 위한 flag를 파라미터로 window.open() 메소드와 함께 넘겨줍니다. JSP 파일에서 JSP 파일로 파라미터를 넘겨주면 파라미터가 암호화되므로, 복호화를 진행합니다.
(* 지출결재 동일 - 협조/수신참조 포함)
공통항목을 제외한 나머지 세부 내용들은 @Controller에서 세분화된 vo객체에 담아 각각의 메소드에서 처리합니다.
[지출결재 작성하기]
지출결재 작성시 지출형식에 따라 지출내역 입력값이 변경됩니다.
지출내역 추가 버튼을 클릭하면 현재 활성화된 지출내역의 마지막 <tr> 태그 다음에 새로운 지출내역 <tr> 태그가 삽입됩니다. 이때 지출형식을 확인하여 불필요한 input 태그는 disabled 처리 됩니다.
지출내역 삭제 버튼 클릭시 checked인 항목에 대해서만 삭제처리가 됩니다.
부서명 input 태그가 활성화 됐을 때 클릭시 window.open() 메소드를 통해 팝업창이 호출되며, 각각의 지출내역에 다른 값을 입력하기 위해 결재라인 추가 방법과 마찬가지로 flag를 파라미터로 넘겨 복호화처리 해줍니다. 팝업창에서 부서명 클릭시 각 부서의 이름과 부서코드가 리턴됩니다.
하나의 지출결의서에 한 개 이상의 지출내역이 추가되므로 form 태그로 넘겨준 파라미터 값을Controller 에서 ArrayList로 받아 for문을 사용하여 각각의 지출내역은 insert 해줍니다.
[임시저장함 / 내결재함 - 검색]
임시저장함은 일반결재 탭과 지출결재 탭으로 나눠 문서를 확인할 수 있습니다. (* 모든 결재함 동일)
임시저장함에서는 ajax를 사용하여 임시저장된 날짜, 키워드, 세부항목 등을 통해 내역을 검색할 수 있습니다.
전체보기 버튼을 클릭하여 해당 직원이 작성한 모든 임시저장 문서를 검색할 수 있습니다.
기간별 날짜 버튼을 클릭하여 직원의 사번과 문서종류(일반/지출) 문서상태(Y/N)에 따라 검색할 수 있습니다.
날짜와 키워드, 날짜와 세부항목, 키워드와 세부항목 등의 조합을 이용하여 내역을 검색할 수 있습니다.