김보곤
cd84153994
feat: [rd] sales 4개 페이지 MNG 연구개발 하위 이관
...
- 경정청구 소개 (sales/Requestforcorrection → rd/correction-request)
- 바로빌 API 통합기획서 (sales/barobill → rd/barobill-plan)
- 견적서 자동기획 프로젝트 (sales/plan → rd/auto-quotation)
- 라우트/컨트롤러/메뉴 등록
2026-03-20 09:37:41 +09:00
김보곤
76f4dec2b6
refactor:[근태] 자동 결근 처리를 수동 트리거 방식으로 전환
2026-03-20 09:30:11 +09:00
김보곤
5028645731
feat: [rd] 기업신용 쿠콘 - 라우트/컨트롤러/신용분석 리포트 추가
...
sales/coocon + creditreport → MNG 이관
- 쿠콘 기업분석 + 신용분석 리포트 2개 페이지
- 라우트/컨트롤러 메소드 추가 (HX-Redirect 패턴)
- 메뉴 등록 (연구개발 > 기업신용 쿠콘)
2026-03-20 09:28:28 +09:00
김보곤
b2a256eda4
feat: [rd] 기업 분석 라이브러리 인덱스 페이지 및 라우트 추가
...
sales/company/ → MNG 이관 완료
- 인덱스(목록) 페이지 + 4개 하위 라우트
- 컨트롤러 메소드 추가 (HX-Redirect 패턴)
- 메뉴 등록 (연구개발 > 기업 분석 라이브러리)
2026-03-20 09:28:28 +09:00
김보곤
b1f95312c4
feat: [rd] 채권추심 프로세스 관리 페이지 이관
...
sales/debt/index.php를 MNG 스타일로 이관
- Blade 레이아웃 적용 (layouts.app 확장)
- Lucide 아이콘 → Remix Icon 변환
- 색상 체계 slate→gray 통일
- 라우트/컨트롤러/메뉴 추가
2026-03-20 09:28:28 +09:00
168b8ee48e
refactor: FileViewController를 presigned URL redirect 방식으로 전환
...
- 바이너리 스트리밍 프록시 → R2 presigned URL 302 redirect
- 하드코딩 X-TENANT-ID: 287 → session 기반으로 수정
- 하드코딩 API 키 폴백 제거
- presigned URL 5분 캐시 적용
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 00:36:52 +09:00
김보곤
2e2eddc6f8
fix: [finance] 분리 재설정 시 이전 분개 잔존 방지
...
- AccountLedgerController: 유효한 split ID만 표시 (고아 분리 전표 필터)
- CardTransactionSplit::saveSplits: 재분리 시 이전 split의 분개 전표도 삭제
- 운영 DB 고아 전표 2건 soft delete 완료 (JE-20251127-002/003)
2026-03-19 22:57:03 +09:00
김보곤
3135054478
fix: [finance] 계정별원장 분리 카드거래 원본 전표 중복 제외
2026-03-19 22:43:16 +09:00
김보곤
f068c96971
fix: [finance] 분리 카드거래를 개별 행으로 확장 표시
...
- 백엔드: 분리 항목을 CardTransactionSplit에서 조회하여 개별 행으로 확장
- 프론트: 분리#N 배지 추가, 각 분리 행이 자체 분개 표시
2026-03-19 22:36:56 +09:00
김보곤
140894ef9c
fix: [finance] 분리 카드거래 분개 매칭 누락 수정
...
- 분리 거래 source_key(uniqueKey|split:N) 패턴 매칭 추가
- 일반전표입력: 복수 분리 분개를 합산하여 1행으로 표시
- 계정별원장: 분리 키도 원본 카드 데이터로 매핑
2026-03-19 22:27:39 +09:00
김보곤
96e5435dc1
fix: [근태현황] soft-deleted attendance 복원 시 $fillable 제한 문제 수정
...
deleted_at이 Attendance 모델 $fillable에 없어서
updateOrCreate()에서 deleted_at=null 설정이 무시되던 근본 원인 수정.
restore() 메서드로 soft-delete 복원하도록 변경.
2026-03-19 21:55:28 +09:00
김보곤
8d448078c3
feat: [finance] 카드거래 표시 포맷 3개 화면 통일
2026-03-19 21:51:12 +09:00
김보곤
7f6d64ad95
fix: [근태현황] 승인된 휴가의 누락 attendance 레코드 자동 보정
...
승인된 휴가가 있으나 대응하는 attendance 레코드가 없는 경우,
근태 목록/통계/엑셀 조회 시 자동으로 누락된 레코드를 생성하도록
syncApprovedLeaveAttendances 메서드 추가
2026-03-19 21:47:32 +09:00
강영보
d03c7ed870
feat: [bending] 절곡품 관리 MNG 화면
...
- 기초관리: 목록(13컬럼) + 폼(기본정보 + 케이스전용 + 절곡테이블 + 이미지)
- 절곡품: 가이드레일/케이스/하단마감재 타입별 목록 + 폼
- 부품 추가(기초관리 검색 모달) + 삭제 + 수량/품명/재질 편집
- 절곡테이블 inline 편집 + 재질별 폭합 자동계산
- 작업지시서 레거시 포맷 인쇄 모달
- 원본수정 버튼 sam_item_id 직접 링크
- DB 메뉴 등록 (기초관리 + 절곡품 + 케이스 + 하단마감재)
2026-03-19 21:08:57 +09:00
김보곤
9c30cb992d
fix: [pmis] validation exists 규칙에 codebridge connection 지정
...
- exists:pmis_* → exists:codebridge.pmis_* 변경 (4개 컨트롤러, 10곳)
- 원인: 모델은 codebridge connection이지만 validation은 기본 connection(sam) 사용
2026-03-19 20:54:17 +09:00
김보곤
39a8d8e2df
refactor: [db] 모델 connection을 codebridge로 변경 + 마이그레이션 파일 전체 삭제
...
- PMIS 모델 21개 + DailyWorkLog 2개에 $connection = 'codebridge' 추가
- MNG 마이그레이션 파일 18개 전체 삭제 (API에서 관리)
- 원칙: MNG는 마이그레이션 파일을 생성하지 않고 API에서만 관리
2026-03-19 20:54:17 +09:00
김보곤
98ce23d799
fix: [barobill] 카드 동기화 SOAP 응답 파싱 수정
...
- GetCardEx2 응답 구조: CardInfo → CardEx로 수정
2026-03-19 19:18:07 +09:00
김보곤
0e2ea39328
feat: [barobill] 카드 사용내역 자동 동기화 스케줄러 추가
...
- BarobillCardSyncService: 전체/테넌트별 카드거래 자동 동기화
- SyncBarobillCardTransactions: artisan 커맨드 (barobill:sync-cards)
- 2시간마다 영업시간(08~22시) 자동 실행
- 신규 거래 자동 등록, 기존 거래 바로빌 원본 필드만 갱신 (사용자 편집 보존)
2026-03-19 19:03:57 +09:00
김보곤
d30ef14bf0
fix: [finance] 계정별원장 홈택스 분개 UNION 제거 (일반전표만 조회)
...
- 카드/홈택스 거래는 이미 일반전표에 분개되어 UNION 시 중복 발생
- hometax_invoice_journals 조회 제거
- 이월잔액 계산에서도 홈택스 부분 제거
2026-03-19 17:36:14 +09:00
김보곤
fb1bbe88ac
fix: [finance] 손익계산서 AccountCode 조회에 withoutGlobalScopes 적용 + 상세 디버그
2026-03-19 16:01:43 +09:00
김보곤
a9d3b25f28
chore: [finance] 손익계산서 디버그용 tenant_id 응답 추가 (임시)
2026-03-19 15:52:16 +09:00
김보곤
502e8c877a
feat: [finance] 손익계산서 기수 수정 + 당기/전기 토글 + 월별 보기
...
- 기수: 코드브릿지엑스 설립 2025년 기준 (1기=2025, 2기=2026)
- 당기만/당기+전기 토글 버튼
- 월별 보기 모드 (전체/개별 월 선택)
- 월별 전체: 가로 스크롤 비교 테이블
- buildSections 공통 로직 분리
2026-03-19 12:32:03 +09:00
김보곤
22a08391b2
fix: [finance] 손익계산서 sub_category를 실제 DB 값에 맞게 수정
...
- sales → sales_revenue, cost_of_sales → cogs, sga → selling_admin
- construction_cost를 매출원가(II)에 포함
- 법인세(99800)/소득세(99900)를 영업외비용에서 분리하여 IX로 이동
- 복수 sub_category 배열 지원 (sub_categories)
2026-03-19 11:38:00 +09:00
김보곤
76610b3112
feat: [finance] 계정별원장·손익계산서 메뉴 추가
...
- 계정별원장: 계정과목별 거래내역 조회, 월별소계/누계, 전표 드릴다운
- 손익계산서: 기간별 손익현황, 당기/전기 비교, 단위변환
- 일반전표+홈택스 분개 데이터 UNION ALL 통합 조회
- 회계/세무관리 메뉴에 일반전표입력과 전자세금계산서 사이 배치
2026-03-19 11:08:53 +09:00
김보곤
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