Utils.kt 5.83 KB
package com.focasoftware.deboinventariov20.UI.Utils

import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.os.Bundle
import androidx.fragment.app.DialogFragment
import com.focasoftware.deboinventariov20.DB.DataBase.AppDb
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.async
import java.io.IOException
import java.net.UnknownHostException
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

fun modificarCantidadEnCabecera(inventarioActual: Int, b: Boolean, context: Context) {
    GlobalScope.async(Dispatchers.IO) {
        var cantProductos = 0
        cantProductos =
            AppDb.getAppDb(context)!!.InvHeadDAO()!!.consultaCantidadInvH(inventarioActual.toLong())
        if (b) {
            AppDb.getAppDb(context)!!.InvHeadDAO()!!
                .updateInvBody(inventarioActual.toLong(), cantProductos + 1)
        } else {
            AppDb.getAppDb(context)!!.InvHeadDAO()!!
                .updateInvBody(inventarioActual.toLong(), cantProductos - 1)
        }
    }
}

open class AlertDialogBorrarInv : DialogFragment() {

    interface OnBorrarInvClickListener {
        fun onPositiveClick()
        fun onCancelClick()
    }

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        return activity?.let {
            val title = "Borrar Inventario"
            val content = "¿Seguro que desea Borrar el inventario?"
            val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity())
            builder.setTitle(title).setMessage(content)

                .setPositiveButton(android.R.string.ok) { _, _ ->
                    val listener = activity as OnBorrarInvClickListener?
                    listener!!.onPositiveClick()
                }
                .setNegativeButton(android.R.string.cancel) { _, _ ->
                    val listener = activity as OnBorrarInvClickListener?
                    listener!!.onCancelClick()
                }
            return builder.create()
        } ?: throw IllegalStateException("Activity cannot be null")
    }
}

class NoEncontradoSimple : DialogFragment() {
    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        return activity?.let {
            val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity())
            builder.show()
            val title = ""
            val content = "¡El producto buscado NO fue encontrado!"

            builder.setTitle(title).setMessage(content)
                .setPositiveButton(android.R.string.ok) { _, _ -> }
            return builder.create()
        } ?: throw IllegalStateException("Activity cannot be null")
    }
}

class noServerConf : DialogFragment() {
    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        return activity?.let {
            val title = ""
            val content = "¡Antes de importar debe configurar un servidor!"
            val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity())
            builder.setTitle(title).setMessage(content)
                .setPositiveButton(android.R.string.ok) { _, _ ->
                    activity?.onBackPressed()
                }

            return builder.create()
        } ?: throw IllegalStateException("Activity cannot be null")
    }
}

fun isConnectedToThisServer(host: String): Boolean {

    val runtime = Runtime.getRuntime()
    try {
        val ipProcess = runtime.exec("/system/bin/ping -c 1 $host")
        val exitValue = ipProcess.waitFor()
        ipProcess.destroy()
        return exitValue == 0
    } catch (e: UnknownHostException) {
        e.printStackTrace()
    } catch (e: IOException) {
        e.printStackTrace()
    } catch (e: InterruptedException) {
        e.printStackTrace()
    }

    return false
}
class serverValido : DialogFragment() {
    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        return activity?.let {
            val title = ""
            val content = "¡La IP del servidor es correcta!"
            val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity())
            builder.setTitle(title).setMessage(content)
                .setPositiveButton(android.R.string.ok) { _, _ -> }
            return builder.create()
        } ?: throw IllegalStateException("Activity cannot be null")
    }
}
class serverNoValido : DialogFragment() {
    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        return activity?.let {
            val title = ""
            val content = "¡La IP del servidor es Incorrecta! Verfique en la carga de Servidores."
            val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity())
            builder.setTitle(title).setMessage(content)
                .setPositiveButton(android.R.string.ok) { _, _ -> }
            return builder.create()
        } ?: throw IllegalStateException("Activity cannot be null")
    }
}
class serverNoConf : DialogFragment() {
    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        return activity?.let {
            val title = "Servidor no Valido"
            val content = "!Debe configurar el Servidor en Configuraciones¡"
            val builder: AlertDialog.Builder = AlertDialog.Builder(requireActivity())
            builder.setTitle(title).setMessage(content)
                .setPositiveButton(android.R.string.ok) { _, _ -> }
            return builder.create()
        } ?: throw IllegalStateException("Activity cannot be null")
    }
}
fun ObtenerFechaActual(): String {
        //TODO OBTENGO FECHA Y HORA ACTUAL PARA LA CABECERA DEL INVENTARIO Y PARA CADA ITEM QUE SE INSERTA EN LA BD
        val current = LocalDateTime.now()
        val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm:ss")
        val dFechaHora = current.format(formatter)
        return dFechaHora.toString()
    }