refs #2346 call Model Operator

This commit is contained in:
Sergio De la torre 2023-11-13 12:50:46 +01:00
parent 6661a3dfdc
commit fb2dd94da7
5 changed files with 88 additions and 194 deletions

View File

@ -22,6 +22,7 @@ import es.verdnatura.databinding.ToolbarFragmentBinding
import es.verdnatura.db.DeliveryDatabase import es.verdnatura.db.DeliveryDatabase
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.view.feature.login.model.OperatorSalix
import es.verdnatura.presentation.view.feature.login.model.WorkForms import es.verdnatura.presentation.view.feature.login.model.WorkForms
import es.verdnatura.presentation.view.feature.main.activity.MainActivity import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import org.json.JSONObject import org.json.JSONObject
@ -234,6 +235,7 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelCla
R.drawable.ic_sort->getString(R.string.sortRouteSalix) R.drawable.ic_sort->getString(R.string.sortRouteSalix)
R.drawable.ic_sign_ticket->getString(R.string.signed) R.drawable.ic_sign_ticket->getString(R.string.signed)
R.drawable.ic_send-> getString(R.string.sendDriverRoute) R.drawable.ic_send-> getString(R.string.sendDriverRoute)
R.drawable.ic_remove_checks-> getString(R.string.deleteChecked)
else -> { else -> {
"" ""
} }
@ -568,6 +570,28 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelCla
} }
fun saveDataOperator(operator: OperatorSalix) {
if (operator.sector == null) {
removeSector()
} else {
saveDataInt(SECTORFK, operator.sector.id)
saveData(SECTORDESCRIP, operator.sector.description)
saveDataInt(WAREHOUSEFK, operator.sector.warehouseFk)
}
if (operator.printer == null) {
removePrinter()
} else {
saveDataInt(PRINTERFK, operator.printer.id)
saveData(PRINTERNAME, operator.printer.name)
}
if (operator.train != null) {
saveData(TRAINNAME, operator.train.name)
}
saveDataInt(NUMBEROFWAGONS, operator.numberOfWagons)
}
fun saveDataLong(name: String, value: Long) { fun saveDataLong(name: String, value: Long) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)

View File

@ -10,6 +10,7 @@ import android.view.View
import android.view.View.VISIBLE import android.view.View.VISIBLE
import androidx.appcompat.widget.TooltipCompat.setTooltipText import androidx.appcompat.widget.TooltipCompat.setTooltipText
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.MobileApplication
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentAjustesBinding import es.verdnatura.databinding.FragmentAjustesBinding
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
@ -24,6 +25,7 @@ import es.verdnatura.presentation.view.feature.ajustes.model.Printers
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
import es.verdnatura.presentation.view.feature.ajustes.model.Train import es.verdnatura.presentation.view.feature.ajustes.model.Train
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
import es.verdnatura.presentation.view.feature.login.fragment.LoginViewModel
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
class AjustesFragment : class AjustesFragment :
@ -39,6 +41,7 @@ class AjustesFragment :
private var isWorkerAllowed: Boolean = false private var isWorkerAllowed: Boolean = false
private var itemPackingList: List<ItemPackingType> = listOf() private var itemPackingList: List<ItemPackingType> = listOf()
private var messagePrinter: String? = null private var messagePrinter: String? = null
private lateinit var loginViewModel : LoginViewModel
//añadido //añadido
private var wagonList: List<String> = listOf() private var wagonList: List<String> = listOf()
@ -90,11 +93,11 @@ class AjustesFragment :
customDialogInput.setTitle(getString(R.string.serialNumberDescrip)) customDialogInput.setTitle(getString(R.string.serialNumberDescrip))
.setDescription(getString(R.string.serialNumber)) .setDescription(getString(R.string.serialNumber))
.setOkButton(getString(R.string.save)) { .setOkButton(getString(R.string.save)) {
saveData("SERIALNUMBER",customDialogInput.getValue()) saveData("SERIALNUMBER", customDialogInput.getValue())
binding.serialNumber.text = customDialogInput.getValue() binding.serialNumber.text = customDialogInput.getValue()
ma.hideKeyboard() ma.hideKeyboard()
customDialogInput.dismiss() customDialogInput.dismiss()
}.setKoButton(getString(R.string.cancel)){ }.setKoButton(getString(R.string.cancel)) {
customDialogInput.dismiss() customDialogInput.dismiss()
} }
.show() .show()
@ -156,32 +159,6 @@ class AjustesFragment :
} }
}) })
operatorGetNumberOfWagons.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
if (it.isError) {
ma.messageWithSound(it.errorMessage, it.isError, true)
} else {
saveDataInt(NUMBEROFWAGONS, it.response!!)
}
setSettings(isWorkerAllowed)
}
operatorGetTrainResponse.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
if (it.isError) {
ma.messageWithSound(it.errorMessage, it.isError, true)
} else {
saveData(TRAINNAME, it.response)
}
setSettings(isWorkerAllowed)
}
operatorGetItemPackingType.observe(viewLifecycleOwner) { operatorGetItemPackingType.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
@ -194,19 +171,30 @@ class AjustesFragment :
setSettings(isWorkerAllowed) setSettings(isWorkerAllowed)
} }
workerAllowedResponse.observe(viewLifecycleOwner) { workerAllowedResponse.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
viewModel.operator_getNumberOfWagons()
viewModel.operator_getTrain()
viewModel.operator_getItemPackingType()
if (it.isError) { if (it.isError) {
ma.messageWithSound(it.errorMessage, it.isError, true) ma.messageWithSound(it.errorMessage, it.isError, true)
} else { } else {
isWorkerAllowed = it.response.toBoolean() isWorkerAllowed = it.response.toBoolean()
loginViewModel= LoginViewModel(context as MobileApplication)
loginViewModel.operator_getDataSalix(mobileApplication.userId!!)
loginViewModel.workerOperator.observe(this@AjustesFragment) { it ->
if (!it.isError) {
saveDataOperator(it)
}else{
ma.messageWithSound(it.errorMessage, it.isError, true)
}
}
} }
setSettings(isWorkerAllowed) setSettings(isWorkerAllowed)
} }
actionUpdate.observe(viewLifecycleOwner) { actionUpdate.observe(viewLifecycleOwner) {
@ -413,7 +401,12 @@ class AjustesFragment :
editor.apply() editor.apply()
viewModel.ajustesitem.get(2).selected = it.name viewModel.ajustesitem.get(2).selected = it.name
viewModel.worker_updateOperatorSalix("printer",mobileApplication.userId!!,getDataInt(SECTORFK),it.id!!) viewModel.worker_updateOperatorSalix(
"printer",
mobileApplication.userId!!,
getDataInt(SECTORFK),
it.id!!
)
ajustesAdapter!!.notifyDataSetChanged() ajustesAdapter!!.notifyDataSetChanged()
ajustesAdapter ajustesAdapter
@ -481,7 +474,12 @@ class AjustesFragment :
viewModel.ajustesitem.get(0).warehouse = it.warehouseFk viewModel.ajustesitem.get(0).warehouse = it.warehouseFk
viewModel.ajustesitem.get(0).selected = it.description viewModel.ajustesitem.get(0).selected = it.description
viewModel.worker_updateOperatorSalix("sector",mobileApplication.userId!!,it.id,null) viewModel.worker_updateOperatorSalix(
"sector",
mobileApplication.userId!!,
it.id,
null
)
ajustesAdapter!!.notifyDataSetChanged() ajustesAdapter!!.notifyDataSetChanged()

View File

@ -121,7 +121,7 @@ class LoginFragment(var imageUri: Uri?) :
//saveData("SERIALNUMBER", file.readText()) //saveData("SERIALNUMBER", file.readText())
mobileApplication.serialNumber = file.readText() mobileApplication.serialNumber = file.readText()
} catch (ex: Exception) { } catch (ex: Exception) {
d("VERDNATURA:",getString(R.string.errorFile)) d("VERDNATURA:", getString(R.string.errorFile))
} }
} }
@ -329,8 +329,6 @@ class LoginFragment(var imageUri: Uri?) :
getInfoVersionNameApp(), getInfoVersionNameApp(),
getData(ANDROID_ID) getData(ANDROID_ID)
) )
viewModel.worker_getSector()
viewModel.worker_getPrinter()
if (binding.switchRemember.isChecked) { if (binding.switchRemember.isChecked) {
saveRemember(true) saveRemember(true)
@ -359,16 +357,21 @@ class LoginFragment(var imageUri: Uri?) :
} }
workerId.observe(viewLifecycleOwner) { /* workerId.observe(viewLifecycleOwner) {
if (!it.isError) { if (!it.isError) {
saveUserFkPref(it.Id.toString()) saveUserFkPref(it.Id.toString())
} }
} }*/
//Tarea 5870 //Tarea 5870
workerOperator.observe(viewLifecycleOwner) { workerOperator.observe(viewLifecycleOwner) {
if (!it.isError) { if (it.isError) {
customDialog.setTitle(getString(R.string.info))
}else{ .setDescription(it.errorMessage)
.setOkButton(getString(R.string.close)) {
customDialog.dismiss()
}.show()
} else {
saveDataOperator(it)
} }
} }
@ -385,10 +388,10 @@ class LoginFragment(var imageUri: Uri?) :
viewModel.device_checkLogin( viewModel.device_checkLogin(
getData(ANDROID_ID) getData(ANDROID_ID)
) )
viewModel.operator_getNumberOfWagons() // viewModel.operator_getNumberOfWagons()
} }
operatorGetNumberOfWagons.observe(viewLifecycleOwner) { /* operatorGetNumberOfWagons.observe(viewLifecycleOwner) {
if (!it.isError) { if (!it.isError) {
saveDataInt(NUMBEROFWAGONS, it.response!!) saveDataInt(NUMBEROFWAGONS, it.response!!)
@ -400,7 +403,7 @@ class LoginFragment(var imageUri: Uri?) :
} }
} }*/
devicelogresponse.observe(viewLifecycleOwner) { devicelogresponse.observe(viewLifecycleOwner) {
@ -416,7 +419,7 @@ class LoginFragment(var imageUri: Uri?) :
} }
} }
workergetSector.observe(viewLifecycleOwner) { /* workergetSector.observe(viewLifecycleOwner) {
//binding.splashProgress.visibility = View.GONE //binding.splashProgress.visibility = View.GONE
@ -430,8 +433,8 @@ class LoginFragment(var imageUri: Uri?) :
} }
} }
} }
*/
loadWorkerPrintList.observe(viewLifecycleOwner, Observer { event -> /* loadWorkerPrintList.observe(viewLifecycleOwner, Observer { event ->
event.getContentIfNotHandled().notNull { event.getContentIfNotHandled().notNull {
@ -449,10 +452,10 @@ class LoginFragment(var imageUri: Uri?) :
} }
} }
}) })*/
loginsalixitem.observe(viewLifecycleOwner) { loginSalixItem.observe(viewLifecycleOwner) {
if (it.isError) { if (it.isError) {
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
@ -488,7 +491,7 @@ class LoginFragment(var imageUri: Uri?) :
//Tarea 5613 //Tarea 5613
viewModel.getAccessTokenConfigs() viewModel.getAccessTokenConfigs()
viewModel.operator_add() //viewModel.operator_add()
} }
} }

View File

@ -12,31 +12,24 @@ import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.base.getMessageFromAllResponse import es.verdnatura.presentation.base.getMessageFromAllResponse
import es.verdnatura.presentation.base.nameofFunction import es.verdnatura.presentation.base.nameofFunction
import es.verdnatura.presentation.common.Event import es.verdnatura.presentation.common.Event
import es.verdnatura.presentation.common.ResponseItemNumber
import es.verdnatura.presentation.common.ResponseItemVO import es.verdnatura.presentation.common.ResponseItemVO
import es.verdnatura.presentation.view.feature.ajustes.model.Printers
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
import es.verdnatura.presentation.view.feature.ajustes.model.WorkerPrintersList
import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.DeviceLogSalix import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.DeviceLogSalix
import es.verdnatura.presentation.view.feature.login.model.DataUserSalix import es.verdnatura.presentation.view.feature.login.model.DataUserSalix
import es.verdnatura.presentation.view.feature.login.model.LoginDevice import es.verdnatura.presentation.view.feature.login.model.LoginDevice
import es.verdnatura.presentation.view.feature.login.model.LoginSalixVO import es.verdnatura.presentation.view.feature.login.model.LoginSalixVO
import es.verdnatura.presentation.view.feature.login.model.OperatorList
import es.verdnatura.presentation.view.feature.login.model.OperatorSalix import es.verdnatura.presentation.view.feature.login.model.OperatorSalix
import es.verdnatura.presentation.view.feature.login.model.RenewToken import es.verdnatura.presentation.view.feature.login.model.RenewToken
import es.verdnatura.presentation.view.feature.login.model.accessConfigSalix import es.verdnatura.presentation.view.feature.login.model.accessConfigSalix
import es.verdnatura.presentation.view.feature.login.model.accessConfigSalixList import es.verdnatura.presentation.view.feature.login.model.accessConfigSalixList
import es.verdnatura.presentation.view.feature.login.model.versionApp import es.verdnatura.presentation.view.feature.login.model.versionApp
import es.verdnatura.presentation.view.feature.login.model.workerId
import es.verdnatura.presentation.view.feature.paletizador.model.itemsExpeditionDynamics import es.verdnatura.presentation.view.feature.paletizador.model.itemsExpeditionDynamics
import retrofit2.Response import retrofit2.Response
import java.util.Date import java.util.Date
import kotlin.math.roundToInt
class LoginViewModel(val context: Context) : BaseViewModel(context) { class LoginViewModel(val context: Context) : BaseViewModel(context) {
private val _loginsalixitem by lazy { MutableLiveData<LoginSalixVO>() } private val _loginSalixItem by lazy { MutableLiveData<LoginSalixVO>() }
val loginsalixitem: LiveData<LoginSalixVO> val loginSalixItem: LiveData<LoginSalixVO>
get() = _loginsalixitem get() = _loginSalixItem
private val _devicelogresponse by lazy { MutableLiveData<ResponseItemVO>() } private val _devicelogresponse by lazy { MutableLiveData<ResponseItemVO>() }
@ -55,27 +48,6 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
val logindevice: LiveData<LoginDevice> val logindevice: LiveData<LoginDevice>
get() = _logindevice get() = _logindevice
private val _workerId by lazy { MutableLiveData<workerId>() }
val workerId: LiveData<workerId>
get() = _workerId
private val _workergetSector by lazy { MutableLiveData<SectorItemVO>() }
val workergetSector: LiveData<SectorItemVO>
get() = _workergetSector
private val _workergetPrinter by lazy { MutableLiveData<Printers>() }
val workergetPrinter: LiveData<Printers>
get() = _workergetPrinter
private val _operatorGetNumberOfWagons by lazy { MutableLiveData<ResponseItemNumber>() }
val operatorGetNumberOfWagons: LiveData<ResponseItemNumber>
get() = _operatorGetNumberOfWagons
private val _workerPrintList by lazy { MutableLiveData<WorkerPrintersList>() }
private val _workerOperatorList by lazy { MutableLiveData<OperatorList>() }
private val _workerOperator by lazy { MutableLiveData<OperatorSalix>() } private val _workerOperator by lazy { MutableLiveData<OperatorSalix>() }
val workerOperator: LiveData<OperatorSalix> val workerOperator: LiveData<OperatorSalix>
get() = _workerOperator get() = _workerOperator
@ -86,8 +58,6 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
val renewTokenResponse: LiveData<RenewToken> val renewTokenResponse: LiveData<RenewToken>
get() = _renewTokenResponse get() = _renewTokenResponse
val loadWorkerPrintList = Transformations.map(_workerPrintList) { Event(it) }
val loadOperatorList = Transformations.map(_workerOperatorList) { Event(it) }
val loadAccessConfigSalixList = Transformations.map(_accessConfigSalixList) { Event(it) } val loadAccessConfigSalixList = Transformations.map(_accessConfigSalixList) { Event(it) }
fun loginSalix(user: String, password: String) { fun loginSalix(user: String, password: String) {
@ -122,7 +92,7 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
} }
_loginsalixitem.value = loginSalixVO _loginSalixItem.value = loginSalixVO
} }
override fun onError(t: Throwable) { override fun onError(t: Throwable) {
@ -137,7 +107,7 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
t.message!! t.message!!
) )
) )
_loginsalixitem.value = loginSalixVO _loginSalixItem.value = loginSalixVO
} }
}) })
} }
@ -193,8 +163,8 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
) { ) {
salix.getCurrentUserData().enqueue(object : SilexCallback<DataUserSalix>(context) { salix.getCurrentUserData().enqueue(object : SilexCallback<DataUserSalix>(context) {
override fun onSuccess(response: Response<DataUserSalix>) { override fun onSuccess(response: Response<DataUserSalix>) {
app.userName = response.body()?.let { it.nickname } app.userName = response.body()?.nickname
app.userId = response.body()?.let { it.id } app.userId = response.body()?.id
deviceLog_addSalix( deviceLog_addSalix(
app = appName, app = appName,
versionApp = versionApp, versionApp = versionApp,
@ -203,7 +173,7 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
serialnumber = serialnumber serialnumber = serialnumber
) )
//Tarea 5870 //Tarea 5870
//operator_getDataSalix(app.userId!!) operator_getDataSalix(app.userId!!)
} }
}) })
} }
@ -302,59 +272,6 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
return list return list
} }
fun worker_getSector() {
silex.worker_getSector().enqueue(object : SilexCallback<SectorItemVO>(context) {
override fun onError(t: Throwable) {
_workergetSector.value = SectorItemVO(
0,
"",
0,
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
)
}
override fun onSuccess(response: Response<SectorItemVO>) {
_workergetSector.value = response.body()?.let {
SectorItemVO(
it.id,
it.description,
it.warehouseFk,
isError = false
)
}
}
})
}
fun operator_getNumberOfWagons() {
silex.operator_getNumberOfWagons()
.enqueue(object : SilexCallback<Any>(context) {
override fun onError(t: Throwable) {
_operatorGetNumberOfWagons.value = ResponseItemNumber(
null,
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
)
}
override fun onSuccess(response: Response<Any>) {
_operatorGetNumberOfWagons.value =
ResponseItemNumber(
if (response.body() is Number) {
((response.body() as Double).roundToInt())
} else {
0
}, isError = false
)
}
})
}
fun operator_add() { fun operator_add() {
//Tarea 5134 no se puede modificar directamente con un upsertWith, hay que modificar front. Y si al hacer login en Salix hacer el insertIgnore en -> operator_add, back de Salix sabe //Tarea 5134 no se puede modificar directamente con un upsertWith, hay que modificar front. Y si al hacer login en Salix hacer el insertIgnore en -> operator_add, back de Salix sabe
//si es de app? //si es de app?
@ -373,60 +290,12 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
}) })
} }
fun worker_getPrinter() {
silex.worker_getPrinter()
.enqueue(object : SilexCallback<List<Printers>>(context) {
override fun onError(t: Throwable) {
val listError: ArrayList<Printers> = ArrayList()
listError.add(
Printers(
0, "",
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
t.message!!
)
)
)
_workerPrintList.value = WorkerPrintersList(listError)
}
override fun onSuccess(response: Response<List<Printers>>) {
if (response.body() != null) {
_workerPrintList.value = response.body()?.let {
WorkerPrintersList(it)
}
} else {
val listError: ArrayList<Printers> = ArrayList()
listError.add(
Printers(
0, "",
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
response.message()
)
)
)
_workerPrintList.value = WorkerPrintersList(listError)
}
}
})
}
//Tarea 5870 //Tarea 5870
fun operator_getDataSalix( fun operator_getDataSalix(
workerId: Int workerId: Int
) { ) {
val filter = val filter =
"""{"fields":["itemPackingTypeFk","numberOfWagons","sectorFk","trainFk","labelerFk"],"include":[{"relation":"sector","scope":{"fields":["description","warehouseFk"]}}]}""" """{"fields":["itemPackingTypeFk","numberOfWagons","sectorFk","trainFk","labelerFk"],"include":[{"relation":"sector","scope":{"fields":["description","warehouseFk"]}},{"relation":"printer","scope":{"fields":["name"]}},{"relation":"train","scope":{"fields":["name"]}}]}"""
salix.operator_getData(id = workerId, filter) salix.operator_getData(id = workerId, filter)
.enqueue(object : SilexCallback<OperatorSalix>(context) { .enqueue(object : SilexCallback<OperatorSalix>(context) {
override fun onError(t: Throwable) { override fun onError(t: Throwable) {

View File

@ -42,15 +42,15 @@ class SalixGrupo(
class OperatorSalix( class OperatorSalix(
val sector: Sector? = null, val sector: Sector? = null,
val train: Train? = null, val train: Train? = null,
val labeller: Printer? = null, val printer: Printer? = null,
val numberOfWagons: Int = 0, val numberOfWagons: Int = 0,
var itemPackingTypeFk: String? = null, var itemPackingTypeFk: String? = null,
val isError: Boolean = false, val isError: Boolean = false,
var errorMessage: String = "" var errorMessage: String = ""
) )
data class Sector (val id:Int, val description:String,val warehouseFk:Int) data class Sector(val id: Int, val description: String, val warehouseFk: Int)
data class Printer(val id:Int, val name:String) data class Printer(val id: Int, val name: String)
data class Train(val name:String) data class Train(val id: Int, val name: String)
class accessConfigSalix( class accessConfigSalix(