Files
sam-react-prod/src/components/pricing/PricingFinalizeDialog.tsx
유병철 f344dc7d00 refactor(WEB): 회계/견적/설정/생산 등 전반적 코드 개선 및 공통화 2차
- 회계 모듈 전면 개선: 청구/입금/출금/매입/매출/세금계산서/일반전표/거래처원장 등
- 견적 모듈 금액 포맷/할인/수식/미리보기 등 코드 정리
- 설정 모듈: 계정관리/직급/직책/권한 상세 간소화
- 생산 모듈: 작업지시서/작업자화면/검수 문서 코드 정리
- UniversalListPage 엑셀 다운로드 및 필터 기능 확장
- 대시보드/게시판/수주 등 날짜 유틸 공통화 적용
- claudedocs 문서 인덱스 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:45:47 +09:00

96 lines
2.7 KiB
TypeScript

/**
* 단가 최종 확정 다이얼로그
*/
'use client';
import {
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
} from '@/components/ui/dialog';
import { Button } from '@/components/ui/button';
import { Lock, CheckCircle2 } from 'lucide-react';
import { formatNumber } from '@/lib/utils/amount';
interface PricingFinalizeDialogProps {
open: boolean;
onOpenChange: (open: boolean) => void;
onConfirm: () => void;
itemName: string;
purchasePrice?: number;
salesPrice?: number;
marginRate?: number;
}
export function PricingFinalizeDialog({
open,
onOpenChange,
onConfirm,
itemName,
purchasePrice,
salesPrice,
marginRate,
}: PricingFinalizeDialogProps) {
return (
<Dialog open={open} onOpenChange={onOpenChange}>
<DialogContent>
<DialogHeader>
<DialogTitle className="flex items-center gap-2">
<Lock className="h-5 w-5 text-purple-600" />
</DialogTitle>
<DialogDescription>
? .
</DialogDescription>
</DialogHeader>
<div className="py-4">
<div className="bg-purple-50 border border-purple-200 rounded-lg p-4 space-y-2 text-sm">
<div className="flex justify-between">
<span className="text-muted-foreground">:</span>
<span className="font-semibold">{itemName}</span>
</div>
<div className="flex justify-between">
<span className="text-muted-foreground">:</span>
<span className="font-semibold">
{formatNumber(purchasePrice)}
</span>
</div>
<div className="flex justify-between">
<span className="text-muted-foreground">:</span>
<span className="font-semibold">
{formatNumber(salesPrice)}
</span>
</div>
<div className="flex justify-between">
<span className="text-muted-foreground">:</span>
<span className="font-semibold">
{marginRate?.toFixed(1) || '-'}%
</span>
</div>
</div>
</div>
<DialogFooter>
<Button variant="outline" onClick={() => onOpenChange(false)}>
</Button>
<Button
onClick={onConfirm}
className="bg-purple-600 hover:bg-purple-700"
>
<CheckCircle2 className="h-4 w-4 mr-2" />
</Button>
</DialogFooter>
</DialogContent>
</Dialog>
);
}
export default PricingFinalizeDialog;