diff --git a/app/src/main/java/com/example/shiftalarm/FragmentSettingsLab.kt b/app/src/main/java/com/example/shiftalarm/FragmentSettingsLab.kt index d427e35..03ab9da 100644 --- a/app/src/main/java/com/example/shiftalarm/FragmentSettingsLab.kt +++ b/app/src/main/java/com/example/shiftalarm/FragmentSettingsLab.kt @@ -55,23 +55,23 @@ class FragmentSettingsLab : Fragment() { } } - private fun setupSaveButton() { - binding.btnSaveAnnualLeave.setOnClickListener { - val totalDays = binding.npTotalDays.value.toFloat() - - lifecycleScope.launch { - val repo = ShiftRepository(requireContext()) - - repo.recalculateAndSaveAnnualLeave(totalDays) - - val updated = repo.getAnnualLeave() - updated?.let { - binding.tvRemainingDays.text = String.format("%.1f", it.remainingDays) - Toast.makeText(requireContext(), "연차가 저장되었습니다. (남은 연차: ${String.format("%.1f", it.remainingDays)}일)", Toast.LENGTH_SHORT).show() - } - } - } - } + private fun setupSaveButton() { + binding.btnSaveAnnualLeave.setOnClickListener { + val totalDays = binding.npTotalDays.value.toFloat() + + lifecycleScope.launch { + val repo = ShiftRepository(requireContext()) + + repo.recalculateAndSaveAnnualLeave(totalDays) + + val updated = repo.getAnnualLeave() + updated?.let { + binding.tvRemainingDays.text = String.format("%.1f", it.remainingDays) + showCustomToast(requireContext(), "연차가 저장되었습니다. (남은 연차: ${String.format("%.1f", it.remainingDays)}일)") + } + } + } + } override fun onDestroyView() { super.onDestroyView() diff --git a/app/src/main/java/com/example/shiftalarm/ShiftRepository.kt b/app/src/main/java/com/example/shiftalarm/ShiftRepository.kt index 12c29a0..e401d88 100644 --- a/app/src/main/java/com/example/shiftalarm/ShiftRepository.kt +++ b/app/src/main/java/com/example/shiftalarm/ShiftRepository.kt @@ -58,24 +58,24 @@ class ShiftRepository(private val context: Context) { dao.clearCustomAlarms() } - // Annual Leave - suspend fun calculateUsedAnnualLeave(): Float = withContext(Dispatchers.IO) { - val currentYear = java.time.Year.now().toString() - val overrides = dao.getAllOverrides() - - var usedDays = 0f - - for (override in overrides) { - if (override.date.startsWith(currentYear)) { - when (override.shift) { - "연차" -> usedDays += 1f - "반년" -> usedDays += 0.5f - } - } - } - - usedDays - } + // Annual Leave + suspend fun calculateUsedAnnualLeave(): Float = withContext(Dispatchers.IO) { + val currentYear = java.time.Year.now(java.time.ZoneId.of("Asia/Seoul")).toString() + val overrides = dao.getAllOverrides() + + var usedDays = 0f + + for (override in overrides) { + if (override.date.startsWith(currentYear)) { + when (override.shift) { + "연차" -> usedDays += 1f + "반년" -> usedDays += 0.5f + } + } + } + + usedDays + } suspend fun getAnnualLeave(): AnnualLeave? = withContext(Dispatchers.IO) { dao.getAnnualLeave()