homVM
This commit is contained in:
@@ -24,7 +24,6 @@ import kotlinx.coroutines.launch
|
|||||||
import kotlinx.coroutines.tasks.await
|
import kotlinx.coroutines.tasks.await
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
import java.time.LocalTime
|
|
||||||
import java.time.format.DateTimeFormatter
|
import java.time.format.DateTimeFormatter
|
||||||
import java.time.temporal.ChronoUnit
|
import java.time.temporal.ChronoUnit
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
@@ -329,11 +328,10 @@ class HomeViewModel @Inject constructor(
|
|||||||
try {
|
try {
|
||||||
val checkOutTime = formatTimestamp(Timestamp.now())
|
val checkOutTime = formatTimestamp(Timestamp.now())
|
||||||
document.reference.update("checkOut$checkInCount", checkOutTime).await()
|
document.reference.update("checkOut$checkInCount", checkOutTime).await()
|
||||||
|
|
||||||
val updatedDocument = document.reference.get().await()
|
val updatedDocument = document.reference.get().await()
|
||||||
val cloudTime = document.getString("totalWork") ?: "00:00:00"
|
val totalWork = calculateTotalWork(updatedDocument)
|
||||||
val totalWork = calculateTotalWork(updatedDocument,cloudTime)
|
document.reference.update("totalWork", totalWork.first).await()
|
||||||
document.reference.update("totalWork", totalWork).await()
|
document.reference.update("DayCompleted", totalWork.second).await()
|
||||||
_uiState.update {
|
_uiState.update {
|
||||||
it.copy(
|
it.copy(
|
||||||
isCheckedOut = true, qrCodeValue = null
|
isCheckedOut = true, qrCodeValue = null
|
||||||
@@ -345,16 +343,12 @@ class HomeViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun calculateTotalWork(document: DocumentSnapshot,cloudTimestamp: String): String {
|
private fun calculateTotalWork(document: DocumentSnapshot): Pair<String,Boolean> {
|
||||||
val formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy hh:mm:ss a", Locale.getDefault())
|
val formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy hh:mm:ss a", Locale.getDefault())
|
||||||
val formatterTime = DateTimeFormatter.ofPattern("hh:mm:ss")
|
var totalMinutes = 0L
|
||||||
val givenTimeFromCloud = LocalTime.parse(cloudTimestamp, formatterTime)
|
for (i in 1..20) {
|
||||||
val finalTime =givenTimeFromCloud.minute.toLong()
|
|
||||||
var totalMinutes = finalTime
|
|
||||||
for (i in 1..10) {
|
|
||||||
val checkIn = document.getString("checkIn$i") ?: break
|
val checkIn = document.getString("checkIn$i") ?: break
|
||||||
val checkOut = document.getString("checkOut$i") ?: continue
|
val checkOut = document.getString("checkOut$i") ?: continue
|
||||||
|
|
||||||
val checkInTime = LocalDateTime.parse(checkIn, formatter)
|
val checkInTime = LocalDateTime.parse(checkIn, formatter)
|
||||||
val checkOutTime = LocalDateTime.parse(checkOut, formatter)
|
val checkOutTime = LocalDateTime.parse(checkOut, formatter)
|
||||||
totalMinutes += ChronoUnit.MINUTES.between(checkInTime, checkOutTime)
|
totalMinutes += ChronoUnit.MINUTES.between(checkInTime, checkOutTime)
|
||||||
@@ -362,7 +356,8 @@ class HomeViewModel @Inject constructor(
|
|||||||
|
|
||||||
val hours = totalMinutes / 60
|
val hours = totalMinutes / 60
|
||||||
val minutes = totalMinutes % 60
|
val minutes = totalMinutes % 60
|
||||||
return String.format("%02d:%02d:00", hours, minutes)
|
val isDayCompleted = totalMinutes >=420L
|
||||||
|
return Pair(String.format("%02d:%02d:00", hours, minutes),isDayCompleted)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user