diff --git a/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt b/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt index 0b10c2d6..41952f1b 100644 --- a/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt @@ -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(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(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) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt index 44e567f8..786881bd 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt @@ -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 = listOf() private var messagePrinter: String? = null + private lateinit var loginViewModel : LoginViewModel //aƱadido private var wagonList: List = 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() diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt index dce69086..c9353a4f 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt @@ -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() } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt index bed91fc3..b20a5b60 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt @@ -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() } - val loginsalixitem: LiveData - get() = _loginsalixitem + private val _loginSalixItem by lazy { MutableLiveData() } + val loginSalixItem: LiveData + get() = _loginSalixItem private val _devicelogresponse by lazy { MutableLiveData() } @@ -55,27 +48,6 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) { val logindevice: LiveData get() = _logindevice - private val _workerId by lazy { MutableLiveData() } - val workerId: LiveData - get() = _workerId - - - private val _workergetSector by lazy { MutableLiveData() } - val workergetSector: LiveData - get() = _workergetSector - - private val _workergetPrinter by lazy { MutableLiveData() } - val workergetPrinter: LiveData - get() = _workergetPrinter - - private val _operatorGetNumberOfWagons by lazy { MutableLiveData() } - val operatorGetNumberOfWagons: LiveData - get() = _operatorGetNumberOfWagons - - - private val _workerPrintList by lazy { MutableLiveData() } - private val _workerOperatorList by lazy { MutableLiveData() } - private val _workerOperator by lazy { MutableLiveData() } val workerOperator: LiveData get() = _workerOperator @@ -86,8 +58,6 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) { val renewTokenResponse: LiveData 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(context) { override fun onSuccess(response: Response) { - 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(context) { - override fun onError(t: Throwable) { - _workergetSector.value = SectorItemVO( - 0, - "", - 0, - isError = true, - errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) - ) - } - - override fun onSuccess(response: Response) { - _workergetSector.value = response.body()?.let { - SectorItemVO( - it.id, - it.description, - it.warehouseFk, - isError = false - ) - } - - } - - }) - } - - fun operator_getNumberOfWagons() { - - silex.operator_getNumberOfWagons() - .enqueue(object : SilexCallback(context) { - override fun onError(t: Throwable) { - _operatorGetNumberOfWagons.value = ResponseItemNumber( - null, - isError = true, - errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) - ) - } - - override fun onSuccess(response: Response) { - _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>(context) { - override fun onError(t: Throwable) { - val listError: ArrayList = ArrayList() - listError.add( - Printers( - 0, "", - isError = true, - errorMessage = getMessageFromAllResponse( - nameofFunction(this), - t.message!! - ) - ) - ) - _workerPrintList.value = WorkerPrintersList(listError) - - } - - override fun onSuccess(response: Response>) { - if (response.body() != null) { - _workerPrintList.value = response.body()?.let { - WorkerPrintersList(it) - } - - } else { - val listError: ArrayList = 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(context) { override fun onError(t: Throwable) { diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/login/model/LoginItemVO.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/login/model/LoginItemVO.kt index e60af052..43641e85 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/login/model/LoginItemVO.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/login/model/LoginItemVO.kt @@ -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(