세티스 구조추가
This commit is contained in:
+59
-6
@@ -1,13 +1,13 @@
|
||||
# (주)삼안 ERP 및 그룹웨어 시스템 (Satis) 초상세 로우레벨 분석 명세서
|
||||
# (주)삼안 ERP 시스템 (Satis) 초상세 로우레벨 분석 명세서
|
||||
|
||||
본 문서는 (주)삼안의 **ERP 및 그룹웨어 시스템 (`saman-statis` / `Satis`)**의 실제 소스 코드를 직접 분석한
|
||||
본 문서는 (주)삼안의 **ERP 시스템 (`Satis`)**의 실제 소스 코드를 직접 분석한
|
||||
**초상세 로우레벨(Ultra-Detailed Low-Level) 구현 명세서**입니다.
|
||||
`OracleClass.php` 전체 메소드 명세, 전자결재 알고리즘, 문서번호 채번 방식, 인코딩 파이프라인, 결재 서명 렌더링,
|
||||
시스템 글로벌 변수, DB 데이터 모델, 보안 핸들링 등을 실제 소스 코드 기반으로 완전히 명세합니다.
|
||||
`OracleClass.php` 전체 메소드 명세, **비즈니스 로직(Model / `Satis/sys/model/*`) 20개 모듈 구조**, 전자결재 알고리즘,
|
||||
문서번호 채번 방식, 인코딩 파이프라인, 결재 서명 렌더링, 시스템 글로벌 변수, DB 데이터 모델, 보안 핸들링 등을 명세합니다.
|
||||
|
||||
---
|
||||
|
||||
## 1. 모듈별 컨트롤러 & 뷰 맵핑 딕셔너리 (Module Controller-View Map)
|
||||
## 1. 모듈별 컨트롤러, 모델 & 뷰 맵핑 딕셔너리 (Controller - Model - View Map)
|
||||
|
||||
### 1.1 회계 관리 모듈 (`Account`) — 30개 컨트롤러
|
||||
| 컨트롤러 (`Satis/sys/controller/Account/`) | 대응 View (`Smarty/templates/Satis/Account/`) | 주요 기능 |
|
||||
@@ -82,6 +82,59 @@
|
||||
| `TargetManagement_Controller.php` | `TargetManagement.tpl` | 수주 목표 관리 |
|
||||
| `PrinterCopy_Controller.php` | `PrinterCopy.tpl` | 인쇄 출력 처리 |
|
||||
|
||||
### 1.4 비즈니스 로직 (Model 계층: `Satis/sys/model/*`) 20개 모듈 명세
|
||||
|
||||
Model 계층은 MVC 아키텍처 중 비즈니스 데이터 처리 및 DB 저장 프로시저(SP) 파라미터 구성, 결과 데이터 가공을 담당합니다. 모든 Logic 클래스는 생성자에서 `$this->oracle = new OracleClass($smarty)`를 초기화하여 데이터베이스에 접근합니다.
|
||||
|
||||
#### A. 모듈별 대표 Logic 클래스 목록
|
||||
|
||||
| 모듈 디렉토리 (`Satis/sys/model/`) | 포함 Logic 파일 수 | 주요 Logic 클래스명 (`*_logic.php`) | 핵심 역할 및 기능 |
|
||||
| :--- | :---: | :--- | :--- |
|
||||
| **Account** | 41개 | `AccountSlipTemp_logic.php`, `AccountSlipConfirmed_logic.php`, `AccountGisungCalculation_logic.php`, `FinalClosing_logic.php` | 임시/확정 전표 처리, 기성 청구금액 계산, 원가 배부, 결산 처리 |
|
||||
| **Person** | 36개 | `PersonInfoManager_logic.php`, `PersonPaymentCalculation_logic.php`, `PersonYearEndTax_logic.php`, `PersonAppointment_logic.php` | 인사기록, 급여/상여 산출 엔진, 연말정산(`yeta_data`), 인사 발령 |
|
||||
| **Project** | 16개 | `Project_logic.php`, `ProjectOrderContract_logic.php`, `ProjectMenHour_logic.php`, `ProjectOrderGisung_logic.php` | 프로젝트 마스터, 수주/변경 계약, M/M 공수 투입 집계, 기성 수금 |
|
||||
| **Document** | 1개 | `Document_logic.php` | 전자결재 서식 생성, 문서 양식 데이터 파싱 |
|
||||
| **Sign** | 6개 | `SignLogic.php`, `SignDocumentLogic.php` | 전자서명 문서 생성, 결재선 저장, 결재 상태 검증 및 서명 렌더링 |
|
||||
| **Sale** | 9개 | `SaleBid_logic.php`, `SaleContractManager_logic.php`, `SalePerformanceManager_logic.php` | 영업 입찰, 수주 계약, 수금 및 수주 실적 관리 |
|
||||
| **Purchase** | 4개 | `PurchaseClaim_logic.php`, `PurchaseOrder_logic.php`, `PurchaseExactCalculation_logic.php` | 구매 신청, 발주 처리, 대금 정산 |
|
||||
| **Travel** | 1개 | `Travel_logic.php` | 국내/해외 출장 신청 및 여비 정산 처리 |
|
||||
| **Asset** | 3개 | `AssetInfo_logic.php`, `AssetPurchase_logic.php`, `AssetBasicCode_logic.php` | 고정자산 등록, 자산 구매, 자산 코드 관리 |
|
||||
| **Book** | 1개 | `Book_logic.php` | 도서 목록 등록 및 대여/반납 처리 |
|
||||
| **Association**| 1개 | `Association_logic.php` | 엔지니어링 협회 회원 관리 및 수수료 정산 |
|
||||
| **Management** | 4개 | `CommonCode_logic.php`, `MenuAuth_logic.php`, `Notify_logic.php` | 시스템 공통 코드, 사용자 메뉴 권한, 알림 팝업 |
|
||||
| **Supervisor** | 2개 | `Supervisor_logic.php` | 시스템 전체 공정코드, 부서코드, 권한 마스터 관리 |
|
||||
| **Common** | 17개 | `sms_logic.php`, `PdfLogic.php`, `popup_logic.php`, `work_logic.php` | SMS 발송 연동, PDF 출력 변환, 공통 팝업 데이터 공급 |
|
||||
| **Jqgrid** | 1개 | `Jqgrid_logic.php` | jqGrid 요청에 대응하는 JSON 데이터 바인딩 로직 |
|
||||
| **Fileupload** | 8개 | `Fileupload_logic.php`, `AddCode01_upload_insa_image.php` | 첨부파일 업로드/다운로드, 인사 사진 업로드 및 삭제 |
|
||||
| **Help** | 1개 | `Help_logic.php` | 시스템 사용 도움말 및 Q&A 로직 |
|
||||
| **Report** | 1개 | `Report_logic.php` | 경영진 보고서 및 엑셀 보고서 데이터 가공 |
|
||||
| **Sample** | 1개 | `Sample01_logic.php` | 표준 개발용 샘플 로직 |
|
||||
| **TestLogic** | 1개 | `TestLogic.php` | 개발자 테스트 전용 로직 |
|
||||
|
||||
#### B. Model (Logic) 클래스의 공통 설계 구조 패턴
|
||||
|
||||
1. **초기화 및 의존성 주입**:
|
||||
```php
|
||||
class AccountSlipTempLogic {
|
||||
var $oracle;
|
||||
var $smarty;
|
||||
|
||||
function AccountSlipTempLogic($smarty) {
|
||||
$this->smarty = $smarty;
|
||||
$this->oracle = new OracleClass($smarty); // DB 객체 인스턴스화
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
2. **Controller 파라미터 바인딩 및 프로시저 호출**:
|
||||
* Controller의 `$ActionMode` 요청에 따라 Logic 클래스 내 동명의 메소드가 실행됩니다.
|
||||
* 입력 파라미터를 sanitize 및 인코딩 변환(`HangleEncodeUTF8_EUCKR`) 후 Oracle 저장 프로시저 호출 구문(`BEGIN usp_...; END;`)을 완성합니다.
|
||||
* `LoadProcedure_new()` 또는 `executeSelect()`를 호출하여 결과를 Smarty 뷰로 전달합니다.
|
||||
|
||||
3. **파일 업로드 및 이미지 관리 로직 (`Fileupload_logic.php` & `AddCode01_...`)**:
|
||||
* 인사기록카드 사원 사진 업로드 시 `AddCode01_upload_insa_image.php`를 통해 이미지를 서브 디렉터리(`erpphoto/`)로 이송하고 파일명을 사번(`MemberNo.jpg`)으로 표준화합니다.
|
||||
* 파일 업로드 시 확장자 및 용량 제한 검증을 수행하고, Oracle DB에 첨부파일 메타데이터를 저장합니다.
|
||||
|
||||
---
|
||||
|
||||
## 2. 핵심 클래스 전체 메소드 명세 (OracleClass.php — 1,392라인)
|
||||
@@ -93,7 +146,7 @@
|
||||
|
||||
| 메소드명 | 설명 |
|
||||
| :--- | :--- |
|
||||
| `OracleClass($smarty)` | 생성자. OCI 커넥션 생성. `oci_connect('satis', 'SATIS11707808', 'samandb')` |
|
||||
| `OracleClass($smarty)` | 생성자. OCI 커넥션 생성. `oci_connect('satis', '************', 'samandb')` |
|
||||
| `db_close_oracle()` | 커넥션 명시적 해제. `oci_close()` |
|
||||
| `Query($i_azsql)` | SQL 파싱 및 실행 후 Statement 핸들 반환. |
|
||||
| `fetch_array($stmt)` | `oci_fetch_array($stmt, OCI_BOTH)` — 연관+인덱스 배열 동시 반환 |
|
||||
|
||||
Reference in New Issue
Block a user