mirror of
https://github.com/hmalik144/Farmr.git
synced 2026-01-31 02:41:49 +00:00
- mid commit
This commit is contained in:
@@ -7,6 +7,7 @@ import androidx.room.RoomDatabase
|
|||||||
import androidx.room.TypeConverters
|
import androidx.room.TypeConverters
|
||||||
import androidx.room.migration.Migration
|
import androidx.room.migration.Migration
|
||||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||||
|
import com.appttude.h_mal.farmr.data.legacydb.ShiftsContract
|
||||||
import com.appttude.h_mal.farmr.data.legacydb.ShiftsDbHelper
|
import com.appttude.h_mal.farmr.data.legacydb.ShiftsDbHelper
|
||||||
import com.appttude.h_mal.farmr.data.legacydb.ShiftsDbHelper.Companion.DATABASE_NAME
|
import com.appttude.h_mal.farmr.data.legacydb.ShiftsDbHelper.Companion.DATABASE_NAME
|
||||||
import com.appttude.h_mal.farmr.data.room.converters.DateConverter
|
import com.appttude.h_mal.farmr.data.room.converters.DateConverter
|
||||||
@@ -14,6 +15,7 @@ import com.appttude.h_mal.farmr.data.room.converters.TimeConverter
|
|||||||
import com.appttude.h_mal.farmr.data.room.entity.ShiftEntity
|
import com.appttude.h_mal.farmr.data.room.entity.ShiftEntity
|
||||||
import com.appttude.h_mal.farmr.data.room.migrations.MIGRATION_4_5
|
import com.appttude.h_mal.farmr.data.room.migrations.MIGRATION_4_5
|
||||||
|
|
||||||
|
const val ROOM_DATABASE = "room_${ShiftsContract.ShiftsEntry.TABLE_NAME}"
|
||||||
@Database(
|
@Database(
|
||||||
entities = [ShiftEntity::class],
|
entities = [ShiftEntity::class],
|
||||||
version = 5,
|
version = 5,
|
||||||
|
|||||||
@@ -20,18 +20,18 @@ interface ShiftDao {
|
|||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
fun upsertListOfFullShift(items: List<ShiftEntity>)
|
fun upsertListOfFullShift(items: List<ShiftEntity>)
|
||||||
|
|
||||||
@Query("SELECT * FROM shifts WHERE ${ShiftsEntry._ID} = :shiftId LIMIT 1")
|
@Query("SELECT * FROM $ROOM_DATABASE WHERE ${ShiftsEntry._ID} = :shiftId LIMIT 1")
|
||||||
fun getCurrentFullShift(shiftId: Long): LiveData<ShiftEntity>
|
fun getCurrentFullShift(shiftId: Long): LiveData<ShiftEntity>
|
||||||
|
|
||||||
@Query("SELECT * FROM shifts WHERE ${ShiftsEntry._ID} = :shiftId LIMIT 1")
|
@Query("SELECT * FROM $ROOM_DATABASE WHERE ${ShiftsEntry._ID} = :shiftId LIMIT 1")
|
||||||
fun getCurrentFullShiftSingle(shiftId: Long): ShiftEntity?
|
fun getCurrentFullShiftSingle(shiftId: Long): ShiftEntity?
|
||||||
|
|
||||||
@Query("SELECT * FROM shifts")
|
@Query("SELECT * FROM $ROOM_DATABASE")
|
||||||
fun getAllFullShift(): LiveData<List<ShiftEntity>>
|
fun getAllFullShift(): LiveData<List<ShiftEntity>>
|
||||||
|
|
||||||
@Query("DELETE FROM shifts WHERE ${ShiftsEntry._ID} = :shiftId")
|
@Query("DELETE FROM $ROOM_DATABASE WHERE ${ShiftsEntry._ID} = :shiftId")
|
||||||
fun deleteShift(shiftId: Long): Int
|
fun deleteShift(shiftId: Long): Int
|
||||||
|
|
||||||
@Query("DELETE FROM shifts")
|
@Query("DELETE FROM $ROOM_DATABASE")
|
||||||
fun deleteAllShifts(): Int
|
fun deleteAllShifts(): Int
|
||||||
}
|
}
|
||||||
@@ -6,23 +6,24 @@ import androidx.room.PrimaryKey
|
|||||||
import com.appttude.h_mal.farmr.data.legacydb.ShiftObject
|
import com.appttude.h_mal.farmr.data.legacydb.ShiftObject
|
||||||
import com.appttude.h_mal.farmr.data.legacydb.ShiftsContract.ShiftsEntry
|
import com.appttude.h_mal.farmr.data.legacydb.ShiftsContract.ShiftsEntry
|
||||||
import com.appttude.h_mal.farmr.data.legacydb.ShiftsContract.ShiftsEntry.TABLE_NAME
|
import com.appttude.h_mal.farmr.data.legacydb.ShiftsContract.ShiftsEntry.TABLE_NAME
|
||||||
|
import com.appttude.h_mal.farmr.data.room.ROOM_DATABASE
|
||||||
import com.appttude.h_mal.farmr.model.ShiftType
|
import com.appttude.h_mal.farmr.model.ShiftType
|
||||||
import java.sql.Date
|
import java.sql.Date
|
||||||
import java.sql.Time
|
import java.sql.Time
|
||||||
|
|
||||||
|
|
||||||
@Entity(tableName = TABLE_NAME)
|
@Entity(tableName = ROOM_DATABASE)
|
||||||
data class ShiftEntity(
|
data class ShiftEntity(
|
||||||
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_DESCRIPTION) val description: String,
|
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_DESCRIPTION) val description: String,
|
||||||
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_DATE, typeAffinity = ColumnInfo.UNDEFINED) val date: Date,
|
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_DATE) val date: Date,
|
||||||
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_TIME_IN, typeAffinity = ColumnInfo.TEXT) val timeIn: Time,
|
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_TIME_IN) val timeIn: Time,
|
||||||
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_TIME_OUT, typeAffinity = ColumnInfo.TEXT) val timeOut: Time,
|
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_TIME_OUT) val timeOut: Time,
|
||||||
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_BREAK) val breakMins: Int? = 0,
|
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_BREAK, defaultValue = "0") val breakMins: Int? = 0,
|
||||||
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_DURATION, typeAffinity = ColumnInfo.REAL, defaultValue = "0") val duration: Float = 0f,
|
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_DURATION, defaultValue = "0") val duration: Float = 0f,
|
||||||
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_TYPE) val type: String,
|
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_TYPE, defaultValue = "Hourly") val type: String,
|
||||||
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_UNIT, typeAffinity = ColumnInfo.REAL) val units: Float? = 0f,
|
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_UNIT, defaultValue = "0") val units: Float? = 0f,
|
||||||
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_PAYRATE, typeAffinity = ColumnInfo.REAL) val payRate: Float? = 0f,
|
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_PAYRATE, defaultValue = "0") val payRate: Float? = 0f,
|
||||||
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_TOTALPAY, typeAffinity = ColumnInfo.REAL) val totalPay: Float? = 0f,
|
@ColumnInfo(name = ShiftsEntry.COLUMN_SHIFT_TOTALPAY, defaultValue = "0") val totalPay: Float? = 0f,
|
||||||
@PrimaryKey
|
@PrimaryKey
|
||||||
@ColumnInfo(name = ShiftsEntry._ID) val id: Long? = 0,
|
@ColumnInfo(name = ShiftsEntry._ID) val id: Long? = 0,
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -2,13 +2,31 @@ package com.appttude.h_mal.farmr.data.room.migrations
|
|||||||
|
|
||||||
import androidx.room.migration.Migration
|
import androidx.room.migration.Migration
|
||||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||||
import com.appttude.h_mal.farmr.data.legacydb.ShiftsDbHelper
|
import com.appttude.h_mal.farmr.data.legacydb.ShiftsContract.ShiftsEntry
|
||||||
|
import com.appttude.h_mal.farmr.data.room.ROOM_DATABASE
|
||||||
|
import com.appttude.h_mal.farmr.model.ShiftType
|
||||||
|
|
||||||
val MIGRATION_4_5 = object : Migration(4, 5) {
|
val MIGRATION_4_5 = object : Migration(4, 5) {
|
||||||
override fun migrate(database: SupportSQLiteDatabase) {
|
override fun migrate(database: SupportSQLiteDatabase) {
|
||||||
database.execSQL("DROP TABLE IF EXISTS '" + ShiftsDbHelper.SQL_CREATE_PRODUCTS_TABLE_2 + "'");
|
// Drop unused table
|
||||||
database.execSQL("ALTER TABLE `shifts` ADD COLUMN `date` TEXT NOT NULL")
|
database.execSQL("DROP TABLE IF EXISTS '${ShiftsEntry.TABLE_NAME_EXPORT}'")
|
||||||
|
// Create a new table for room
|
||||||
// CREATE TABLE IF NOT EXISTS (`description` TEXT NOT NULL, , `timein` TEXT NOT NULL, `timeout` TEXT NOT NULL, `break` INTEGER, `duration` REAL NOT NULL DEFAULT 0, `shifttype` TEXT NOT NULL, `unit` REAL, `payrate` REAL, `totalpay` REAL, `_id` INTEGER, PRIMARY KEY(`_id`))
|
database.execSQL(
|
||||||
|
"CREATE TABLE $ROOM_DATABASE (${ShiftsEntry._ID} INTEGER PRIMARY KEY AUTOINCREMENT, " +
|
||||||
|
"${ShiftsEntry.COLUMN_SHIFT_DESCRIPTION} TEXT NOT NULL, " +
|
||||||
|
"${ShiftsEntry.COLUMN_SHIFT_DATE} TEXT NOT NULL, " +
|
||||||
|
"${ShiftsEntry.COLUMN_SHIFT_TIME_IN} TEXT NOT NULL, " +
|
||||||
|
"${ShiftsEntry.COLUMN_SHIFT_TIME_OUT} TEXT NOT NULL, " +
|
||||||
|
"${ShiftsEntry.COLUMN_SHIFT_BREAK} INTEGER NOT NULL DEFAULT 0, " +
|
||||||
|
"${ShiftsEntry.COLUMN_SHIFT_DURATION} REAL NOT NULL DEFAULT 0, " +
|
||||||
|
"${ShiftsEntry.COLUMN_SHIFT_TYPE} TEXT NOT NULL DEFAULT ${ShiftType.HOURLY.type}, " +
|
||||||
|
"${ShiftsEntry.COLUMN_SHIFT_UNIT} REAL NOT NULL DEFAULT 0, " +
|
||||||
|
"${ShiftsEntry.COLUMN_SHIFT_PAYRATE} REAL NOT NULL DEFAULT 0, " +
|
||||||
|
"${ShiftsEntry.COLUMN_SHIFT_TOTALPAY} REAL NOT NULL DEFAULT 0)"
|
||||||
|
)
|
||||||
|
// Copy data from old table to new
|
||||||
|
database.execSQL("INSERT INTO $ROOM_DATABASE SELECT * FROM ${ShiftsEntry.TABLE_NAME}")
|
||||||
|
// Drop old table
|
||||||
|
database.execSQL("DROP TABLE IF EXISTS '${ShiftsEntry.TABLE_NAME}'")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16,7 +16,7 @@ open class ShiftViewModel(
|
|||||||
/*
|
/*
|
||||||
* Add Item & Further info
|
* Add Item & Further info
|
||||||
*/
|
*/
|
||||||
fun getCurrentShift(id: Long) = repository.readSingleShiftFromDatabase(id)
|
fun getCurrentShift(id: Long) = repository.readSingleShiftFromDatabase(id)?.convertToShiftObject()
|
||||||
|
|
||||||
open fun setFiltrationDetails(
|
open fun setFiltrationDetails(
|
||||||
description: String?,
|
description: String?,
|
||||||
|
|||||||
Reference in New Issue
Block a user