Files
saman/문서/메뉴분석/[1] 가전표등록 메뉴 분석 명세서.md
2026-07-29 09:19:29 +09:00

11 KiB

[1] 가전표등록 메뉴 분석 명세서

본 문서는 (주)삼안 ERP 시스템(SATIS)의 가전표등록 메뉴에 관련된 소스코드(컨트롤러, 모델 로직, 데이터베이스 쿼리)를 역공학하여 화면 구현 로직과 시스템 매핑 정보를 명세화한 것입니다.


🏛️ 1. 메뉴 개요 및 시스템 매핑 정보

  • 메뉴명: 가전표등록 (메뉴 ID: [1])
  • 도메인: 회계관리 (AM - Account)
  • 목적: 회계전표 확정 전 단계에서 임시 전표(가전표)를 발행하고, 결의부서/계정코드/차대변 금액 및 관련 증빙 정보를 등록/수정/삭제 관리한다.
  • 연동 파일:

🖥️ 2. 화면 구조 및 UI 명세 (Storyboard)

2.1. 화면 레이아웃 구조 (Wireframe)

메인 화면은 **상/하단 분할 그리드 구조 (Master-Detail)**로 구성되어 있으며, 전표의 기본 정보(마스터)와 세부 차변/대변 분개 내역(디테일)을 하나의 화면에서 관리합니다.

+------------------------------------------------------------------------------------------------------------------------+
| [로고] 가전표등록                                                             [조회] [행추가] [행삭제] [복사/이동] [엑셀] [닫기] |
+------------------------------------------------------------------------------------------------------------------------+
|  ■ 전표 마스터 정보 (상단 Form & Grid)                                                                                    |
|    - 결의일자: [ 2026-07-23 ]    - 결의부서: [ 수주영업부 ▽ ]   - 전표번호: [ 20260723-004 ] (신규: [채번])              |
|    - 결의자:   [ 홍길동 ]        - 결의금액: [ 1,500,000 원 ]    - 전표구분: [ 일반대체 ▽ ]                              |
+------------------------------------------------------------------------------------------------------------------------+
|  ■ 분개 상세 내역 (하단 Grid - 차변/대변 세부 항목)                                                                       |
|  +----+------+----------+------------+------------+----------------------+--------------------+--------------------+ |
|  |순번|차/대 | 계정코드 | 차변금액   | 대변금액   | 거래처명             | 현장/사업코드      | 적요               | |
|  +----+------+----------+------------+------------+----------------------+--------------------+--------------------+ |
|  | 1  | 차변 | 110101   | 1,500,000  | 0          | (주)삼안             | 260341 (OO공사)    | 여비교통비 청구    | |
|  | 2  | 대변 | 110102   | 0          | 1,500,000  | 신한은행             | 260341 (OO공사)    | 보통예금 지급      | |
|  +----+------+----------+------------+------------+----------------------+--------------------+--------------------+ |
|  | [대차합계]           | 1,500,000  | 1,500,000  | (차액: 0)            |                    |                    | |
|  +----+------+----------+------------+------------+----------------------+--------------------+--------------------+ |
+------------------------------------------------------------------------------------------------------------------------+

2.2. 세부 팝업 및 연동 화면 명세

본 화면은 대차 정산 및 전표 검색을 위해 2개의 주요 레이어 팝업과 유기적으로 연동됩니다.

  1. 전표 검색 팝업 (SlipTempScreen_02_Pop_Search_mvc.tpl):
    • 조회 기간, 전표 종류, 결의 부서 등의 필터 조건으로 기존 가전표 목록을 일괄 검색하여 메인 화면으로 로드합니다.
  2. 반제/대차(D/C) 세부 정산 팝업 (SlipTempScreen_02_Pop_DC_mvc.tpl):
    • 외상매출금 회수, 미지급금 반제 등 반제 전표 작성 시 대변/차변의 상세 원장 데이터를 매핑하고 금액을 자동 정산하여 분개 라인을 자동 생성합니다.

2.3. 공통 제어 컴포넌트 명세 (UI Specification)

  • 결의부서 / 전표구분 / 세무코드 / 소득구분: Select Box 컴포넌트로 구성되며 로그인 유저 권한(satis_user_auth_div) 및 부서 정보에 따라 권한별 조회가 제한됩니다.
  • 행추가 / 행삭제 버튼: 하단 분개 그리드(grid) 내에서 분개 내역 라인을 동적으로 추가/삭제하며, 변경 시 실시간 대차 평균 검증(차변 합계 = 대변 합계)이 백엔드 저장 전에 클라이언트 단에서 수행됩니다.
  • 복사/이동 버튼 (SlipMove): 선택한 전표 정보를 타 부서 혹은 타 일자로 전표 이관 및 일괄 복사를 지원합니다.

⚙️ 3. 핵심 비즈니스 로직 및 알고리즘

3.1. 전표번호 자동 채번 로직 (Work_No)

신규 가전표를 발행할 때, 결의일자 및 결의부서에 해당하는 당일의 고유 일련번호를 자동 채번합니다.

  • 동작 방식:
    • 회계 기준일자(baseday), 결의부서(input_item_03) 등의 파라미터를 넘겨 Usp_Am_Slip_Temp_02_WN 프로시저를 실행합니다.
    • 해당 부서의 당일 마지막 가전표 번호를 조회하여 연월일-순번(4자리) 형태의 유일한 전표 번호를 생성해 반환합니다.

3.2. 반제 전표 유형별 대차(D/C) 자동 분개 매핑

미지급금이나 선급금 등 기존 거래와 매핑하여 반제 전표를 작성할 때, 반제 대상 정보(par_item181 값)에 따라 각기 다른 연동 프로시저를 동적으로 실행하여 대차 정산 내역을 산출합니다.

  • 반제 구분별 데이터 바인딩 룰:
    • 000 (전표 정보 직접 연결): USP_AM_SLIP_TEMP_02_DC_000 프로시저를 통해 선택된 이전 전표 정보와 정확히 차대변을 일치시킵니다.
    • 001 (거래처 기준 잔액 정산): USP_AM_SLIP_TEMP_02_DC_001 프로시저를 통해 특정 계정 및 거래처의 미수/미지급 잔액을 확인하여 반제 라인을 생성합니다.
    • 002 / 004 (부서/현장별 정산): 부서별 또는 프로젝트(현장)별 지출 결의 잔액을 조회하여 정산합니다.
    • 005 (상세 전표 항목 매핑): 개별 전표 순번 항목 단위의 정산 내역을 로드합니다.

3.3. 계정코드별 동적 관리항목 제어 로직

그리드 분개 내역에서 특정 계정코드를 선택하면, 해당 계정의 성격에 맞춰 입력/필수 검증이 요구되는 관리항목이 화면에서 동적으로 활성화(Editable)되거나 표시 제한됩니다.

  • 동작 프로세스:
    1. 하단 그리드에서 계정코드 입력 ➡️ 포커스 아웃 시 Ajax 요청(ActionMode=SCREEN_02&MainAction=AcntInfo) 발생.
    2. 모델에서 프로시저 usp_main_init_06을 실행하여 선택된 계정코드에 정의된 **제어 속성 플래그 세트(ACNT_TARGET)**를 로드 및 리턴.
    3. 클라이언트 스크립트(SlipTemp.js)에서 리턴된 플래그 속성에 따라 그리드 내부 셀의 활성화 여부를 즉각 제어.
  • 핵심 관리항목 속성 제어 규칙:
    • 거래처 및 은행 연동: CUST_YN(거래처), BANK_YN(은행), DEPOSIT_YN(예장/예금 계좌) 값이 'Y'인 경우 거래처 팝업 및 은행 입력창 활성화.
    • 어음 및 카드 관리: BILL_YN(어음), CD_CARD_YN(신용카드 번호) 활성화 여부 제어.
    • 자산 정보 연동: FA_NO_YN 값이 'Y'인 경우 고정자산 정보(자산코드 등) 매핑 필드 활성화.
    • 가변 데이터 라벨 매핑: QTY1_NAME(수량 라벨), AMT1_NAME(금액 라벨), DATE1_NAME(날짜 라벨), DESC1_NAME(가변 적요 라벨) 등의 동적 헤더 타이틀 표시 기능 적용.

🔄 4. 데이터 흐름도 (Data Flow Diagram)

가전표 신규 등록 및 상세 분개 내역 저장 시의 트랜잭션 시퀀스입니다.

sequenceDiagram
    autonumber
    actor User as 회계담당자
    participant View as 가전표등록 UI (TPL)
    participant Ctrl as AccountSlipTemp_Controller
    participant Model as AccountSlipTemp_logic
    participant DB as Oracle DB (AM_SLIP_TEMP)

    User->>View: 결의일자/부서 선택 후 '신규' 클릭
    View->>Ctrl: GET (ActionMode=SCREEN_02, MainAction=Ajax_00, SubAction=Work_No)
    Ctrl->>Model: Work_No 채번 로직 호출
    Model->>DB: Usp_Am_Slip_Temp_02_WN 프로시저 호출
    DB-->>Model: 신규 가전표 번호 반환
    Model-->>Ctrl: 전표번호 리턴
    Ctrl-->>View: 화면 UI에 전표번호 바인딩
    
    User->>View: 분개 라인 추가 및 차대변 금액 입력 후 '저장'
    View->>Ctrl: POST (ActionMode=SCREEN_02, 저장 데이터)
    Ctrl->>Model: 마스터 저장 및 상세 분개 저장 실행
    Model->>DB: Usp_Am_Slip_Temp_02_In (마스터 등록)
    Model->>DB: Usp_Am_Slip_Temp_02_Detail_In (차대변 상세 분개 등록)
    DB-->>Model: 트랜잭션 COMMIT
    Model-->>Ctrl: 성공 플래그 리턴
    Ctrl-->>View: 화면 그리드 갱신 및 완료 메시지 출력

💾 5. 화면(TPL) 및 DB 프로시저 상세 매핑

가전표등록 화면의 메인 뷰 및 연동 팝업 템플릿과 데이터베이스 프로시저 간의 상세 연동 구조입니다.

화면 구분 연동 스마트 템플릿 (TPL 파일) 호출하는 주요 오라클 프로시저 프로시저 수행 비즈니스 역할
메인 화면 SlipTempScreen_02_Main_mvc.tpl USP_AM_SLIP_TEMP_02_MASTER
USP_AM_SLIP_TEMP_02_MASTER_UP
Usp_Am_Slip_Temp_02_Master_Del
가전표 마스터 레코드의 조회, 등록, 수정, 삭제 트랜잭션 처리
분개 상세 그리드 (Main 템플릿 내부 jqGrid 바인딩) usp_am_slip_temp_02
Usp_Am_Slip_Temp_02_Detail_In
Usp_Am_Slip_Temp_02_Detail_Up
Usp_Am_Slip_Temp_02_Detail_Del
차변/대변 계정코드별 금액, 거래처, 적요 등 상세 분개 내역 조회/저장/수정/삭제
전표 번호 채번 (Main 화면 비동기 컨트롤) Usp_Am_Slip_Temp_02_WN
Usp_Am_Slip_Temp_02_WDNM
Usp_Am_Slip_Temp_02_GetNo
결의부서 및 일자 기준 신규 전표번호 생성 및 부서별 최종 전표번호 추적
전표 검색 팝업 SlipTempScreen_02_Pop_Search_mvc.tpl USP_AM_SLIP_TEMP_02_POP_SEARCH 조회 기간, 결의부서, 전표종류 등 다중 검색 조건 기준 기존 가전표 목록 일괄 검색
대차(D/C) 팝업 SlipTempScreen_02_Pop_DC_mvc.tpl USP_AM_SLIP_TEMP_02_DC
USP_AM_SLIP_TEMP_02_DC_000 ~ 005
반제 대상 전표 정보, 거래처 미수금 잔액, 부서 지출 잔액 등 대차 상세 분석 및 자동 분개 매핑
기타 제어 로직 (Main 화면 비동기 컨트롤) Usp_Am_Slip_Temp_02_Move
USP_AM_SLIP_TEMP_02_SLIPDATE
선택한 가전표의 타 부서/일자 복사 이동 및 결의일자 정합성 검증