1158 Commits

Author SHA1 Message Date
김보곤
888e810d31 fix: [finance] 거래처 등록 필수값 개선 (거래처명+사업자번호만 필수)
- 백엔드: bizNo 필수 검증 추가, trade_type/status null-safe 처리
- 프론트엔드: 사업자번호 필수 검증 + 라벨에 * 표시 추가
- 나머지 필드 비어있어도 저장 가능하도록 NOT NULL 컬럼 기본값 보장
2026-03-09 10:54:07 +09:00
김보곤
f855da6c71 fix: [finance] 거래처 등록/수정 시 NOT NULL 컬럼 기본값 누락 수정
- type, category 컬럼이 NOT NULL인데 빈 값 전달 시 null 변환되어 DB 오류 발생
- store: null 대신 DB 기본값(vendor, 기타) 적용
- update: null 대신 기존 값 유지
2026-03-09 10:49:47 +09:00
김보곤
48a8dd9cf4 feat: [rd] 방화셔터 도면생성 기능 구현
- 4탭 구성: 설정 / 가이드레일 / 셔터박스 / 3D 렌더링
- 가이드레일 C-채널 SVG 단면도 (횡단면/정면도)
- 셔터박스 SVG 단면도 (정면/측면, 내부 부품 ON/OFF)
- Three.js 3D 조립체 렌더링 (셔터 개폐 애니메이션, 투명도, 부품 토글)
- DXF/PNG/JSON 내보내기, localStorage 프리셋 관리
- 제품 유형별(강판/스크린) 기본값 자동 적용
2026-03-08 19:30:05 +09:00
김보곤
b5cec674b1 feat: [rd] 자동도면 생성 메뉴 추가
- 레거시 전개도 시뮬레이터를 MNG 환경으로 마이그레이션
- RdController에 autoDrawing 메서드 추가 (HX-Request 체크 포함)
- 라우트: GET /rd/auto-drawing
- R&D 대시보드에 자동도면 생성 카드 추가
- 레거시 PHP 코드 제거 (세션, API키, 서버기록 등)
- Three.js 3D 렌더링, SVG 미리보기, DXF 도면 생성 기능 유지
2026-03-08 17:53:48 +09:00
김보곤
9b7362fa4f fix: [sound-logo] 음성 카테고리 기반 선택으로 재구성
- 여성/남성/아이 카테고리 탭으로 1차 분류 (성별 확실한 전달)
- 공식 문서 기반 음성 성별 정보 수정 (Gacrux=여성, Sadachbia=남성 등)
- 아이 카테고리: 젊은 음성 + 'young child, high-pitched' Director's Note 지시문
- 스타일 옵션에서 아이/청소년 제거 (카테고리로 이동)
- 프롬프트 형식을 Director's Note 형식으로 개선
2026-03-08 14:12:57 +09:00
김보곤
0e86636354 feat: [sound-logo] 아이 목소리 옵션 + 말하기 속도 조절 추가
- 스타일 옵션에 어린이(5~7세), 초등학생(8~12세), 청소년(13~18세) 추가
- 말하기 속도 슬라이더 추가 (매우느리게~매우빠르게 5단계)
- 속도와 스타일을 TTS 프롬프트 지시문으로 조합하여 Gemini API에 전달
- 음성 목록 여성/남성/중성 순서로 정렬
2026-03-08 14:05:22 +09:00
김보곤
64b3ad2b59 feat: [sound-logo] TTS 음성 옵션 확장 + 잡음 문제 수정
- PCM 디코딩 endianness 수정 (big-endian → little-endian, Gemini TTS는 s16le)
- 16종 음성 선택 옵션 추가 (남성/여성/중성, 성격 설명)
- 9종 발화 스타일 옵션 추가 (밝고 활기차게, 차분하고 신뢰감 등)
- 음성/스타일을 컨트롤러에 전달하여 Gemini API에 적용
- 기본 텍스트: '우리들의 솔루션 쌤, 쌤, 쌤'
2026-03-08 13:58:48 +09:00
김보곤
f8a00c3f8c feat: [rd] AI 배경음악 생성 기능 추가 (Google Lyria RealTime)
- Lyria RealTime WebSocket 연동으로 다중 악기 배경음악 실시간 생성
- BPM, 밀도, 밝기, 스케일 컨트롤 지원
- 시퀀서 + 음성 + 배경음악 3중 합성 (playAll, exportWav)
- 서버 API 키 보호 엔드포인트 (lyria-config)
- 빠른 프롬프트 10종 제공
2026-03-08 13:37:25 +09:00
김보곤
d02c142f65 feat: [rd] 사운드로고/나레이션 AI 토큰 사용량 기록 추가
- RdController: 사운드로고-AI생성, 사운드로고-TTS 토큰 기록
- CmSongController: 나레이션-가사생성, 나레이션-TTS 토큰 기록
- AI 토큰 사용량 UI에 사운드로고/나레이션 카테고리 분류 추가
2026-03-08 12:57:29 +09:00
김보곤
e7f81cb063 fix: [rd] TTS 500 에러 수정 및 AI 응답 파싱 개선
- 짧은 텍스트(4자 미만) TTS 요청 시 따옴표 래핑으로 Gemini TTS 인식률 개선
- TTS API 에러 시 실제 에러 메시지 반환 (기존: 일괄 500)
- AI 생성 temperature 0.9→0.7, maxOutputTokens 2048→4096으로 응답 안정성 개선
- 프롬프트에 name/desc 길이 제한 추가하여 JSON 잘림 방지
2026-03-08 12:51:08 +09:00
김보곤
301369bb37 feat: [sound-logo] TTS 음성 오버레이 기능 추가
- Gemini TTS API 연동 (한국어 Kore 음성)
- 사이드바에 음성 오버레이 컨트롤: 텍스트 입력, 시작 시점, 볼륨
- 재생/WAV 내보내기 시 신스 + 음성 자동 합성
- POST /rd/sound-logo/tts 엔드포인트 추가
- L16 PCM → AudioBuffer 디코더 구현
2026-03-08 12:44:05 +09:00
김보곤
75dbe2910a feat: [sound-logo] Phase 2 AI 어시스트 모드 추가
- Gemini API 연동: 프롬프트 → 음표 시퀀스 JSON 자동 생성
- AI 탭 UI: 프롬프트 입력, 카테고리/길이 선택, 빠른 프롬프트 10종
- AI 결과 미리보기: 음표 시각화, 미리듣기, 시퀀서 로드
- POST /rd/sound-logo/generate 엔드포인트 추가
2026-03-08 12:34:42 +09:00
김보곤
d81c5f4a6f feat: [rd] 사운드 로고 생성기 Phase 1 MVP 구현
- Web Audio API 기반 사운드 합성 엔진
- 4종 신스(sine/square/triangle/sawtooth) + ADSR 엔벨로프
- 노트 시퀀서 UI (비주얼 바 + 드롭다운 편집)
- 10종 프리셋 (알림, 로고, 시작음, 성공 등)
- WAV 내보내기, JSON import/export, localStorage 저장
2026-03-08 12:15:32 +09:00
김보곤
d9c808b928 feat: [rd] 디자인 인사이트 메뉴 Phase 1 MVP 구현
- GET /rd/design-insight 라우트 + 컨트롤러 추가
- Alpine.js 단일 파일 SPA (localStorage 기반)
- 4종 카드: 레퍼런스, 분석(CRAP), 패턴, Before/After
- 3종 뷰: 보드, 갤러리, 리스트
- Ctrl+V 클립보드 이미지 붙여넣기
- 프로젝트 CRUD, 태그/카테고리 필터, 검색
- JSON 내보내기/가져오기
2026-03-08 09:55:36 +09:00
김보곤
64ab20becf feat: [rd] 기획디자인 플래닝 캔버스 페이지 추가
- 연구개발 > 기획디자인 메뉴 라우트/컨트롤러/뷰 추가
- Alpine.js 기반 캔버스 도구 (노드 배치, 연결, 줌/팬)
- 16종 노드 타입 (기획/분석/구조/산출물 카테고리)
- 타임라인/플로우 뷰 모드, 프로젝트 저장/불러오기
- 실행취소/재실행, 키보드 단축키 지원
2026-03-07 22:06:06 +09:00
김보곤
e38ef0f1d5 fix: [approval] 결재선 인원 목록에서 미배정/퇴사/외주 사용자 제외
- 부서 미배정(department_id NULL) 사용자 목록에서 제외
- 코드브릿지엑스(tenant_id=1) 테넌트에서 영업팀(외주) 제외
2026-03-07 21:53:22 +09:00
김보곤
0dab993508 feat: [help] 도움말 > 바로빌 연동 가이드 페이지 추가
- 7탭 구성: 전체 구조, 초기 설정, 세금계산서, 계좌/카드, 홈택스 연동, 카카오톡/SMS, 메뉴 맵
- BarobillGuideController + HX-Redirect 패턴 적용
- 테넌트 필수 설정, 바로빌↔SAM 연동 구조, FAQ 포함
2026-03-07 19:02:53 +09:00
김보곤
67694b926f feat: [help] 도움말 > 연차휴가/근태관리 페이지 추가
- 7탭 구성: 전체 흐름도, 연차 발생/계산, 휴가 신청/결재, 근태 기록, 연차촉진제도, 급여 연동, 메뉴 맵
- AttendanceGuideController + HX-Redirect 패턴 적용
- 근로기준법 기반 연차 발생 기준, 촉진 타임라인, 급여 연동 로직 포함
2026-03-07 18:50:51 +09:00
김보곤
d9ad2e801b feat: [help] 도움말 > 회계동작원리 페이지 추가
- 6탭 구성: 전체 흐름도, 일상 업무, 월간 업무, 세금/부가세, 정산/결산, 메뉴 맵
- AccountingGuideController + HX-Redirect 패턴 적용
- 중소기업 회계담당자를 위한 SAM 재무/회계 가이드
2026-03-07 18:36:08 +09:00
김보곤
ffe02b3224 feat: [claude-code] 발전과정 페이지 추가 (타임라인/핵심혁신/모델진화/생태계) 2026-03-07 18:03:34 +09:00
김보곤
8784b81f1b feat: [china-tech] 중국 AI기술 발전과정 페이지 추가 2026-03-07 17:57:44 +09:00
김보곤
e272f16357 feat: [database] codebridge DB connection 적용 (merge 후 재적용)
- 78개 MNG 전용 모델에 $connection = 'codebridge' 재적용
- config/database.php codebridge connection 포함
2026-03-07 11:28:47 +09:00
김보곤
32e9f317d5 Merge branch 'develop' of http://114.203.209.83:3000/SamProject/sam-manage into develop 2026-03-07 11:28:23 +09:00
김보곤
ca50f65124 feat: [database] codebridge DB 분리 - 118개 MNG 전용 테이블 connection 설정
- config/database.php에 codebridge connection 추가
- 78개 MNG 전용 모델에 $connection = 'codebridge' 설정
  - Admin (15): PM, 로드맵, API Explorer
  - Sales (16): 영업파트너, 수수료, 가망고객
  - Finance (9): 법인카드, 자금관리, 홈택스
  - Barobill (12): 은행/카드 동기화 관리
  - Interview (1), ESign (6), Equipment (2)
  - AI (3), Audit (3), 기타 (11)
2026-03-07 11:27:18 +09:00
2d820cd395 feat: 제품검사 요청서 template(ID 66) 시더 및 모델 보완
- ProductInspectionRequestTemplateSeeder: 변경사유 width null→1fr 수정
- DocumentTemplateSection: description fillable 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 01:30:15 +09:00
fe420a3cd7 feat: 문서 스냅샷 출력 + 절곡 전용 렌더링
- show.blade.php: rendered_html 우선 출력 로직 추가 (스냅샷 모드)
- show.blade.php: 스냅샷 없으면 기존 동적 렌더링 fallback
- DocumentController: inspectionData 추출하여 view 전달
- partials/bending-inspection-data: inspection_data 스냅샷 기반 렌더링
- partials/bending-worklog: 절곡 작업일지 전용 렌더링

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 01:30:15 +09:00
김보곤
2e97b824cd feat: [hr] 연차촉진 관리 페이지 추가
- LeavePromotionController: 대상자 목록 조회 + 일괄 통지 발송
- LeaveService: getPromotionCandidates(), sendPromotionNotices() 메서드 추가
- 통지 현황 추적 (미발송/1차 발송/완료)
- 일괄 선택 + 결재 문서 자동 생성 + 상신
2026-03-07 00:46:10 +09:00
김보곤
617c89a33f fix: [approval] 연차사용촉진 통지서 Employee 모델 속성 수정
- departments->first() → department? (BelongsTo 단수 관계)
- $emp->name → $emp->display_name
- $emp->position → $emp->position_key
- $emp->id → $emp->user_id
- LeaveService에 department eager load 추가
2026-03-07 00:33:36 +09:00
김보곤
810c1f67dd feat: [finance] 경조사비 관리 페이지 추가
- 거래처 경조사비 관리대장 CRUD (등록/수정/삭제)
- 축의/부조 구분, 부조금(현금/계좌이체/카드), 선물(종류/금액) 관리
- 연도별 필터, 구분별 필터, 거래처/내역 검색
- 통계 카드 (총건수, 총금액, 부조금 합계, 선물 합계, 축의/부조 비율)
- CSV 내보내기
- 라우트: /finance/condolence-expenses
2026-03-06 21:38:41 +09:00
김보곤
c850172f5b feat: [approvals] 사용인감계 양식 추가
- 증명서 카테고리에 사용인감계(seal_usage) 양식 등록
- 입력 폼: 사용일자, 인감종류, 용도, 제출처, 비고
- 회사 정보 자동 로드 (테넌트 정보 기반)
- 미리보기/인쇄 기능 (원본 DOCX 유사 레이아웃)
- create/edit/show 3개 페이지 모두 지원
2026-03-06 20:48:01 +09:00
김보곤
81157a150a feat: [org-chart] 부서 숨기기 상태 DB 저장
- departments.options JSON 컬럼에 orgchart_hidden 플래그 저장
- 숨기기/복원 시 API 호출하여 영구 저장
- 페이지 로드 시 DB에서 숨김 상태 복원
2026-03-06 20:24:51 +09:00
김보곤
e1fc78ada1 feat: [org-chart] 조직도 최상단 노드 색상 수정 및 부서 드래그 정렬 기능 추가
- 최상단 회사 노드: Tailwind gradient → inline style로 변경 (글씨 안보이는 문제 수정)
- 부서 카드 드래그 앤 드롭 정렬: SortableJS handle 기반
- 1단계/2단계 부서 모두 드래그 정렬 가능
- sort_order 변경 즉시 서버 저장 (reorder-depts API)
- 부서 헤더에 드래그 아이콘 추가
2026-03-06 19:50:36 +09:00
김보곤
df72d241fb feat: [rd] 조직도 클래식 하향식 트리 형태로 개편
- 회사(대표이사) → 1단계 부서 → 2단계 → 3단계 하향식 트리 구조
- 부서 간 수직/수평 연결선으로 계층 시각화
- 미배치 직원 패널을 상단 접이식으로 변경
- 부서 카드 클릭 시 하위 부서 펼침/접기
- drag & drop 배치 기능 유지
2026-03-06 19:42:21 +09:00
김보곤
399813a16f fix: [rd] 조직도 Blade 템플릿 ParseError 수정
- @json 내 화살표 함수를 컨트롤러로 이동
- Blade 컴파일러와 배열 구문 충돌 해결
2026-03-06 19:37:06 +09:00
김보곤
774a35e097 feat: [rd] 조직도 관리 화면 추가
- SortableJS 기반 drag & drop 부서 배치 UI
- 미배치 직원 패널 + 부서 트리 (3단계 계층 지원)
- 직원 배치/해제 API 엔드포인트
- 실시간 저장 및 인원수 표시
2026-03-06 19:34:52 +09:00
김보곤
f51427bcce fix: [approvals] 사직서 주민번호 마스킹 제거 2026-03-06 17:48:39 +09:00
김보곤
457576f2f5 fix: [approvals] 위촉증명서 PDF 상단 여백 축소 (전체 위치 상향) 2026-03-06 17:40:56 +09:00
김보곤
e963b5a2dc fix: [approvals] 위촉증명서 주민번호 마스킹 제거 2026-03-06 17:35:44 +09:00
김보곤
25f811bcb6 fix: [approvals] 재직/경력증명서 주민번호 전체 표시 (마스킹 제거)
- 재직증명서: 주민번호 뒷자리 ****** 마스킹 제거, 전체 표시
- 경력증명서: 주민등록번호 필드 추가 (폼/조회/미리보기/PDF)
- EmploymentCertService: maskedResident 로직 제거
- CareerCertService: resident_number 반환 추가, PDF 행 추가
2026-03-06 15:58:51 +09:00
김보곤
efd8d96156 feat: [sidebar] 사이드바 메뉴 즐겨찾기 기능 추가
- MenuFavorite 모델 생성 (menu_favorites 테이블)
- SidebarMenuService에 즐겨찾기 CRUD 메서드 추가
- MenuFavoriteController 생성 (toggle/reorder API)
- 사이드바 상단에 즐겨찾기 섹션 표시
- 메뉴 아이템에 별 아이콘 추가 (hover 시 표시, 토글)
- 최대 10개 제한, 리프 메뉴만 대상
2026-03-06 14:34:27 +09:00
김보곤
ecd813c0b7 fix: [approval] 결재선 인원 목록에서 퇴사자 제외
- tenant_user_profiles.employee_status = 'resigned' 필터 추가
- search(), list() 두 엔드포인트 모두 적용
2026-03-06 14:31:48 +09:00
김보곤
2d327a8300 fix: [approvals] 위촉증명서 테이블 2열 행 텍스트 넘침 수정
- table-layout:fixed + colgroup(18%/32%/18%/32%)로 열 너비 고정
- td에 white-space:nowrap 추가하여 텍스트 줄바꿈 방지
- th width 고정값 제거 → colgroup 비율로 제어
- "위촉(재직)기간" → "위촉기간"으로 라벨 축소
- padding 18px→14px, font 16px→15px로 미세 조정
2026-03-06 10:56:07 +09:00
김보곤
6ebaa756a6 fix: [approvals] 사직서 레이아웃 개선 - A4 용지 내 안정된 수직 배분
- HTML: @page A4 설정, cert-page wrapper(padding 100px), th/td 16px 18px, font 16px
- PDF: 상단여백 40mm+Ln20, rowHeight 8→12, 본문 10→12pt, 문구 12→14pt, 회사 14→16pt
- 섹션 간격 대폭 확대 (테이블↔문구 30mm, 신청인↔회사 30mm)
- create/show 동일 적용
2026-03-06 10:40:30 +09:00
김보곤
74b37a287e fix: [approvals] 경력증명서 증명문구 재직/퇴직 분기 처리
- 퇴직일 있음: "위 사람은 당사에 재직(근무) 하였음을 증명합니다."
- 퇴직일 없음(현재 재직): "위 사람은 당사에서 재직(근무) 하고 있음을 증명합니다."
- HTML 미리보기(create/show) + PDF 모두 적용
2026-03-06 10:35:42 +09:00
김보곤
4b478b4e05 fix: [approvals] 재직증명서 레이아웃 개선 - A4 용지 내 수직 배분 조정
- HTML 미리보기: @page A4 설정, cert-page wrapper, padding/font-size 증가
- PDF(TCPDF): 상단여백 추가, 섹션간격 확대, rowHeight 8→10, 본문 10→11pt
- 증명문구/날짜 12→14pt, 회사명 14→16pt
- create/show 동일 적용
2026-03-06 10:25:55 +09:00
김보곤
71fce456b5 fix: [approvals] 위촉증명서 레이아웃 개선 - 테이블 행 높이/글자크기 증가
- HTML 미리보기: th/td padding 16px 18px, font-size 16px, th width 140px
- PDF(TCPDF): rowHeight 8→12, 본문 폰트 10→12, 증명문구/날짜 12→14, 회사명 14→16
- create/show 동일하게 적용
2026-03-06 10:19:04 +09:00
김보곤
5d7eb57578 feat: [document] 양식 디자이너(Block Builder) Phase 2 - 블록 런타임 렌더러
- BlockRendererService: view/edit/print 3모드 렌더링 지원
  - edit 모드: 폼 필드(input/select/textarea/checkbox) 생성
  - view 모드: 읽기 전용 데이터 표시
  - print 모드: 인쇄 최적화 레이아웃
- 데이터 바인딩: block.binding → document_data.field_key 매핑
- 체크박스 그룹: 콤마 구분 값으로 저장/복원
- 테이블 셀 편집: tbl_{blockId}_r{row}_c{col} 키로 EAV 저장
- edit.blade.php: 블록 빌더 서식 분기 (blockFormContainer)
- show.blade.php: 블록 빌더 조회 모드 분기
- DocumentController: renderBlockHtml() 메서드 추가
2026-03-06 10:14:39 +09:00
김보곤
27790861c2 fix: [approvals] 위촉증명서 인쇄/PDF A4 레이아웃 수직 배분 개선
- 인쇄 CSS: @page A4 적용, 상단 padding 100px로 확대
- HTML 미리보기: 제목/테이블/증명문구/날짜/서명 간격 확대
- PDF: 상단 여백 및 섹션 간 Ln 값 증가 (A4 수직 균등 배분)
2026-03-06 10:08:55 +09:00
김보곤
a34d23fd59 fix: [approvals] 재직증명서 양식에 대표자명/회사주소 누락 수정
- 재직증명서 폼/제출/미리보기/PDF에 ceo_name, company_address 추가
- tenants 테이블에서 가져온 회사 정보를 모든 기안 양식에 통일 적용
- 경력/위촉/사직서는 이미 정상 처리, 재직증명서만 누락되어 있었음
2026-03-06 09:19:32 +09:00
김보곤
7ffa8952fe feat: [approval] 사직서 양식 추가
- ResignationService 생성 (정보 조회 + PDF 생성)
- 사직서 전용 폼/조회 파셜 추가
- create/show 블레이드에 사직서 JS 로직 통합
- 컨트롤러 resignationInfo/resignationPdf 메서드 추가
- API 라우트 resignation-info, resignation-pdf 등록
2026-03-06 00:13:17 +09:00