diff --git a/app/src/main/java/com/example/transactionapp/domain/db/model/Transaction.kt b/app/src/main/java/com/example/transactionapp/domain/db/model/Transaction.kt
index 192c131d05169867e674fab2bd21c4736feb93d3..163ab5a173571aabf740087a71679096a03498e1 100644
--- a/app/src/main/java/com/example/transactionapp/domain/db/model/Transaction.kt
+++ b/app/src/main/java/com/example/transactionapp/domain/db/model/Transaction.kt
@@ -12,5 +12,7 @@ data class Transaction(
     val category: String,
     val nominal: Long,
     val location: String,
+    val lat: Double,
+    val long: Double,
     val createdAt: Date
 )
diff --git a/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/MainActivity.kt b/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/MainActivity.kt
index 9592fed3b9518fa312a2af18bd32a6f91429d3e3..26ae51f0e36d2bdb28fe5254fa25a90c6e7182ba 100644
--- a/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/MainActivity.kt
+++ b/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/MainActivity.kt
@@ -23,6 +23,7 @@ import com.example.transactionapp.ui.screen.mainmenu.fragment.Settings
 import com.example.transactionapp.ui.screen.mainmenu.fragment.Statistics
 import com.example.transactionapp.ui.screen.mainmenu.fragment.Transaction
 import com.example.transactionapp.ui.screen.mainmenu.fragment.TransactionForm
+import com.example.transactionapp.ui.viewmodel.location.LocationModel
 import com.example.transactionapp.ui.viewmodel.location.LocationViewModel
 import com.example.transactionapp.ui.viewmodel.transaction.TransactionViewModel
 import com.google.android.gms.location.FusedLocationProviderClient
@@ -185,7 +186,11 @@ class MainActivity : AppCompatActivity() {
         override fun onLocationResult(locationResult: LocationResult) {
             var lastLocation: Location? = locationResult.lastLocation
             if (lastLocation != null) {
-                locationViewModel.setLocation(getCityName(lastLocation.latitude, lastLocation.longitude))
+                locationViewModel.setLocation(LocationModel(
+                    locationName = getCityName(lastLocation.latitude, lastLocation.longitude),
+                    latitude = lastLocation.latitude,
+                    longitude = lastLocation.longitude
+                ))
             }
         }
     }
diff --git a/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/fragment/Scan.kt b/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/fragment/Scan.kt
index d0a95efe953749ea4c2133238e4b1fb3d7ecce99..706003a4a3cba3c535fecd4ccd724a7287fe05ef 100644
--- a/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/fragment/Scan.kt
+++ b/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/fragment/Scan.kt
@@ -35,6 +35,7 @@ import com.example.transactionapp.databinding.FragmentScanBinding
 import com.example.transactionapp.databinding.FragmentTransactionBinding
 import com.example.transactionapp.domain.db.model.Transaction
 import com.example.transactionapp.ui.viewmodel.auth.Auth
+import com.example.transactionapp.ui.viewmodel.location.LocationModel
 import com.example.transactionapp.ui.viewmodel.location.LocationViewModel
 import com.example.transactionapp.ui.viewmodel.model.BillResponseSealed
 import com.example.transactionapp.ui.viewmodel.transaction.TransactionViewModel
@@ -113,7 +114,7 @@ class Scan : Fragment() {
             when (val data = billValue) {
                 is BillResponseSealed.Success -> {
 
-                    var locationValue = ""
+                    var locationValue: LocationModel? = null
                     locationViewModel.location.observe(requireActivity()){ locationLambda ->
                         locationValue = locationLambda
                     }
@@ -124,7 +125,9 @@ class Scan : Fragment() {
                             nominal = it.price.toLong() * 12000L,
                             category = "Expense",
                             createdAt = Date(),
-                            location = locationValue
+                            location = locationValue!!.locationName,
+                            lat = locationValue!!.latitude,
+                            long = locationValue!!.longitude
                         )
                         if (!billList.contains(transaction)) {
                             billList.add(transaction)
diff --git a/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/fragment/TransactionForm.kt b/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/fragment/TransactionForm.kt
index aa11482d6c48492a63daf3d1664c601bb70bcc70..011e06630887a781ed26f55eb32c5dcaf1701c18 100644
--- a/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/fragment/TransactionForm.kt
+++ b/app/src/main/java/com/example/transactionapp/ui/screen/mainmenu/fragment/TransactionForm.kt
@@ -28,6 +28,7 @@ import com.example.transactionapp.R
 import com.example.transactionapp.databinding.FragmentTransactionFormBinding
 import com.example.transactionapp.domain.db.model.Transaction
 import com.example.transactionapp.helper.GetRandomData
+import com.example.transactionapp.ui.viewmodel.location.LocationModel
 import com.example.transactionapp.ui.viewmodel.location.LocationViewModel
 import com.example.transactionapp.ui.viewmodel.transaction.TransactionViewModel
 import com.example.transactionapp.utils.changeDateTypeToStandardDateLocal
@@ -39,6 +40,7 @@ import dagger.hilt.android.AndroidEntryPoint
 import kotlinx.coroutines.DelicateCoroutinesApi
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
 import java.util.Date
@@ -51,6 +53,7 @@ class TransactionForm : Fragment() {
     private val locationViewModel: LocationViewModel by activityViewModels()
     private lateinit var receiver: BroadcastReceiver
     private val getRandomData = GetRandomData()
+    private val locationData = MutableStateFlow<LocationModel?>(null)
 
     @RequiresApi(Build.VERSION_CODES.S)
     override fun onCreateView(
@@ -84,7 +87,8 @@ class TransactionForm : Fragment() {
         binding.dateInput.text = changeDateTypeToStandardDateLocal(Date())
 
         locationViewModel.location.observe(viewLifecycleOwner){
-            binding.locationInput.text = it
+            binding.locationInput.text = it.locationName
+            locationData.value = it
         }
 
 
@@ -105,7 +109,9 @@ class TransactionForm : Fragment() {
                         category = binding.categoryInput.selectedItem.toString(),
                         nominal = binding.amountInput.text.toString().toLong(),
                         createdAt = Date(),
-                        location = binding.locationInput.text.toString()
+                        location = binding.locationInput.text.toString(),
+                        lat = locationData.value?.latitude?:0.0,
+                        long = locationData.value?.longitude?:0.0,
                     )
                 )
                 db.changeAddStatus(true)
@@ -185,7 +191,11 @@ class TransactionForm : Fragment() {
         override fun onLocationResult(locationResult: LocationResult) {
             var lastLocation: Location? = locationResult.lastLocation
             if (lastLocation != null) {
-                locationViewModel.setLocation(getCityName(lastLocation.latitude, lastLocation.longitude))
+                locationViewModel.setLocation(LocationModel(
+                    locationName = getCityName(lastLocation.latitude, lastLocation.longitude),
+                    latitude = lastLocation.latitude,
+                    longitude = lastLocation.longitude
+                ))
             }
         }
     }
diff --git a/app/src/main/java/com/example/transactionapp/ui/viewmodel/location/LocationViewModel.kt b/app/src/main/java/com/example/transactionapp/ui/viewmodel/location/LocationViewModel.kt
index bc8380909f4fdc31897f6cad7124c7e75218f39e..31da080d4ada7ce958ea5c7068b57cbc5e10b919 100644
--- a/app/src/main/java/com/example/transactionapp/ui/viewmodel/location/LocationViewModel.kt
+++ b/app/src/main/java/com/example/transactionapp/ui/viewmodel/location/LocationViewModel.kt
@@ -3,13 +3,19 @@ package com.example.transactionapp.ui.viewmodel.location
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 
+data class LocationModel(
+    val locationName: String,
+    val latitude: Double,
+    val longitude: Double
+)
+
 class LocationViewModel: ViewModel() {
-    private val _location = MutableLiveData<String>()
+    private val _location = MutableLiveData<LocationModel>()
 
-    val location: MutableLiveData<String>
+    val location: MutableLiveData<LocationModel>
         get() = _location
 
-    fun setLocation(location: String){
+    fun setLocation(location: LocationModel){
         _location.postValue(location)
     }
 
diff --git a/app/src/main/java/com/example/transactionapp/ui/viewmodel/transaction/Transaction.kt b/app/src/main/java/com/example/transactionapp/ui/viewmodel/transaction/Transaction.kt
index d659de4cbfba44a2f1f726bbbaffce41fbf60949..34f2444d6b5f6755a68108d24c4316eaa6745919 100644
--- a/app/src/main/java/com/example/transactionapp/ui/viewmodel/transaction/Transaction.kt
+++ b/app/src/main/java/com/example/transactionapp/ui/viewmodel/transaction/Transaction.kt
@@ -86,7 +86,9 @@ class TransactionViewModel @Inject constructor(
                     category = "Expense",
                     nominal = it.nominal,
                     location = it.location,
-                    createdAt = Date()
+                    createdAt = Date(),
+                    lat = it.lat,
+                    long = it.long
                 )
                 transactionDatabaseRepoImpl.insertTransaction(transaction)
             }
@@ -120,6 +122,7 @@ class TransactionViewModel @Inject constructor(
 
             _transaction.postValue(response)
             response.forEach {
+                Log.d("TransactionViewModel", "getTransactions: ${it}")
                 if(it.category == "Expense"){
                     sum -= it.nominal
                 }