# 방화셔터 견적 시스템 (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** (18KB, 450 lines)
- **기능**: 견적 통계 및 분석
- **역할**: 견적 데이터를 분석하여 통계 정보 제공
- **주요 특징**:
  - 기간별 견적 현황
  - 제품별 견적 통계
  - 고객별 견적 분석
  - 매출 추이 분석
  - 차트 및 그래프 제공
- **통계 항목**:
  - 월별/분기별 견적 건수
  - 제품별 견적 비율
  - 평균 견적 금액
  - 고객별 견적 패턴
- **연관 파일**: `list.php`, 데이터베이스 통계 쿼리

### 📤 **출력 및 엑셀**

#### **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** (45KB, 1200 lines)
- **기능**: 최종 JavaScript 처리
- **역할**: 견적 폼의 최종 처리 및 저장
- **주요 특징**:
  - 폼 데이터 검증
  - AJAX 저장 처리
  - 에러 핸들링
  - 사용자 피드백
- **핵심 기능**:
  - 데이터 유효성 검사
  - 서버 통신 처리
  - 성공/실패 메시지 표시
  - 페이지 리다이렉션
- **연관 파일**: `insert.php`, `write_form.php`

##### **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** (8KB, 250 lines)
- **기능**: 견적 시스템 전용 스타일시트
- **역할**: 견적 관련 페이지의 UI/UX 스타일링
- **주요 특징**:
  - 반응형 디자인
  - 견적 테이블 최적화
  - 인쇄 스타일 지원
  - 모바일 최적화
- **스타일 영역**:
  - 견적 테이블 레이아웃
  - 폼 요소 스타일링
  - 버튼 및 인터랙션 요소
  - 인쇄용 스타일
- **연관 파일**: 모든 견적 관련 HTML/PHP 파일

### 🔐 **보안 및 인증**

#### **세션 기반 인증**
- 모든 견적 관련 페이지에서 세션 검증
- 사용자 레벨에 따른 접근 제어 (레벨 5 이하만 접근 가능)
- 세션 만료 시 자동 로그아웃

#### **데이터 보안**
- SQL 인젝션 방지를 위한 PDO 사용
- 입력 데이터 검증 및 필터링
- XSS 공격 방지
- CSRF 토큰 검증

#### **파일 보안**
- 직접 파일 접근 제한
- 업로드 파일 검증
- 실행 파일 업로드 차단

### 💡 **주요 특징 및 기능**

#### **1. 이중 견적 시스템**
- **스크린 견적**: 실리카/와이어 스크린 전용 견적 시스템
- **철재 견적**: 철재스라트 전용 견적 시스템
- **통합 관리**: 하나의 시스템에서 두 종류 견적 모두 관리

#### **2. 자동 계산 엔진**
- **실시간 계산**: 입력 즉시 견적 금액 자동 계산
- **복잡한 계산**: 치수, 단가, 수량, 옵션에 따른 정확한 계산
- **검사비 자동**: 수량에 따른 검사비 자동 계산
- **할인율 적용**: 할인율 및 할인 금액 자동 계산

#### **3. 다양한 출력 형태**
- **원본 견적서**: 최초 작성된 견적서 형태
- **수정본 견적서**: 수정된 견적서 형태
- **PDF 출력**: 견적서를 PDF 형태로 저장
- **엑셀 출력**: 견적서를 엑셀 형태로 저장
- **인쇄 최적화**: 인쇄용 레이아웃 제공

#### **4. 단가 관리 시스템**
- **제품별 단가**: 스크린, 철재, 모터 등 제품별 단가 관리
- **단가 이력**: 단가 변경 이력 관리
- **CSV 임포트**: 대량 단가 데이터 임포트
- **실시간 업데이트**: 단가 변경 시 실시간 반영

#### **5. 통계 및 분석**
- **매출 통계**: 월별/분기별 매출 분석
- **제품별 통계**: 제품별 판매 현황
- **견적 현황**: 견적 작성 및 승인 현황
- **차트 제공**: 시각적 통계 차트

#### **6. 검색 및 필터링**
- **고급 검색**: 다양한 조건으로 견적 검색
- **날짜 필터**: 날짜 범위별 검색
- **제품 필터**: 제품별 검색
- **상태 필터**: 견적 상태별 검색

#### **7. 데이터 관리**
- **JSON 저장**: 견적 항목을 JSON 형태로 저장
- **자동 저장**: 작업 중 자동 저장 기능
- **버전 관리**: 견적 수정 이력 관리
- **백업 복구**: 데이터 백업 및 복구 기능

## 🚀 사용 가이드

### 📝 **견적서 작성 과정**

1. **견적서 생성**
   - `write_form.php`에서 새로운 견적서 작성
   - 스크린 또는 철재 선택
   - 기본 정보 입력 (고객명, 날짜, 특이사항)

2. **제품 정보 입력**
   - 모델명 선택
   - 제작 사이즈 입력
   - 수량 및 옵션 선택
   - 자동 계산 버튼으로 단가 계산

3. **견적서 저장**
   - 모든 정보 입력 후 저장
   - 프로젝트 번호 자동 생성
   - 데이터베이스에 저장

4. **견적서 출력**
   - `viewEstimate.php` 또는 `viewEstimateSlat.php`에서 출력
   - 인쇄 또는 PDF 변환
   - 고객에게 전달

### 🔍 **견적서 조회 및 관리**

1. **목록 조회**
   - `list.php`에서 등록된 견적서 목록 확인
   - 날짜, 모델명, 고객명으로 필터링
   - 검색 기능 활용

2. **견적서 수정**
   - 목록에서 수정할 견적서 선택
   - `write_form.php`에서 수정 모드로 진입
   - 데이터 수정 후 저장

3. **견적서 삭제**
   - 목록에서 삭제할 견적서 선택
   - 확인 후 삭제 처리

### 💰 **단가 관리**

1. **단가 조회**
   - `estimateUnit.php`에서 현재 단가 확인
   - 카테고리별 단가 검색
   - 단가 이력 조회

2. **단가 수정**
   - 단가 변경 시 수정
   - 적용 일자 설정
   - 변경 사유 기록

3. **단가 import/export**
   - CSV 파일로 단가 데이터 내보내기
   - 외부에서 수정한 단가 데이터 가져오기
   - 데이터 검증 후 적용

## 🔒 보안 및 권한

### 👤 **사용자 권한**
- **레벨 1-5**: 견적서 작성, 수정, 조회 가능
- **레벨 6 이상**: 단가 관리, 통계 조회 가능
- **관리자**: 모든 기능 접근 가능

### 🔐 **보안 기능**
- 세션 기반 인증
- SQL 인젝션 방지
- XSS 공격 방지
- 파일 업로드 보안 검증

## 🛠️ 개발 및 유지보수

### 📋 **개발 환경**
- **언어**: PHP 7.4+
- **데이터베이스**: MySQL 5.7+
- **프론트엔드**: HTML5, CSS3, JavaScript, jQuery
- **UI 프레임워크**: Bootstrap 5

### 🔧 **주요 라이브러리**
- **jQuery**: DOM 조작 및 AJAX 처리
- **Bootstrap**: 반응형 UI 컴포넌트
- **Chart.js**: 통계 차트 표시
- **jsPDF**: PDF 생성

### 📊 **데이터베이스 구조**
- **estimate**: 견적서 기본 정보
- **estimate_detail**: 견적서 상세 항목
- **price_raw_materials**: 원자재 단가
- **price_parts**: 부품 단가
- **price_process**: 공정비 단가

### 🐛 **디버깅 및 로그**
- PHP 에러 로그: `/php_errors.log`
- 사용자 액션 로그: 데이터베이스 로그 테이블
- AJAX 요청 로그: 브라우저 개발자 도구

## 📞 지원 및 문의

### 🆘 **문제 해결**
1. **견적서 저장 오류**: 데이터베이스 연결 확인
2. **단가 계산 오류**: 단가 데이터 유효성 검사
3. **인쇄 문제**: 브라우저 인쇄 설정 확인
4. **성능 이슈**: 데이터베이스 인덱스 최적화

### 📧 **개발팀 연락처**
- **기술 지원**: dev@company.com
- **문서 관련**: docs@company.com
- **긴급 문의**: emergency@company.com

---

**📅 문서 버전**: 2.0  
**👨‍💻 작성자**: 개발팀  
**📝 최종 수정일**: 2024-12-24  
**🔗 관련 문서**: [개발자 가이드](./common_addrowJS_developer_guide.md) 