ArticulosDAO.kt 2.56 KB
package com.focasoftware.deboinventariov20.DB.DAO

import androidx.room.*
import com.focasoftware.deboinventario.ui.actualizacionMaestros.Constans.Companion.TABLA_ART
import com.focasoftware.deboinventario.ui.actualizacionMaestros.Constans.Companion.TABLA_INV_B
import com.focasoftware.deboinventario.ui.actualizacionMaestros.Constans.Companion.TABLA_INV_H
import com.focasoftware.deboinventario.ui.actualizacionMaestros.Constans.Companion.TABLA_SERV_INV
import com.focasoftware.deboinventariov20.Model.*

@Dao
interface ArticulosDAO {

    //        TABLA ARTICULOS
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun insertArticulos(articulos: Articles?)

    @Query("SELECT * FROM $TABLA_ART ORDER BY DES DESC")
    suspend fun findAllArticulos(): List<Articles>

    @Query("SELECT * FROM $TABLA_ART WHERE DEPSN=:dep AND DES LIKE '%' || :description || '%' GROUP BY DES ORDER BY DES")
    suspend fun findArticuloByDesc(description: String?, dep: Int): List<Articles>

    @Query("SELECT * FROM $TABLA_ART WHERE DEPSN=:dep AND CB LIKE :codBarra")
    suspend fun findArticuloByCodBar(codBarra: String?, dep: Int): Articles?

    @Query("DELETE FROM $TABLA_ART")
    suspend fun deleteAllArticulos()
}

@Dao
interface InvHeadDAO {
    @Insert()
    suspend fun insertInvHead(invHead: InvHead?)

    @Query("SELECT INV_NUM FROM $TABLA_INV_H ORDER BY INV_NUM DESC")
    suspend fun findLastInv(): Int

    @Query("DELETE FROM $TABLA_INV_H")
    suspend fun deleteAllArticulos()

    @Query("DELETE FROM $TABLA_INV_H WHERE INV_NUM=:inven")
    suspend fun deleteinvHead(inven: Int)

    @Query("SELECT * FROM $TABLA_INV_H ORDER BY INV_FEI")
    suspend fun fetchAllInvHead(): List<InvHead>
}

@Dao
interface InvBodyDAO {
    @Insert()
    suspend fun insertInvBody(invBody: InvBody?)

    @Query("DELETE FROM $TABLA_INV_B")
    suspend fun deleteAllInvBody()

    @Query("DELETE FROM $TABLA_INV_B  WHERE INV_NUM =:inven")
    suspend fun deleteInvBody(inven: Int)

    @Query("UPDATE $TABLA_INV_B SET CANT=:cant WHERE SEC=:sec AND COD=:cod")
    suspend fun UpdateInvBody(cant: Float, sec: String, cod: String)

    @Query("SELECT * FROM $TABLA_INV_B WHERE INV_NUM =:inven ORDER BY INV_FEI DESC")
    suspend fun fetchAllInvBody(inven:Int): List<InvBody>
}
@Dao
interface ServeInvDao {
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insertServer(servidor: ServeInv)

    @Query("SELECT SER_NUM,SER_DESC, SER_DIR FROM $TABLA_SERV_INV")
    suspend fun fetchAllServers(): List<ServeInv>

    @Query("DELETE FROM ServeInv WHERE SER_NUM = :number")
    suspend fun deleteServer(number: Long)
}