feat(stock): 포트폴리오 매입가/평균단가 분리 + 총 매입 금액 반영
- 기존 카드의 "매입가" → "평균단가" (avg_price) 로 라벨 변경 - 신규 "매입가" (purchase_price) 컬럼 추가. 추가/수정 폼에 입력 필드 노출 (미입력 시 평균단가 값으로 자동 설정) - 브로커별 총 매입 금액은 purchase_price × quantity 합계 기준 - 손익/수익률은 평균단가(avg_price) 기준 유지 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -96,7 +96,7 @@ const PortfolioTab = ({ pf, asset, handleSell, handleSaveSnapshot }) => (
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
평균 매입가 (원)
|
||||
평균단가 (원)
|
||||
<input
|
||||
type="number"
|
||||
min={0}
|
||||
@@ -108,6 +108,19 @@ const PortfolioTab = ({ pf, asset, handleSell, handleSaveSnapshot }) => (
|
||||
required
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
매입가 (원)
|
||||
<input
|
||||
type="number"
|
||||
min={0}
|
||||
step={1}
|
||||
value={pf.addForm.purchase_price}
|
||||
onChange={(e) =>
|
||||
pf.setAddForm((p) => ({ ...p, purchase_price: e.target.value }))
|
||||
}
|
||||
placeholder="미입력 시 평균단가로 자동 설정"
|
||||
/>
|
||||
</label>
|
||||
<button
|
||||
className="button primary"
|
||||
type="submit"
|
||||
@@ -435,7 +448,7 @@ const PortfolioTab = ({ pf, asset, handleSell, handleSaveSnapshot }) => (
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
평균매입가
|
||||
평균단가
|
||||
<input
|
||||
type="number"
|
||||
min={0}
|
||||
@@ -448,6 +461,20 @@ const PortfolioTab = ({ pf, asset, handleSell, handleSaveSnapshot }) => (
|
||||
}
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
매입가
|
||||
<input
|
||||
type="number"
|
||||
min={0}
|
||||
value={pf.editForm.purchase_price ?? ''}
|
||||
onChange={(e) =>
|
||||
pf.setEditForm((p) => ({
|
||||
...p,
|
||||
purchase_price: Number(e.target.value),
|
||||
}))
|
||||
}
|
||||
/>
|
||||
</label>
|
||||
</div>
|
||||
<div className="pf-edit-actions">
|
||||
<button
|
||||
@@ -480,9 +507,13 @@ const PortfolioTab = ({ pf, asset, handleSell, handleSaveSnapshot }) => (
|
||||
<strong>{formatNumber(item.quantity)}</strong>
|
||||
</div>
|
||||
<div className="stock-holdings__metric">
|
||||
<span>매입가</span>
|
||||
<span>평균단가</span>
|
||||
<strong>{formatNumber(item.avg_price)}</strong>
|
||||
</div>
|
||||
<div className="stock-holdings__metric">
|
||||
<span>매입가</span>
|
||||
<strong>{formatNumber(item.purchase_price ?? item.avg_price)}</strong>
|
||||
</div>
|
||||
<div className="stock-holdings__metric">
|
||||
<span>현재가</span>
|
||||
<strong className={item.current_price == null ? 'pf-null-price' : ''}>
|
||||
|
||||
Reference in New Issue
Block a user