Files
sam-react-prod/src/components/organisms/LineItemsTable/calculations.ts
유병철 8f4a7ee842 refactor(WEB): CEO 대시보드 대규모 개선 및 문서/권한/스토어 리팩토링
- CEO 대시보드: 섹션별 API 연동 강화 (매출/매입/생산 실데이터 표시)
- DashboardSettingsDialog 드래그 정렬 및 설정 UX 개선
- dashboard transformers 모듈 분리 (파일 분할)
- DocumentTable/DocumentWrapper 공통 문서 컴포넌트 추출
- LineItemsTable organisms 컴포넌트 추가
- PurchaseOrderDocument/InspectionRequestDocument 문서 컴포넌트 리팩토링
- PermissionContext → permissionStore(Zustand) 전환
- useUIStore, stores/utils/userStorage 추가
- favoritesStore/useTableColumnStore 사용자별 저장 지원
- DepositDetail/WithdrawalDetail 삭제 (통합)
- PurchaseDetail/SalesDetail 간소화
- amount.ts/formatters.ts 유틸 확장

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:59:25 +09:00

34 lines
866 B
TypeScript

/**
* 품목 테이블 금액 계산 유틸리티
*/
const DEFAULT_TAX_RATE = 0.1;
/**
* 공급가액 계산
*/
export function calcSupplyAmount(quantity: number, unitPrice: number): number {
return quantity * unitPrice;
}
/**
* 부가세 계산 (공급가액의 10%, 소수점 내림)
*/
export function calcVat(supplyAmount: number, taxRate: number = DEFAULT_TAX_RATE): number {
return Math.floor(supplyAmount * taxRate);
}
/**
* 수량 또는 단가 변경 시 공급가액 + 부가세 자동 재계산
* @returns { supplyAmount, vat } 계산된 값
*/
export function recalculate(
quantity: number,
unitPrice: number,
taxRate: number = DEFAULT_TAX_RATE,
): { supplyAmount: number; vat: number } {
const supplyAmount = calcSupplyAmount(quantity, unitPrice);
const vat = calcVat(supplyAmount, taxRate);
return { supplyAmount, vat };
}