(5.3.3.3) 전자결재/지출결의서/품의서/기안서 > 그누보드5 스킨

그누보드5 스킨

스킨 다운로드시 좋아요 클릭과 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y

(5.3.3.3) 전자결재/지출결의서/품의서/기안서 정보

게시판 (5.3.3.3) 전자결재/지출결의서/품의서/기안서

첨부파일

첨부파일 basic_doc.zip (94.7K) 65회 다운로드 2020-01-13 09:50:46 포인트 차감100
테스트한 버전5.3.3.3
호환 가능 버전5.3 이상

본문

== 2020-01-13 08:30:00 수정 내용 =================

충분히 테스트를 하지 못하고 공개후 여러가지 오류가 발견되네요.

미리 다운받으신분들에게 매우 죄송스럽네요.

 

동적테이블에서 입력항목 추가시 숫자에 콤마가 적용되지 않던 문제가 수정되었습니다.
   1. plugin/rumiTable/jquery.rumiTable.js 파일이 수정되었습니다.
   2. 서식파일인 "doc_01.php ~ doc_05.php" 파일이 수정되었습니다. (skin/board/basic_doc/doc)
      $("...").number(true, 0); 코드가 삭제되었습니다.
   3. skin/board/basic_doc/doc/js/jquery.number.js 파일이 삭제되었습니다.
   4. skin/board/basic_doc/doc/js/jquery.number.min 파일이 삭제되었습니다.
   5. plugin/rumiTable/jquery.number.js 파일이 추가되었습니다.
   6. 숫자 콤마를 적용할 필드 설정하는 방법
      doc 폴더에 석식파일(doc_01.php ~ doc_05.php) 36라인쯤에 아래와 같은 코드가 있습니다. 
      { selector:'doc_sub', type:'text', number:true }
      - selector : 입력항목 class명입니다.
      - type : 필드 항목의 요소 TYPE - text, select, textarea, checkbox, radio등
      - number : 숫자와 콤마를 적용 ( true 또는 false)
   7. 글이 삭제 되지 않던 문제 수정되었습니다.
      delete.head.skin.php 파일에 "exit;"코드가 삭제되지 않았더군요.
   8. 최고관리자는 모든 문서를 열람할 수 있도록 변경하였습니다.
   9. 직원으로 등록되지 않아도 문서 작성되던 문제를 수정했습니다.

   10. skin/board/basic_doc/member/mem_edit.php 파일 수정.

       "option_str" -> "xoption_str"으로 수정, 마지막 줄 "?>" 추가.

 

 

== 2020-01-11 13:00:00  수정 내용 =================

- 동적테이블에서 "삭제"가 되지 않던 문제 수정 : ajax.delete.php 파일 추가되었습니다.

- doc_01.php ~ doc_5.php 파일 수정되었습니다.

- delete.tail.skin.php 파일 수정되었습니다.

- plugin/rumiTable 폴더에 "jquery.number.js" 파일이 누락되어 추가되었습니다.

  동적테이블에서 숫자 입력시 자동으로 콤마 추가와 삭제를 합니다.

-------------------------------------------------------------

 

☞ 본 스킨은 그누보드 5.3.3.3버전의 BASIC 스킨으로 제작되었습니다.

2017년 4월에 등록한 스킨의 업그레이드 버전입니다. (https://sir.kr/g5_skin/13713)
등록한지 3년이 다가오지만 아직도 다운받으시는 분들이 계셔서 이번에 여러가지 기능을 추가하여 업그레이드 하였습니다.
그누보드도 5.4버전이 출시되었지만 아직은 5.3 마지막 버전을 사용하는 분들이 많아 5.3 마지막 버전에 맞추어 제작하였습니다.

PC 전용입니다.

 

 

☞ 데모사이트 및 데모계정

데모계정은 bk_test1 ~ bk_test40까지 40개이며 비밀번호는 "1234"로 모두 동일합니다.
데모사이트 : https://www.suu.kr/bbs/board.php?bo_table=approval

 

 

☞ 다운받은 파일을 압축을 풀면 아래와 같은 폴더 구조로 생성되며, 폴더 전체를 그누보드가 설치된 위치로 업로드 하면 됩니다.

2000880543_1578689860.8521.jpg
스킨외 2개의 플러그인이 추가됩니다.
1. rumiPopup : 팝업창(모달창)
2. rumiTable : 동적테이블
앞으로 제가 올리는 스킨들은 대부분 위의 플러그인이 기본적으로 사용됩니다.

 

 

☞ 설치방법

관리자 계정으로 "전자결재"로 사용할 게시판을 생성합니다.
생성된 게시판으로 접속후 화면의 내용을 확인후 안내에 따라 진행합니다.
모든 설치가 완료되면 아래의 테이블이 추가로 생성됩니다.
게시판아이디_sub    : 문서의 상세 내역 정보 테이블
게시판아이디_member : 직원 상세 정보 테이블
게시판아이디_log    : 문서 결재 진행 상태 로그 테이블

 

 

☞ 문서 작성 및 문서상신

문서 작성은 레벨에 상관없이 직원관리(직원상세정보테이블)에 등록이 되어 있어야 합니다.
등록이 되어 있지 않으면 목록은 볼 수 있으나 상세보기 및 문서 작성은 할 수 없습니다.
문서를 작성하면 작성자의 결재상태가 "승인"이 아닌 경우 결재자 또는 참조자여도 열람할 수 없습니다.
작성자가 문서 결재상태를 "승인"으로 변경해야 결재자 또는 참조자가 문서를 열람할 수 있습니다.
작성자의 "승인"이 "상신"이라 이해하면 됩니다.

 

 

☞ 문서 수정

작성자는 "작성자"의 결재 상태가 "미결재, 보류, 반려, 취소" 상태에서만 문서를 수정할 수 있습니다.
작성자가 문서의 결재 상태를 "승인"으로 변경시 수정은 불가합니다.
"승인"된 문서는 다음 결재상태가 "미결재"일 경우에만 "보류, 반려, 취소"할 수 있습니다.

 

 

☞ 문서 삭제

문서의 삭제 조건은 작성자의 결재상태가 "미결재" 상태일때만 삭제할 수 있습니다.
작성자가 문서를 삭제하기 위해서는 반드시 결재상태가 "미결재"여야 합니다.
"승인, 보류, 반려"이면 삭제할 수 없습니다.    
결재의 상태에 상관없이 무조건 삭제를 하려면 delete.head.skin.php 파일을 열어 작성된 모든 코드를 주석처리 또는 파일을 삭제하시면 됩니다.
문서상세내역 및 문서결재로그 삭제코드는 delete.tail.skin.php 파일에 작성되어 있습니다.

 

 

☞ 문서 결재 상태 로그

새로운 문서를 작성후 작성자가 "문서승인"을 하면 로그테이블(게시판아이디_log)에 기록됩니다.
"문서승인, 승인취소, 문서반려, 문서보류"를 실행할때마다 기록됩니다.
로그는 문서상세보기 페이지의 하단에 출력됩니다.
로그는 임의로 수정하거나 삭제할 수 없습니다.
문서 삭제시 로그도 함께 삭제됩니다.

 

 

☞ 문서종류 설정

관리자 게시판 설정 페이지 "분류"항목입니다.
ca_name : 문서종류이며, 문서와 문서 구분은 "|"으로 구분합니다.
지출결의서의 서식종류가 3종류가 있다면, "지출결의서1|지출결의서2|지출결의서3"처럼 숫자만 붙여서 작성해 주세요.
지출결의서 작성시 숫자를 제외한 나머지 문자가 문서의 타이틀이 됩니다.

 

 

☞ 문서 참조(협조) 

참조는 결재선이 아니면 작성한 문서와 관련이 있는 직원에게 열람권한을 주는 것입니다.
참조에 등록된 직원은 결재권한이 없어도 열람할 수 있습니다.
결재선도 아니고 참조에도 없으면 문서는 열람할 수 없습니다.
참조에 해당되어도 작성자의 결재상태가 "승인"이 아니면 열람할 수 없습니다.

 

 

☞ 문서종류에 대한 파일명 지정

관리자 게시판 설정 페이지 "여분필드1"의  "여분필드 1값"의 항목입니다.
bo_1 : 문서서식 파일명이며, 문서와 문서 구분은 "|"으로 구분합니다.
"분류"항목에서 설정한 문서종류의 순서와 맞춰서 작성합니다.
문서작성 페이지의 서시파일명이 "doc_01.php"이면 "doc_01"만 작성합니다.
예) doc_01|doc_02|doc_03|doc_04|doc_05

주의 : 문서상세보기 페이지의 서식파일명은 위에서 정한 파일명 뒤에 "_view"를 반드시 붙여야 합니다.
지출결의서1의 문서작성 페이지의 서식파일명이 "doc_01.php"이라면,
문서 상세보기 서식파일명은 "doc_01_view.php"처럼 되어야 합니다.

 

 

☞ 결재선과 문서 열람 권한

작성된 문서를 열람할 수 있는 권한은 아래와 같습니다.
1) 작성자
2) 결재자 : 결재1 ~ 결재3으로 지정된 직원
3) 참조 : 참조자로 지정된 직원
결재자는 이전 결재자의 "승인"이 없으면 열람은 가능하지만 문서의 결재상태를 "승인"으로 변경할 수 없습니다.

참고 : 문서를 작성 또는 열람하기 위해서는 "직원관리"페이지에서 직원으로 등록되어 있어야 합니다.
 

문서목록에서는 열람할 수 있는 문서는 문서제목의 색상은 "파란색"으로 표시되며,
참조항목은 "열람가능"으로 표기 됩니다.
참조항목이 "열람불가"로 표기되면 열람권한이 없습니다.

작성자의 결재상태가 "승인"이 아니면 열람할 수 없습니다.

 

 

☞ 직원의 담당구분 명칭 변경 방법

skin.function.php 파일을 열어 "$MB_SECTION" 배열을 수정합니다.
기존 명칭을 다른 명칭으로 변경시 "key"는 변경하지 않고 "값"만 변경합니다.
새로운 명칭 등록시 새로운 키와 값을 추가합니다.

 

 

☞ 결재 진행상태 단어 변경

문서목록의 결재 진행상태 단어 변경은 skin.function.php 파일을 "$APP_STATE" 배열을 수정합니다.
문서상세보기의 결재 진행상태 단어 변경은 skin.function.php 파일을 열어 함수명 "approval2"를 찾아 수정합니다.

 

 

☞ 결재 상태 변경

결재 승인후 승인상태를 "취소, 반려, 보류"로 변경은 다음 결재상태가 "미결재"상태에서만 변경 가능합니다.
결재 상태가 "승인"이면 다음 결재자가 승인을 할 수 있습니다.
최종 결재자는 승인후 "승인"상태의 최종시간으로부터 30분이 지나면 승인상태를 변경할 수 없습니다.
30분이 경과하지 않으면 "취소, 반려, 보류"로 결재상태를 변경할 수 있습니다.
수정가능 시간을 변경하려면 skin.function.php 파일을 열어 함수명 "get_btns"를 찾아 "$edit_time"의 값을 변경하세요.

 

 

☞ 다음 업데이트 예정?

시간 여유가 되면 그누보드 5.4버전으로 업데이트와 아래의 기능이 추가될 예정입니다.
1) 그누보드 5.4 대응
2) 게시판 리스트페이지 jqGrid 적용
3) 다중검색기능 적용
4) 미결재, 승인, 반려, 보류등 카테고리로 분류
5) 접속자에 따라 결재 가능한 문서와 참조가능한 문서만 리스트에 나오도록 변경.
6) 휴가계등 다양한 서식 추가
7) 전자결재 관련 함수 CLASS로 변경
8) 개인별 결재선 관리 ( 결재선을 미리 저장하여 문서작성시 빠르게 결재선 지정 )
9) 참조항목에 부서명 지정 가능
10) SMS 및 이메일 발송 (카카오톡)
11) 문서의 보관 기간
12) 그외 댓글로 요청하는 기능들...
 
 
 

 

 

2000880543_1578690894.1958.png

 

 

 

2000880543_1578690906.6012.png

 

 

 

2000880543_1578690914.6556.png

 

 

 

2000880543_1578690921.3239.png

 

 

 

2000880543_1578690927.9222.png

 

 

 

2000880543_1578691254.2838.png

추천28

댓글 전체

신규등록을 하기 위해서는  "직원"으로 등록이 되어 있어야 합니다.
직원 등록은 최고 관리자만 가능합니다.
데모사이트 테스트를 위해서는 본문내용에 있는 데모 테스트아이디를 이용해 주세요.
생성했더니 잘 적용되네요 ^^
고생 많으셨습니다!!!
혹시 결재자가 1~4번 결재자까지 동일인물이라면
어떻게 수정을 해야할까요??
한명에게 결재를 네번을 받는다구요?  그냥 한번만 승인하면 되지 않나요? ㅎ

skin.function.php 파일을 열어서 함수명 "get_memberlist()" 찾으세요.

아래의 코드로 변경하면 됩니다.
function get_memberlist() {

    global $write_table, $member;

    // 직원 리스트
    $sql = "select
                mb_id,
                mb_name,
                mb_position
            from
                {$write_table}_member
            where
                (1)
            order by
                mb_name asc";
    $result = sql_query($sql, true);
    
    $MB = array();    
    while($row=sql_fetch_array($result)) {
        $MB['txt'] .= "|".$row['mb_name']." ".$row['mb_position'];
        $MB['val'] .= "|".$row['mb_id'];
    }

    return $MB;
}


위처럼 하면 모든 결재란에 작성자의 이름도 모두 출력됩니다.
감사합니다. 허나 루미집사님
동일인물일 경우에 첫번째 승인은 문서승인이 뜨는데
두번째 승인할 때에는 승인취소, 문서반려, 문서보류 버튼만 노출되는 상태입니다..ㅜoㅜ
본 스킨은 결재란 4군데 모두 각자 다른 직원으로 지정을 하도록 설계되었습니다.
문서를 작성한 사람이 결재 네번을 해야 할 이유가 없는 거죠.
한사람이 승인을 네번을 해야만 하는 이유가 무엇인지는 모르겠네요.ㅎ

댓글로 질문주신 내용에 대해 해결하려면 "approval2" 함수를 수정하셔야 합니다.
결재 상태에 따라 버튼을 생성해주는 함수이니깐 적절하게 수정을 해가면서 시도해 보시면 될듯 합니다.
루미집사님!! 질문하나만 할게요...
혹시 결재자가 2명이나 3명인 경우에 최종승인처리를 하려면
어떻게 해야할까요?

skin.function.php 보니까
최종 결재자 최종승인 후 변경되는 부분을 만들어주셨는데...
결재라인 최고자 바로 밑에 사람이 지출결의를 하는 상황이라면
작성자와 결재자 두명만 존재하거든요...

이럴땐 어떻게 처리를 해야할까요??
마지막 결재자는 승인후 일정시간이 지나면 결재 상태 변경할 수 있는 버튼을 출력이 안되도록 설정되어 있습니다.

관련 함수는 "get_butns" 함수입니다.

즉, 결재자가 작성자를 포함한 총 3명이면 마지막 3번째 결재자도 마찬가지로 일정시간이 지나면 버튼을 출력하지 않도록 변경해주면 될 것 같습니다.

아래의 코드로 함수를 변경해서 사용해 보세요.

function get_btns($view){

    global $member;

    $edit_time = 1800; // 결재상태가 ㅅ결재승인상태를 변경할 수 있는 시간
    
    // 자신의 아이디로 몇번째 결재자인지 찾기. (상/하단 버튼 생성 - 승인/취소/반려/보류 )
    $app_list = array($view['wr_2'], $view['wr_4'], $view['wr_6'], $view['wr_8']);
    $app_key = array_search($member['mb_id'], $app_list);
    switch($app_key) {
        case "0" : // 작성자
            $app_rst = approval2($view['wr_2'], $view['wr_3'], "1|0", $view['wr_5'], '1');
            break;
        case "1" : // 결재 1
            $ti = explode("|", $view['wr_5']);

            if($ti[0]==1) {

                $write_time = strtotime($ti[1]); // 최종 승인 시간
                $current_time = time(); // 현재 시간
                $gap_time = $current_time - $write_time; // 시간차이

                $app_rst = approval2($view['wr_4'], $view['wr_5'], $view['wr_3'], $view['wr_7'], '2');
                
                if($gap_time <= $edit_time) {
                    $app_rst = approval2($view['wr_6'], $view['wr_7'], $view['wr_5'], $view['wr_9'], '3');
                }
            } else {
                $app_rst = approval2($view['wr_6'], $view['wr_7'], $view['wr_5'], $view['wr_9'], '3');
            }
            break;
        case "2" : // 결재 2
            $ti = explode("|", $view['wr_7']);
            
            if($ti[0]==1) {
                $write_time = strtotime($ti[1]); // 최종 승인 시간
                $current_time = time(); // 현재 시간
                $gap_time = $current_time - $write_time; // 시간차이
                
                if($gap_time <= $edit_time) {
                    $app_rst = approval2($view['wr_6'], $view['wr_7'], $view['wr_5'], $view['wr_9'], '3');
                }
            } else {
                $app_rst = approval2($view['wr_6'], $view['wr_7'], $view['wr_5'], $view['wr_9'], '3');
            }
            break;


        case "3" : // 결재 3
           
            $ti = explode("|", $view['wr_9']);
            
            // 마지막 결재단계에서는 승인후 지정된 시간을 초과하면 결재상태를 변경 못하게 합니다.
            // 지정된 시간이 초과하면 결재상태 변경하는 버튼을 출력하지 않습니다.
            if($ti[0]==1) {

                $write_time = strtotime($ti[1]); // 최종 승인 시간
                $current_time = time(); // 현재 시간
                $gap_time = $current_time - $write_time; // 시간차이
                
                if($gap_time <= $edit_time) {
                    $app_rst = approval2($view['wr_8'], $view['wr_9'], $view['wr_7'], '', '4');
                }

            } else {
                
                // "승인"상태가 아니면 항상 결재 상태 변경 버튼을 출력한다.
                $app_rst = approval2($view['wr_8'], $view['wr_9'], $view['wr_7'], '', '4');

            }
            break;
    }

    return $app_rst;
}
문서 작성은 레벨에 상관없이 직원관리(직원상세정보테이블)에 등록이 되어 있어야 합니다.
아무리봐도 (직원상세정보테이블)이 보일지않아요 초보자에게 설명쫌주세요
테이블, 테이블_member, 테이블_log, 테이블_log 전부 생성되어야합니다.
직원상세 테이블은 _member 입니다. 문서 리스트에 직원관리 들어가시면 추가 생성 가능합니당
write_update.skin.php 파일에서 "{$write_table}_sub"테이블에 insert 합니다.
POST 값이 정상적으로 넘오오는지 확인하세요.
값이 정상적으로 넘어오면 insert 문을 체크 해보셔야 할듯 합니다.
제가 코드나 디비에 아무것도 없는데 디비에 저장이 안되어서...
결의서1에 기입하고 2에 수정하여야 하는군요,,ㅋ
결의서1을 없애고
2부터 적요 수량 단가 소계 비고 이렇게 나오게 하려면 어떻게 해야 하는지요?

1은 안쓸려구요
지출결의서1에 기입하고 2에 수정하여야 한다는게 어떤뜻인지를 모르겠네요.
지출결의서 1과 2와 3차이는 세부항목의 차이입니다.

2에서 작성했으면 2에서 수정이 되어야 하며, 그렇지 않다면 다른 오류가 있을 수 있습니다.

우선 데모페이지에서 테스트를 동일하게 테스트를 해보세요.

그리고, 지출결의서1의 서식을 사용하지 않고 2서식을 사용을 하고자 하면 아래처럼 하시면 됩니다.

==== 본문 설명 ====
☞ 문서종류에 대한 파일명 지정

관리자 게시판 설정 페이지 "여분필드1"의  "여분필드 1값"의 항목입니다.
bo_1 : 문서서식 파일명이며, 문서와 문서 구분은 "|"으로 구분합니다.
"분류"항목에서 설정한 문서종류의 순서와 맞춰서 작성합니다.
문서작성 페이지의 서시파일명이 "doc_01.php"이면 "doc_01"만 작성합니다.
예) doc_01|doc_02|doc_03|doc_04|doc_05
주의 : 문서상세보기 페이지의 서식파일명은 위에서 정한 파일명 뒤에 "_view"를 반드시 붙여야 합니다.
지출결의서1의 문서작성 페이지의 서식파일명이 "doc_01.php"이라면,
문서 상세보기 서식파일명은 "doc_01_view.php"처럼 되어야 합니다.
=========================

위 설명으로 수정하자면.
게시판 설정에서 여분필드 bo_1을 아래처럼 수정해 주시면 됩니다.

doc_02|doc_02|doc_03|doc_04|doc_05
감사합니다~ 설명보니 원하는대로 사용할 수 있껬습니다.
거듭 훌륭한 프로그램 무료로 주셔서 감사합니다.
원래대로 설정등은 두고 doc_02를 01로 바꾸어서 덮어씌우니 원하는대로 됩니다.
집사님... 스킨 재업로드하고 확인해보니
해당 문서 불러오지를 못하네요...
카테고리분류  지출결의1|지출결의2|지출결의3 이런형태로 작성했습니다.
서식파일이 존재하지 않는다고 하는데 어떻게 해야 할까요?
전체 1,684 |RSS
그누보드5 스킨 내용 검색

회원로그인

진행중 포인트경매

  1. SIR 코스터 (컵받침)

    참여21 회 시작20.01.17 14:03 종료20.01.22 14:03
  2. SIR 기념구 (a.k.a 냑성구)

    참여37 회 시작20.01.17 13:57 종료20.01.22 13:57

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT