diff --git a/app/src/main/java/es/verdnatura/di/viewModelModule.kt b/app/src/main/java/es/verdnatura/di/viewModelModule.kt index b9ecaa57..c8fbc0d4 100644 --- a/app/src/main/java/es/verdnatura/di/viewModelModule.kt +++ b/app/src/main/java/es/verdnatura/di/viewModelModule.kt @@ -27,6 +27,7 @@ import es.verdnatura.presentation.view.feature.presacador.fragment.PreSacadorVie import es.verdnatura.presentation.view.feature.qr.QrFragmentViewModel import es.verdnatura.presentation.view.feature.sacador.fragment.SacadorViewModel import es.verdnatura.presentation.view.feature.shelvingparking.fragment.ShelvingParkingViewModel +import es.verdnatura.presentation.view.feature.ticket.fragment.TicketViewModel import es.verdnatura.presentation.view.feature.ubicador.fragment.AutomaticAddItemViewModel import es.verdnatura.presentation.view.feature.ubicador.fragment.UbicadorViewModel import org.koin.android.ext.koin.androidContext @@ -193,4 +194,7 @@ val viewModelModule = module { viewModel { PhotosViewModel(androidContext()) } + viewModel { + TicketViewModel(androidContext()) + } } \ No newline at end of file diff --git a/app/src/main/java/es/verdnatura/domain/SalixService.kt b/app/src/main/java/es/verdnatura/domain/SalixService.kt index 31825261..254d28d5 100644 --- a/app/src/main/java/es/verdnatura/domain/SalixService.kt +++ b/app/src/main/java/es/verdnatura/domain/SalixService.kt @@ -2,6 +2,7 @@ package es.verdnatura.domain import es.verdnatura.presentation.common.itemBarCodeSalix import es.verdnatura.presentation.common.itemPackingTypeSalix +import es.verdnatura.presentation.common.packingSiteSalix import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType import es.verdnatura.presentation.view.feature.collection.SalixSaleQuantity @@ -122,6 +123,12 @@ interface SalixService { ): Call> + @POST("PackingSiteAdvanceds") + fun ticket_advancePackaging( + @Body parms : packingSiteSalix + ): + Call + @PUT("ItemBarCodes")//REVISADA fun barcodes_edit( diff --git a/app/src/main/java/es/verdnatura/presentation/common/SalixBackItems.kt b/app/src/main/java/es/verdnatura/presentation/common/SalixBackItems.kt index c8a5952f..253ff3dc 100644 --- a/app/src/main/java/es/verdnatura/presentation/common/SalixBackItems.kt +++ b/app/src/main/java/es/verdnatura/presentation/common/SalixBackItems.kt @@ -8,3 +8,8 @@ class itemBarCodeSalix( var itemFk: Int , var code:String ) +class packingSiteSalix( + var ticketFk:Int, + var workerFk: Int + +) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt index 5f88369f..74a8aa2a 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt @@ -68,6 +68,7 @@ import es.verdnatura.presentation.view.feature.sacador.fragment.SacadorFragment import es.verdnatura.presentation.view.feature.sacador.fragment.showticket.ShowTicketFragment import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO import es.verdnatura.presentation.view.feature.shelvingparking.fragment.ShelvingParkingFragment +import es.verdnatura.presentation.view.feature.ticket.fragment.TicketAdvanceFragment import es.verdnatura.presentation.view.feature.ubicador.fragment.AutomaticAddItemFragment import es.verdnatura.presentation.view.feature.ubicador.fragment.UbicadorFragment import es.verdnatura.presentation.view.feature.workermistake.adapter.WorkermistakeFragment @@ -110,7 +111,6 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL val extras = intent.extras val uriImage = intent.data - if (extras != null && extras.containsKey("menu")) { comeFromDelivery = true val option = extras.getString("menu") @@ -737,6 +737,12 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL ) } + getString(R.string.ticketAdvance) -> { + addFragmentOnTop( + TicketAdvanceFragment.newInstance(item.title) + ) + } + getString(R.string.testing) -> { // addFragmentOnTop( // PhotosFragment.newInstance(item.title)) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt index 31d9ab1c..57ab8e88 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt @@ -119,7 +119,6 @@ class PasilleroViewModel(context: Context) : BaseViewModel(context) { ) ) - //Tarea 4940 _pasillerositem.add( PasillerosItemVO( 1, @@ -133,18 +132,18 @@ class PasilleroViewModel(context: Context) : BaseViewModel(context) { ) - //Tarea 4979 - /* _pasillerositem.add( + //Tarea 5651 + _pasillerositem.add( PasillerosItemVO( 1, - R.drawable.ic_category, - contextApp.getString(R.string.categoryChange), - R.string.titleChangeCategory, + R.drawable.ic_advance_ticket, + contextApp.getString(R.string.ticketAdvance), + R.string.ticketAdvance, contextApp.getString( - R.string.titleChangeCategory + R.string.ticketAdvanceDescrip ) ) - )*/ + ) _pasillerositem.add( diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ticket/fragment/TicketAdvanceFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ticket/fragment/TicketAdvanceFragment.kt new file mode 100644 index 00000000..71f4309b --- /dev/null +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ticket/fragment/TicketAdvanceFragment.kt @@ -0,0 +1,84 @@ +package es.verdnatura.presentation.view.feature.ticket.fragment + +import android.view.View.GONE +import android.view.View.VISIBLE +import android.view.inputmethod.EditorInfo +import es.verdnatura.R +import es.verdnatura.databinding.FragmentGeneralBlackBinding +import es.verdnatura.presentation.base.BaseFragment + + +class TicketAdvanceFragment(var title: String) : + BaseFragment( + TicketViewModel::class + ) { + + override fun getLayoutId(): Int = R.layout.fragment_general_black + + companion object { + fun newInstance(title: String) = TicketAdvanceFragment(title = title) + } + + override fun init() { + + binding.scanInput.visibility = VISIBLE + binding.scanInput.hint = getString(R.string.scanLabelTicket) + binding.mainToolbar.toolbarTitle.text = title + binding.splashProgress.visibility = GONE + + setEvents() + super.init() + } + + + private fun setEvents() { + + binding.mainToolbar.backButton.setOnClickListener { + requireActivity().onBackPressed() + } + + binding.scanInput.requestFocus() + binding.scanInput.setOnEditorActionListener { v, actionId, event -> + if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) { + if (!binding.scanInput.text.isNullOrEmpty()) { + binding.splashProgress.visibility = VISIBLE + try { + + viewModel.ticket_advancePackaging( + binding.scanInput.text.toString().toInt(), + getDataInt(USERFK) + ) + } catch (ex: Exception) { + getString(R.string.ticketFormatError) + } + + } + binding.scanInput.setText("") + ma.hideKeyboard(binding.scanInput) + return@setOnEditorActionListener true + } + false + } + } + + override fun observeViewModel() { + with(viewModel) { + + response.observe(viewLifecycleOwner) { + + binding.splashProgress.visibility = GONE + ma.messageWithSound( + if (it.isError) { + it.errorMessage + } else { + getString(R.string.ticketAdvancePagkaging) + }, it.isError, true, isToasted = true + ) + + } + } + } + + +} + diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ticket/fragment/TicketViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ticket/fragment/TicketViewModel.kt new file mode 100644 index 00000000..fa3ff847 --- /dev/null +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ticket/fragment/TicketViewModel.kt @@ -0,0 +1,47 @@ +package es.verdnatura.presentation.view.feature.ticket.fragment + +import android.content.Context +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import es.verdnatura.domain.SilexCallback +import es.verdnatura.presentation.base.BaseViewModel +import es.verdnatura.presentation.base.getMessageFromAllResponse +import es.verdnatura.presentation.base.nameofFunction +import es.verdnatura.presentation.common.ResponseItemVO +import es.verdnatura.presentation.common.packingSiteSalix +import retrofit2.Response + +class TicketViewModel(val context: Context) : BaseViewModel(context) { + + + private val _response by lazy { MutableLiveData() } + val response: LiveData + get() = _response + + + fun ticket_advancePackaging( + ticketFk: Int, + workerFk: Int + + ) { + + salix.ticket_advancePackaging(packingSiteSalix(ticketFk, workerFk)) + .enqueue(object : SilexCallback(context) { + + override fun onError(t: Throwable) { + _response.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) + ) + } + + override fun onSuccess(response: Response) { + _response.value = + ResponseItemVO(isError = false, response = response.message()) + } + + }) + } + + +} diff --git a/app/src/main/res/drawable/ic_advance_ticket.xml b/app/src/main/res/drawable/ic_advance_ticket.xml new file mode 100644 index 00000000..dd6e9432 --- /dev/null +++ b/app/src/main/res/drawable/ic_advance_ticket.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 6aba51e0..a77cfae4 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -594,5 +594,10 @@ Tienes que escanear el artículo para poder subirlo Sube la imagen al servidor Seleccionar imagen + Avanzar ticket encajado + Permite avanzar un ticket para que sea encajado + Escanea ticket + El ticket ya puede ser encajado + El ticket escaneado no tiene un formato correcto diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 44e06a24..762f8ca0 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -594,5 +594,10 @@ Tienes que escanear el artículo para poder subirlo Sube la imagen al servidor Seleccionar imagen + Avanzar ticket encajado + Permite avanzar un ticket para que sea encajado + Escanea ticket + El ticket ya puede ser encajado + El ticket escaneado no tiene un formato correcto diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 11828e2c..7e0a2e76 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -594,5 +594,10 @@ Tienes que escanear el artículo para poder subirlo Sube la imagen al servidor Seleccionar imagen + Avanzar ticket encajado + Permite avanzar un ticket para que sea encajado + Escanea ticket + El ticket ya puede ser encajado + El ticket escaneado no tiene un formato correcto diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5ef4255f..af6407e3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -593,4 +593,9 @@ Tienes que escanear el artículo para poder subirlo Sube la imagen al servidor Seleccionar imagen + Avanzar ticket encajado + Permite avanzar un ticket para que sea encajado + Escanea ticket + El ticket ya puede ser encajado + El ticket escaneado no tiene un formato correcto