diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/AddTransactionsFragment.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/AddTransactionsFragment.kt index 4d43062e817e1c77f68134b666ed071007fe3c69..52f644281cc1e4af9b8e40ab573ac10582b5d75c 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/AddTransactionsFragment.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/AddTransactionsFragment.kt @@ -9,6 +9,7 @@ import android.widget.ArrayAdapter import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import com.example.bondoyap.databinding.FragmentAddTransactionsBinding +import java.util.Date class AddTransactionsFragment : Fragment() { @@ -49,7 +50,8 @@ class AddTransactionsFragment : Fragment() { val transaction: Transactions = Transactions( judul = binding.editTextJudul.text.toString(), nominal = binding.editTextNominal.text.toString().toDouble(), - isPemasukan = isPemasukan + isPemasukan = isPemasukan, + tanggal = Date().toString() ) transactionsViewModel.upsert(transaction) diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt index 9ca1bc7c70e3a2fc21a5fdc169fc8c62b9e80476..1a02e7560ea38d381079e543129dccd6b82b9c3b 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt @@ -37,6 +37,8 @@ class EditTransactionsFragment : Fragment() { ): View { _binding = FragmentEditTransactionsBinding.inflate(inflater, container, false) + var tanggal: String = "" + val pemasukan = "Pemasukan" val pengeluaran = "Pengeluaran" @@ -46,6 +48,8 @@ class EditTransactionsFragment : Fragment() { adapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item) binding.spinnerKategori.adapter = adapter + binding.spinnerKategori.isEnabled = false + val transactionId: Int = arguments?.getInt("transaction_id") ?: -1 CoroutineScope(Main).launch { @@ -61,6 +65,8 @@ class EditTransactionsFragment : Fragment() { binding.spinnerKategori.setSelection(categories.indexOf(pengeluaran)) } + tanggal = originalTransaction.tanggal + } binding.buttonSimpan.setOnClickListener { @@ -73,6 +79,7 @@ class EditTransactionsFragment : Fragment() { judul = binding.editTextJudul.text.toString(), nominal = binding.editTextNominal.text.toString().toDouble(), isPemasukan = isPemasukan, + tanggal = tanggal, id = transactionId ) @@ -89,15 +96,11 @@ class EditTransactionsFragment : Fragment() { } binding.buttonHapus.setOnClickListener { - val isPemasukan: Boolean = when (binding.spinnerKategori.selectedItem.toString()) { - pemasukan -> true - else -> false - } - val transaction: Transactions = Transactions( - judul = binding.editTextJudul.text.toString(), - nominal = binding.editTextNominal.text.toString().toDouble(), - isPemasukan = isPemasukan, + judul = "", + nominal = 0.0, + isPemasukan = false, + tanggal = "", id = transactionId ) diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/Transactions.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/Transactions.kt index 152e4636c4a171aecc4e5ee1c76438ab253c8e97..c5e55dd1edfcd9ce3f0b704610a1bdb256e2ffbd 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/Transactions.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/Transactions.kt @@ -15,6 +15,12 @@ data class Transactions( @ColumnInfo(name = "is_pemasukan") val isPemasukan: Boolean, + @ColumnInfo(name = "tanggal") + val tanggal: String, + + @ColumnInfo(name = "lokasi") + val lokasi: String = "", + @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") val id: Int = 0 diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsRoomDatabase.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsRoomDatabase.kt index 7785d489a5e8005ec795881e8ac81aa79c940d2a..b5e530fdd2363d8ca3ad5e4c0dcbea8db70df86b 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsRoomDatabase.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsRoomDatabase.kt @@ -4,10 +4,12 @@ import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase +import androidx.room.migration.Migration +import androidx.sqlite.db.SupportSQLiteDatabase @Database( entities = [Transactions::class], - version = 1, + version = 2, exportSchema = false ) public abstract class TransactionsRoomDatabase: RoomDatabase() { @@ -24,10 +26,29 @@ public abstract class TransactionsRoomDatabase: RoomDatabase() { context.applicationContext, TransactionsRoomDatabase::class.java, "transactions_database" - ).build() + ).addMigrations(MIGRATION_1_2). + build() INSTANCE = instance instance } } + private val MIGRATION_1_2: Migration = object : Migration(1, 2) { + override fun migrate(db: SupportSQLiteDatabase) { + db.execSQL("CREATE TABLE IF NOT EXISTS `transactions_new` " + + "(`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + + "`judul` TEXT NOT NULL, " + + "`nominal` REAL NOT NULL, " + + "`is_pemasukan` INTEGER NOT NULL, " + + "`tanggal` TEXT NOT NULL, " + + "`lokasi` TEXT NOT NULL)") + + db.execSQL("INSERT INTO transactions_new (id, judul, nominal, is_pemasukan) " + + "SELECT id, judul, nominal, is_pemasukan FROM transactions") + + db.execSQL("DROP TABLE transactions") + + db.execSQL("ALTER TABLE transactions_new RENAME TO transactions") + } + } } } \ No newline at end of file