Commit Graph

1277 Commits

Author SHA1 Message Date
김보곤
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
김보곤
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