From 0e7d9460ad349b8ffa9dfdc7103613e211a5c485 Mon Sep 17 00:00:00 2001
From: Nigel Sahl <93074692+NerbFox@users.noreply.github.com>
Date: Mon, 1 Apr 2024 15:49:56 +0700
Subject: [PATCH] update: add getSum function

---
 app/src/main/java/com/example/nerbos/data/TransactionDao.kt  | 5 +++++
 .../com/example/nerbos/repository/TransactionRepository.kt   | 5 +++++
 .../com/example/nerbos/viewmodel/TransactionViewModel.kt     | 5 +++++
 3 files changed, 15 insertions(+)

diff --git a/app/src/main/java/com/example/nerbos/data/TransactionDao.kt b/app/src/main/java/com/example/nerbos/data/TransactionDao.kt
index ce1a9db..29683ae 100644
--- a/app/src/main/java/com/example/nerbos/data/TransactionDao.kt
+++ b/app/src/main/java/com/example/nerbos/data/TransactionDao.kt
@@ -8,6 +8,7 @@ import androidx.room.OnConflictStrategy
 import androidx.room.Query
 import androidx.room.Update
 import com.example.nerbos.model.Transaction
+import com.example.nerbos.model.TransactionCategory
 
 @Dao
 interface TransactionDao {
@@ -22,4 +23,8 @@ interface TransactionDao {
 
     @Delete
     suspend fun deleteTransation(transaction: Transaction)
+
+    @Query("SELECT SUM(nominal) FROM transaction_table WHERE userID = :userID AND category = :category")
+    fun getSum(userID: Int, category: TransactionCategory): LiveData<Float>
+
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nerbos/repository/TransactionRepository.kt b/app/src/main/java/com/example/nerbos/repository/TransactionRepository.kt
index 167b34a..378a6f2 100644
--- a/app/src/main/java/com/example/nerbos/repository/TransactionRepository.kt
+++ b/app/src/main/java/com/example/nerbos/repository/TransactionRepository.kt
@@ -3,6 +3,7 @@ package com.example.nerbos.repository
 import androidx.lifecycle.LiveData
 import com.example.nerbos.model.Transaction
 import com.example.nerbos.data.TransactionDao
+import com.example.nerbos.model.TransactionCategory
 import com.example.nerbos.service.Authentication
 
 class TransactionRepository(private val transactionDao: TransactionDao) {
@@ -22,4 +23,8 @@ class TransactionRepository(private val transactionDao: TransactionDao) {
     fun setReadAllDataUserId(userID: Int){
         readAllData = transactionDao.readAllData(userID)
     }
+
+    fun getSum(userID: Int, category: TransactionCategory): LiveData<Float>{
+        return transactionDao.getSum(userID, category)
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nerbos/viewmodel/TransactionViewModel.kt b/app/src/main/java/com/example/nerbos/viewmodel/TransactionViewModel.kt
index 5008192..ed27c0a 100644
--- a/app/src/main/java/com/example/nerbos/viewmodel/TransactionViewModel.kt
+++ b/app/src/main/java/com/example/nerbos/viewmodel/TransactionViewModel.kt
@@ -6,6 +6,7 @@ import androidx.lifecycle.LiveData
 import androidx.lifecycle.viewModelScope
 import com.example.nerbos.model.Transaction
 import com.example.nerbos.data.TransactionDatabase
+import com.example.nerbos.model.TransactionCategory
 import com.example.nerbos.repository.TransactionRepository
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
@@ -41,4 +42,8 @@ class TransactionViewModel(application: Application): AndroidViewModel(applicati
         repository.setReadAllDataUserId(userId)
         readAllData = repository.readAllData
     }
+
+    fun getSums(userId: Int, category: TransactionCategory): LiveData<Float>{
+        return repository.getSum(userId, category)
+    }
 }
\ No newline at end of file
-- 
GitLab