Fix budget calculation error
Fixes an issue where entering a monthly budget resulted in incorrect daily, weekly, and monthly budget calculations, leading to incorrect display on the spending and analytics screens.
This commit is contained in:
@@ -65,25 +65,27 @@ export const useBudgetState = () => {
|
||||
if (newCategoryBudgets) {
|
||||
console.log('카테고리 예산도 함께 업데이트:', newCategoryBudgets);
|
||||
|
||||
// 카테고리 예산의 합계 검증
|
||||
// 카테고리 예산의 합계 검증 - 가져온 totalBudget과 카테고리 총합이 같아야 함
|
||||
const categoryTotal = Object.values(newCategoryBudgets).reduce((sum, val) => sum + val, 0);
|
||||
console.log(`카테고리 예산 합계: ${categoryTotal}, 입력 금액: ${amount}`);
|
||||
|
||||
if (Math.abs(categoryTotal - amount) > 10) { // 반올림 오차 허용
|
||||
console.warn('카테고리 예산 합계와 전체 예산이 일치하지 않음. 전체 예산을 기준으로 조정합니다.');
|
||||
// 금액이 카테고리 합계와 다르면 로그 기록 (허용 오차 ±10)
|
||||
if (Math.abs(categoryTotal - amount) > 10) {
|
||||
console.warn('카테고리 예산 합계와 총 예산이 일치하지 않음 - 카테고리 합계를 사용함');
|
||||
// 카테고리 합계를 기준으로 예산 설정
|
||||
amount = categoryTotal;
|
||||
}
|
||||
|
||||
// 카테고리 예산 상태 업데이트
|
||||
// 카테고리 예산 저장
|
||||
updateCategoryBudgets(newCategoryBudgets);
|
||||
|
||||
// 로컬 스토리지에 직접 저장
|
||||
saveCategoryBudgetsToStorage(newCategoryBudgets);
|
||||
console.log('카테고리 예산 저장 완료');
|
||||
}
|
||||
|
||||
// 예산 목표 업데이트 (카테고리 예산이 없는 경우에도 실행)
|
||||
handleBudgetGoalUpdate(type, amount);
|
||||
console.log('예산 업데이트 완료');
|
||||
// 항상 월간 타입으로 예산 업데이트 (BudgetTabContent에서는 항상 월간 예산을 전달)
|
||||
handleBudgetGoalUpdate('monthly', amount);
|
||||
console.log('예산 데이터 업데이트 완료');
|
||||
|
||||
} catch (error) {
|
||||
console.error('예산 업데이트 오류:', error);
|
||||
toast({
|
||||
|
||||
Reference in New Issue
Block a user