refs #6531feat:show last Tickets
This commit is contained in:
parent
b759d8a3dd
commit
0445ac0442
|
@ -52,6 +52,7 @@ import es.verdnatura.presentation.view.feature.sacador.model.CollectionTicket
|
||||||
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
|
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
|
||||||
import es.verdnatura.presentation.view.feature.sacador.model.MistakeTypeVO
|
import es.verdnatura.presentation.view.feature.sacador.model.MistakeTypeVO
|
||||||
import es.verdnatura.presentation.view.feature.sacador.model.PlacementSupplyVO
|
import es.verdnatura.presentation.view.feature.sacador.model.PlacementSupplyVO
|
||||||
|
import es.verdnatura.presentation.view.feature.sacador.model.TicketStateSalix
|
||||||
import es.verdnatura.presentation.view.feature.ubicador.model.ItemUbicadorVO
|
import es.verdnatura.presentation.view.feature.ubicador.model.ItemUbicadorVO
|
||||||
import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake
|
import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake
|
||||||
import es.verdnatura.presentation.view.feature.workermistake.model.ExpeditionMistakeSalix
|
import es.verdnatura.presentation.view.feature.workermistake.model.ExpeditionMistakeSalix
|
||||||
|
@ -92,6 +93,11 @@ interface SalixService {
|
||||||
@Query("filter") filter: String
|
@Query("filter") filter: String
|
||||||
): Call<List<BuyerVO>>
|
): Call<List<BuyerVO>>
|
||||||
|
|
||||||
|
@GET("ticketStates")
|
||||||
|
fun lastTicketGetByWorker(
|
||||||
|
@Query("filter") filter: String
|
||||||
|
): Call<List<TicketStateSalix>>
|
||||||
|
|
||||||
@POST("Applications/{routine}/execute-func")
|
@POST("Applications/{routine}/execute-func")
|
||||||
fun executeFunc(
|
fun executeFunc(
|
||||||
@Path("routine") routine: String,
|
@Path("routine") routine: String,
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
package es.verdnatura.presentation.view.feature.sacador.adapter
|
||||||
|
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import es.verdnatura.databinding.ItemLastTicketRowBinding
|
||||||
|
import es.verdnatura.presentation.common.OnCollectionSelectedListener
|
||||||
|
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
|
||||||
|
import es.verdnatura.presentation.view.feature.sacador.model.TicketStateSalix
|
||||||
|
|
||||||
|
class TicketLastStateAdapter(
|
||||||
|
private val items: List<TicketStateSalix>,
|
||||||
|
private val onCollectionSelected: OnCollectionSelectedListener,
|
||||||
|
private val type: String
|
||||||
|
) : RecyclerView.Adapter<TicketLastStateAdapter.AjustesItemHolder>() {
|
||||||
|
|
||||||
|
|
||||||
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AjustesItemHolder {
|
||||||
|
return AjustesItemHolder(
|
||||||
|
ItemLastTicketRowBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getItemCount() = items.size
|
||||||
|
|
||||||
|
override fun onBindViewHolder(holder: AjustesItemHolder, position: Int) {
|
||||||
|
holder.bind(items[position])
|
||||||
|
holder.binding.root.setOnClickListener {
|
||||||
|
onCollectionSelected.onCollectionSelected(CollectionVO(items[position].ticketFk), type)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class AjustesItemHolder(
|
||||||
|
val binding: ItemLastTicketRowBinding
|
||||||
|
) : RecyclerView.ViewHolder(binding.root) {
|
||||||
|
fun bind(item: TicketStateSalix) {
|
||||||
|
binding.apply {
|
||||||
|
this.item = item
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,25 +5,29 @@ import android.os.Bundle
|
||||||
import android.text.InputType.TYPE_CLASS_NUMBER
|
import android.text.InputType.TYPE_CLASS_NUMBER
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.inputmethod.EditorInfo
|
import android.view.inputmethod.EditorInfo
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import es.verdnatura.R
|
import es.verdnatura.R
|
||||||
import es.verdnatura.databinding.FragmentGeneralBlackBinding
|
import es.verdnatura.databinding.FragmentShowTicketBinding
|
||||||
import es.verdnatura.domain.ConstAndValues
|
import es.verdnatura.domain.ConstAndValues
|
||||||
import es.verdnatura.domain.ConstAndValues.SECTORFK
|
import es.verdnatura.domain.ConstAndValues.SECTORFK
|
||||||
import es.verdnatura.presentation.base.BaseFragment
|
import es.verdnatura.presentation.base.BaseFragment
|
||||||
import es.verdnatura.presentation.common.OnCollectionSelectedListener
|
import es.verdnatura.presentation.common.OnCollectionSelectedListener
|
||||||
import es.verdnatura.presentation.view.feature.precontrol.ShowTicketViewModel
|
import es.verdnatura.presentation.view.feature.precontrol.ShowTicketViewModel
|
||||||
|
import es.verdnatura.presentation.view.feature.sacador.adapter.TicketLastStateAdapter
|
||||||
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
|
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
|
||||||
|
import es.verdnatura.presentation.view.feature.sacador.model.TicketStateSalix
|
||||||
|
|
||||||
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
|
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
|
||||||
class ShowTicketFragment(var menuOrigin: String) :
|
class ShowTicketFragment(var menuOrigin: String) :
|
||||||
BaseFragment<FragmentGeneralBlackBinding, ShowTicketViewModel>(
|
BaseFragment<FragmentShowTicketBinding, ShowTicketViewModel>(
|
||||||
ShowTicketViewModel::class
|
ShowTicketViewModel::class
|
||||||
) {
|
) {
|
||||||
|
|
||||||
private var goBack: Boolean = false
|
private var goBack: Boolean = false
|
||||||
private var onCollectionSelectedListener: OnCollectionSelectedListener? = null
|
private var onCollectionSelectedListener: OnCollectionSelectedListener? = null
|
||||||
override fun getLayoutId(): Int = R.layout.fragment_general_black
|
override fun getLayoutId(): Int = R.layout.fragment_show_ticket
|
||||||
private var type = ""
|
private var type = ""
|
||||||
|
private var adapter: TicketLastStateAdapter? = null
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun newInstance(menuOrigin: String) = ShowTicketFragment(menuOrigin = menuOrigin)
|
fun newInstance(menuOrigin: String) = ShowTicketFragment(menuOrigin = menuOrigin)
|
||||||
|
@ -42,9 +46,8 @@ class ShowTicketFragment(var menuOrigin: String) :
|
||||||
if (menuOrigin == getString(R.string.main)) {
|
if (menuOrigin == getString(R.string.main)) {
|
||||||
hideBackButton(binding.mainToolbar)
|
hideBackButton(binding.mainToolbar)
|
||||||
}
|
}
|
||||||
|
|
||||||
setEvents()
|
setEvents()
|
||||||
|
viewModel.lastTicketGetByWorker(mobileApplication.userId!!)
|
||||||
super.init()
|
super.init()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,6 +67,11 @@ class ShowTicketFragment(var menuOrigin: String) :
|
||||||
binding.mainToolbar.backButton.setOnClickListener {
|
binding.mainToolbar.backButton.setOnClickListener {
|
||||||
requireActivity().onBackPressed()
|
requireActivity().onBackPressed()
|
||||||
}
|
}
|
||||||
|
binding.sacadorSwipe.setOnRefreshListener {
|
||||||
|
binding.sacadorSwipe.isRefreshing = true
|
||||||
|
viewModel.lastTicketGetByWorker(mobileApplication.userId!!)
|
||||||
|
binding.sacadorSwipe.isRefreshing = false
|
||||||
|
}
|
||||||
|
|
||||||
binding.scanInput.requestFocus()
|
binding.scanInput.requestFocus()
|
||||||
binding.scanInput.setRawInputType(TYPE_CLASS_NUMBER)
|
binding.scanInput.setRawInputType(TYPE_CLASS_NUMBER)
|
||||||
|
@ -80,6 +88,7 @@ class ShowTicketFragment(var menuOrigin: String) :
|
||||||
print = "0",
|
print = "0",
|
||||||
type = type
|
type = type
|
||||||
)
|
)
|
||||||
|
|
||||||
binding.splashProgress.visibility = View.VISIBLE
|
binding.splashProgress.visibility = View.VISIBLE
|
||||||
} catch (ex: Exception) {
|
} catch (ex: Exception) {
|
||||||
ma.messageWithSound(
|
ma.messageWithSound(
|
||||||
|
@ -98,6 +107,15 @@ class ShowTicketFragment(var menuOrigin: String) :
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun createCollectionList(listTickets: List<TicketStateSalix>) {
|
||||||
|
|
||||||
|
val lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
|
||||||
|
adapter = TicketLastStateAdapter(listTickets, onCollectionSelectedListener!!, type)
|
||||||
|
binding.lastTicketsRecyclerview.layoutManager = lm
|
||||||
|
binding.lastTicketsRecyclerview.adapter = adapter
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
override fun observeViewModel() {
|
override fun observeViewModel() {
|
||||||
with(viewModel) {
|
with(viewModel) {
|
||||||
collectionTicketList.observe(viewLifecycleOwner) {
|
collectionTicketList.observe(viewLifecycleOwner) {
|
||||||
|
@ -110,7 +128,13 @@ class ShowTicketFragment(var menuOrigin: String) :
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
lastTicketList.observe(viewLifecycleOwner) {
|
||||||
|
if (it.list.isNotEmpty()) {
|
||||||
|
createCollectionList(it.list)
|
||||||
|
} else {
|
||||||
|
binding.txtLastTickets.visibility = View.INVISIBLE
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,19 +3,24 @@ package es.verdnatura.presentation.view.feature.precontrol
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import es.verdnatura.domain.SalixCallback
|
||||||
import es.verdnatura.domain.SilexCallback
|
import es.verdnatura.domain.SilexCallback
|
||||||
import es.verdnatura.presentation.base.BaseViewModel
|
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.view.feature.collection.mapper.map
|
import es.verdnatura.presentation.view.feature.collection.mapper.map
|
||||||
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
|
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
|
||||||
|
import es.verdnatura.presentation.view.feature.sacador.model.TicketStateList
|
||||||
|
import es.verdnatura.presentation.view.feature.sacador.model.TicketStateSalix
|
||||||
import retrofit2.Response
|
import retrofit2.Response
|
||||||
|
|
||||||
class ShowTicketViewModel(val context: Context) : BaseViewModel(context) {
|
class ShowTicketViewModel(val context: Context) : BaseViewModel(context) {
|
||||||
|
|
||||||
private val _collectionTicketList by lazy { MutableLiveData<CollectionVO>() }
|
private val _collectionTicketList by lazy { MutableLiveData<CollectionVO>() }
|
||||||
val collectionTicketList: LiveData<CollectionVO>
|
val collectionTicketList: LiveData<CollectionVO> = _collectionTicketList
|
||||||
get() = _collectionTicketList
|
|
||||||
|
private val _lastTicketList by lazy { MutableLiveData<TicketStateList>() }
|
||||||
|
val lastTicketList: LiveData<TicketStateList> = _lastTicketList
|
||||||
|
|
||||||
fun collectionTicketGet(collectionFk: Int, sectorFk: Int, print: String, type: String) {
|
fun collectionTicketGet(collectionFk: Int, sectorFk: Int, print: String, type: String) {
|
||||||
//Tarea 6276
|
//Tarea 6276
|
||||||
|
@ -48,4 +53,13 @@ class ShowTicketViewModel(val context: Context) : BaseViewModel(context) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun lastTicketGetByWorker(userId: Int) {
|
||||||
|
salix.lastTicketGetByWorker("""{"where": {"userFk": $userId},"order":"updated DESC","limit": 5}""")
|
||||||
|
.enqueue(object : SalixCallback<List<TicketStateSalix>>(context) {
|
||||||
|
override fun onSuccess(response: Response<List<TicketStateSalix>>) {
|
||||||
|
_lastTicketList.value = response.body()?.let { TicketStateList(it) }
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,5 +1,9 @@
|
||||||
package es.verdnatura.presentation.view.feature.sacador.model
|
package es.verdnatura.presentation.view.feature.sacador.model
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
|
import es.verdnatura.domain.isoToString
|
||||||
|
|
||||||
//Tarea 5890
|
//Tarea 5890
|
||||||
// Sacado reservado
|
// Sacado reservado
|
||||||
|
|
||||||
|
@ -295,3 +299,23 @@ var collectionLocal = CollectionTicket(
|
||||||
3,
|
3,
|
||||||
tickets = ticketLocal
|
tickets = ticketLocal
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class TicketStateList(
|
||||||
|
var list: List<TicketStateSalix> = listOf()
|
||||||
|
)
|
||||||
|
|
||||||
|
data class TicketStateSalix(
|
||||||
|
val ticketFk: Int,
|
||||||
|
val alertLevel: Int,
|
||||||
|
val code: String,
|
||||||
|
val stateFk: Int,
|
||||||
|
val userFk: Int
|
||||||
|
) {
|
||||||
|
@RequiresApi(Build.VERSION_CODES.O)
|
||||||
|
var updated: String = ""
|
||||||
|
@RequiresApi(Build.VERSION_CODES.O)
|
||||||
|
get() {
|
||||||
|
return field.isoToString()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,88 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/verdnatura_black">
|
||||||
|
|
||||||
|
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||||
|
android:id="@+id/sacador_swipe"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
android:id="@+id/scan_input"
|
||||||
|
style="@style/ScanLineTextSearch"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:hint="@string/Escaneaetiqueta"
|
||||||
|
android:inputType="textVisiblePassword"
|
||||||
|
android:lines="1"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:textColorHint="@android:color/white"
|
||||||
|
android:visibility="visible"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="@+id/main_toolbar" />
|
||||||
|
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
android:id="@+id/txt_last_tickets"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/lastTicketsText"
|
||||||
|
android:textColor="@color/verdnatura_white"
|
||||||
|
android:textSize="@dimen/h7"></com.google.android.material.textview.MaterialTextView>
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/last_tickets_recyclerview"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
tools:listitem="@layout/item_last_ticket_row" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:id="@+id/main_toolbar"
|
||||||
|
layout="@layout/toolbar_fragment"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/splash_progress"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/verdnatura_black_8_alpha_6"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="invisible">
|
||||||
|
|
||||||
|
<com.airbnb.lottie.LottieAnimationView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="@dimen/verdnatura_logo_large_height"
|
||||||
|
app:lottie_autoPlay="true"
|
||||||
|
app:lottie_loop="true"
|
||||||
|
app:lottie_rawRes="@raw/orange_loading"
|
||||||
|
app:lottie_speed="2" />
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
</layout>
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
>
|
||||||
|
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="item"
|
||||||
|
type="es.verdnatura.presentation.view.feature.sacador.model.TicketStateSalix" />
|
||||||
|
</data>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
style="@style/LayoutClickable">
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@color/verdnatura_black_5"
|
||||||
|
android:padding="@dimen/pasilleros_margin_main_menu">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/item_title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@{Integer.toString(item.ticketFk)}"
|
||||||
|
android:textColor="@color/verdnatura_white"
|
||||||
|
android:textSize="@dimen/h7"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_marginLeft="@dimen/pasilleros_margin_main_menu"
|
||||||
|
android:textStyle="bold"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/item_selected"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="@{item.updated}"
|
||||||
|
android:textColor="@color/verdnatura_pumpkin_orange"
|
||||||
|
android:textSize="@dimen/h7"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_marginLeft="@dimen/pasilleros_margin_main_menu"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="@color/verdnatura_black_9"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</layout>
|
|
@ -697,6 +697,7 @@
|
||||||
<string name="checkingByUser">Está siendo revisado por %1$s</string>
|
<string name="checkingByUser">Está siendo revisado por %1$s</string>
|
||||||
<string name="checkedByUser">Ha sido revisado por %1$s</string>
|
<string name="checkedByUser">Ha sido revisado por %1$s</string>
|
||||||
<string name="previousText">PREVIA:%1$s</string>
|
<string name="previousText">PREVIA:%1$s</string>
|
||||||
|
<string name="lastTicketsText">Últimos tickets modificados :</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -696,6 +696,7 @@
|
||||||
<string name="checkingByUser">Está siendo revisado por %1$s</string>
|
<string name="checkingByUser">Está siendo revisado por %1$s</string>
|
||||||
<string name="checkedByUser">Ha sido revisado por %1$s</string>
|
<string name="checkedByUser">Ha sido revisado por %1$s</string>
|
||||||
<string name="previousText">PREVIA:%1$s</string>
|
<string name="previousText">PREVIA:%1$s</string>
|
||||||
|
<string name="lastTicketsText">Últimos tickets modificados :</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -696,6 +696,7 @@
|
||||||
<string name="checkingByUser">Está siendo revisado por %1$s</string>
|
<string name="checkingByUser">Está siendo revisado por %1$s</string>
|
||||||
<string name="checkedByUser">Ha sido revisado por %1$s</string>
|
<string name="checkedByUser">Ha sido revisado por %1$s</string>
|
||||||
<string name="previousText">PREVIA:%1$s</string>
|
<string name="previousText">PREVIA:%1$s</string>
|
||||||
|
<string name="lastTicketsText">Últimos tickets modificados :</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -696,5 +696,6 @@
|
||||||
<string name="checkingByUser">Ticket on checking by %1$s</string>
|
<string name="checkingByUser">Ticket on checking by %1$s</string>
|
||||||
<string name="checkedByUser">ticket checked by %1$s</string>
|
<string name="checkedByUser">ticket checked by %1$s</string>
|
||||||
<string name="previousText">PREVIA:%1$s</string>
|
<string name="previousText">PREVIA:%1$s</string>
|
||||||
|
<string name="lastTicketsText">Últimos tickets modificados :</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in New Issue