Files
sam-kd/estimate/README.md

684 lines
24 KiB
Markdown
Raw Normal View History

# 방화셔터 견적 시스템 (Estimate System)
## 📋 개요
이 폴더는 방화셔터 스크린과 철재의 견적을 산출하고 문서를 작성하기 위한 종합적인 시스템입니다. 견적서 작성, 수정, 조회, 출력, 단가 관리, 통계 분석 등의 모든 기능을 제공합니다.
## 🗂️ 폴더 구조
```
estimate/
├── common/ # 공통 JavaScript 및 PHP 파일
│ ├── common_addrowJS.php # 견적 항목 추가 JavaScript
│ ├── lastJS.php # 최종 JavaScript 처리
│ ├── common_slat.php # 철재 공통 기능
│ ├── common_screen.php # 스크린 공통 기능
│ ├── output_lastJS.php # 출력용 최종 JavaScript
│ ├── output_head.php # 출력용 헤더
│ ├── estimate_head.php # 견적 헤더
│ ├── compare_lastJS.php # 견적 비교용 JavaScript
│ ├── compare_price_edit_table.php # 가격 비교 편집 테이블
│ └── estimate_compare_head.php # 견적 비교 헤더
├── css/ # 스타일시트 파일
│ └── style.css # 견적 시스템 전용 스타일
├── *.php # 메인 기능 파일들
└── README.md # 시스템 문서
```
## 📁 상세 파일 설명
### 🎯 **메인 기능 파일**
#### **estimate.php** (53KB, 1363 lines)
- **기능**: 스크린 견적서 메인 페이지
- **역할**: 스크린 제품의 견적서 작성 및 수정
- **주요 특징**:
- 견적서 데이터 입력 폼 제공
- 저장 및 닫기 기능
- 수정 모드 지원
- 실시간 데이터 검증
- 자동 계산 기능
- **사용 방법**: 스크린 견적서 작성 시 메인 진입점
- **연관 파일**: `_request.php`, `_row.php`, `common/common_addrowJS.php`
#### **estimateSlat.php** (51KB, 1307 lines)
- **기능**: 철재스라트 견적서 메인 페이지
- **역할**: 철재 제품의 견적서 작성 및 수정
- **주요 특징**:
- 철재스라트 전용 견적서 폼
- 스크린과 유사한 구조이지만 철재 특화 기능
- 철재 사양별 단가 계산
- 절곡, 용접 등 철재 특수 공정 반영
- **사용 방법**: 철재 견적서 작성 시 메인 진입점
- **연관 파일**: `get_slat_amount.php`, `fetch_unitprice.php`
#### **write_form.php** (101KB, 2426 lines)
- **기능**: 견적 산출 통합 폼
- **역할**: 새로운 견적 작성 및 기존 견적 수정
- **주요 특징**:
- 스크린/철재 선택 가능
- 데이터 복사 기능 (mode=copy)
- 발주서 연동 기능
- 실시간 단가 계산
- 자동 저장 기능
- 다중 견적 항목 관리
- **사용 방법**: 새로운 견적 작성 또는 기존 견적 수정
- **연관 파일**: `insert.php`, `get_screen_amount.php`, `get_slat_amount.php`
#### **list.php** (14KB, 400 lines)
- **기능**: 견적 목록 조회 및 관리
- **역할**: 등록된 견적들의 리스트 표시 및 검색
- **주요 특징**:
- 날짜 범위 필터링 (기본: 과거 10개월 ~ 미래 1개월)
- 모델명, 대분류, 중분류 필터링
- 전체 컬럼 검색 기능
- 페이징 처리
- 정렬 기능 (기본: num DESC)
- **사용 방법**: 견적 목록 조회 및 검색
- **연관 파일**: `edit.php`
### 💰 **견적 계산 관련 파일**
#### **get_screen_amount.php** (27KB, 583 lines)
- **기능**: 스크린 견적 금액 계산 엔진
- **역할**: 스크린 제품의 단가 및 총액 계산
- **주요 특징**:
- 실리카/와이어 스크린 구분 계산
- 검사비 자동 계산
- 주자재, 부자재, 모터, 케이스 등 세부 항목별 계산
- 체크박스 옵션에 따른 추가 비용 반영
- JSON 형태로 상세 내역 반환
- **핵심 함수**:
- `calculateScreenAmount()`: 메인 계산 함수
- `calculateGuideRailPrice()`: 가이드레일 가격 계산
- `calculateShaftPrice()`: 샤프트 가격 계산
- **연관 파일**: `fetch_unitprice.php`, `price_raw_materials` 테이블
#### **get_slat_amount.php** (26KB, 541 lines)
- **기능**: 철재스라트 견적 금액 계산 엔진
- **역할**: 철재 제품의 단가 및 총액 계산
- **주요 특징**:
- 환봉, 각파이프 등 철재 종류별 계산
- 절곡, 용접 공정비 반영
- 모터 브라켓 사이즈 자동 계산
- 중량 및 인치 기준 모터 용량 판별
- **핵심 함수**:
- `calculateSlatAmount()`: 메인 계산 함수
- `searchBracketSize()`: 브라켓 사이즈 검색
- **연관 파일**: `fetch_unitprice.php`, `price_raw_materials` 테이블
#### **get_estimate_amount.php** (3.2KB, 87 lines)
- **기능**: 일반 견적 금액 계산
- **역할**: 기본 견적 계산 로직
- **주요 특징**:
- 기본 단가 계산
- 수량별 총액 계산
- 할인율 적용
- **사용 방법**: 간단한 견적 계산이 필요한 경우
#### **fetch_unitprice.php** (32KB, 875 lines)
- **기능**: 단가 정보 조회 및 계산 유틸리티
- **역할**: 제품별 단가 데이터 가져오기 및 계산 함수 제공
- **주요 함수들**:
- `searchBracketSize()`: 모터 브라켓 사이즈 검색
- `slatPrice()`: 철재 단가 조회
- `addShaftPrice()`: 샤프트 가격 추가
- `calculatePipe()`: 파이프 계산
- `calculateMotorSpec()`: 모터 사양 계산
- `getScreenUnitPrice()`: 스크린 단가 조회
- `getMaterialPrices()`: 자재 가격 조회
- **특징**: 모든 견적 계산의 기반이 되는 핵심 유틸리티 파일
- **연관 파일**: 모든 견적 계산 파일에서 참조
#### **fetch_price.php** (2.8KB, 91 lines)
- **기능**: 가격 정보 조회
- **역할**: 특정 제품의 가격 정보 조회
- **주요 특징**:
- 원격 가격 조회
- 캐싱 기능
- 에러 처리
### 📊 **견적 단가 관리**
#### **estimateUnit.php** (25KB, 757 lines)
- **기능**: 견적 단가 관리 시스템
- **역할**: 제품별 단가 설정 및 관리
- **주요 특징**:
- 스크린, 철재, 모터 등 제품별 단가 관리
- CSV 데이터 임포트 기능
- 단가 이력 관리
- 실시간 단가 업데이트
- **사용 방법**: 관리자가 제품별 단가를 설정하고 관리
- **연관 파일**: `list_unit.php`, `fetch_unitprice.php`
#### **list_unit.php** (34KB, 917 lines)
- **기능**: 단가 목록 조회 및 관리
- **역할**: 등록된 단가 정보들의 리스트 표시
- **주요 특징**:
- 단가 검색 및 필터링
- 단가 수정 기능
- 단가 이력 조회
- 엑셀 내보내기
### 🔍 **조회 및 출력**
#### **viewEstimate.php** (63KB, 1575 lines)
- **기능**: 스크린 견적서 상세 조회 및 출력
- **역할**: 스크린 견적서의 상세 내용 표시 및 PDF 출력
- **주요 특징**:
- 완전한 견적서 형태로 출력
- PDF 저장 기능
- 회사 정보 및 견적 상세 내역 포함
- 인쇄 최적화 레이아웃
- **사용 방법**: 스크린 견적서 최종 출력
- **연관 파일**: `css/style.css`, `fetch_unitprice.php`
#### **viewEstimateDetail.php** (85KB, 1822 lines)
- **기능**: 견적서 세부사항 조회
- **역할**: 견적서의 세부 항목들 표시
- **주요 특징**:
- 항목별 상세 내역
- 계산 과정 표시
- 단가 및 수량 상세 정보
- **사용 방법**: 견적서의 상세 내역 확인
- **연관 파일**: `fetch_unitprice.php`, `css/style.css`
#### **screen_view_original.php** (90KB, 1825 lines)
- **기능**: 스크린 견적서 원본 출력
- **역할**: 스크린 견적서의 원본 형태 출력
- **주요 특징**:
- 원본 견적서 형태
- 모든 세부 정보 포함
- 인쇄용 레이아웃
#### **screen_view_modified.php** (61KB, 1266 lines)
- **기능**: 스크린 견적서 수정본 출력
- **역할**: 수정된 스크린 견적서 출력
- **주요 특징**:
- 수정된 내용 반영
- 변경 이력 표시
- 최적화된 레이아웃
#### **slat_view_original.php** (82KB, 1774 lines)
- **기능**: 철재스라트 견적서 원본 출력
- **역할**: 철재스라트 견적서의 원본 형태 출력
- **주요 특징**:
- 철재 전용 견적서 형태
- 철재 사양 상세 정보
- 절곡, 용접 정보 포함
#### **slat_view_modified.php** (55KB, 1135 lines)
- **기능**: 철재스라트 견적서 수정본 출력
- **역할**: 수정된 철재스라트 견적서 출력
- **주요 특징**:
- 수정된 철재 견적서
- 변경 사항 표시
- **사용 방법**: 수정된 철재 견적서 출력
- **연관 파일**: `css/style.css`, `fetch_unitprice.php`
#### **viewEstimateSlatDetail.php** (885B, 21 lines)
- **기능**: 철재 견적서 상세 조회
- **역할**: 철재 견적서의 상세 내용 표시
- **사용 방법**: 철재 견적서 상세 조회
#### **EsDetail_screen.php** (1010B, 26 lines)
- **기능**: 스크린 견적서 세부사항
- **역할**: 스크린 견적서의 세부 항목 처리
- **사용 방법**: 스크린 견적서 세부사항 출력
#### **EsDetail_slat.php** (918B, 20 lines)
- **기능**: 철재 견적서 세부사항
- **역할**: 철재 견적서의 세부 항목 처리
- **사용 방법**: 철재 견적서 세부사항 출력
#### **output_EsDetail_screen.php** (1.1KB, 29 lines)
- **기능**: 스크린 견적서 세부사항 출력
- **역할**: 스크린 견적서 세부사항의 출력 처리
- **사용 방법**: 스크린 견적서 세부사항 출력
#### **output_EsDetail_slat.php** (1.1KB, 27 lines)
- **기능**: 철재 견적서 세부사항 출력
- **역할**: 철재 견적서 세부사항의 출력 처리
- **사용 방법**: 철재 견적서 세부사항 출력
### 📝 **데이터 관리**
#### **insert.php** (9.9KB, 199 lines)
- **기능**: 견적 데이터 삽입 및 수정
- **역할**: 새로운 견적 정보를 데이터베이스에 저장하거나 기존 견적 수정
- **주요 특징**:
- JSON 데이터 안전 처리
- 프로젝트 번호 자동 생성
- 트랜잭션 처리
- 수정 로그 기록
- 에러 처리 및 롤백
- **핵심 기능**:
- `mode="modify"`: 기존 견적 수정
- `mode="insert"`: 새로운 견적 등록
- 자동 `pjnum` 생성 (KD-PR-YYYYMM-NN 형식)
- **연관 파일**: `generate_serial_pjnum.php`, `_request.php`
#### **edit.php** (23KB, 680 lines)
- **기능**: 견적 수정 폼
- **역할**: 기존 견적을 수정하기 위한 폼 제공
- **주요 특징**:
- 기존 데이터 로드
- 수정 전용 인터페이스
- 데이터 검증
#### **edit_slat.php** (18KB, 584 lines)
- **기능**: 철재스라트 견적 수정 폼
- **역할**: 철재스라트 견적 수정 전용 폼
- **주요 특징**:
- 철재 전용 수정 인터페이스
- 철재 사양 수정 기능
### 🔧 **유틸리티 파일**
#### **_request.php** (3.3KB, 51 lines)
- **기능**: 요청 변수 처리 및 안전화
- **역할**: POST/GET 요청의 변수들을 안전하게 처리
- **주요 변수들**:
- `num`, `con_num`: 견적 번호, 계약 번호
- `outdate`, `indate`: 견적서 작성일, 등록일
- `orderman`, `outworkplace`: 주문자명, 작업장/현장명
- `estimateList`, `estimateSlatList`: 스크린/철재 견적 항목 JSON
- `estimateList_auto`, `estimateSlatList_auto`: 자동 저장된 견적 항목 JSON
- `makeWidth`, `makeHeight`: 제작 폭/높이 (mm)
- `steel`, `motor`, `warranty`: 철재 절곡, 모터 설치, 보증서 발급 여부
- `slatcheck`, `partscheck`: 주자재/부자재 체크 여부
- `EstimateFirstSum`, `EstimateUpdatetSum`, `EstimateFinalSum`: 견적 금액들
- **특징**: 모든 견적 관련 파일에서 공통으로 사용되는 변수 처리
#### **_row.php** (2.9KB, 49 lines)
- **기능**: 데이터베이스 행 처리
- **역할**: DB에서 가져온 데이터를 PHP 변수로 설정
- **주요 특징**:
- JSON 데이터 디코딩
- 변수 초기화
- 기본값 설정
#### **generate_serial_pjnum.php** (755B, 24 lines)
- **기능**: 프로젝트 번호 생성
- **역할**: 견적서용 고유 프로젝트 번호 자동 생성
- **생성 형식**: `KD-PR-YYYYMM-NN` (예: KD-PR-202412-01)
- **특징**: 중복 방지 및 순차 번호 생성
#### **get_initial_pjnum.php** (729B, 24 lines)
- **기능**: 초기 프로젝트 번호 조회
- **역할**: 프로젝트 번호의 초기값 가져오기
- **사용 방법**: 견적서 작성 시 기본 번호 제공
#### **fetch_length_data.php** (3.1KB, 102 lines)
- **기능**: 길이 데이터 조회
- **역할**: 제품별 길이 정보 조회
- **사용 방법**: 견적 계산 시 길이 정보 참조
#### **fetch_date.php** (1.5KB, 40 lines)
- **기능**: 날짜 데이터 조회
- **역할**: 날짜 관련 정보 조회
- **사용 방법**: 날짜 필터링 및 검색
#### **fetch_outworkplace.php** (2.2KB, 58 lines)
- **기능**: 작업장 정보 조회
- **역할**: 작업장/현장 정보 조회
- **사용 방법**: 작업장 정보 자동완성
#### **fetch_receiver.php** (1.9KB, 55 lines)
- **기능**: 수신자 정보 조회
- **역할**: 견적서 수신자 정보 조회
- **사용 방법**: 수신자 정보 자동완성
#### **recalc_row.php** (355B, 13 lines)
- **기능**: 행 재계산
- **역할**: 견적 항목 행의 재계산 처리
- **사용 방법**: 실시간 계산 업데이트
#### **insert_detail.php** (4.1KB, 96 lines)
- **기능**: 견적 세부사항 삽입
- **역할**: 견적의 세부 항목들을 데이터베이스에 저장
- **사용 방법**: 견적 세부사항 저장
#### **insert_detail_output.php** (5.5KB, 107 lines)
- **기능**: 출력용 견적 세부사항 삽입
- **역할**: 출력용 견적 세부사항을 데이터베이스에 저장
- **사용 방법**: 출력용 견적 세부사항 저장
#### **insert_estimate.php** (1.6KB, 53 lines)
- **기능**: 견적 기본 정보 삽입
- **역할**: 견적의 기본 정보를 데이터베이스에 저장
- **사용 방법**: 견적 기본 정보 저장
#### **insert_logmenu.php** (1.2KB, 39 lines)
- **기능**: 로그 메뉴 삽입
- **역할**: 견적 관련 로그 메뉴 정보 저장
- **사용 방법**: 로그 메뉴 정보 저장
#### **estimate_table.php** (713B, 25 lines)
- **기능**: 견적 테이블 생성
- **역할**: 견적 데이터를 표시하는 테이블 생성
- **사용 방법**: 견적 테이블 출력
#### **excel_sample.php** (0.0B, 0 lines)
- **기능**: 엑셀 샘플 파일
- **역할**: 엑셀 출력을 위한 샘플 템플릿
- **사용 방법**: 엑셀 출력 템플릿 참조
### 📊 **통계 및 분석**
#### **statistics.php** (8.0KB, 195 lines)
- **기능**: 견적 통계 대시보드
- **역할**: 견적 관련 통계 정보 표시
- **주요 특징**:
- 월별/분기별 견적 현황
- 제품별 통계
- 매출 분석
- **사용 방법**: 견적 현황 및 통계 확인
- **연관 파일**: `func_statistics.php`
#### **func_statistics.php** (1.6KB, 44 lines)
- **기능**: 통계 계산 함수 모음
- **역할**: 통계 계산을 위한 함수들
- **주요 함수**:
- 매출 계산 함수
- 비율 계산 함수
- 차트 데이터 생성 함수
### 📤 **출력 및 엑셀**
#### **saveExcel.php** (6.0KB, 177 lines)
- **기능**: 엑셀 파일 저장
- **역할**: 견적서를 엑셀 형태로 저장
- **주요 특징**:
- PHPSpreadsheet 라이브러리 사용
- 견적서 형태 그대로 엑셀 변환
- 서식 및 스타일 유지
- **사용 방법**: 견적서를 엑셀 파일로 다운로드
#### **downloadExcel.php** (741B, 26 lines)
- **기능**: 엑셀 파일 다운로드 처리
- **역할**: 엑셀 파일 다운로드 처리
- **주요 특징**:
- 파일 다운로드 헤더 설정
- 보안 처리
### 🔄 **기타 기능**
#### **compare.php** (2.7KB, 79 lines)
- **기능**: 견적 비교 분석
- **역할**: 여러 견적을 비교 분석
- **주요 특징**:
- 견적 간 차이점 표시
- 가격 비교
- 사양 비교
#### **search.php** (10KB, 246 lines)
- **기능**: 견적 검색 엔진
- **역할**: 견적 정보 검색 기능
- **주요 특징**:
- 고급 검색 기능
- 검색 결과 필터링
- 검색 히스토리
- **사용 방법**: 견적 정보 검색
- **연관 파일**: `list.php`
#### **list_sim.php** (13KB, 346 lines)
- **기능**: 견적 목록 시뮬레이션
- **역할**: 견적 목록의 시뮬레이션 및 테스트
- **주요 특징**:
- 견적 목록 시뮬레이션
- 테스트 데이터 생성
- 성능 테스트
- **사용 방법**: 견적 목록 기능 테스트
- **연관 파일**: `list.php`
### 📁 **하위 폴더 상세**
#### **common/** 폴더
공통으로 사용되는 JavaScript와 PHP 파일들이 포함되어 있습니다.
##### **common_addrowJS.php** (113KB, 2536 lines)
- **기능**: 견적 항목 추가 JavaScript
- **역할**: 견적 테이블에 새로운 행을 동적으로 추가
- **주요 특징**:
- 71개 컬럼을 가진 견적 행 생성
- 스크린/철재 모델 옵션 자동 로드
- 실시간 계산 버튼 추가
- 복사/삭제 기능
- 셔터박스, 모터 등 특수 입력 필드 처리
- **핵심 함수**:
- `addRow()`: 새로운 행 추가
- `removeRow()`: 행 삭제
- `copyRow()`: 행 복사
- **사용 방법**: 견적서 작성 시 항목 추가
##### **lastJS.php** (27KB, 753 lines)
- **기능**: 최종 JavaScript 처리
- **역할**: 견적서 작성 완료 후 최종 처리
- **주요 특징**:
- 데이터 검증
- 자동 저장
- 계산 완료 처리
- 폼 제출 처리
##### **common_slat.php** (10KB, 227 lines)
- **기능**: 철재 공통 기능
- **역할**: 철재 견적 관련 공통 함수들
- **주요 특징**:
- 철재 계산 함수
- 철재 사양 처리
- 철재 단가 조회
##### **common_screen.php** (10KB, 220 lines)
- **기능**: 스크린 공통 기능
- **역할**: 스크린 견적 관련 공통 함수들
- **주요 특징**:
- 스크린 계산 함수
- 스크린 사양 처리
- 스크린 단가 조회
##### **output_head.php** (13KB, 263 lines)
- **기능**: 출력용 헤더
- **역할**: 견적서 출력 시 사용되는 헤더 정보
- **주요 특징**:
- 회사 정보
- 견적서 양식
- 인쇄 스타일
##### **estimate_head.php** (11KB, 224 lines)
- **기능**: 견적 헤더
- **역할**: 견적서 작성 시 사용되는 헤더 정보
- **주요 특징**:
- 견적서 기본 정보
- 입력 폼 헤더
- 검증 스크립트
##### **output_lastJS.php** (33KB, 934 lines)
- **기능**: 출력용 최종 JavaScript
- **역할**: 견적서 출력 시 최종 처리
- **주요 특징**:
- PDF 생성
- 인쇄 처리
- 출력 최적화
##### **compare_lastJS.php** (24KB, 682 lines)
- **기능**: 견적 비교용 JavaScript
- **역할**: 견적 비교 시 사용되는 JavaScript
- **주요 특징**:
- 견적 비교 로직
- 차이점 표시
- 비교 결과 출력
##### **compare_price_edit_table.php** (4.8KB, 103 lines)
- **기능**: 가격 비교 편집 테이블
- **역할**: 견적 가격 비교 시 편집 가능한 테이블
- **주요 특징**:
- 실시간 가격 편집
- 비교 표시
- 변경 사항 저장
##### **estimate_compare_head.php** (9.5KB, 207 lines)
- **기능**: 견적 비교 헤더
- **역할**: 견적 비교 페이지의 헤더 정보
- **주요 특징**:
- 비교 양식
- 비교 옵션
- 비교 결과 표시
#### **css/** 폴더
스타일시트 파일들이 포함되어 있습니다.
##### **style.css** (4.6KB, 154 lines)
- **기능**: 견적 시스템 전용 스타일
- **역할**: 견적서 작성 및 출력 시 사용되는 CSS
- **주요 특징**:
- 견적서 양식 스타일
- 인쇄 최적화 스타일
- 반응형 디자인
- 테이블 스타일링
- 버튼 및 폼 스타일
### 🔐 **보안 및 인증**
#### **세션 기반 인증**
- 모든 견적 관련 페이지에서 세션 검증
- 사용자 레벨에 따른 접근 제어 (레벨 5 이하만 접근 가능)
- 세션 만료 시 자동 로그아웃
#### **데이터 보안**
- SQL 인젝션 방지를 위한 PDO 사용
- 입력 데이터 검증 및 필터링
- XSS 공격 방지
- CSRF 토큰 검증
#### **파일 보안**
- 직접 파일 접근 제한
- 업로드 파일 검증
- 실행 파일 업로드 차단
### 💡 **주요 특징 및 기능**
#### **1. 이중 견적 시스템**
- **스크린 견적**: 실리카/와이어 스크린 전용 견적 시스템
- **철재 견적**: 철재스라트 전용 견적 시스템
- **통합 관리**: 하나의 시스템에서 두 종류 견적 모두 관리
#### **2. 자동 계산 엔진**
- **실시간 계산**: 입력 즉시 견적 금액 자동 계산
- **복잡한 계산**: 치수, 단가, 수량, 옵션에 따른 정확한 계산
- **검사비 자동**: 수량에 따른 검사비 자동 계산
- **할인율 적용**: 할인율 및 할인 금액 자동 계산
#### **3. 다양한 출력 형태**
- **원본 견적서**: 최초 작성된 견적서 형태
- **수정본 견적서**: 수정된 견적서 형태
- **PDF 출력**: 견적서를 PDF 형태로 저장
- **엑셀 출력**: 견적서를 엑셀 형태로 저장
- **인쇄 최적화**: 인쇄용 레이아웃 제공
#### **4. 단가 관리 시스템**
- **제품별 단가**: 스크린, 철재, 모터 등 제품별 단가 관리
- **단가 이력**: 단가 변경 이력 관리
- **CSV 임포트**: 대량 단가 데이터 임포트
- **실시간 업데이트**: 단가 변경 시 실시간 반영
#### **5. 통계 및 분석**
- **매출 통계**: 월별/분기별 매출 분석
- **제품별 통계**: 제품별 판매 현황
- **견적 현황**: 견적 작성 및 승인 현황
- **차트 제공**: 시각적 통계 차트
#### **6. 검색 및 필터링**
- **고급 검색**: 다양한 조건으로 견적 검색
- **날짜 필터**: 날짜 범위별 검색
- **제품 필터**: 제품별 검색
- **상태 필터**: 견적 상태별 검색
#### **7. 데이터 관리**
- **JSON 저장**: 견적 항목을 JSON 형태로 저장
- **자동 저장**: 작업 중 자동 저장 기능
- **버전 관리**: 견적 수정 이력 관리
- **백업 복구**: 데이터 백업 및 복구 기능
### 🚀 **사용법 가이드**
#### **1. 견적 작성**
```bash
# 새로운 견적 작성
1. write_form.php 접속
2. 스크린/철재 선택
3. 견적 항목 입력
4. 자동 계산 확인
5. 저장
```
#### **2. 견적 조회**
```bash
# 견적 목록 조회
1. list.php 접속
2. 검색 조건 설정
3. 견적 목록 확인
4. 상세 조회 또는 수정
```
#### **3. 견적 수정**
```bash
# 기존 견적 수정
1. list.php에서 수정할 견적 선택
2. edit.php 또는 edit_slat.php 접속
3. 데이터 수정
4. 저장
```
#### **4. 견적서 출력**
```bash
# 견적서 출력
1. viewEstimate.php에서 견적서 확인
2. PDF 저장 또는 인쇄
3. 엑셀 다운로드 (필요시)
```
#### **5. 단가 관리**
```bash
# 단가 설정
1. estimateUnit.php 접속
2. 제품별 단가 입력
3. CSV 임포트 (대량 데이터)
4. 단가 적용
```
### 🔧 **개발 및 유지보수**
#### **데이터베이스 구조**
- **estimate 테이블**: 메인 견적 정보
- **price_raw_materials 테이블**: 원자재 단가 정보
- **estimate_units 테이블**: 단가 관리 정보
#### **주요 API**
- **견적 계산 API**: `get_screen_amount.php`, `get_slat_amount.php`
- **단가 조회 API**: `fetch_unitprice.php`
- **데이터 저장 API**: `insert.php`
#### **JavaScript 라이브러리**
- **jQuery**: DOM 조작 및 AJAX
- **Bootstrap**: UI 프레임워크
- **PHPSpreadsheet**: 엑셀 처리
#### **에러 처리**
- **PHP 에러 로그**: `/php_errors.log`
- **사용자 친화적 에러 메시지**
- **트랜잭션 롤백**
### 📞 **지원 및 문의**
- **개발팀**: 시스템 개발 및 유지보수
- **관리자**: 사용자 권한 및 시스템 설정
- **기술지원**: 사용법 문의 및 문제 해결