김보곤
bb5a5c8e67
feat: [numbering] 재고생산(stock_production) 문서유형 추가
...
- NumberingRule 모델에 DOC_STOCK_PRODUCTION 상수 추가
- documentTypes()에 '재고생산' 추가
2026-03-18 19:56:16 +09:00
김보곤
73e4a83e78
feat: [item-management] BOM 트리 3단계 구조 구현 (FG → 카테고리 → PT)
...
- BOM에 category 필드가 있으면 중간 그룹 노드 자동 생성
- 1단계: FG 완제품, 2단계: 주자재/모터/제어기/절곡품/부자재, 3단계: PT 부품
- 카테고리 노드는 건수 표시, 접힘/펼침 지원
- 카테고리 노드 클릭 시 우측 상세 이동하지 않음
2026-03-18 15:41:43 +09:00
김보곤
b469ae9bfc
feat: [item-management] 수식 산출 결과를 FG BOM으로 저장하는 기능 추가
...
- 수식 산출 결과 합계 옆에 'BOM 저장' 버튼 추가
- 클릭 시 산출된 전체 품목을 FG의 bom JSON 필드에 저장
- 저장 후 자동으로 BOM 탭 전환 + 트리 표시
- POST /api/admin/items/{id}/save-bom 엔드포인트 추가
2026-03-18 15:33:00 +09:00
김보곤
4e443c8020
feat: [item-management] 절곡BOM 탭 추가
...
- 중앙 패널에 '절곡 BOM' 탭 추가 (정적 BOM 옆)
- SF-BND 절곡 품목과 하위 자재를 트리 구조로 표시
- 접힘/펼침 토글, 품목 클릭 시 우측 상세 갱신
- FG 품목 선택 시 해당 FG의 절곡 관련 BOM만 필터
2026-03-18 15:03:38 +09:00
김보곤
765f04f397
fix: [item-management] 삭제 시 참조 테이블 컬럼명 수정
...
- quotes 테이블에 item_id 없음 → 체크 제거
- material_receipts → receivings 테이블명 수정
- 테이블 존재 여부 확인 후 쿼리 실행
2026-03-18 14:37:21 +09:00
김보곤
bb4f4cd191
feat: [item-management] 품목 삭제 및 이력 조회 기능 추가
...
- 삭제: soft delete, 사용 중 품목 삭제 차단 (BOM/수주/견적/입고/LOT/작업지시 참조 체크)
- 이력: audit_logs 기반 생성/수정/삭제 이력 조회 모달
- 상세 패널에 이력/삭제 액션 버튼 추가
- API: DELETE /{id}, GET /{id}/history 엔드포인트 추가
2026-03-18 14:27:14 +09:00
김보곤
d14d7b86eb
fix: [item-fields] HTMX 부분 로드 시 switchTab 미정의 오류 수정
...
- HX-Redirect 처리 추가하여 전체 페이지 리로드 보장
- @push('scripts') 블록의 JS가 정상 실행되도록 함
2026-03-18 14:24:14 +09:00
김보곤
6304e2432a
fix: [item-management] API 통신 환경별 URL 분기 처리
...
- API_INTERNAL_URL 설정 추가 (Docker: https://nginx , 서버: 미설정)
- FormulaApiService::resolveApiConnection() 공용 메서드 추출
- ApiTokenService도 동일한 연결 로직 사용
- Docker: nginx 경유 + Host 헤더, 서버: base_url 직접 연결
2026-03-18 13:11:23 +09:00
김보곤
504ad126de
fix: [item-management] ApiTokenService Docker 내부 통신 수정
...
- api.sam.kr 직접 연결 → nginx 컨테이너 경유 (Host 헤더 라우팅)
- FormulaApiService와 동일한 Docker 내부 통신 패턴 적용
- SSL 검증 비활성화 (자체 서명 인증서)
2026-03-18 13:07:49 +09:00
김보곤
77c49c5351
fix: [menu-sync] import 시 tenant_id를 요청에서 받도록 수정
...
- import() API가 세션 없이 호출되어 항상 tenant_id=1로 저장되던 버그 수정
- push()에서 현재 선택된 tenant_id를 함께 전송
- importMenu()에 tenant_id 파라미터 추가하여 재귀 호출 시에도 올바른 테넌트 유지
2026-03-18 10:03:56 +09:00
김보곤
a44bb85f76
fix: [finance] 계정코드 매핑 이미지 기준 재수정
...
- 204→25300(미지급금), 205→26200(미지급비용)
- 207→25400(예수금), 208→25500(부가세예수금)
- 826→83700(건물관리비), 253→30800(장기성지급어음)
- 501→45100(상품매출원가), 117→13500(부가세대급금)
- 201→25100(외상매입금)
- 801 대표이사→80100(임원급여), 나머지→80200(직원급여) 분기
2026-03-17 18:15:34 +09:00
김보곤
0cc0ddf4b9
fix: [finance] 전체 하드코딩 계정코드 3자리→5자리 수정
...
- 급여전표: 801→80100, 207→20700, 205→20500
- 카드전표: 135→13500, 826→82600, 205→20500
- 홈택스분개: 108→10800, 401→40100, 208→20800, 501→50100, 117→11700, 201→20100
- 일반전표: 135→13500, 253→25300, 103→10300
2026-03-17 16:21:40 +09:00
김보곤
5de768b7f6
fix: [finance] 미수금/미지급금 계정코드 5자리로 수정
...
- 외상매출금 108 → 10800
- 미지급금 204 → 20400
- 미지급비용 205 → 20500
2026-03-17 16:13:19 +09:00
김보곤
9432eb1bb8
feat: [finance] 은행거래 레코드 삭제 기능 추가 (관리자 전용)
...
- 은행거래 행에 레코드 삭제 버튼 추가 (분개 유무 무관)
- 삭제 시 연결된 분개 전표도 함께 삭제
- 관리자(isAdmin) 권한 검증 적용
2026-03-17 13:18:05 +09:00
김보곤
c04ef81523
feat: [finance] 일반전표 목록에서 관리자 삭제 기능 추가
...
- 목록 행에 삭제 아이콘 추가 (수정 아이콘 옆, 관리자에게만 표시)
- 컨트롤러 destroy()에 관리자 권한 검증 추가
- 은행거래/수동전표 모두 삭제 가능
2026-03-17 13:07:07 +09:00
김보곤
2096b2c65a
refactor: [finance] 계정과목 카테고리를 API 영문 표준으로 통일
...
- AccountCode 모델에 API와 동일한 필드 추가 (sub_category, parent_code, depth 등)
- 카테고리 상수 정의 (CATEGORY_ASSET 등)
- 블레이드 뷰에서 영문 카테고리 키 + 한글 라벨 매핑 적용
2026-03-17 11:00:12 +09:00
김보곤
1c25ff9fd1
fix: [finance] 계정과목 설정 모달 중복 코드 조회 수정
...
- AccountCode 모델에 BelongsToTenant trait 추가하여 테넌트별 필터링 적용
- accountCodeStore에서 하드코딩된 tenant_id를 세션 기반으로 변경
2026-03-17 09:22:50 +09:00
김보곤
a8dfa85858
feat: [dashboard] 달력 휴가 표시에 사유 추가
2026-03-17 08:23:27 +09:00
김보곤
fd1dde90e7
feat: [dashboard] 달력에 승인된 휴가/근태 표시 기능 추가
...
- Leave 모델에서 승인된 휴가 데이터 조회
- 달력에 [연차] 홍길동 형태로 휴가 표시
- 휴가 유형별 색상 구분 (연차/반차: amber, 병가/경조사: pink, 출장/외근: blue 등)
2026-03-16 21:11:49 +09:00
김보곤
a04a10f15c
feat: [finance] 일일업무일지 기간 보기 기능 추가
...
- 시작일~종료일 설정하여 기간 내 업무일지 한번에 조회
- 데이터 없는 날짜는 자동 필터링 (작성된 일지만 표시)
- 카드형 읽기 뷰 (날짜/항목/메모/회고/달성률)
- 편집 버튼으로 단건 모드 전환 가능
2026-03-16 16:33:07 +09:00
김보곤
540ce35ec1
fix: [daily-work-log] 파일 저장 정책 준수 (docs 기준)
...
- 경로: {tenant_id}/daily-work-log/{year}/{month}/{hex}.ext 형식으로 변경
- 파일명: UUID → 64bit 난수 hex (bin2hex(random_bytes(8)))
- 최대 크기: 10MB → 20MB (file-storage-guide.md 기준)
2026-03-16 16:00:40 +09:00
김보곤
1b43000382
feat: [daily-work-log] 메모/회고 파일 업로드 기능 추가
...
- 메모, 회고 섹션에 파일 첨부 기능 추가
- 드래그앤드롭 및 클릭 업로드 지원
- 이미지 썸네일 미리보기, 파일 다운로드/삭제
- Boards\File 모델 재사용 (document_type: daily_work_log)
2026-03-16 15:56:16 +09:00
김보곤
a352fa105b
fix: [leave] 결재 승인 시 soft delete된 근태 레코드 중복 오류 수정
...
- SoftDeletes로 삭제된 Attendance 레코드가 있을 때 updateOrCreate가
기존 레코드를 찾지 못해 INSERT 시도 → unique 제약 위반 발생
- withTrashed() 추가하여 soft delete된 레코드도 조회하고 복원하도록 수정
2026-03-16 15:28:21 +09:00
김보곤
f6876cf481
fix: [sales] Alpine.js promoFreeMonths 미정의 및 closeModal 미정의 오류 수정
...
- product-selection: Alpine x-data에 promoFreeMonths 속성 추가 및 저장 데이터에 포함
- price-simulator: promoFreeMonths 속성 추가 및 resetPromo()에 초기화 추가
- DemoTenantController: HX-Boosted 제외 조건 제거하여 hx-boost 탐색 시에도 전체 페이지 로드
2026-03-16 14:54:17 +09:00
김보곤
c7c2fb1f2d
fix: [sales] 무료 체험 기간을 1주일(7일)로 변경
...
- 가격 시뮬레이터: 1/2/3/6개월 선택 → 없음/1주일 토글로 변경
- promoFreeMonths → promoFreeTrial (boolean)으로 변환
- 연 구독료 계산: 1주일분(7/30) 차감 방식 적용
- 데모 테넌트: free_months → free_trial 필드 변경
- 계약 컨트롤러: validation 규칙 업데이트
2026-03-15 11:13:07 +09:00
김보곤
27c95cb252
fix: [sales] 수당 계산 로직을 정책(시뮬레이터)과 일치시킴
...
- 유치수당률: 개인 5% / 단체 3% → 개인/단체 동일 3%로 통일
- 매니저 수당: 구독료 정액 → 개발비 × 5% (비율 기반)로 변경
- 상수 정리: DEFAULT_INDIVIDUAL/GROUP_REFERRER_RATE → DEFAULT_REFERRER_RATE 통합
- 상수 추가: DEFAULT_MANAGER_RATE = 5.00 (개인 가입만 적용)
- recalculateCommission()도 동일 로직 적용
2026-03-14 18:15:27 +09:00
김보곤
23aa38baef
feat: [sales] 영업 시나리오 상품선택에 프로모션 할인 기능 추가
...
- 개발비 할인 (비율/금액/전액면제), 구독료 할인, 무료기간, 메모
- 상품 변경 시 프로모션 최대값 자동 조절 (clampPromoValues)
- 프로모션 데이터 management options에 저장/로드
- 합계 영역에 프로모션 적용 금액, 절감액 표시
2026-03-14 16:53:13 +09:00
김보곤
2c652a7bc7
fix: [영업관리] codebridge DB 테이블 exists 검증 오류 수정
...
- tenant_prospects, tenants, sales_products 등이 codebridge DB에 있으므로
exists:테이블명 → exists:codebridge.테이블명 으로 변경
- SalesScenarioController, SalesContractController, ConsultationController,
SalesProductController 일괄 수정
2026-03-14 16:41:05 +09:00
김보곤
8bbf436a37
feat: [demo-tenant] 프로모션 설정 기능 추가
...
- 생성 모달에 프로모션 섹션 추가 (개발비 할인/면제, 구독료 할인, 무료기간)
- Alpine.js 기반 슬라이더/토글 UI, 자동 비율 조절
- options JSON에 promotion 키로 프로모션 데이터 저장
- 상세 모달에 프로모션 조건 표시
2026-03-14 16:32:42 +09:00
김보곤
9ec944f3f7
fix: [demo] addDays()에 int 캐스팅 추가 (Carbon TypeError 수정)
2026-03-14 16:22:27 +09:00
김보곤
c405f875f2
fix: [demo] findAndAuthorize 권한 로직을 index()와 일치시킴
...
- 파트너 없는 HQ 멤버(본사 직원)도 데모 상세 조회 허용
- 파트너인 경우에만 소유권 체크
2026-03-14 16:16:21 +09:00
김보곤
0df2badbdf
fix: [상품관리] 최저가 설정을 상품별로 변경
...
- 카테고리 레벨 최저가 → 상품별 최저가로 변경
- 상품 추가/수정 모달에 최저 개발비, 최저 구독료 입력 필드 추가
- 빨간 잠금 아이콘 + '절대 이 금액 이하로 내릴 수 없음' 경고 표시
- 상품 카드에 최저가 정보 표시 (설정된 경우)
2026-03-14 14:46:23 +09:00
김보곤
bd81eebf07
feat: [상품관리] 카테고리별 최저 개발비/최저 구독료 설정 기능 추가
...
- 카테고리 관리에서 최저 개발비, 최저 구독료 설정 가능
- 상품 추가/수정 시 최저가 이하 입력 차단 (서버 검증)
- 상품 목록에 최저가 안내 배너 표시 (경고 아이콘)
- 상품 모달에서 실시간 최저가 미달 경고 표시 (빨간 테두리)
2026-03-14 14:43:03 +09:00
김보곤
70f35e1e7b
feat: [demo] MNG 데모 체험 관리 페이지 추가
...
- DemoTenantController: CRUD + 연장/전환/삭제
- Blade 뷰: index, demo-list, create-modal, show-modal
- 라우트: sales/demo-tenants 그룹 등록
- 메뉴: 영업관리 하위에 '데모 체험 관리' 추가
2026-03-14 14:43:03 +09:00
김보곤
16437c542a
feat: [sales] 가격 시뮬레이터 추가
...
- 영업파트너용 상품 조합별 예상 비용/수당 실시간 시뮬레이션
- 개인/단체 가입유형별 수당률 자동 전환
- 재량권 상품 가격 슬라이더 조정 기능
- 할인율, 본사 마진율 실시간 계산
2026-03-14 14:43:03 +09:00
845ffb58b8
fix: [document-template] R2 file_id 기반 이미지 URL 수정
...
- 문서양식 섹션 이미지를 file_id 기반 R2 프록시 URL로 변경
- getSectionImageUrl, _previewImageUrl에 file_id 우선 처리 추가
- 서버사이드 Blade(print, show)도 file_id 기반 URL 생성
- DocumentTemplateSection 모델에 file_id fillable 추가
- 업로드 응답에 file_id 반환, 복제 시 file_id 복사
2026-03-13 21:51:08 +09:00
432888980b
Revert "fix: [tenant-console] 테넌트 콘솔 분리작업"
...
This reverts commit 8da1702e
2026-03-13 21:24:18 +09:00
c3bc7912dd
Revert "feat: [tenant] 컨텍스트 메뉴 테넌트 설정 + 콘솔 사이드바 DB 메뉴 적용"
...
This reverts commit cb254cf138 .
2026-03-13 21:21:21 +09:00
cb254cf138
feat: [tenant] 컨텍스트 메뉴 테넌트 설정 + 콘솔 사이드바 DB 메뉴 적용
...
- 컨텍스트 메뉴 "이 테넌트로 전환" → "테넌트 설정" (보라색, 설정 아이콘)
- context-menu.js에서 직접 window.open 처리 (openTenantConsole 의존 제거)
- 테넌트 콘솔 사이드바 하드코딩 → DB 기반 메뉴 시스템 전환
- SidebarMenuService에 getTenantMenusBySection() 추가
- AppServiceProvider에 tenant-console-sidebar View Composer 추가
2026-03-13 21:18:54 +09:00
김보곤
91d51a39a9
feat: [finance] 일일업무일지 기능 추가
...
- 마이그레이션: daily_work_logs, daily_work_log_items 테이블 생성
- 모델: DailyWorkLog, DailyWorkLogItem (멀티테넌트, SoftDeletes)
- 컨트롤러: CRUD + 완료토글 + 이전일지 복사
- 뷰: React(Babel) 기반, 날짜 화살표 네비게이션, 달성률 표시
- 라우트: finance/daily-work-log 하위 API 라우트
2026-03-13 18:10:37 +09:00
김보곤
bc72fadf2e
fix: [esign] 근로계약서 연봉계약종료연도 및 연봉 상세내역 자동반영
...
- 연봉계약 기간: salary_effective_date 없을 때 입사일 기념일 기준
현재 계약기간 산출 (직전 기념일~다음 기념일-1일)
- API 응답에 기본급, 고정연장근로수당, 식대, 월급여, 통상시급 추가
- labelMap에 기본급, 고정연장근로수당, 식대, 통상시급 패턴 추가
2026-03-13 17:59:42 +09:00
김보곤
19b3db0499
feat: [bim] BIM 생성기 메뉴 추가
...
- 방화셔터/방화문/방화댐퍼 파라메트릭 3D 설계
- 실시간 Three.js 프리뷰 + IfcProduct JSON 생성
- IFC STEP 파일 내보내기
- PMIS 사이드바에 BIM 생성기 메뉴 등록
2026-03-13 17:41:30 +09:00
김보곤
ba0824dc1d
feat: [rd] 방화셔터 BIM 뷰어 메뉴 추가
...
- Three.js 기반 파라메트릭 방화셔터 3D 모델링
- 제품타입별(철재/스크린) 기본값 및 자동 계산
- 6방향 카메라 프리셋, 개폐율/투명도 조절
- 부품별 표시 토글, 레이캐스팅 선택, 스크린샷 기능
2026-03-13 17:41:22 +09:00
8da1702e47
fix: [tenant-console] 테넌트 콘솔 분리작업
...
- 라우트 파라미터 충돌 수정 (Layer 4 확장)
- TenantScope 글로벌 스코프가 테넌트 콘솔에서 올바른 tenant_id 사용하도록 수정
- 감사로그 상세 테넌트 콘솔 레이아웃 적용
- 테넌트 전환: 모달 → 컨텍스트 메뉴로 이동, 스타일 변경 (녹색+전환아이콘)
- 테넌트 전환 이벤트를 openTenantConsole 호출로 통일
- 사이드바 스타일 메인과 통일 + 리포트 주의사항 정리
2026-03-13 10:18:23 +09:00
a077bd5710
fix: [user] forceDeleteUser에 tenant_user_profiles 삭제 추가
...
- 영구삭제 시 orphan tenant_user_profiles 방지
2026-03-13 10:16:09 +09:00
김보곤
2102f4a398
feat: [pmis] PMIS 자료실/안전관리/품질관리 기능 추가 및 개선
...
- 자료실 하위 3개 메뉴: 자료보관함, 매뉴얼, 공지사항
- 자료보관함: 폴더 트리 + 파일 업로드/다운로드/삭제
- 매뉴얼/공지사항: 게시판형 CRUD + 첨부파일
- 안전관리: 안전보건교육, TBM현황, 위험성평가, 재해예방조치
- 품질관리: 시정조치 UI 페이지
- 대시보드: 슈퍼관리자 전용 레거시 사이트 참고 카드
- 작업일보/출면일보 오류 수정 및 기능 개선
- 설비 사진 업로드, 근로계약서 종료일 수정
2026-03-12 21:11:21 +09:00
김보곤
3074e45ca9
feat: [pmis] 작업일보 6탭 CRUD 구현
...
- 마스터 + 인원/장비/자재/공사량/작업사진 6테이블 마이그레이션
- 6개 탭: 작업내용, 인원, 장비, 자재, 공사량, 작업사진
- 작업내용: 금일/명일 텍스트 + 날씨/기온/강수/미세먼지 메타
- 전일누계 + 금일 + 총계 누적 패턴 (인원/장비/자재/공사량)
- 작업사진: 파일 업로드 + 사진목록/사진정보 2단 레이아웃
- 상태별 버튼 제어 (작성중→저장/삭제, 검토중→읽기전용)
- 양식보기: 3페이지 전체화면 뷰어 (작업일보/인원장비/자재)
- 검토자 지정 모달, 캘린더 스트립, 번개 랜덤데이터
2026-03-12 17:06:23 +09:00
김보곤
6c968dbb6f
feat: [pmis] 출면일보 CRUD 구현
...
- 일별 출면일보 마스터 + 인원/장비 3테이블 마이그레이션
- 캘린더 스트립 (1~31일) 날짜 선택 및 상태 닷 표시
- 인원/장비 탭 CRUD (추가/수정/삭제/번개 랜덤데이터)
- 검토자 확인 모달 (조직도 + 검색 + 검토라인)
- 양식보기 모달 (출면일보/장비일보 인쇄 양식)
- 날씨/특이사항/상태 업데이트 API
2026-03-12 16:43:36 +09:00
김보곤
1bd5ba817a
feat: [pmis] 공사량관리 CRUD 구현
...
- pmis_work_volumes 마이그레이션/모델/컨트롤러 생성
- 공사량 탭 (등록, 수정, 삭제, 일보적용 토글)
- 실적현황 탭 (전일누계, 금일, 총계 표시)
- 공사량정보 모달 (공종, 세부공종, 단위, 설계량)
- 번개 아이콘 랜덤 데이터 추가 기능
2026-03-12 15:59:51 +09:00
김보곤
304c689c00
fix: [hr] 월 고정연장근로시간 최대값 52시간으로 제한
2026-03-12 14:39:08 +09:00