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.domain.ConstAndValues.SECTORFKDEFAULT
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.main.activity.MainActivity
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_sign_ticket->getString(R.string.signed)
R.drawable.ic_send-> getString(R.string.sendDriverRoute)
R.drawable.ic_remove_checks-> getString(R.string.deleteChecked)
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) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)

View File

@ -10,6 +10,7 @@ import android.view.View
import android.view.View.VISIBLE
import androidx.appcompat.widget.TooltipCompat.setTooltipText
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.MobileApplication
import es.verdnatura.R
import es.verdnatura.databinding.FragmentAjustesBinding
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.Train
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
class AjustesFragment :
@ -39,6 +41,7 @@ class AjustesFragment :
private var isWorkerAllowed: Boolean = false
private var itemPackingList: List<ItemPackingType> = listOf()
private var messagePrinter: String? = null
private lateinit var loginViewModel : LoginViewModel
//añadido
private var wagonList: List<String> = listOf()
@ -90,11 +93,11 @@ class AjustesFragment :
customDialogInput.setTitle(getString(R.string.serialNumberDescrip))
.setDescription(getString(R.string.serialNumber))
.setOkButton(getString(R.string.save)) {
saveData("SERIALNUMBER",customDialogInput.getValue())
saveData("SERIALNUMBER", customDialogInput.getValue())
binding.serialNumber.text = customDialogInput.getValue()
ma.hideKeyboard()
customDialogInput.dismiss()
}.setKoButton(getString(R.string.cancel)){
}.setKoButton(getString(R.string.cancel)) {
customDialogInput.dismiss()
}
.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) {
binding.splashProgress.visibility = View.GONE
@ -194,19 +171,30 @@ class AjustesFragment :
setSettings(isWorkerAllowed)
}
workerAllowedResponse.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
viewModel.operator_getNumberOfWagons()
viewModel.operator_getTrain()
viewModel.operator_getItemPackingType()
if (it.isError) {
ma.messageWithSound(it.errorMessage, it.isError, true)
} else {
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)
}
actionUpdate.observe(viewLifecycleOwner) {
@ -413,7 +401,12 @@ class AjustesFragment :
editor.apply()
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
@ -481,7 +474,12 @@ class AjustesFragment :
viewModel.ajustesitem.get(0).warehouse = it.warehouseFk
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()

View File

@ -121,7 +121,7 @@ class LoginFragment(var imageUri: Uri?) :
//saveData("SERIALNUMBER", file.readText())
mobileApplication.serialNumber = file.readText()
} 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(),
getData(ANDROID_ID)
)
viewModel.worker_getSector()
viewModel.worker_getPrinter()
if (binding.switchRemember.isChecked) {
saveRemember(true)
@ -359,16 +357,21 @@ class LoginFragment(var imageUri: Uri?) :
}
workerId.observe(viewLifecycleOwner) {
/* workerId.observe(viewLifecycleOwner) {
if (!it.isError) {
saveUserFkPref(it.Id.toString())
}
}
}*/
//Tarea 5870
workerOperator.observe(viewLifecycleOwner) {
if (!it.isError) {
}else{
if (it.isError) {
customDialog.setTitle(getString(R.string.info))
.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(
getData(ANDROID_ID)
)
viewModel.operator_getNumberOfWagons()
// viewModel.operator_getNumberOfWagons()
}
operatorGetNumberOfWagons.observe(viewLifecycleOwner) {
/* operatorGetNumberOfWagons.observe(viewLifecycleOwner) {
if (!it.isError) {
saveDataInt(NUMBEROFWAGONS, it.response!!)
@ -400,7 +403,7 @@ class LoginFragment(var imageUri: Uri?) :
}
}
}*/
devicelogresponse.observe(viewLifecycleOwner) {
@ -416,7 +419,7 @@ class LoginFragment(var imageUri: Uri?) :
}
}
workergetSector.observe(viewLifecycleOwner) {
/* workergetSector.observe(viewLifecycleOwner) {
//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 {
@ -449,10 +452,10 @@ class LoginFragment(var imageUri: Uri?) :
}
}
})
})*/
loginsalixitem.observe(viewLifecycleOwner) {
loginSalixItem.observe(viewLifecycleOwner) {
if (it.isError) {
binding.splashProgress.visibility = View.GONE
@ -488,7 +491,7 @@ class LoginFragment(var imageUri: Uri?) :
//Tarea 5613
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.nameofFunction
import es.verdnatura.presentation.common.Event
import es.verdnatura.presentation.common.ResponseItemNumber
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.login.model.DataUserSalix
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.OperatorList
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.accessConfigSalix
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.workerId
import es.verdnatura.presentation.view.feature.paletizador.model.itemsExpeditionDynamics
import retrofit2.Response
import java.util.Date
import kotlin.math.roundToInt
class LoginViewModel(val context: Context) : BaseViewModel(context) {
private val _loginsalixitem by lazy { MutableLiveData<LoginSalixVO>() }
val loginsalixitem: LiveData<LoginSalixVO>
get() = _loginsalixitem
private val _loginSalixItem by lazy { MutableLiveData<LoginSalixVO>() }
val loginSalixItem: LiveData<LoginSalixVO>
get() = _loginSalixItem
private val _devicelogresponse by lazy { MutableLiveData<ResponseItemVO>() }
@ -55,27 +48,6 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
val logindevice: LiveData<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>() }
val workerOperator: LiveData<OperatorSalix>
get() = _workerOperator
@ -86,8 +58,6 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
val renewTokenResponse: LiveData<RenewToken>
get() = _renewTokenResponse
val loadWorkerPrintList = Transformations.map(_workerPrintList) { Event(it) }
val loadOperatorList = Transformations.map(_workerOperatorList) { Event(it) }
val loadAccessConfigSalixList = Transformations.map(_accessConfigSalixList) { Event(it) }
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) {
@ -137,7 +107,7 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
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) {
override fun onSuccess(response: Response<DataUserSalix>) {
app.userName = response.body()?.let { it.nickname }
app.userId = response.body()?.let { it.id }
app.userName = response.body()?.nickname
app.userId = response.body()?.id
deviceLog_addSalix(
app = appName,
versionApp = versionApp,
@ -203,7 +173,7 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
serialnumber = serialnumber
)
//Tarea 5870
//operator_getDataSalix(app.userId!!)
operator_getDataSalix(app.userId!!)
}
})
}
@ -302,59 +272,6 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
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() {
//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?
@ -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
fun operator_getDataSalix(
workerId: Int
) {
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)
.enqueue(object : SilexCallback<OperatorSalix>(context) {
override fun onError(t: Throwable) {

View File

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