diff --git a/app/build.gradle b/app/build.gradle index e502277c..294d8a7a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,9 @@ android { applicationId "es.verdnatura" minSdkVersion 21 targetSdkVersion 30 - versionCode 121 - versionName = "8.5Beta" + versionCode 122 + versionName = "8.5.1Beta" + //versionName = "8.5Beta" //versionCode 121 //versionName = "8.4"// versionCode 120 //versionName "8.4.2Beta" versioncode 119 //versionName "8.4.1Beta" //versionCode 118: arreglat rocket a Alex i llevat callFunction,strings ok diff --git a/app/release/vn-pickingBeta.apk b/app/release/vn-pickingBeta.apk new file mode 100644 index 00000000..ffbf6e96 Binary files /dev/null and b/app/release/vn-pickingBeta.apk differ diff --git a/app/src/main/java/es/verdnatura/di/viewModelModule.kt b/app/src/main/java/es/verdnatura/di/viewModelModule.kt index ede6d84a..37837ab9 100644 --- a/app/src/main/java/es/verdnatura/di/viewModelModule.kt +++ b/app/src/main/java/es/verdnatura/di/viewModelModule.kt @@ -49,7 +49,7 @@ val viewModelModule = module { // Pasilleros viewModel { - PasilleroViewModel() + PasilleroViewModel(androidContext()) } //Pasilleros Dia de venta viewModel { diff --git a/app/src/main/java/es/verdnatura/domain/GetPreSacadorUseCase.kt b/app/src/main/java/es/verdnatura/domain/GetPreSacadorUseCase.kt index e1e0636a..c6a612ca 100644 --- a/app/src/main/java/es/verdnatura/domain/GetPreSacadorUseCase.kt +++ b/app/src/main/java/es/verdnatura/domain/GetPreSacadorUseCase.kt @@ -7,6 +7,7 @@ import retrofit2.Call class GetPreSacadorUseCase(context: Context) : RestClient(context) { + fun ticketToPrePrepare( usuario: String, password: String, @@ -85,7 +86,7 @@ class GetPreSacadorUseCase(context: Context) : RestClient(context) { usuario: String, password: String, vSaleGroupFk: String, - vSectorCollectionFk:String + vSectorCollectionFk: String ): Call { val params: ArrayList = ArrayList() @@ -105,7 +106,7 @@ class GetPreSacadorUseCase(context: Context) : RestClient(context) { fun saleTracking_addPrevOK( usuario: String, password: String, - vSectorCollectionFk:String + vSectorCollectionFk: String ): Call { val params: ArrayList = ArrayList() @@ -124,8 +125,8 @@ class GetPreSacadorUseCase(context: Context) : RestClient(context) { fun saleTracking_updateIsChecked( usuario: String, password: String, - vSaleFk:String, - vIsChecked:String + vSaleFk: String, + vIsChecked: String ): Call { val params: ArrayList = ArrayList() @@ -151,7 +152,7 @@ class GetPreSacadorUseCase(context: Context) : RestClient(context) { usuario: String, password: String, sectorCollectionFK: String, - vSectorFk:String + vSectorFk: String ): Call> { val params: ArrayList = ArrayList() 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 a05bc6cb..83f68f46 100644 --- a/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt @@ -51,15 +51,13 @@ abstract class BaseFragment(viewModelCla protected val TOKEN = "token" protected val SECTORDESCRIP = "sectordescrip" protected val SECTORFK = "sectorFk" - protected val PRINTERNAME= "printername" protected val PRINTERFK = "printerFk" - protected val WAREHOUSEFK = "warehouseFk" - protected val RECORDAR = "recordar" + protected val REMEMBER = "recordar" protected val ANDROID_ID = "ANDROID_ID" protected val DEVICENAME = "devicename" - protected val VOZ = "voz" + //protected val VOZ = "voz" //nuevo campo número carros ajustes y campos para guardar el buyerid y buyernickname protected val BUYER = "buyernickname" protected val BUYERID = "buyerid" @@ -527,7 +525,7 @@ override fun onViewCreated(view: View, savedInstanceState: Bundle?) PASSWORD -> prefs.getString(PASSWORD, "").toString() SECTORFK->prefs.getInt(name, SECTORFKDEFAULT).toString() WAREHOUSEFK->prefs.getInt(name, ConstAndValues.WAREHOUSEFKDEFAULT).toString() - VOZ->prefs.getString(name, "NO").toString() + //VOZ->prefs.getString(name, "NO").toString() WAGON->prefs.getInt(name, 2).toString() TAGSTYPE-> prefs.getString(name, getString(R.string.stickers)).toString() SECTORDESCRIP->prefs.getString(name,getString(R.string.Sinsector)).toString() @@ -568,12 +566,18 @@ override fun onViewCreated(view: View, savedInstanceState: Bundle?) editor.commit() } + fun removePrinter(){ + val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) + val editor = prefs.edit() + editor.remove(PRINTERFK).commit() + editor.remove(PRINTERNAME).commit() + + } fun saveData(name:String,value:String){ val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val editor = prefs.edit() - // Log.d("VERDNATURA::","El name es "+name+":"+ "y el valor "+value) when (name) { ANDROID_ID -> editor.putString(name, value) diff --git a/app/src/main/java/es/verdnatura/presentation/base/BaseViewModel.kt b/app/src/main/java/es/verdnatura/presentation/base/BaseViewModel.kt index 23f7b927..f3b1bd39 100644 --- a/app/src/main/java/es/verdnatura/presentation/base/BaseViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/base/BaseViewModel.kt @@ -7,43 +7,36 @@ import org.json.JSONObject abstract class BaseViewModel : ViewModel(), LifecycleObserver - -fun nameofFunction(function: Any): String -{ +fun nameofFunction(function: Any): String { // return Thread.currentThread().stackTrace[1].methodName - try { - return function.javaClass.enclosingMethod!!.name - } catch (e: Exception){ - return "ActivityMain" - } + try { + return function.javaClass.enclosingMethod!!.name + } catch (e: Exception) { + return "ActivityMain" + } } -fun getMessageFromAllResponse(callFunction: String, ResponseMessage: String): String -{ +fun getMessageFromAllResponse(callFunction: String, ResponseMessage: String): String { var messageFromError: String - var returnMessage: String + val returnMessage: String - try - { + try { val answerError = JSONObject(ResponseMessage) messageFromError = answerError.get("Message").toString() - } catch (e: Exception) - { + } catch (e: Exception) { messageFromError = ResponseMessage } //sergio:para personalizar los mensajes de respuesta según la llamada. - when (callFunction) - { - "collection_getTickets" -> returnMessage ="No hay tickets para sacar. Llamada $callFunction." - else -> - { - returnMessage = "Llamada $callFunction." + when (callFunction) { + //"collection_getTickets" -> returnMessage ="No hay tickets para sacar. Llamada $callFunction." + else -> { + returnMessage = "Callback: $callFunction." } } - //} + return "$messageFromError.\r$returnMessage" } diff --git a/app/src/main/java/es/verdnatura/presentation/common/ResponseItemVO.kt b/app/src/main/java/es/verdnatura/presentation/common/ResponseItemVO.kt index 158ee638..459fe0a8 100644 --- a/app/src/main/java/es/verdnatura/presentation/common/ResponseItemVO.kt +++ b/app/src/main/java/es/verdnatura/presentation/common/ResponseItemVO.kt @@ -3,7 +3,8 @@ package es.verdnatura.presentation.common class ResponseItemVO( var response: String = "", var isError: Boolean = false, - var errorMessage: String = "" + var errorMessage: String = "", + var codeError:Int=0 ) class ResponseItemMachineControl( diff --git a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogHour.kt b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogHour.kt index 71e41b75..4f45e3a3 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogHour.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogHour.kt @@ -14,9 +14,10 @@ import java.text.SimpleDateFormat import java.util.* -class CustomDialogHour(context: Context) : Dialog(context, R.style.DialogTheme) { +class CustomDialogHour(context: Context) : Dialog(context, R.style.DialogTheme) { - private var binding: ComponentCustomHourBinding = ComponentCustomHourBinding.inflate(layoutInflater) + private var binding: ComponentCustomHourBinding = + ComponentCustomHourBinding.inflate(layoutInflater) init { @@ -32,14 +33,14 @@ class CustomDialogHour(context: Context) : Dialog(context, R.style.DialogTheme) } fun getDestinoValue(): String { - // return custom_dialog_destino_value.text.toString() + // return custom_dialog_destino_value.text.toString() return binding.customDialogDestinoValue.text.toString() } fun setDestinoValue(value: String): CustomDialogHour { binding.customDialogDestinoValue.setText(value) - binding.customDialogDestinoValue.visibility=View.VISIBLE + binding.customDialogDestinoValue.visibility = View.VISIBLE return this /*custom_dialog_destino_value.setText(value) custom_dialog_destino_value.visibility = View.VISIBLE @@ -48,49 +49,55 @@ class CustomDialogHour(context: Context) : Dialog(context, R.style.DialogTheme) fun getHoraEditText(): TextInputEditText { - return binding.customDialogHourValue - //return custom_dialog_hour_value + return binding.customDialogHourValue + //return custom_dialog_hour_value } fun getHoraValue(): String { - return binding.customDialogHourValue.text.toString() - //return custom_dialog_hour_value.text.toString() + return binding.customDialogHourValue.text.toString() + //return custom_dialog_hour_value.text.toString() } @SuppressLint("SimpleDateFormat") fun setHoraValue(value: String): CustomDialogHour { - binding.customDialogHourValue.setText(value) - binding.customDialogHourValue.visibility=View.VISIBLE - binding.ibObtenerHora.setOnClickListener{ + binding.customDialogHourValue.setText(value) + binding.customDialogHourValue.visibility = View.VISIBLE + binding.ibObtenerHora.setOnClickListener { } //custom_dialog_hour_value.setText(value) //custom_dialog_hour_value.visibility = View.VISIBLE - // ib_obtener_hora.setOnClickListener { - binding.ibObtenerHora.setOnClickListener{ - val cal = Calendar.getInstance() + // ib_obtener_hora.setOnClickListener { + binding.ibObtenerHora.setOnClickListener { + val cal = Calendar.getInstance() val timeSetListener = TimePickerDialog.OnTimeSetListener { timePicker, hour, minute -> cal.set(Calendar.HOUR_OF_DAY, hour) cal.set(Calendar.MINUTE, minute) - binding.customDialogHourValue.setText(SimpleDateFormat("HH:mm").format(cal.time)) - //custom_dialog_hour_value.setText(SimpleDateFormat("HH:mm").format(cal.time)) + binding.customDialogHourValue.setText(SimpleDateFormat(context.getString(R.string.timeFormat)).format(cal.time)) + //custom_dialog_hour_value.setText(SimpleDateFormat(getString(R.string.timeFormat)).format(cal.time)) } - TimePickerDialog(context, timeSetListener, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), true).show() + TimePickerDialog( + context, + timeSetListener, + cal.get(Calendar.HOUR_OF_DAY), + cal.get(Calendar.MINUTE), + true + ).show() } return this } fun setTitle(title: String): CustomDialogHour { - binding.customDialogTitle.visibility=View.VISIBLE - binding.customDialogTitle.text=title - // custom_dialog_title.visibility = View.VISIBLE + binding.customDialogTitle.visibility = View.VISIBLE + binding.customDialogTitle.text = title + // custom_dialog_title.visibility = View.VISIBLE //custom_dialog_title.text = title return this } fun setDescription(description: String): CustomDialogHour { - binding.customDialogDescription.visibility=View.VISIBLE + binding.customDialogDescription.visibility = View.VISIBLE binding.customDialogDescription.text = description //custom_dialog_description.visibility = View.VISIBLE @@ -99,13 +106,13 @@ class CustomDialogHour(context: Context) : Dialog(context, R.style.DialogTheme) } fun setOkButton(text: String, onButtonClicked: () -> Unit): CustomDialogHour { - binding.customDialogButtonOk.visibility=View.VISIBLE - binding.customDialogButtonOk.text=text + binding.customDialogButtonOk.visibility = View.VISIBLE + binding.customDialogButtonOk.text = text //custom_dialog_button_ok.visibility = View.VISIBLE - // custom_dialog_button_ok.text = text - // custom_dialog_button_ok.setOnClickListener { onButtonClicked() } - binding.customDialogButtonOk.setOnClickListener{ onButtonClicked() } + // custom_dialog_button_ok.text = text + // custom_dialog_button_ok.setOnClickListener { onButtonClicked() } + binding.customDialogButtonOk.setOnClickListener { onButtonClicked() } return this } 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 57ef3775..e1403428 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 @@ -129,7 +129,7 @@ class AjustesFragment : } else if (item.id == 3) { val listTagsType: ArrayList = ArrayList() listTagsType.add(getString(R.string.stickers)) - listTagsType.add(getString(R.string.smarttags)) + // listTagsType.add(getString(R.string.smarttags)) tagsList = listTagsType val array = arrayOfNulls(listTagsType.size) showItemPickerType(array = listTagsType.toArray(array)) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt index 7c4b348e..6d872102 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt @@ -5,6 +5,7 @@ import android.content.Context import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.Transformations +import es.verdnatura.R import es.verdnatura.domain.GetAjustesUserCase import es.verdnatura.presentation.base.BaseViewModel import es.verdnatura.presentation.base.getMessageFromAllResponse @@ -19,6 +20,8 @@ import timber.log.Timber.d class AjustesViewModel(context: Context) : BaseViewModel() { + + private val contextApp=context private val getAjustesUserCase: GetAjustesUserCase = GetAjustesUserCase(context) val version: String = "5.0.0" @@ -61,7 +64,7 @@ class AjustesViewModel(context: Context) : BaseViewModel() { _ajustesitem.add( AjustesItemVO( 0, - "Sector", + contextApp.getString(R.string.sector), sectorDescrip, sectorFk, warehouseFk, @@ -74,17 +77,17 @@ class AjustesViewModel(context: Context) : BaseViewModel() { _ajustesitem.add( AjustesItemVO( 1, - "Carros", + contextApp.getString(R.string.wagoons), carroDescrip, 0, 0, - 0, "Sin impresora" + 0, contextApp.getString(R.string.printerWithout) ) ) _ajustesitem.add( AjustesItemVO( 2, - "Impresora etiquetas", + contextApp.getString(R.string.printerLabel), printerSelected, 0, 0, @@ -94,37 +97,37 @@ class AjustesViewModel(context: Context) : BaseViewModel() { _ajustesitem.add( AjustesItemVO( 3, - "Tipo etiqueta", + contextApp.getString(R.string.labelType), TypeTags, 0, 0, - 0, "Sin impresora" + 0, contextApp.getString(R.string.printerWithout) ) ) _ajustesitem.add( AjustesItemVO( 4, - "Control de vehículos", + contextApp.getString(R.string.vehicleControl), "", 0, 0, - 0, "Sin impresora" + 0, contextApp.getString(R.string.printerWithout) ) ) _ajustesitem.add( AjustesItemVO( 5, - "Cerrar Sesión", + contextApp.getString(R.string.closeSession), "", 0, 0, - 0, "Sin impresora" + 0, contextApp.getString(R.string.printerWithout) ) ) } - fun getSectors(user: String, password: String) { + /* fun getSectors(user: String, password: String) { getAjustesUserCase.getSectors(user, password) .enqueue(object : Callback> { override fun onFailure(call: Call>, t: Throwable) { @@ -155,7 +158,7 @@ class AjustesViewModel(context: Context) : BaseViewModel() { } }) - } + }*/ fun getSectorsSalix(token: String) { getAjustesUserCase.getSectorsSalix(token).enqueue(object : Callback> { @@ -221,7 +224,7 @@ class AjustesViewModel(context: Context) : BaseViewModel() { } fun worker_updateSector(user: String, password: String, sectorFk: String) { - d("El sector marcado dentro es %s", sectorFk) + getAjustesUserCase.worker_updateSector(user, password, sectorFk) .enqueue(object : Callback { override fun onFailure(call: Call, t: Throwable) { diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardFragment.kt index a53b1d76..d58f20b3 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardFragment.kt @@ -175,8 +175,8 @@ class ItemCardFragment( binding.itemcardImage.setOnClickListener { val i = Intent(activity, ImageViewActivity::class.java) - i.putExtra("url", urlLarge) - i.putExtra("title", titleImage) + i.putExtra(getString(R.string.url), urlLarge) + i.putExtra(getString(R.string.title), titleImage) startActivity(i) } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt index 6f4159b3..d351924d 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt @@ -481,7 +481,7 @@ class CollectionFragment( // if (!goBack) { if (it.isError) { customDialog.setTitle(getString(R.string.disponibility)) - .setDescription(it.errorMessage) + .setDescription(getString(R.string.errorCollectionNew)+it.errorMessage) .setKoButton(getString(R.string.close)) { scanRequest() customDialog.dismiss() @@ -2139,7 +2139,7 @@ class CollectionFragment( val ticket = "[" + sales[position].ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + sales[position].ticketFk + "/summary)" val message = - "Se ha enviado a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[position].itemFk + " ticket " + ticket + "Se ha enviado a Faltas la cantidad de " + totalQuantity + getString(R.string.fromItem) + sales[position].itemFk + " ticket " + ticket viewModel.sendChekingPresence( token = token, workerId = sales[position].salePersonFk, @@ -2175,7 +2175,7 @@ class CollectionFragment( val ticket = "[" + sales[position].ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + sales[position].ticketFk + "/summary)" val message = - "Se ha enviado a Basura " + totalQuantity + " del articulo " + sales[position].itemFk + " ticket " + ticket + "Se ha enviado a Basura " + totalQuantity + getString(R.string.fromItem) + sales[position].itemFk + " ticket " + ticket viewModel.sendChekingPresence( token = token, workerId = sales[position].salePersonFk, @@ -2250,12 +2250,12 @@ class CollectionFragment( "TRUE" -> { message = - "Se ha enviado a Basura " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket + "Se ha enviado a Basura " + totalQuantity + getString(R.string.fromItem) + sales[positionCollectionMissing].itemFk + " ticket " + ticket } "FALSE" -> { message = - "Se ha enviado a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket + "Se ha enviado a Faltas la cantidad de " + totalQuantity + getString(R.string.fromItem) + sales[positionCollectionMissing].itemFk + " ticket " + ticket } "reject" -> { diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt index 7e872769..baa93527 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt @@ -22,7 +22,9 @@ import retrofit2.Response class CollectionViewModel(context: Context) : BaseViewModel() { - val emptyMessage = context.getString(R.string.collectionNoTickets) + // val emptyMessage = context.getString(R.string.collectionNoTickets) + + private val contextApp=context private val getSacadorControladorUserCase: GetSacadorControladorUserCase = GetSacadorControladorUserCase(context) @@ -148,7 +150,7 @@ class CollectionViewModel(context: Context) : BaseViewModel() { response: Response ) { if (response.body() != null) { - _collectionTicketList.value = response.body()?.let { it.map() } + _collectionTicketList.value = response.body()?.let { it.map(contextApp) } } else { _collectionTicketList.value = CollectionVO( isError = true, diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/ShowTicketFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/ShowTicketFragment.kt index b6d36bd6..b4ea1d74 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/ShowTicketFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/ShowTicketFragment.kt @@ -66,7 +66,7 @@ class CollectionShowTicketFragment( override fun init() { customDialog = CustomDialog(requireContext()) - ma.hideBottomNavigation(GONE) + //84ma.hideBottomNavigation(GONE) binding.splashProgress.visibility = VISIBLE setEvents() setToolBarIcon() diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/mapper/CollectionMapper.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/mapper/CollectionMapper.kt index edb278c8..73ba026a 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/mapper/CollectionMapper.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/mapper/CollectionMapper.kt @@ -1,12 +1,13 @@ package es.verdnatura.presentation.view.feature.collection.mapper -import android.util.Log +import android.content.Context +import es.verdnatura.R import es.verdnatura.presentation.common.convertToDateString import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO import java.text.SimpleDateFormat import java.util.* -fun CollectionVO.map(): CollectionVO { +fun CollectionVO.map(context: Context): CollectionVO { try { @@ -57,7 +58,7 @@ fun CollectionVO.map(): CollectionVO { } } placement.created = - getCalendarFromDate(placement.created).convertToDateString() + getCalendarFromDate(placement.created,context).convertToDateString() placement.visible = "(" + (if (placement.visible.toInt() > 0) placement.visible else "0") + ")" } @@ -70,19 +71,19 @@ fun CollectionVO.map(): CollectionVO { } catch (e: Exception) { this.isError = true if (this.tickets == null || this.tickets.isEmpty()) { - this.errorMessage = "La colección no tiene tickets" + this.errorMessage = context.getString(R.string.collectionNoTickets) } else { this.errorMessage = - "Error al construir la colección. Descripción del error:" + e.message.toString() + context.getString(R.string.collectionErrorBuilding) + e.message.toString() } } return this } -private fun getCalendarFromDate(date: String): Calendar { - val sdf = SimpleDateFormat("yyyy-MM-dd") +private fun getCalendarFromDate(date: String,context:Context): Calendar { + val sdf = SimpleDateFormat(context.getString(R.string.dateFormat)) val cal = Calendar.getInstance() cal.setTime(sdf.parse(date)) return cal diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/ControladorViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/ControladorViewModel.kt index ff61bea0..5f91b067 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/ControladorViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/ControladorViewModel.kt @@ -16,6 +16,7 @@ import retrofit2.Response class ControladorViewModel(context: Context) : BaseViewModel() { + private val contextApp=context private val _collectionTicketList by lazy { MutableLiveData() } private val getSacadorControladorUserCase: GetSacadorControladorUserCase = GetSacadorControladorUserCase(context) @@ -39,7 +40,7 @@ class ControladorViewModel(context: Context) : BaseViewModel() { ) { if (response.body() != null){ - _collectionTicketList.value = response.body()?.let { it.map() + _collectionTicketList.value = response.body()?.let { it.map(contextApp) } /* response.body()?.let { Log.d("VERDNTURA::","el itempacking es "+it.tickets.get(0).itemPackingTypeFk) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/WebFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/WebFragment.kt index f3a78e9a..8a851432 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/WebFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/WebFragment.kt @@ -43,7 +43,7 @@ class WebFragment( webSettings.builtInZoomControls = true webSettings.displayZoomControls = false webSettings.setSupportZoom(true) - webSettings.defaultTextEncodingName = "utf-8" + //webSettings.defaultTextEncodingName = "utf-8" binding.webView.loadUrl ("https://salix.verdnatura.es/#!/item/$entryPoint/summary") diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/imageview/activity/ImageViewActivity.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/imageview/activity/ImageViewActivity.kt index 104aa2c7..b6625a10 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/imageview/activity/ImageViewActivity.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/imageview/activity/ImageViewActivity.kt @@ -11,8 +11,8 @@ class ImageViewActivity : BaseActivity(){ override fun init() { - binding.mainToolbar.toolbarTitle.text = intent.getStringExtra("title") - binding.imgView.loadUrl(intent.getStringExtra("url")!!) + binding.mainToolbar.toolbarTitle.text = intent.getStringExtra(getString(R.string.title)) + binding.imgView.loadUrl(intent.getStringExtra(getString(R.string.url))!!) binding.mainToolbar.backButton.setOnClickListener { onBackPressed() diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryViewModel.kt index c3d2d99e..58a781c6 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryViewModel.kt @@ -4,6 +4,7 @@ import android.content.Context import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.Transformations +import es.verdnatura.R import es.verdnatura.domain.GetInventaryUserCase import es.verdnatura.domain.GetItemCardUserCase import es.verdnatura.domain.GetWokerMistakeUSerCase @@ -20,11 +21,9 @@ import es.verdnatura.presentation.view.feature.workermistake.model.* import retrofit2.Call import retrofit2.Callback import retrofit2.Response -import timber.log.Timber.d class InventaryViewModel(context: Context) : BaseViewModel() { - private val getInventaryUserCase: GetInventaryUserCase = GetInventaryUserCase(context) private val getItemCardUserCase: GetItemCardUserCase = GetItemCardUserCase(context) private val getWorkerMistakeUserCase: GetWokerMistakeUSerCase = GetWokerMistakeUSerCase(context) @@ -174,7 +173,6 @@ class InventaryViewModel(context: Context) : BaseViewModel() { } - //sergio: se modifica por CAU a itemTrash fun itemTrash( itemFk: String, @@ -387,7 +385,6 @@ class InventaryViewModel(context: Context) : BaseViewModel() { .enqueue(object : Callback { override fun onFailure(call: Call, t: Throwable) { - // d("Error message " + t.message) _responseAddMistake.value = ResponseItemVO( isError = true, errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) @@ -399,24 +396,16 @@ class InventaryViewModel(context: Context) : BaseViewModel() { response: Response ) { if (!response.isSuccessful) { - if (response.code() == 403) { - _responseAddMistake.value = ResponseItemVO( - isError = true, - errorMessage = getMessageFromAllResponse( - nameofFunction(this), - "Usuario sin permisos para realizar la acción" - ) - ) - } else { - //d("Error message:" + { response.errorBody() } + "-" + response.message() + "-" + response.raw()) - _responseAddMistake.value = ResponseItemVO( - isError = true, - errorMessage = getMessageFromAllResponse( + + _responseAddMistake.value = ResponseItemVO( + isError = true, + errorMessage = + getMessageFromAllResponse( nameofFunction(this), response.message() - ) - ) - } + ), codeError = response.code()) + + } else { // sergio:refactor:solo debería haber un mensaje no un response o errorMessage 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 0d9e9882..c070fa00 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 @@ -119,7 +119,7 @@ class LoginFragment : BaseFragment(LoginVi private fun checkUser() { val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) - if (prefs.getBoolean(RECORDAR, false)) { + if (prefs.getBoolean(REMEMBER, false)) { binding.edittextUsername.setText(prefs.getString(USER, "")) binding.edittextPassword.setText(prefs.getString(PASSWORD, "")) if (binding.edittextPassword.text.toString().isNotEmpty()) { @@ -297,8 +297,8 @@ class LoginFragment : BaseFragment(LoginVi //Log.d("VERDNATURA::",getString(R.string.error)) } else { if (it.id != 0) { - saveDataInt("sectorFk", it.id) - saveData("sectordescrip", it.description) + saveDataInt(SECTORFK, it.id) + saveData(SECTORDESCRIP, it.description) it.warehouseFk?.let { it1 -> saveDataInt("warehouseFk", it1) } } } @@ -311,6 +311,8 @@ class LoginFragment : BaseFragment(LoginVi if (it.list.isEmpty()) { getString(R.string.selectPrinter).toast(context) + removePrinter() + } else { if (!it.list.get(0).isError) { saveDataInt(PRINTERFK, it.list.get(0).id!!) @@ -333,7 +335,7 @@ class LoginFragment : BaseFragment(LoginVi saveTokenPref("") customDialog.setTitle(getString(R.string.error)) - .setDescription(if (it.errorMessage.contains("Unauthorized")){"Revisa tu usuario y contraseña. En caso de no poder acceder contacta co Informática"}else{it.errorMessage}) + .setDescription(if (it.errorMessage.contains("Unauthorized")){getString(R.string.messageUserError)}else{it.errorMessage}) .setOkButton( getString(R.string.accept) ) { @@ -393,7 +395,7 @@ class LoginFragment : BaseFragment(LoginVi private fun saveRemember(remember: Boolean) { val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val editor = prefs.edit() - editor.putBoolean(RECORDAR, remember) + editor.putBoolean(REMEMBER, remember) editor.apply() } 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 a1ab55aa..3100e04d 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 @@ -92,7 +92,7 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL setBottomMenuFragment() if (haveSector() && havePrinter()) addFragment( - PasilleroFragment.newInstance("Main", true), + PasilleroFragment.newInstance(getString(R.string.main), true), R.id.main_frame_layout, PasilleroFragment.TAG, false @@ -119,24 +119,6 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL } - /* fun isWorkingInDesign():Boolean{ - val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0) - val working= prefs.getInt("working_in_design", -1) - return working != -1 - } - fun SetisWorkingInDesign(isWorkingIn: Boolean) { - val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0) - val editor = prefs.edit() - if (isWorkingIn){ - editor.putInt("working_in_design", 0) - editor.apply() - }else{ - editor.putInt("working_in_design", -1) - editor.apply() - } - - - }*/ fun havePrinter(): Boolean { val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0) @@ -158,7 +140,7 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL bottomMenuItems.add( ItemMenuVO( 0, - title = getString(R.string.Pasilleros), + title = getString(R.string.titleCorridors), defaultImage = ContextCompat.getDrawable( applicationContext, R.drawable.ic_init_ui ), @@ -243,11 +225,11 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL when (selectedItemMenu?.title) { - getString(R.string.Pasilleros) -> { + getString(R.string.titleCorridors) -> { fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) delete_Fragments() addFragment( - PasilleroFragment.newInstance("Main", true), + PasilleroFragment.newInstance(getString(R.string.main), true), R.id.main_frame_layout, PasilleroFragment.TAG, false @@ -259,7 +241,7 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) delete_Fragments() addFragment( - ShowTicketFragment.newInstance("Main"), + ShowTicketFragment.newInstance(getString(R.string.main)), R.id.main_frame_layout, MAINACTIVITY.TAG, false @@ -270,7 +252,7 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) delete_Fragments() addFragment( - ParkingFragment.newInstance("Main"), + ParkingFragment.newInstance(getString(R.string.main)), R.id.main_frame_layout, MAINACTIVITY.TAG, false @@ -299,11 +281,11 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL when (it.title) { - getString(R.string.Pasilleros) -> { + getString(R.string.titleCorridors) -> { fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE) delete_Fragments() addFragment( - PasilleroFragment.newInstance("Main", true), + PasilleroFragment.newInstance(getString(R.string.main), true), R.id.main_frame_layout, PasilleroFragment.TAG, false @@ -346,31 +328,31 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL addFragmentOnTop(ExpeditionTruckListFragment.newInstance()) } - getString(R.string.Paletizadores) -> { + getString(R.string.titlePalletizers) -> { addFragmentOnTop( PasilleroFragment.newInstance( - getString(R.string.Paletizadores), + getString(R.string.titlePalletizers), isInitMenu = false ) ) } - getString(R.string.Controladores) -> { + getString(R.string.titleControllers) -> { addFragmentOnTop(ControladorFragment.newInstance()) } - getString(R.string.Pasilleros) -> { + getString(R.string.titleCorridors) -> { addFragmentOnTop( PasilleroFragment.newInstance(item.title, isInitMenu = false), ) } - getString(R.string.ExpeditionState) -> { + getString(R.string.titleExpeditionState) -> { // addFragment(ExpeditionStateFragment.newInstance(entryPoint),R.id.main_frame_layout, ExpeditionTruckListFragment.TAG,false) addFragmentOnTop(ExpeditionStateFragment.newInstance(item.title)) } @@ -400,15 +382,15 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL addFragmentOnTop(ControlVehiculoUsuarioFragment.newInstance(entryPoint)) } - getString(R.string.titlePrePicker) -> { + /* getString(R.string.titlePrePicker) -> { addFragmentOnTop(PreSacadorFragment.newInstance()) - } + }*/ getString(R.string.titleDayOfSale) -> { addFragmentOnTop(DayOfSaleFragment(item.title)) } getString(R.string.titleShowTicket) -> { - addFragmentOnTop(ShowTicketFragment.newInstance(getString(R.string.Pasilleros))) + addFragmentOnTop(ShowTicketFragment.newInstance(getString(R.string.titleCorridors))) } getString(R.string.titleHistoricalVehicle) -> { addFragmentOnTop(ControlVehiculoFragment.newInstance(HistoricoVehiculoFragment.TAG)) @@ -510,7 +492,7 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL } getString(R.string.titlePrePicker) -> { - addFragmentOnTop(InitPreSacadorFragment.newInstance(item.title)) + addFragmentOnTop(InitPreSacadorFragment.newInstance(getString(R.string.getPreviousCollection))) } getString(R.string.titleClaimUbication) -> { @@ -644,7 +626,7 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL // fm.popBackStack(null,FragmentManager.POP_BACK_STACK_INCLUSIVE) // addFragment(ExpeditionStateFragment.newInstance("main"),R.id.main_frame_layout, ExpeditionStateFragment.TAG,false) - addFragmentOnTop(ExpeditionStateFragment.newInstance(getString(R.string.ExpeditionState))) + addFragmentOnTop(ExpeditionStateFragment.newInstance(getString(R.string.titleExpeditionState))) } @@ -658,7 +640,7 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL isError: Boolean, isPlayed: Boolean?, titleWithError: String = getString(R.string.error), - isToasted: Boolean? = false + isToasted: Boolean? = true ) { if (!isError) { diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletDetailFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletDetailFragment.kt index 313589f9..887391c9 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletDetailFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletDetailFragment.kt @@ -3,7 +3,6 @@ package es.verdnatura.presentation.view.feature.paletizador.fragment import android.content.Context import android.graphics.drawable.Drawable -import android.util.Log import android.view.View import androidx.lifecycle.Observer import androidx.recyclerview.widget.LinearLayoutManager @@ -15,33 +14,32 @@ import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.common.OnOptionsSelectedListener import es.verdnatura.presentation.common.OnPalletClickListener import es.verdnatura.presentation.view.component.CustomDialog -import es.verdnatura.presentation.view.component.CustomDialogList import es.verdnatura.presentation.view.feature.inventario.adapter.ToolBarAdapter -import es.verdnatura.presentation.view.feature.main.activity.MainActivity import es.verdnatura.presentation.view.feature.paletizador.adapter.ExpeditionPalletViewAdapter import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionTruckVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletViewListVO import java.text.SimpleDateFormat import java.util.* -import kotlin.collections.ArrayList class ExpeditionPalletDetailFragment( var itemExpeditionTruckVO: ItemExpeditionTruckVO? = null, var itemPallet: ItemPalletVO? = null ) : BaseFragment( - ExpeditionPalletDetailViewModel::class) { + ExpeditionPalletDetailViewModel::class +) { - private var adapter : ExpeditionPalletViewAdapter? = null - // private lateinit var customDialogList: CustomDialogList - private var onPalletClickListener:OnPalletClickListener? = null + private var adapter: ExpeditionPalletViewAdapter? = null + + // private lateinit var customDialogList: CustomDialogList + private var onPalletClickListener: OnPalletClickListener? = null private lateinit var customDialog: CustomDialog companion object { - fun newInstance(item: ItemExpeditionTruckVO,itemPallet: ItemPalletVO) = - ExpeditionPalletDetailFragment(item,itemPallet) + fun newInstance(item: ItemExpeditionTruckVO, itemPallet: ItemPalletVO) = + ExpeditionPalletDetailFragment(item, itemPallet) } override fun onAttach(context: Context) { @@ -53,19 +51,22 @@ class ExpeditionPalletDetailFragment( override fun init() { customDialog = CustomDialog(requireContext()) - binding.expeditionPalletDetailPallet.text = getString(R.string.pallet)+itemPallet!!.Pallet + binding.expeditionPalletDetailPallet.text = getString(R.string.pallet) + itemPallet!!.Pallet binding.splashProgress.visibility = View.VISIBLE - ma.hideBottomNavigation(View.GONE) - binding.mainToolbar.toolbarTitle.text = getCURDATE(itemExpeditionTruckVO!!.ETD) + " " + itemExpeditionTruckVO!!.Destino + ma.hideBottomNavigation(View.GONE) + binding.mainToolbar.toolbarTitle.text = + getCURDATE(itemExpeditionTruckVO!!.ETD) + " " + itemExpeditionTruckVO!!.Destino setToolBar() setEvents() - viewModel.expeditionPallet_List(getData(USER), - getData(PASSWORD),itemPallet!!.Pallet) + viewModel.expeditionPallet_List( + getData(USER), + getData(PASSWORD), itemPallet!!.Pallet + ) super.init() } - private fun setEvents(){ + private fun setEvents() { binding.mainToolbar.backButton.setOnClickListener { requireActivity().onBackPressed() } @@ -80,86 +81,110 @@ class ExpeditionPalletDetailFragment( } } - private fun setToolBar(){ - val listIcons:ArrayList = ArrayList() - val iconReload : Drawable = resources.getDrawable(R.drawable.ic_autorenew_black_24dp,resources.newTheme()) - val iconEditar : Drawable = resources.getDrawable(R.drawable.ic_mode_edit_black_24dp,resources.newTheme()) - val iconBorrar : Drawable = resources.getDrawable(R.drawable.ic_delete_forever_black_24dp,resources.newTheme()) - val iconPrint : Drawable = resources.getDrawable(R.drawable.ic_print_black_24dp,resources.newTheme()) + private fun setToolBar() { + val listIcons: ArrayList = ArrayList() + val iconReload: Drawable = + resources.getDrawable(R.drawable.ic_autorenew_black_24dp, resources.newTheme()) + val iconEditar: Drawable = + resources.getDrawable(R.drawable.ic_mode_edit_black_24dp, resources.newTheme()) + val iconBorrar: Drawable = + resources.getDrawable(R.drawable.ic_delete_forever_black_24dp, resources.newTheme()) + val iconPrint: Drawable = + resources.getDrawable(R.drawable.ic_print_black_24dp, resources.newTheme()) listIcons.add(iconEditar) listIcons.add(iconBorrar) listIcons.add(iconPrint) - binding.mainToolbar.toolbarIcons.adapter = ToolBarAdapter(listIcons,object: OnOptionsSelectedListener { - override fun onOptionsItemSelected(item: Drawable) { - if (item == iconReload){ - binding.splashProgress.visibility = View.VISIBLE - viewModel.expeditionPallet_List(getData(USER), - getData(PASSWORD),itemPallet!!.Pallet) - }else if(item == iconEditar){ - onPalletClickListener!!.onPalletClickListener(itemExpeditionTruckVO!!,itemPallet!!) - }else if(item == iconBorrar){ - binding.splashProgress.visibility = View.VISIBLE - viewModel.expeditionPalletDel(getData(USER), - getData(PASSWORD),itemPallet!!.Pallet) - }else if(item == iconPrint){ - binding.splashProgress.visibility = View.VISIBLE - - if (ma.havePrinter() && ma.haveSector()) { - (getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast( - requireContext() - ) - viewModel.expeditionPalletPrintSet( + binding.mainToolbar.toolbarIcons.adapter = + ToolBarAdapter(listIcons, object : OnOptionsSelectedListener { + override fun onOptionsItemSelected(item: Drawable) { + if (item == iconReload) { + binding.splashProgress.visibility = View.VISIBLE + viewModel.expeditionPallet_List( getData(USER), - getData(PASSWORD), - itemPallet!!.Pallet, - getData(SECTORFK) + getData(PASSWORD), itemPallet!!.Pallet ) - }else{ - ma.messageWithSound(getString(R.string.printerFault),isError = true,true,getString(R.string.printError),false) + } else if (item == iconEditar) { + onPalletClickListener!!.onPalletClickListener( + itemExpeditionTruckVO!!, + itemPallet!! + ) + } else if (item == iconBorrar) { + binding.splashProgress.visibility = View.VISIBLE + viewModel.expeditionPalletDel( + getData(USER), + getData(PASSWORD), itemPallet!!.Pallet + ) + } else if (item == iconPrint) { + binding.splashProgress.visibility = View.VISIBLE + + if (ma.havePrinter() && ma.haveSector()) { + (getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast( + requireContext() + ) + viewModel.expeditionPalletPrintSet( + getData(USER), + getData(PASSWORD), + itemPallet!!.Pallet, + getData(SECTORFK) + ) + } else { + ma.messageWithSound( + getString(R.string.printerFault), + isError = true, + true, + getString(R.string.printError), + false + ) + } } } - } - }) - binding.mainToolbar.toolbarIcons.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) + }) + binding.mainToolbar.toolbarIcons.layoutManager = + LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) } - private fun getCURDATE(date:String):String{ + private fun getCURDATE(date: String): String { val c = Calendar.getInstance() - val df = SimpleDateFormat("yyyy-mm-dd HH:mm") - val df2 = SimpleDateFormat("HH:mm") + val df = SimpleDateFormat(getString(R.string.dateCompleteFormat)) + val df2 = SimpleDateFormat(getString(R.string.timeFormat)) c.time = df.parse(date) return df2.format(c.time) } override fun observeViewModel() { - with(viewModel){ + with(viewModel) { loadExpeditionPalletList.observe(viewLifecycleOwner, Observer { event -> - event.getContentIfNotHandled().notNull {printExpeditionList(it) } + event.getContentIfNotHandled().notNull { printExpeditionList(it) } }) response.observe(viewLifecycleOwner, Observer { - if (it.isError){ - ma.messageWithSound(it.errorMessage,true,false) - }else{ + if (it.isError) { + ma.messageWithSound(it.errorMessage, true, false) + } else { requireActivity().onBackPressed() - } + } }) responsePrintPallet.observe(viewLifecycleOwner, Observer { - binding.splashProgress.visibility=View.GONE - if (it.isError){ - ma.messageWithSound(it.errorMessage,true,false) + binding.splashProgress.visibility = View.GONE + if (it.isError) { + ma.messageWithSound(it.errorMessage, true, false) - }else{ - binding.splashProgress.visibility=View.VISIBLE - viewModel.expeditionState_addByPallet( getData(USER),getData(PASSWORD),itemPallet!!.Pallet,"PALLETIZED") + } else { + binding.splashProgress.visibility = View.VISIBLE + viewModel.expeditionState_addByPallet( + getData(USER), + getData(PASSWORD), + itemPallet!!.Pallet, + "PALLETIZED" + ) } }) } } - private fun printExpeditionList(it: ItemPalletViewListVO){ + private fun printExpeditionList(it: ItemPalletViewListVO) { binding.splashProgress.visibility = View.GONE val lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) adapter = ExpeditionPalletViewAdapter(it.list) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletFragment.kt index 380c0440..529f0fdc 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletFragment.kt @@ -112,8 +112,8 @@ class ExpeditionPalletFragment( private fun getCURDATE(date:String):String{ val c = Calendar.getInstance() - val df = SimpleDateFormat("yyyy-mm-dd HH:mm") - val df2 = SimpleDateFormat("HH:mm") + val df = SimpleDateFormat(getString(R.string.dateCompleteFormat)) + val df2 = SimpleDateFormat(getString(R.string.timeFormat)) c.time = df.parse(date) return df2.format(c.time) } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanFragment.kt index 4d938dc9..79f216f6 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanFragment.kt @@ -66,7 +66,7 @@ class ExpeditionScanFragment ( customDialog = CustomDialog(requireContext()) customDialogList = CustomDialogList(requireContext()) customDialogTwoButtons = CustomDialogTwoButtons(requireContext()) - binding.expeditionScanDetailPallet.text = "Pallet "+itemPalletVO!!.Pallet + binding.expeditionScanDetailPallet.text = getString(R.string.pallet) + itemPalletVO!!.Pallet binding.splashProgress.visibility = View.VISIBLE ma.hideBottomNavigation(View.GONE) binding.mainToolbar.toolbarTitle.text = getCURDATE(itemExpeditionTruckVO!!.ETD) + " " + itemExpeditionTruckVO!!.Destino @@ -108,8 +108,8 @@ class ExpeditionScanFragment ( private fun getCURDATE(date:String):String{ val c = Calendar.getInstance() - val df = SimpleDateFormat("yyyy-mm-dd HH:mm") - val df2 = SimpleDateFormat("HH:mm") + val df = SimpleDateFormat(getString(R.string.dateCompleteFormat)) + val df2 = SimpleDateFormat(getString(R.string.timeFormat)) c.time = df.parse(date) return df2.format(c.time) } @@ -163,8 +163,8 @@ class ExpeditionScanFragment ( val lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) adapter = ExpeditionScanAdapter(it.list,object: OnScanLongClickListener{ override fun onScanLongClickListener(itemExpeditionScanVO: ItemExpeditionScanVO) { - customDialogTwoButtons.setTitle("Ticket: "+itemExpeditionScanVO.Ticket+" Pallet: "+itemPalletVO!!.Pallet) - .setDescription("Expedition: "+itemExpeditionScanVO!!.expeditionFk) + customDialogTwoButtons.setTitle(getString(R.string.ticket)+itemExpeditionScanVO.Ticket+getString(R.string.pallet)+itemPalletVO!!.Pallet) + .setDescription(getString(R.string.expedit)+itemExpeditionScanVO!!.expeditionFk) .setOkButton(getString(R.string.delete)){ binding.splashProgress.visibility = View.VISIBLE viewModel.expeditionScanDel(getData(USER), @@ -197,7 +197,7 @@ class ExpeditionScanFragment ( if(it.expeditionFk != "0") listExpeditions.add(BarcodeVO(code = it.expeditionFk)) } - customDialogList.setTitle("Pallet"+itemPalletVO!!.Pallet+" ("+binding.mainToolbar.toolbarTitle.text+")").setOkButton(getString(R.string.test)){ + customDialogList.setTitle(getString(R.string.pallet) + itemPalletVO!!.Pallet+" ("+binding.mainToolbar.toolbarTitle.text+")").setOkButton(getString(R.string.test)){ ma.hideKeyboard(customDialogList.getEditText()) @@ -207,7 +207,8 @@ class ExpeditionScanFragment ( ItemPalletVO(Pallet = it.list.get(0).palletFk) ) }else{ - customDialog.setTitle(getString(R.string.info)).setDescription(getString(R.string.expeditionsError)).setOkButton("Ok"){ + customDialog.setTitle(getString(R.string.info)).setDescription(getString(R.string.expeditionsError)).setOkButton(getString( + R.string.ok)){ customDialog.dismiss() }.show() } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanSorterViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanSorterViewModel.kt index 3096c5b9..73ca69d6 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanSorterViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanSorterViewModel.kt @@ -15,40 +15,44 @@ import retrofit2.Response class ExpeditionScanSorterViewModel(context: Context) : BaseViewModel() { - private val GetPaletizadoresUserCase: GetPaletizadoresUserCase = GetPaletizadoresUserCase(context) + private val GetPaletizadoresUserCase: GetPaletizadoresUserCase = + GetPaletizadoresUserCase(context) private val _responsescan by lazy { MutableLiveData() } val responsescan: LiveData get() = _responsescan - fun expedition_scan(usuario:String,password:String,vExpeditionId:String){ - GetPaletizadoresUserCase.expedition_scan(usuario,password,vExpeditionId).enqueue(object : Callback{ - override fun onFailure(call: Call, t: Throwable) { + fun expedition_scan(usuario: String, password: String, vExpeditionId: String) { + GetPaletizadoresUserCase.expedition_scan(usuario, password, vExpeditionId) + .enqueue(object : Callback { + override fun onFailure(call: Call, t: Throwable) { - _responsescan.value = messageError(getMessageFromAllResponse(nameofFunction(this),t.message!!),"expedition_scan") - } - - override fun onResponse(call: Call, response: Response) { - - if (!response.isSuccessful){ - _responsescan.value = messageError(response.message(),"expedition_scan") - }else{ - _responsescan.value = ResponseItemVO(isError = false,response = response.message()!!) + _responsescan.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) + ) } - } + override fun onResponse(call: Call, response: Response) { - }) + if (!response.isSuccessful) { + _responsescan.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message() + ) + ) + } else { + _responsescan.value = + ResponseItemVO(isError = false, response = response.message()!!) + } + + } + + }) } - fun messageError(message: String,call: String ): ResponseItemVO { - return ResponseItemVO( - isError = true, - errorMessage = "Error en la llamada expedition_scan " + call + " . Descripción del error:" + message - ) - } - - } \ No newline at end of file diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanViewModel.kt index c8b3bf1b..a76e7db7 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanViewModel.kt @@ -18,9 +18,10 @@ import retrofit2.Call import retrofit2.Callback import retrofit2.Response -class ExpeditionScanViewModel(context: Context) : BaseViewModel() { +class ExpeditionScanViewModel(context: Context) : BaseViewModel() { - private val getPaletizadoresUserCase: GetPaletizadoresUserCase = GetPaletizadoresUserCase(context) + private val getPaletizadoresUserCase: GetPaletizadoresUserCase = + GetPaletizadoresUserCase(context) private val _expeditionScanList by lazy { MutableLiveData() } val loadExpeditionScanList = Transformations.map(_expeditionScanList) { Event(it) } @@ -42,12 +43,17 @@ class ExpeditionScanViewModel(context: Context) : BaseViewModel() { get() = _responseCheckexpeditionScanPut - fun expeditionScanList(usuario:String,password:String,vPalletFk:String){ - getPaletizadoresUserCase.expeditionScanList(usuario,password,vPalletFk).enqueue(object : + fun expeditionScanList(usuario: String, password: String, vPalletFk: String) { + getPaletizadoresUserCase.expeditionScanList(usuario, password, vPalletFk).enqueue(object : Callback> { override fun onFailure(call: Call>, t: Throwable) { - val listError:ArrayList = ArrayList() - listError.add(ItemExpeditionScanVO(isError = true,errorMessage = t.message!!)) + val listError: ArrayList = ArrayList() + listError.add( + ItemExpeditionScanVO( + isError = true, + errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) + ) + ) _expeditionScanList.value = ItemExpeditionScanList(listError) } @@ -55,71 +61,128 @@ class ExpeditionScanViewModel(context: Context) : BaseViewModel() { call: Call>, response: Response> ) { - if (response.body() != null){ + if (response.body() != null) { _expeditionScanList.value = response.body()?.let { ItemExpeditionScanList(it) } - }else{ - val listError:ArrayList = ArrayList() - listError.add(ItemExpeditionScanVO(isError = true,errorMessage = "Error en la llamada de expeditionScan_List")) + } else { + val listError: ArrayList = ArrayList() + listError.add( + ItemExpeditionScanVO( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message()) + ) + ) _expeditionScanList.value = ItemExpeditionScanList(listError) } } }) } - fun expeditionScanAdd(usuario:String,password:String,vPalletFk:String,vTruckFk:String){ - getPaletizadoresUserCase.expeditionScanAdd(usuario,password,vPalletFk,vTruckFk).enqueue(object : - Callback> { - override fun onFailure(call: Call>, t: Throwable) { - val listError:ArrayList = ArrayList() - listError.add(ItemScanVO(isError = true,errorMessage ="Error en la llamada de expeditionScan_Add." + t.message!!)) - _scanList.value = ItemScanList(listError) - } - override fun onResponse( - call: Call>, - response: Response> - ) { - if (response.body() != null){ - _scanList.value = response.body()?.let { ItemScanList(it) } - }else{ - val listError:ArrayList = ArrayList() - listError.add(ItemScanVO(isError = true,errorMessage = "Error en la llamada de expeditionScan_Add")) + fun expeditionScanAdd(usuario: String, password: String, vPalletFk: String, vTruckFk: String) { + getPaletizadoresUserCase.expeditionScanAdd(usuario, password, vPalletFk, vTruckFk) + .enqueue(object : + Callback> { + override fun onFailure(call: Call>, t: Throwable) { + val listError: ArrayList = ArrayList() + listError.add( + ItemScanVO( + isError = true, + errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) + ) + ) _scanList.value = ItemScanList(listError) } - } - }) + override fun onResponse( + call: Call>, + response: Response> + ) { + if (response.body() != null) { + _scanList.value = response.body()?.let { ItemScanList(it) } + } else { + val listError: ArrayList = ArrayList() + listError.add( + ItemScanVO( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message()) + ) + ) + _scanList.value = ItemScanList(listError) + } + } + + }) } - fun expeditionScanPut(usuario:String,password:String,vPalletFk:String,vExpeditionFk:String){ - getPaletizadoresUserCase.expeditionScanPut(usuario,password,vPalletFk,vExpeditionFk).enqueue(object : Callback{ - override fun onFailure(call: Call, t: Throwable) { - _response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse( - nameofFunction(this),t.message!!) + fun expeditionScanPut( + usuario: String, + password: String, + vPalletFk: String, + vExpeditionFk: String + ) { + getPaletizadoresUserCase.expeditionScanPut(usuario, password, vPalletFk, vExpeditionFk) + .enqueue(object : Callback { + override fun onFailure(call: Call, t: Throwable) { + _response.value = ResponseItemVO( + isError = true, errorMessage = getMessageFromAllResponse( + nameofFunction(this), t.message!! + ) + ) + } + + override fun onResponse(call: Call, response: Response) { + if (!response.isSuccessful) { + _response.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message()!! + ) + ) + } else { + _response.value = + ResponseItemVO(isError = false, response = response.message()) + + } + } + }) + } + + fun checkRouteExpeditionScanPut( + usuario: String, + password: String, + vPalletFk: String, + vExpeditionFk: String + ) { + getPaletizadoresUserCase.checkRouteExpeditionScanPut( + usuario, + password, + vPalletFk, + vExpeditionFk + ).enqueue(object : Callback { + override fun onFailure(call: Call, t: Throwable) { + _responseCheckexpeditionScanPut.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) ) } - override fun onResponse(call: Call, response: Response) { - if (!response.isSuccessful){ - _response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message()!!)) - }else{ - _response.value = ResponseItemVO(isError = false,response = response.message()) - } - } - }) - } - - fun checkRouteExpeditionScanPut(usuario:String,password:String,vPalletFk:String,vExpeditionFk:String){ - getPaletizadoresUserCase.checkRouteExpeditionScanPut(usuario,password,vPalletFk,vExpeditionFk).enqueue(object : Callback{ - override fun onFailure(call: Call, t: Throwable) { - _response.value = ResponseItemVO(isError = true,errorMessage = "Error al lamar expedition_checkRoute "+vExpeditionFk+ " Respuesta:"+t.message!!) - } override fun onResponse(call: Call, response: Response) { //sergio:se devuelve en el body - if (response.body() == null){ - _responseCheckexpeditionScanPut.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada expedition_checkRoute") - }else{ - _responseCheckexpeditionScanPut.value = ResponseItemVO(isError = false,response = response.body()!!) + if (response.body() == null) { + _responseCheckexpeditionScanPut.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message()) + ) + } else { + _responseCheckexpeditionScanPut.value = + ResponseItemVO(isError = false, response = response.body()!!) } } @@ -127,22 +190,30 @@ class ExpeditionScanViewModel(context: Context) : BaseViewModel() { } - - fun expeditionScanDel(usuario:String,password:String,vScanFk:String){ - getPaletizadoresUserCase.expeditionScanDel(usuario,password,vScanFk).enqueue(object : Callback{ - override fun onFailure(call: Call, t: Throwable) { - _responseDeleteScan.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse( - nameofFunction(this),t.message!!)) - } - override fun onResponse(call: Call, response: Response) { - if (!response.isSuccessful){ - _responseDeleteScan.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse( - nameofFunction(this),response.message()!!)) - }else{ - _responseDeleteScan.value = ResponseItemVO(isError = false,response = response.message()) + fun expeditionScanDel(usuario: String, password: String, vScanFk: String) { + getPaletizadoresUserCase.expeditionScanDel(usuario, password, vScanFk) + .enqueue(object : Callback { + override fun onFailure(call: Call, t: Throwable) { + _responseDeleteScan.value = ResponseItemVO( + isError = true, errorMessage = getMessageFromAllResponse( + nameofFunction(this), t.message!! + ) + ) } - } - }) + + override fun onResponse(call: Call, response: Response) { + if (!response.isSuccessful) { + _responseDeleteScan.value = ResponseItemVO( + isError = true, errorMessage = getMessageFromAllResponse( + nameofFunction(this), response.message()!! + ) + ) + } else { + _responseDeleteScan.value = + ResponseItemVO(isError = false, response = response.message()) + } + } + }) } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionTruckListFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionTruckListFragment.kt index 96b3843b..c4b303ab 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionTruckListFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionTruckListFragment.kt @@ -88,7 +88,7 @@ class ExpeditionTruckListFragment : BaseFragment= Build.VERSION_CODES.O) { @@ -97,7 +97,7 @@ class PasillerosAdapter ( try { (binding as ItemPasillerosMainMenuBinding).itemImage.setImageResource(item.iconResource) }catch(exception:Exception){ - d("Exception::"+exception.message) + //d("Exception::"+exception.message) } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroFragment.kt index 29e13f12..cf23bcec 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroFragment.kt @@ -34,28 +34,27 @@ class PasilleroFragment( override fun init() { ma.hideBottomNavigation(View.VISIBLE) - when (tagName) { - "Main" -> { - binding.mainToolbarDesign.imageViewMenu.visibility = View.VISIBLE - binding.mainToolbarDesign.backButton.visibility = View.GONE + when (tagName) { + getString(R.string.main)-> { + binding.mainToolbarDesign.imageViewMenu.visibility = View.VISIBLE + binding.mainToolbarDesign.backButton.visibility = View.GONE - - } - - tagName -> { - if (tagName == "Pasilleros") { - binding.mainToolbarDesign.backButton.visibility = View.GONE - } - binding.mainToolbarDesign.backButton.visibility = View.VISIBLE - binding.mainToolbarDesign.toolbarTitle.text = tagName - binding.mainToolbarDesign.imageViewMenu.visibility = View.GONE - } } + tagName -> { + if (tagName == getString(R.string.titleCorridors)) { + binding.mainToolbarDesign.backButton.visibility = View.GONE + } + binding.mainToolbarDesign.backButton.visibility = View.VISIBLE + binding.mainToolbarDesign.toolbarTitle.text = tagName + binding.mainToolbarDesign.imageViewMenu.visibility = View.GONE + } + } - binding.mainToolbarDesign.backButton.setOnClickListener { - requireActivity().onBackPressed() + binding.mainToolbarDesign.backButton.setOnClickListener { + + requireActivity().onBackPressed() } @@ -68,14 +67,11 @@ class PasilleroFragment( when (tagName) { - "Pasilleros" -> { - viewModel.inititializeDefaultData() - } - - "Paletizadores" -> viewModel.inititializeDefaultPallet() + getString(R.string.titleCorridors) -> { viewModel.inititializeDefaultData() } + getString(R.string.titlePalletizers) -> viewModel.inititializeDefaultPallet() getString(R.string.titleBufferManegement) -> viewModel.inititializeDefaultBuffer() - "Main" -> viewModel.inititializeDefaultDataInit() - "Reclamaciones" -> viewModel.inititializeDefaultClaim() + getString(R.string.main) -> viewModel.inititializeDefaultDataInit() + getString(R.string.titleClaims) -> viewModel.inititializeDefaultClaim() } 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 539fe6f9..7b3b6557 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 @@ -1,47 +1,60 @@ package es.verdnatura.presentation.view.feature.pasillero.fragment +import android.annotation.SuppressLint +import android.content.Context import es.verdnatura.R import es.verdnatura.presentation.base.BaseViewModel import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO -class PasilleroViewModel : BaseViewModel() { +class PasilleroViewModel(context: Context) : BaseViewModel() { + @SuppressLint("StaticFieldLeak") + private val contextApp = context private val _pasillerositem by lazy { ArrayList() } val pasillerositem: List get() = _pasillerositem fun inititializeDefaultData() { - /* _pasillerositem.add( - PasillerosItemVO(20, - R.drawable.barcode_scan, - "Visor web",R.string.SmarttagAssociate) -*/ - /* _pasillerositem.add( + /* _pasillerositem.add( PasillerosItemVO(20, R.drawable.barcode_scan, - "Asociar Sacador SmartTags",R.string.SmarttagAssociate) - ) */ - /* _pasillerositem.add( - PasillerosItemVO(21, - R.drawable.barcode_scan, - "Registrar SmartTags",R.string.SmarttagRegister) - ) -*/ + "Visor web",R.string.SmarttagAssociate) + */ + /* _pasillerositem.add( + PasillerosItemVO(20, + R.drawable.barcode_scan, + "Asociar Sacador SmartTags",R.string.SmarttagAssociate) + ) */ + /* _pasillerositem.add( + PasillerosItemVO(21, + R.drawable.barcode_scan, + "Registrar SmartTags",R.string.SmarttagRegister) + ) + */ //sergio para que aparezca el nuevo menu - _pasillerositem.add( - PasillerosItemVO( - 7, - R.drawable.ic_streetview_black_24dp, - "Pre Sacador", R.string.titlePrePicker,"Obtiene colecciones para sacar en previa" - ) - ) + _pasillerositem.add( + PasillerosItemVO( + 7, + R.drawable.ic_streetview_black_24dp, + contextApp.getString(R.string.titlePrePicker), + R.string.titlePrePicker, + contextApp.getString( + R.string.titlePickerDescrip + ) + ) + ) //precontrol _pasillerositem.add( - PasillerosItemVO(7, + PasillerosItemVO( + 7, R.drawable.ic_verified_user_black_24dp_selected, - "Pre Control",R.string.titlePreControl,"Sirve para revisar un ticket de previa" + contextApp.getString(R.string.titlePreControl), + R.string.titlePreControl, + contextApp.getString( + R.string.titlePreControlDescrip + ) ) ) @@ -50,7 +63,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 10, R.drawable.ic_visibility_black_24dp, - "Ver Ticket", R.string.verticket,"Muestra un ticket sin la posibilidad de modicarlo" + contextApp.getString(R.string.titleShowTicket), + R.string.titleShowTicket, + contextApp.getString( + R.string.titleShowTicketDescrip + ) ) ) @@ -58,7 +75,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 0, R.drawable.ic_loyalty_black_24dp, - "Consultar artículo", R.string.titleItemConsult,"Busca información de un ítem" + contextApp.getString(R.string.titleItemConsult), + R.string.titleItemConsult, + contextApp.getString( + R.string.titleItemConsultDescrip + ) ) ) @@ -68,7 +89,9 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 6, R.drawable.ic_local_parking_orange_24dp, - "Parking", R.string.Parking,"Permite aparcar tickets o carros" + contextApp.getString(R.string.Parking), + R.string.Parking, + contextApp.getString(R.string.titleParkingDescrip) ) ) @@ -76,30 +99,23 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 2, R.drawable.ic_visibility_black_24dp, - "Buscar item", R.string.BuscarItem,"Busca donde se encuentra un ítem" + contextApp.getString(R.string.titleItemSearch), + R.string.titleItemSearch, + contextApp.getString( + R.string.titleItemSearchDescrip + ) ) ) - /* _pasillerositem.add( - PasillerosItemVO( - 2, - R.drawable.ic_claims, - "Ubicación de Reclamación", R.string.claim,"Ubicación de Reclamación" - ) - )*/ - - //sergio: pruebas cau item buscar - /* _pasillerositem.add( - PasillerosItemVO(9, - R.drawable.ic_visibility_black_24dp, - "Buscar item full",R.string.test) - )*/ - _pasillerositem.add( PasillerosItemVO( 1, R.drawable.ic_dashboard_black_24dp, - "Ubicador", R.string.titleUbicator,"Permite ubicar/saber los ítems de un carro" + contextApp.getString(R.string.titleUbicator), + R.string.titleUbicator, + contextApp.getString( + R.string.titleUbicatorDescrip + ) ) ) @@ -107,7 +123,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 3, R.drawable.ic_spa_black_24dp, - "Inventario", R.string.titleInventory, "Visualiza que falta o está desubicado" + contextApp.getString(R.string.titleInventory), + R.string.titleInventory, + contextApp.getString( + R.string.titleInventoryDescrip + ) ) ) @@ -115,7 +135,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 7, R.drawable.worker_mistake, - "Fallo del trabajador", R.string.titleWorkerMistake,"Permite añadir fallos a un trabajador" + contextApp.getString(R.string.titleWorkerMistake), + R.string.titleWorkerMistake, + contextApp.getString( + R.string.titleWorkerMistakeDescrip + ) ) ) @@ -123,13 +147,22 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 10, R.drawable.revision_icon, - "Histórico Shelving", R.string.itemShelvingLog,"Permite saber modificaciones de items en un carro" + contextApp.getString(R.string.titleShelvingHistorical), + R.string.titleShelvingHistorical, + contextApp.getString( + R.string.titleShelvingHistDescrip + ) ) ) _pasillerositem.add( - PasillerosItemVO(7, + PasillerosItemVO( + 7, R.drawable.ic_history_orange, - "Log Shelving",R.string.shelvingLog,"Permite conocer los movimientos en un carro" + contextApp.getString(R.string.titleLogShelving), + R.string.titleLogShelving, + contextApp.getString( + R.string.titleLogShelvingDescrip + ) ) ) @@ -137,21 +170,33 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 22, R.drawable.car_info, - "Historial del vehículo", R.string.vehiclediary,"Visualiza quien y cuando ha llevado un vehículo" + contextApp.getString(R.string.titleHistoricalVehicle), + R.string.titleHistoricalVehicle, + contextApp.getString( + R.string.titleHistVehicleDescrip + ) ) ) _pasillerositem.add( PasillerosItemVO( 41, R.drawable.day_of_sale, - "Día de venta", R.string.dayofSale,"Permite saber la fecha de venta de los items de un carro" + contextApp.getString(R.string.titleDayOfSale), + R.string.titleDayOfSale, + contextApp.getString( + R.string.titleDayDescrip + ) ) ) _pasillerositem.add( PasillerosItemVO( 7, R.drawable.ic_baseline_all_inbox_24, - "Reposición", R.string.reposicion,"Indica que falta reponer" + contextApp.getString(R.string.titleReplacement), + R.string.titleReplacement, + contextApp.getString( + R.string.titleReplacDescrip + ) ) ) @@ -161,7 +206,9 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 4, R.drawable.ic_move_to_inbox_black_24dp, - "Faltas", R.string.titleFaults,"Visualiza las faltas en almacén" + contextApp.getString(R.string.titleFaults), + R.string.titleFaults, + contextApp.getString(R.string.titleFaultsDescrip) ) ) @@ -169,7 +216,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 5, R.drawable.ic_send_black_24dp, - "Shelving Parking", R.string.titleShelvingParking,"" + contextApp.getString(R.string.titleShelvingParking), + R.string.titleShelvingParking, + contextApp.getString( + R.string.titleShelParkDescrip + ) ) ) @@ -177,7 +228,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 8, R.drawable.ic_baseline_star_24, - "Calidad", R.string.titleQuality,"Permite conocer la calidad de algunos productos por comprador" + contextApp.getString(R.string.titleQuality), + R.string.titleQuality, + contextApp.getString( + R.string.titleQualityDescrip + ) ) ) @@ -189,7 +244,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 30, R.drawable.pallet_shipping_selected, - "Paletizar", R.string.scanPallet,"Permite escanear pallet para incorporarlo al sistema" + contextApp.getString(R.string.titlePalletizar), + R.string.titlePalletizar, + contextApp.getString( + R.string.titlePalletDescrip + ) ) ) @@ -197,14 +256,20 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 31, R.drawable.ic_visibility_black_24dp, - "Consultar estado expedición", R.string.ExpeditionState,"Permite conocer el estado de una expedición" + contextApp.getString(R.string.titleExpeditionState), + R.string.titleExpeditionState, + contextApp.getString(R.string.titleExpeditionDescrip) ) ) _pasillerositem.add( PasillerosItemVO( 40, R.drawable.barcode_scan, - "Escanear expedición", R.string.ExpeditionScan,"Permite escanear expediciones que no han pasado por el sorter" + contextApp.getString(R.string.titleExpeditionScan), + R.string.titleExpeditionScan, + contextApp.getString( + R.string.titleExpScanDescrip + ) ) ) @@ -213,7 +278,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 32, R.drawable.buffer_outline, - "Gestión de buffers", R.string.titleBufferManegement,"Se accede al menú de operaciones con los buffers del sorter" + contextApp.getString(R.string.titleBufferManegement), + R.string.titleBufferManegement, + contextApp.getString( + R.string.titleBufferMangDescrip + ) ) ) @@ -222,7 +291,9 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 33, R.drawable.qrcode_scan, - "Lector Qr", R.string.titleQrReader,"Permite leer información en un qr" + contextApp.getString(R.string.titleQrReader), + R.string.titleQrReader, + contextApp.getString(R.string.titleQrDescrip) ) ) @@ -234,7 +305,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 30, R.drawable.buffer_empty, - "Vaciado buffer", R.string.titleBufferEmpty, "Pone en modo vaciado un buffer" + contextApp.getString(R.string.titleBufferEmpty), + R.string.titleBufferEmpty, + contextApp.getString( + R.string.titleBufferEmptyDescrip + ) ) ) @@ -243,7 +318,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 31, R.drawable.buffer_fill, - "Llenado buffer", R.string.titleBufferFill,"Pone en modo llenado un buffer" + contextApp.getString(R.string.titleBufferFill), + R.string.titleBufferFill, + contextApp.getString( + R.string.titleBufferFillDescrip + ) ) ) @@ -252,7 +331,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 32, R.drawable.buffer_accumulation, - "Acumulación buffer", R.string.titleBufferAccumulate,"Pone en modo acumulación un buffer" + contextApp.getString(R.string.titleBufferAccumulate), + R.string.titleBufferAccumulate, + contextApp.getString( + R.string.titleBufferAccDescrip + ) ) ) @@ -260,7 +343,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 31, R.drawable.buffer_off, - "Desactivado buffer", R.string.titleBufferOff,"Pone en modo desactivado un buffer" + contextApp.getString(R.string.titleBufferOff), + R.string.titleBufferOff, + contextApp.getString( + R.string.titleBufferOffDescrip + ) ) ) @@ -268,7 +355,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 31, R.drawable.buffer_flejado, - "Flejado buffer", R.string.titleBufferStrapping,"Pone en modo flejado un buffer" + contextApp.getString(R.string.titleBufferStrapping), + R.string.titleBufferStrapping, + contextApp.getString( + R.string.titleBufferStrapDescrip + ) ) ) @@ -277,24 +368,35 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 45, R.drawable.buffer_load, - "Cargar expedición en buffer", R.string.titleBufferload, "Pone en modo cargar un buffer" + contextApp.getString(R.string.titleBufferload), + R.string.titleBufferload, + contextApp.getString( + R.string.titleBufferLoadDescrip + ) ) ) } - fun inititializeDefaultDataInit(){ + fun inititializeDefaultDataInit() { _pasillerositem.add( PasillerosItemVO( 7, R.drawable.ic_corridor_ui, - "Pasilleros", R.string.Pasilleros,"Accede menú de los pasilleros:presacar, ver ticket, ubicador..." + contextApp.getString(R.string.titleCorridors), + R.string.titleCorridors, + contextApp.getString(R.string.titleCorridorsDescrip) ) ) //precontrol _pasillerositem.add( - PasillerosItemVO(7, + PasillerosItemVO( + 7, R.drawable.ic_picker_ui, - "Sacadores",R.string.titlePickers,"Accede a sacar pedidos" + contextApp.getString(R.string.titlePickers), + R.string.titlePickers, + contextApp.getString( + R.string.titlePickersDescrip + ) ) ) @@ -303,7 +405,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 10, R.drawable.ic_controller_ui, - "Controladores", R.string.Controladores,"Accede a la revisión de los tickets" + contextApp.getString(R.string.titleControllers), + R.string.titleControllers, + contextApp.getString( + R.string.titleControlDescrip + ) ) ) @@ -311,7 +417,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 0, R.drawable.ic_pallet_ui, - "Paletizadores", R.string.Paletizadores,"Accede al menú de paletizadores: paletizar, buffer..." + contextApp.getString(R.string.titlePalletizers), + R.string.titlePalletizers, + contextApp.getString( + R.string.titlePalletizDescrip + ) ) ) @@ -321,12 +431,12 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 6, R.drawable.ic_claim_ui, - "Reclamaciones", R.string.titleClaims,"Accede al menú de reclamaciones" + contextApp.getString(R.string.titleClaims), + R.string.titleClaims, + contextApp.getString(R.string.titleClaimsDescrip) ) ) - - } @@ -336,7 +446,11 @@ class PasilleroViewModel : BaseViewModel() { PasillerosItemVO( 30, R.drawable.ic_claims, - "Ubicación de Reclamación", R.string.titleClaimUbication, "Ubicación de reclamaciones" + contextApp.getString(R.string.titleClaimUbication), + R.string.titleClaimUbication, + contextApp.getString( + R.string.titleClaimDescrip + ) ) ) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/precontrol/PreControladorViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/precontrol/PreControladorViewModel.kt index 9fc7a780..2a9e6183 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/precontrol/PreControladorViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/precontrol/PreControladorViewModel.kt @@ -16,6 +16,7 @@ import retrofit2.Response class PreControladorViewModel(context: Context) : BaseViewModel() { + private val contextApp=context private val _collectionTicketList by lazy { MutableLiveData() } private val getPreControladorUserCase: GetPreControladorUserCase = GetPreControladorUserCase(context) @@ -33,7 +34,7 @@ class PreControladorViewModel(context: Context) : BaseViewModel() { response: Response ) { if (response.body() != null){ - _collectionTicketList.value = response.body()?.let { it.map() } + _collectionTicketList.value = response.body()?.let { it.map(contextApp) } }else{ _collectionTicketList.value = CollectionVO(isError = true,errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())) } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/EndSacadorFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/EndSacadorFragment.kt index ced6ac8d..07b85fbf 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/EndSacadorFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/EndSacadorFragment.kt @@ -1,12 +1,10 @@ package es.verdnatura.presentation.view.feature.presacador.fragment -import android.annotation.SuppressLint import android.content.Context import android.graphics.drawable.Drawable import android.media.MediaPlayer import android.os.Build import android.os.Bundle -import android.util.Log import android.view.View import android.view.View.GONE import android.view.View.VISIBLE @@ -170,7 +168,6 @@ class EndSacadorFragment( } } - @SuppressLint("LogNotTimber") override fun observeViewModel() { with(viewModel) { salesList.observe(viewLifecycleOwner, Observer { @@ -210,7 +207,11 @@ class EndSacadorFragment( responseSalixMessage.observe(viewLifecycleOwner, Observer { if (!goBack) { if (it.isError) { - ma.messageWithSound(it.errorMessage, true, false) + ma.messageWithSound( + getString(R.string.rocketKO) + it.errorMessage, + true, + false + ) } } @@ -236,13 +237,10 @@ class EndSacadorFragment( binding.splashProgress.visibility = GONE if (it.isError) { ma.messageWithSound(it.errorMessage, true, false) - /* customDialog.setTitle(getString(R.string.error)).setDescription(it.errorMessage) - .setOkButton(getString(R.string.accept)) { - customDialog.dismiss() - }.show()*/ + } else { if (mpok != null) mpok!!.start() - "Sale/s aparcada/s".toast(requireContext()) + getString(R.string.saleParked).toast(requireContext()) } }) @@ -306,7 +304,12 @@ class EndSacadorFragment( if (!goBack) { if (it.isError) { - ma.messageWithSound(it.errorMessage, isError = true, true, isToasted = true) + ma.messageWithSound( + getString(R.string.errorTicketAdd) + it.errorMessage, + isError = true, + true, + isToasted = true + ) } else { viewModel.sectorCollection_getSale( @@ -324,7 +327,11 @@ class EndSacadorFragment( if (!goBack) { if (it.isError) { - ma.messageWithSound(it.errorMessage, isError = true, true) + ma.messageWithSound( + getString(R.string.errorChangeState) + it.errorMessage, + isError = true, + true + ) } else { ma.messageWithSound(getString(R.string.previousOK), isError = false, false) @@ -353,7 +360,11 @@ class EndSacadorFragment( if (!goBack) { if (it.isError) { - ma.messageWithSound(it.errorMessage, isError = true, true) + ma.messageWithSound( + getString(R.string.errorChangeState) + it.errorMessage, + isError = true, + true + ) } else { if (positionUnmarked != -1) { @@ -385,7 +396,8 @@ class EndSacadorFragment( binding.splashProgress.visibility = View.GONE if (!goBack2) { if (it.isError) { - customDialog.setTitle(getString(R.string.error)).setDescription(it.errorMessage) + customDialog.setTitle(getString(R.string.error)) + .setDescription(it.errorMessage) .setKoButton(getString(R.string.close)) { scanRequest() customDialog.dismiss() @@ -460,7 +472,7 @@ class EndSacadorFragment( val ticket = "[" + sales[positionIncreaseQuantity].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionIncreaseQuantity].id + "/summary)" val message = - "Se ha modificado desde previa la cantidad original " + sales[positionIncreaseQuantity].quantity + " del artículo " + sales[positionIncreaseQuantity].itemFk + " a nueva cantidad: " + quantityIncrease + " del ticket " + ticket + getString(R.string.modifiedQuantityPrevious) + sales[positionIncreaseQuantity].quantity + getString(R.string.fromItem) + sales[positionIncreaseQuantity].itemFk + getString(R.string.toNewQuantity) + quantityIncrease + getString(R.string.fromTicket) + ticket @@ -504,13 +516,17 @@ class EndSacadorFragment( "TRUE" -> { message = - "Se ha enviado desde previa a Basura " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket + getString(R.string.sentToTrashPrevious) + totalQuantity + getString(R.string.fromItem) + sales[positionCollectionMissing].itemFk + getString( + R.string.ticketSpaces + ) + ticket } "FALSE" -> { message = - "Se ha enviado desde previa a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket + getString(R.string.sentToTrashFaults) + totalQuantity + getString(R.string.fromItem) + sales[positionCollectionMissing].itemFk + getString( + R.string.ticketSpaces + ) + ticket } @@ -518,7 +534,9 @@ class EndSacadorFragment( "reject" -> { var quantityOriginal = totalQuantity.toInt() + quantityCollectionMissing.toInt() message = - "Se ha modificado desde previa la cantidad de " + quantityOriginal + " del artículo " + sales[positionCollectionMissing].itemFk + " a nueva cantidad: " + quantityCollectionMissing + " del ticket " + ticket + getString(R.string.modifiedQuantityPrevious) + quantityOriginal + getString(R.string.fromItem) + sales[positionCollectionMissing].itemFk + getString( + R.string.toNewQuantity + ) + quantityCollectionMissing + getString(R.string.fromTicket) + ticket } } @@ -536,8 +554,7 @@ class EndSacadorFragment( viewModel.sendChekingPresence( token = getData(TOKEN), workerId = workerId, - message = message, - "sendChekingPresence" + message = message ) } } @@ -582,11 +599,13 @@ class EndSacadorFragment( getString(R.string.scanTicketsForAdd), false, false, - "Pre Sacador" + getString(R.string.titlePrePicker), isToasted = true ) } else { - if (ticket.isNullOrBlank()){binding.mainToolbar.toolbarTitle.text = collection.collectionFk} + if (ticket.isNullOrBlank()) { + binding.mainToolbar.toolbarTitle.text = collection.collectionFk + } sales = ArrayList() salesList.forEach { @@ -669,11 +688,13 @@ class EndSacadorFragment( if (it.saldo == it.picked) totalMark += 1 } - if (ticket.isNullOrBlank()){binding.mainToolbar.toolbarTitle.text = collection.collectionFk} + if (ticket.isNullOrBlank()) { + binding.mainToolbar.toolbarTitle.text = collection.collectionFk + } binding.mainToolbar.toolbarSubtitle.text = "" + totalMark + "/" + sales.size if (totalMark == sales.size) { - "Ticket completo".toast(this.context, Toast.LENGTH_SHORT) + getString(R.string.ticketCompleted).toast(this.context, Toast.LENGTH_SHORT) saleTracking_addPrevOK() @@ -709,12 +730,12 @@ class EndSacadorFragment( var isOk = false for (saleVO in sales) { - //Timber.tag("VERDNATURA::").d("El item buscado es " + saleVO.itemFk) + //Timber.tag("VERDNATURA::").d("El item buscado es " + saleVO.itemFk) if (saleVO.quantity != saleVO.picked) { //1- Por carro var shelvingIndex = 0 for (placementVO in saleVO.carros) { - //Timber.tag("VERDNATURA::").d("La matric " + placementVO.shelving) + //Timber.tag("VERDNATURA::").d("La matric " + placementVO.shelving) if (txtscan.uppercase() == placementVO.shelving.uppercase()) { if (mpok != null) mpok!!.start() isOk = true @@ -733,7 +754,7 @@ class EndSacadorFragment( if (mperror != null) { mperror!!.start() } - ("Elemento escaneado no encontrado: " + txtscan).toast(requireContext()) + (getString(R.string.itemScanetNotFound) + txtscan).toast(requireContext()) } } @@ -766,7 +787,7 @@ class EndSacadorFragment( if (mperror != null) { mperror!!.start() } - ("Elemento escaneado no encontrado: " + txtscan).toast(requireContext()) + ("getString(R.string.itemScanetNotFound)" + txtscan).toast(requireContext()) } } @@ -892,38 +913,40 @@ class EndSacadorFragment( listPlacementSupply.add(BarcodeVO(code = it.proposal)) } - customDialogList.setTitle("$shelving($item) $total del $longName").setOkButton(getString( R.string.take)) { + customDialogList.setTitle("$shelving($item) $total del $longName") + .setOkButton(getString(R.string.take)) { - if (customDialogList.getValueTwo().isNotEmpty()) { + if (customDialogList.getValueTwo().isNotEmpty()) { - if (checkItemScan(customDialogList.getValueTwo())) { - onQuantityOfShelvingSelected(itemShelvingFk) - mpok?.start() - customDialogList.dismiss() + if (checkItemScan(customDialogList.getValueTwo())) { + onQuantityOfShelvingSelected(itemShelvingFk) + mpok?.start() + customDialogList.dismiss() + } else { + itemShelvingFkStored = itemShelvingFk + binding.splashProgress.visibility = View.VISIBLE + viewModel.getIdFromCode( + usuario = getData(USER), + password = getData(PASSWORD), + code = customDialogList.getValueTwo() + ) + customDialogList.dismiss() + } + scanRequest() + hideKeyboards() } else { - itemShelvingFkStored = itemShelvingFk - binding.splashProgress.visibility = View.VISIBLE - viewModel.getIdFromCode( - usuario = getData(USER), - password = getData(PASSWORD), - code = customDialogList.getValueTwo() - ) - customDialogList.dismiss() + "getString(R.string.scanItemValidate) validar".toast(requireContext()) } + + + }.setKoButton(getString(R.string.close)) { scanRequest() hideKeyboards() - } else { - "getString(R.string.scanItemValidate) validar".toast(requireContext()) - } - - - }.setKoButton(getString(R.string.close)) { - scanRequest() - hideKeyboards() - customDialogList.dismiss() - }.setHintValue("Cantidad que coges:").setValue(total).setHintValueTwo(getString(R.string.scanItem)) + customDialogList.dismiss() + }.setHintValue(getString(R.string.quantitySelect)).setValue(total) + .setHintValueTwo(getString(R.string.scanItem)) .setValueTwo("").show() @@ -1106,7 +1129,8 @@ class EndSacadorFragment( private fun showScanner(index: Int, sale: PreSacadorItemVO) { customDialogInput.setTitle("" + sale.itemFk) - .setDescription("Escanea el carro para el item seleccionado").setOkButton(getString(R.string.accept)) { + .setDescription(getString(R.string.scanWagonForItem)) + .setOkButton(getString(R.string.accept)) { if (!customDialogInput.getValue().isNullOrEmpty()) { findSale(customDialogInput.getValue(), index) } @@ -1151,7 +1175,7 @@ class EndSacadorFragment( //OTROS private fun setToolBar() { binding.mainToolbar.toolbarSubtitle.visibility = VISIBLE - binding.mainToolbar.toolbarTitle.text=collection.collectionFk + binding.mainToolbar.toolbarTitle.text = collection.collectionFk val listIcons: ArrayList = ArrayList() @@ -1176,14 +1200,14 @@ class EndSacadorFragment( override fun onOptionsItemSelected(item: Drawable) { - goBack=false + goBack = false /*if (item == iconEraser) { } else*/ when (item) { iconParking.drawable -> pasillerosItemClickListener?.onPasillerosItemClickListener( PasillerosItemVO( - title = "Parking" + title = getString(R.string.parking) ), "" ) @@ -1327,55 +1351,55 @@ class EndSacadorFragment( } //FALTAS / BASURA / SPLIT - private fun showQuantityDialogOld(position: Int) { - customDialogThreeButtons.setDescription(getString(R.string.txtnuevacantidad)).setValue("") - .setOkButton(getString(R.string.titleFaults)) { - if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { - getString(R.string.Indicanuevacantidad).toast(requireContext()) - } else { - trash(position, customDialogThreeButtons.getValue()) - scanRequest() - customDialogThreeButtons.dismiss() - } - }.setOkButtonTwo(getString(R.string.BasuraRechazar)) { - if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { - getString(R.string.Indicanuevacantidad).toast(requireContext()) - } else { - missing(position, customDialogThreeButtons.getValue()) - scanRequest() - customDialogThreeButtons.dismiss() - } - }.setOkButtonThree(getString(R.string.Reject)) { - if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { - getString(R.string.Indicanuevacantidad).toast(requireContext()) - } else { - reject(position, customDialogThreeButtons.getValue()) - scanRequest() - customDialogThreeButtons.dismiss() - } + /* private fun showQuantityDialogOld(position: Int) { + customDialogThreeButtons.setDescription(getString(R.string.txtnuevacantidad)).setValue("") + .setOkButton(getString(R.string.titleFaults)) { + if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { + getString(R.string.Indicanuevacantidad).toast(requireContext()) + } else { + trash(position, customDialogThreeButtons.getValue()) + scanRequest() + customDialogThreeButtons.dismiss() + } + }.setOkButtonTwo(getString(R.string.BasuraRechazar)) { + if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { + getString(R.string.Indicanuevacantidad).toast(requireContext()) + } else { + missing(position, customDialogThreeButtons.getValue()) + scanRequest() + customDialogThreeButtons.dismiss() + } + }.setOkButtonThree(getString(R.string.Reject)) { + if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { + getString(R.string.Indicanuevacantidad).toast(requireContext()) + } else { + reject(position, customDialogThreeButtons.getValue()) + scanRequest() + customDialogThreeButtons.dismiss() + } - }.setOkButtonFour("Split") { - if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { - getString(R.string.Indicanuevacantidad).toast(requireContext()) - } else { - split(position, customDialogThreeButtons.getValue()) - scanRequest() - customDialogThreeButtons.dismiss() - } + }.setOkButtonFour(getString(R.string.Split)) { + if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { + getString(R.string.Indicanuevacantidad).toast(requireContext()) + } else { + split(position, customDialogThreeButtons.getValue()) + scanRequest() + customDialogThreeButtons.dismiss() + } - }.setOkButtonAdd(getString(R.string.Agregar)) { - if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { - getString(R.string.Indicanuevacantidad).toast(requireContext()) - } else { - increaseQuantity(position, customDialogThreeButtons.getValue()) - scanRequest() - customDialogThreeButtons.dismiss() - } - }.setKoButton(getString(R.string.cancel)) { - scanRequest() - customDialogThreeButtons.dismiss() - }.show() - } + }.setOkButtonAdd(getString(R.string.Agregar)) { + if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { + getString(R.string.Indicanuevacantidad).toast(requireContext()) + } else { + increaseQuantity(position, customDialogThreeButtons.getValue()) + scanRequest() + customDialogThreeButtons.dismiss() + } + }.setKoButton(getString(R.string.cancel)) { + scanRequest() + customDialogThreeButtons.dismiss() + }.show() + }*/ private fun split(position: Int, quantity: String) { @@ -1388,14 +1412,14 @@ class EndSacadorFragment( } catch (e: Exception) { } - binding.splashProgress.visibility=VISIBLE + binding.splashProgress.visibility = VISIBLE - viewModel.transferSalesSalix( - getData(TOKEN), - ticketFk = sales[position].id, - saleFk = sales[position].idMovimiento, - quantity = totalQuantity.toString() - ) + viewModel.transferSalesSalix( + getData(TOKEN), + ticketFk = sales[position].id, + saleFk = sales[position].idMovimiento, + quantity = totalQuantity.toString() + ) /* try { @@ -1425,106 +1449,104 @@ class EndSacadorFragment( } - private fun trash(position: Int, quantity: String) { - var totalQuantity: Int = 0 - try { - totalQuantity = sales[position].saldo.toInt() - quantity.toInt() - } catch (e: Exception) { - } - viewModel.collectionMissingTrash( - usuario = getData(USER), - password = getData(PASSWORD), - saleFk = sales[position].idMovimiento, - quantity = totalQuantity.toString(), - warehouseFk = getData(WAREHOUSEFK), - type = "FALSE", - originalQuantity = quantity - ) - //sales[position].originalQuantity = quantity - try { - sales[position].saldo = quantity.toInt() - } catch (e: Exception) { - sales[position].saldo = 0 - } - //sales[position].startQuantity = quantity - saleAdapter!!.notifyDataSetChanged() - if (quantity == "0") - markLine(position) + /* private fun trash(position: Int, quantity: String) { + var totalQuantity: Int = 0 + try { + totalQuantity = sales[position].saldo.toInt() - quantity.toInt() + } catch (e: Exception) { + } + viewModel.collectionMissingTrash( + usuario = getData(USER), + password = getData(PASSWORD), + saleFk = sales[position].idMovimiento, + quantity = totalQuantity.toString(), + warehouseFk = getData(WAREHOUSEFK), + type = "FALSE", + originalQuantity = quantity + ) + //sales[position].originalQuantity = quantity + try { + sales[position].saldo = quantity.toInt() + } catch (e: Exception) { + sales[position].saldo = 0 + } + //sales[position].startQuantity = quantity + saleAdapter!!.notifyDataSetChanged() + if (quantity == "0") + markLine(position) - //enviar mensaje a salix - val ticket = - "[" + sales[position].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[position].id + "/summary)" - val message = - "Se ha enviado a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[position].itemFk + " ticket " + ticket - viewModel.sendChekingPresence( - token = getData(TOKEN), - workerId = sales[position].salesPersonFk, - message = message, - "sendChekingPresence" - ) - } + //enviar mensaje a salix + val ticket = + "[" + sales[position].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[position].id + "/summary)" + val message = + "Se ha enviado a Faltas la cantidad de " + totalQuantity + getString(R.string.fromItem) + sales[position].itemFk + " ticket " + ticket + viewModel.sendChekingPresence( + token = getData(TOKEN), + workerId = sales[position].salesPersonFk, + message = message + ) + } - private fun missing(position: Int, quantity: String) { - var totalQuantity: Int = 0 - try { - totalQuantity = sales[position].saldo.toInt() - quantity.toInt() - } catch (e: Exception) { - } - viewModel.collectionMissingTrash( - usuario = getData(USER), - password = getData(PASSWORD), - saleFk = sales[position].idMovimiento, - quantity = totalQuantity.toString(), - warehouseFk = getData(WAREHOUSEFK), - type = "TRUE", - originalQuantity = quantity - ) - //sales[position].originalQuantity = quantity - try { - sales[position].saldo = quantity.toInt() - } catch (e: Exception) { - sales[position].saldo = 0 - } + private fun missing(position: Int, quantity: String) { + var totalQuantity: Int = 0 + try { + totalQuantity = sales[position].saldo.toInt() - quantity.toInt() + } catch (e: Exception) { + } + viewModel.collectionMissingTrash( + usuario = getData(USER), + password = getData(PASSWORD), + saleFk = sales[position].idMovimiento, + quantity = totalQuantity.toString(), + warehouseFk = getData(WAREHOUSEFK), + type = "TRUE", + originalQuantity = quantity + ) + //sales[position].originalQuantity = quantity + try { + sales[position].saldo = quantity.toInt() + } catch (e: Exception) { + sales[position].saldo = 0 + } - //sales[position].startQuantity = quantity + //sales[position].startQuantity = quantity - if (quantity == "0") - markLine(position) - saleAdapter!!.notifyDataSetChanged() + if (quantity == "0") + markLine(position) + saleAdapter!!.notifyDataSetChanged() - //enviar mensaje a salix - val ticket = - "[" + sales[position].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[position].id + "/summary)" - val message = - "Se ha enviado a Basura " + totalQuantity + " del articulo " + sales[position].itemFk + " ticket " + ticket - viewModel.sendChekingPresence( - token = getData(TOKEN), - workerId = sales[position].salesPersonFk, - message = message, - "sendChekingPresence" - ) - } + //enviar mensaje a salix + val ticket = + "[" + sales[position].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[position].id + "/summary)" + val message = + "Se ha enviado a Basura " + totalQuantity + getString(R.string.fromItem) + sales[position].itemFk + " ticket " + ticket + viewModel.sendChekingPresence( + token = getData(TOKEN), + workerId = sales[position].salesPersonFk, + message = message + ) + } - private fun reject(position: Int, quantity: String) { - var totalQuantity: Int = 0 - try { - totalQuantity = sales[position].saldo.toInt() - quantity.toInt() - } catch (e: Exception) { - } - viewModel.collectionMissingTrash( - usuario = getData(USER), - password = getData(PASSWORD), - saleFk = sales[position].idMovimiento, - quantity = totalQuantity.toString(), - warehouseFk = getData(WAREHOUSEFK), - type = "reject", - originalQuantity = quantity - ) + private fun reject(position: Int, quantity: String) { + var totalQuantity: Int = 0 + try { + totalQuantity = sales[position].saldo.toInt() - quantity.toInt() + } catch (e: Exception) { + } + viewModel.collectionMissingTrash( + usuario = getData(USER), + password = getData(PASSWORD), + saleFk = sales[position].idMovimiento, + quantity = totalQuantity.toString(), + warehouseFk = getData(WAREHOUSEFK), + type = "reject", + originalQuantity = quantity + ) - //enviar mensaje a salix - /* val ticket = + //enviar mensaje a salix + *//* val ticket = "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)" val message = "Se ha modificado la cantidad original desde previa" + sales[position].saldo + " del artículo " + sales[position].itemFk + " a nueva cantidad: " + quantity + " del ticket " + ticket @@ -1533,7 +1555,7 @@ class EndSacadorFragment( workerId = sales[position].salesPersonFk, message = message, "sendChekingPresence" - )*/ + )*//* try { sales[position].saldo = quantity.toInt() @@ -1566,8 +1588,8 @@ class EndSacadorFragment( viewModel.sendChekingPresence( token = getData(TOKEN), workerId = sales[position].salesPersonFk, - message = message, - "sendChekingPresence" + message = message + ) //Timber.d("VERDNATURA").d("el trabajador es " + sales[position].salesPersonFk) @@ -1581,7 +1603,7 @@ class EndSacadorFragment( saleAdapter?.notifyDataSetChanged() - } + }*/ private fun increaseQuantity(position: Int, quantity: String) { positionIncreaseQuantity = position diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/InitPreSacadorFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/InitPreSacadorFragment.kt index 27333f1f..3b8aec4f 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/InitPreSacadorFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/InitPreSacadorFragment.kt @@ -48,7 +48,6 @@ class InitPreSacadorFragment ( customDialog = CustomDialog(requireContext()) binding.splashProgress.visibility = View.VISIBLE binding.splashProgressTwo.visibility = View.GONE - binding.mainToolbar.toolbarTitle.text = getString(R.string.getcollection) setToolBar() setEvents() viewModel.sectorCollection_get(getData(USER),getData(PASSWORD)) @@ -66,8 +65,10 @@ class InitPreSacadorFragment ( private fun setToolBar() { ma.hideBottomNavigation(View.VISIBLE) - binding.mainToolbar.backButton.visibility = View.GONE binding.mainToolbar.toolbarTitle.text=entrypoint + binding.mainToolbar.backButton.setOnClickListener{ + ma.onBackPressed() + } val listIcons: ArrayList = ArrayList() val iconAdd = ImageView(context) @@ -139,7 +140,7 @@ class InitPreSacadorFragment ( binding.splashProgressTwo.visibility = View.GONE binding.splashProgress.visibility = View.GONE if (it.isError) { - ma.messageWithSound(it.errorMessage,true,false) + ma.messageWithSound(getString(R.string.errorCollectionNew)+ it.errorMessage,true,false) } else { //if (goBack) @@ -172,11 +173,11 @@ class InitPreSacadorFragment ( } } if (isNew) { - collectionsList.add(CollectionVO(collectionFk = collection, created = "Nuevo")) + collectionsList.add(CollectionVO(collectionFk = collection, created = getString(R.string.newCreated))) adapter?.notifyDataSetChanged() } else { - customDialog.setTitle("Atención") - .setDescription("La colección " + collection + " sigue pendiente de preparar") + customDialog.setTitle(getString(R.string.info)) + .setDescription(getString(R.string.collectionPending) + collection) .setOkButton(getString(R.string.accept)) { customDialog.dismiss() }.show() diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorFragment.kt index 28137bff..12c39184 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorFragment.kt @@ -356,12 +356,12 @@ class PreSacadorFragment : when (typeCollectionMissing){ "TRUE"->{ - message = "Se ha enviado desde previa a Basura " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket + message = "Se ha enviado desde previa a Basura " + totalQuantity + getString(R.string.fromItem) + sales[positionCollectionMissing].itemFk + " ticket " + ticket } "FALSE"->{ - message= "Se ha enviado desde previa a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket + message= "Se ha enviado desde previa a Faltas la cantidad de " + totalQuantity + getString(R.string.fromItem) + sales[positionCollectionMissing].itemFk + " ticket " + ticket } @@ -383,8 +383,7 @@ class PreSacadorFragment : viewModel.sendChekingPresence( token = getData(TOKEN), workerId = workerId, - message = message, - "sendChekingPresence" + message = message ) } //CREATE LIST @@ -500,7 +499,7 @@ class PreSacadorFragment : binding.mainToolbar.toolbarTitle.text = ticket binding.mainToolbar.toolbarSubtitle.text = "" + totalMark + "/" + sales.size if (totalMark == sales.size) { - "Ticket completo".toast(this.context, Toast.LENGTH_SHORT) + getString(R.string.ticketCompleted).toast(this.context, Toast.LENGTH_SHORT) } } @@ -546,7 +545,7 @@ class PreSacadorFragment : if (mperror != null) { mperror!!.start() } - ("Elemento escaneado no encontrado: " + txtscan).toast(requireContext()) + ("getString(R.string.itemScanetNotFound)" + txtscan).toast(requireContext()) } } @@ -579,7 +578,7 @@ class PreSacadorFragment : if (mperror != null) { mperror!!.start() } - ("Elemento escaneado no encontrado: " + txtscan).toast(requireContext()) + ("getString(R.string.itemScanetNotFound)" + txtscan).toast(requireContext()) } } @@ -719,7 +718,7 @@ class PreSacadorFragment : scanRequest() hideKeyboards() customDialogList.dismiss() - }.setHintValue("Cantidad que coges:").setValue(total).setHintValueTwo(getString(R.string.scanItem)) + }.setHintValue("getString(R.string.quantitySelect))").setValue(total).setHintValueTwo(getString(R.string.scanItem)) .setValueTwo("").show() @@ -1230,12 +1229,11 @@ class PreSacadorFragment : val ticket = "[" + sales[position].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[position].id + "/summary)" val message = - "Se ha enviado a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[position].itemFk + " ticket " + ticket + "Se ha enviado a Faltas la cantidad de " + totalQuantity + getString(R.string.fromItem) + sales[position].itemFk + " ticket " + ticket viewModel.sendChekingPresence( token = getData(TOKEN), workerId = sales[position].salesPersonFk, - message = message, - "sendChekingPresence" + message = message ) } @@ -1272,12 +1270,11 @@ class PreSacadorFragment : val ticket = "[" + sales[position].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[position].id + "/summary)" val message = - "Se ha enviado a Basura " + totalQuantity + " del articulo " + sales[position].itemFk + " ticket " + ticket + "Se ha enviado a Basura " + totalQuantity + getString(R.string.fromItem) + sales[position].itemFk + " ticket " + ticket viewModel.sendChekingPresence( token = getData(TOKEN), workerId = sales[position].salesPersonFk, - message = message, - "sendChekingPresence" + message = message ) } @@ -1305,8 +1302,7 @@ class PreSacadorFragment : viewModel.sendChekingPresence( token = getData(TOKEN), workerId = sales[position].salesPersonFk, - message = message, - "sendChekingPresence" + message = message ) try { @@ -1339,8 +1335,7 @@ class PreSacadorFragment : viewModel.sendChekingPresence( token = getData(TOKEN), workerId = sales[position].salesPersonFk, - message = message, - "sendChekingPresence" + message = message ) Log.d("VERDNATURA","el trabajador es "+sales[position].salesPersonFk) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorViewModel.kt index 6c2718c0..f5babe7e 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorViewModel.kt @@ -26,6 +26,8 @@ import retrofit2.Callback import retrofit2.Response class PreSacadorViewModel(context: Context) : BaseViewModel() { + + private val contextApp=context private val getPreSacadorUseCase: GetPreSacadorUseCase = GetPreSacadorUseCase(context) private val getSacadorControladorUserCase: GetSacadorControladorUserCase = GetSacadorControladorUserCase(context) @@ -538,7 +540,6 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() { token: String, workerId: String, message: String, - calledFunction: String ) { try { getLoginUserCase.sendChekingPresence(token, workerId.toInt(), message) @@ -547,7 +548,7 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() { if (!response.isSuccessful || response.message() == "false") { _responseSalixMessage.value = ResponseItemVO( isError = true, - errorMessage = "Error al enviar mensaje rocket." + getMessageFromAllResponse( + errorMessage = getMessageFromAllResponse( nameofFunction(this), response.message() ) ) @@ -559,7 +560,7 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() { override fun onFailure(call: Call, t: Throwable) { _responseSalixMessage.value = ResponseItemVO( isError = true, - errorMessage = "Error al enviar mensaje rocket." + getMessageFromAllResponse( + errorMessage = getMessageFromAllResponse( nameofFunction(this), t.message!! ) ) @@ -594,7 +595,7 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() { ) { if (response.body() != null) { _collectionList.value = - response.body()?.let { CollectionListVO(it.toDateFormat()) } + response.body()?.let { CollectionListVO(it.toDateFormat(contextApp)) } } else { val listError: ArrayList = ArrayList() listError.add( @@ -643,7 +644,7 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() { if (!response.isSuccessful) { _responseNew.value = ResponseItemVO( isError = true, - errorMessage = "Error en la llamada al añadir colección." + getMessageFromAllResponse( + errorMessage = getMessageFromAllResponse( nameofFunction(this), response.message() ) ) @@ -691,7 +692,6 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() { .enqueue(object : Callback> { override fun onFailure(call: Call>, t: Throwable) { - //Timber.tag("VERDNATURA::").d("ha fallado") _salesList.value = listOf() } @@ -702,7 +702,7 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() { if (response.body() != null) { _salesList.value = response.body()?.let { it } } else { - d("VERDNATURA::", "ES NULO") + _salesList.value = listOf() } } @@ -744,7 +744,7 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() { if (!response.isSuccessful) { _responseSaleGroupAdd.value = ResponseItemVO( isError = true, - errorMessage = "Error al añadir ticket a la colección." + getMessageFromAllResponse( + errorMessage = getMessageFromAllResponse( nameofFunction(this), response.message() ) ) @@ -792,7 +792,7 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() { if (!response.isSuccessful) { _responseSaleAddPrevOK.value = ResponseItemVO( isError = true, - errorMessage = "Error al cambiar el estado a la colección de previa." + getMessageFromAllResponse( + errorMessage = getMessageFromAllResponse( nameofFunction(this), response.message() ) ) @@ -843,7 +843,7 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() { if (!response.isSuccessful) { _responseSaleupdateIsChecked.value = ResponseItemVO( isError = true, - errorMessage = "Error al cambiar el estado a la colección de previa." + getMessageFromAllResponse( + errorMessage = getMessageFromAllResponse( nameofFunction(this), response.message() ) ) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/qr/QrFragmentViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/qr/QrFragmentViewModel.kt index e020f1fe..6698c5bb 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/qr/QrFragmentViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/qr/QrFragmentViewModel.kt @@ -2,12 +2,11 @@ package es.verdnatura.presentation.view.feature.qr import android.content.Context -import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData +import es.verdnatura.R import es.verdnatura.domain.GetQrReaderUserCase import es.verdnatura.presentation.base.BaseViewModel - import es.verdnatura.presentation.base.getMessageFromAllResponse import es.verdnatura.presentation.base.nameofFunction import es.verdnatura.presentation.common.ResponseItemVO @@ -16,6 +15,7 @@ import retrofit2.Callback import retrofit2.Response class QrFragmentViewModel(context: Context) : BaseViewModel() { + private val contextApp =context private val GetQrReaderUserCase: GetQrReaderUserCase = GetQrReaderUserCase(context) @@ -46,9 +46,9 @@ class QrFragmentViewModel(context: Context) : BaseViewModel() { _qrresponse.value = ResponseItemVO( response = "", isError = true, - errorMessage ="Usuario sin permisos para realizar la acción" - - ) + errorMessage =contextApp.getString( + R.string.userNotPermission + )) } else if (response.body() != null) { _qrresponse.value = ResponseItemVO( diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorFragment.kt index c3b76310..9df5efa9 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorFragment.kt @@ -4,7 +4,6 @@ import android.content.Context import android.graphics.drawable.Drawable import android.os.Build import android.os.Bundle -import android.util.Log import android.view.View import android.widget.ImageView import androidx.fragment.app.setFragmentResultListener @@ -56,7 +55,6 @@ class SacadorFragment : setToolBar() setEvents() - //Log.d("VERDNATURA::","getCollections es "+ getCollections) if (getCollections) { viewModel.collection_new_smart( getData(USER), @@ -65,22 +63,20 @@ class SacadorFragment : getData(WAGON), getData(TAGSTYPE) ) - //getCollections = false + } else { - var working_in_test=false //sergio: Ok en app - if (!working_in_test) { - viewModel.collectionGetSalix(token = getData(TOKEN)) - }else{ - viewModel.collectionGet( getData(USER), - getData(PASSWORD)) - } + var working_in_test = false //sergio: Ok en app + if (!working_in_test) { + viewModel.collectionGetSalix(token = getData(TOKEN)) + } else { + viewModel.collectionGet( + getData(USER), + getData(PASSWORD) + ) + } } - - super.init() - - } @@ -91,13 +87,10 @@ class SacadorFragment : val result = bundle.getString("tagMode") - //Timber.d("VERDNATURA::").d("el result es " + result) - resultTagMode = result - if (result.equals("complete") && getData(TAGSTYPE).equals("SmartTags")) { + if (result.equals(getString(R.string.complete)) && getData(TAGSTYPE).equals(getString(R.string.smarttags))) { getCollections = true - //Timber.d("VERDNATURA::").d("el getCollections es " + getCollections) } else { getCollections = false } @@ -116,6 +109,9 @@ class SacadorFragment : ma.hideBottomNavigation(View.VISIBLE) + binding.mainToolbar.backButton.setOnClickListener{ + requireActivity().onBackPressed() + } val listIcons: ArrayList = ArrayList() val iconAdd = ImageView(context) @@ -141,9 +137,13 @@ class SacadorFragment : iconAdd.drawable -> { binding.splashProgress.visibility = View.VISIBLE - checkTagsMode() - /* viewModel.collection_new_wagon(getData(USER), - getData(PASSWORD),getData(SECTORFK),getData(WAGON),getData(TAGSTYPE),"collection_new_wagon")*/ + // checkTagsMode() + viewModel.collectionNew( + getData(USER), + getData(PASSWORD), + getData(SECTORFK), + getData(WAGON) + ) } iconVehicleIn.drawable -> ma.onVehicleSelected(SacadorFragment.TAG) } @@ -168,31 +168,30 @@ class SacadorFragment : private fun checkTagsMode() { - - if (getData(TAGSTYPE).equals("Stickers")) { + //sergio:codigo smarttags + if (getData(TAGSTYPE).equals(getString(R.string.stickers))) { viewModel.collectionNew( getData(USER), getData(PASSWORD), getData(SECTORFK), getData(WAGON) ) - } else if (getCollections) { - //Log.d("VERDNATURA::","getCollections sobrevive") - viewModel.collection_new_smart( - getData(USER), - getData(PASSWORD), - getData(SECTORFK), - getData(WAGON), - getData(TAGSTYPE) - ) + } else if (getCollections) { - } else { - requireActivity().addFragment( - AssociateSmartTagsFragment.newInstance(AssociateSmartTagsFragment.TAG), - R.id.main_frame_layout, - AssociateSmartTagsFragment.TAG - ) - // } + viewModel.collection_new_smart( + getData(USER), + getData(PASSWORD), + getData(SECTORFK), + getData(WAGON), + getData(TAGSTYPE) + ) + + } else { + requireActivity().addFragment( + AssociateSmartTagsFragment.newInstance(AssociateSmartTagsFragment.TAG), + R.id.main_frame_layout, + AssociateSmartTagsFragment.TAG + ) } @@ -246,18 +245,17 @@ class SacadorFragment : responseCollectionSmart.observe(viewLifecycleOwner, Observer { binding.splashProgress.visibility = View.GONE - getCollections=false + getCollections = false if (!goBack) { - if (it.isError) { - ma.messageWithSound(it.errorMessage, true, false) + if (it.isError) { + ma.messageWithSound(it.errorMessage, true, false) - // viewModel.smartTagInsertTicket(it.response) - } else { - //ma.messageWithSound(it.errorMessage, false, false) - viewModel.smartTagInsertTicket(it.response) + } else { - goBack = false - } + viewModel.smartTagInsertTicket(it.response) + + goBack = false + } } }) @@ -267,10 +265,10 @@ class SacadorFragment : if (!goBack) { if (it.isError) { ma.messageWithSound(it.errorMessage, true, false) - getCollections=true + getCollections = true } else { - ma.messageWithSound(it.errorMessage, false, false) - getCollections=false + ma.messageWithSound(getString(R.string.ticketInsert), false, false) + getCollections = false viewModel.collectionGetSalix(getData(TOKEN)) } goBack = false @@ -302,7 +300,12 @@ class SacadorFragment : } } if (isNew) { - collectionsList.add(CollectionVO(collectionFk = collection, created = getString(R.string.newCreated))) + collectionsList.add( + CollectionVO( + collectionFk = collection, + created = getString(R.string.newCreated) + ) + ) adapter?.notifyDataSetChanged() diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorViewModel.kt index f20c9cc6..a9720ad5 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorViewModel.kt @@ -24,8 +24,9 @@ import retrofit2.Response class SacadorViewModel(context: Context) : BaseViewModel() { - val emptyMessage = "No tienes colecciones pendientes. Presiona sobre el + para crear colección" + //val emptyMessage = "No tienes colecciones pendientes. Presiona sobre el + para crear colección" + private val contextApp=context private val getSacadorControladorUserCase: GetSacadorControladorUserCase = GetSacadorControladorUserCase( context ) @@ -85,7 +86,7 @@ class SacadorViewModel(context: Context) : BaseViewModel() { response: Response ) { if (response.body() != null) { - _collectionTicketList.value = response.body()?.let { it.map() } + _collectionTicketList.value = response.body()?.let { it.map(contextApp) } } else { _collectionTicketList.value = CollectionVO( isError = true, @@ -205,7 +206,7 @@ class SacadorViewModel(context: Context) : BaseViewModel() { ) { if (response.body() != null) { _collectionList.value = - response.body()?.let { CollectionListVO(it.toDateFormat()) } + response.body()?.let { CollectionListVO(it.toDateFormat(contextApp)) } } else { val listError: ArrayList = ArrayList() listError.add( @@ -238,7 +239,7 @@ class SacadorViewModel(context: Context) : BaseViewModel() { ) { if (response.body() != null) { _collectionList.value = - response.body()?.let { CollectionListVO(it.toDateFormat()) } + response.body()?.let { CollectionListVO(it.toDateFormat(contextApp)) } } else { val listError: ArrayList = ArrayList() listError.add( @@ -271,7 +272,7 @@ class SacadorViewModel(context: Context) : BaseViewModel() { if (response.isSuccessful){ responseSmart = SmartTagRegister( - message="Ticket insertado OK.", + message="", isError = false, errorMessage = "" ) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/mapper/SacadoresMapper.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/mapper/SacadoresMapper.kt index 609a6a64..b297e404 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/mapper/SacadoresMapper.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/mapper/SacadoresMapper.kt @@ -1,17 +1,19 @@ package es.verdnatura.presentation.view.feature.sacador.mapper +import android.content.Context +import es.verdnatura.R import es.verdnatura.presentation.common.convertToDateString import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO import java.text.SimpleDateFormat import java.util.* import kotlin.collections.ArrayList -fun List.toDateFormat(): ArrayList { +fun List.toDateFormat(context:Context): ArrayList { val collections : ArrayList = ArrayList() this.forEach { collections.add(CollectionVO( collectionFk = it.collectionFk, - created = getCalendarFromDate(it.created).convertToDateString() + created = getCalendarFromDate(it.created,context).convertToDateString() )) } @@ -19,8 +21,8 @@ fun List.toDateFormat(): ArrayList { } -private fun getCalendarFromDate(date:String): Calendar { - val sdf = SimpleDateFormat("yyyy-MM-dd") +private fun getCalendarFromDate(date:String,context:Context): Calendar { + val sdf = SimpleDateFormat(context.getString(R.string.dateFormat)) val cal = Calendar.getInstance() cal.setTime(sdf.parse(date)) return cal diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/showticket/ShowTicketFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/showticket/ShowTicketFragment.kt index 2bf20478..783c4164 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/showticket/ShowTicketFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/showticket/ShowTicketFragment.kt @@ -34,10 +34,11 @@ class ShowTicketFragment(var menuOrigin: String) : override fun init() { - binding.splashProgress.visibility = View.GONE + // binding.splashProgress.visibility = View.GONE binding.mainToolbar.toolbarTitle.text = getString(R.string.verticket) + binding.splashProgress.visibility = View.GONE - if (menuOrigin == "Main") { + if (menuOrigin == getString(R.string.main)) { hideBackButton(binding.mainToolbar) } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/showticket/ShowTicketViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/showticket/ShowTicketViewModel.kt index b013f2be..4803d61d 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/showticket/ShowTicketViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/showticket/ShowTicketViewModel.kt @@ -15,7 +15,7 @@ import retrofit2.Callback import retrofit2.Response class ShowTicketViewModel(context: Context) : BaseViewModel() { - + private val contextApp=context private val _collectionTicketList by lazy { MutableLiveData() } private val getPreControladorUserCase: GetPreControladorUserCase = GetPreControladorUserCase(context) @@ -37,7 +37,7 @@ class ShowTicketViewModel(context: Context) : BaseViewModel() { response: Response ) { if (response.body() != null){ - _collectionTicketList.value = response.body()?.let { it.map() } + _collectionTicketList.value = response.body()?.let { it.map(contextApp) } }else{ _collectionTicketList.value = CollectionVO(isError = true,errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())) } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/register/RegisterSmartTagsFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/register/RegisterSmartTagsFragment.kt index 137eea2e..9ecd2f11 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/register/RegisterSmartTagsFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/register/RegisterSmartTagsFragment.kt @@ -81,8 +81,6 @@ class RegisterSmartTagsFragment( private fun setToolBar() { - - // Log.d("VERDNATURA::","Title"+entryPoint) binding.mainToolbar.toolbarTitle.text = entryPoint binding.splashProgress.visibility = GONE @@ -241,7 +239,7 @@ class RegisterSmartTagsFragment( var message = "" when (TagScaned) { - 1 -> message = "Carro:" + 1 -> message = getString(R.string.scannedWagon) 2 -> message = getString(R.string.highLabel) 3 -> message = getString(R.string.midLabel) 4 -> message = getString(R.string.lowLabel) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/sacador/fragment/AssociateSmartTagsFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/sacador/fragment/AssociateSmartTagsFragment.kt index 9f017acd..85c45b27 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/sacador/fragment/AssociateSmartTagsFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/sacador/fragment/AssociateSmartTagsFragment.kt @@ -243,7 +243,7 @@ class AssociateSmartTagsFragment( if (listSmartTags.size > 0) { // setFragmentResult("requestkey", bundleOf("tagMode" to "SmartTag")) customDialogList.dismiss() - val result = "complete" + val result = getString(R.string.complete) setFragmentResult("requestKey", bundleOf("tagMode" to result)) ma.openFragmentPickers(true) /*listSmartTags.forEach { diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/sacador/fragment/SmartTagsViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/sacador/fragment/SmartTagsViewModel.kt index cf1a94a5..2ebb2fb3 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/sacador/fragment/SmartTagsViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/smarttag/sacador/fragment/SmartTagsViewModel.kt @@ -1,22 +1,15 @@ package es.verdnatura.presentation.view.feature.smarttag.sacador.fragment import android.content.Context -import android.os.Message -import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData -import com.google.gson.JsonObject import es.verdnatura.domain.GetSmarttagsUserCase -import es.verdnatura.domain.GetVehicleControlTimeUserCase -import es.verdnatura.domain.NodeJsService 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.view.feature.login.model.errorMessage import es.verdnatura.presentation.view.feature.smarttag.sacador.model.SmartTagRegister import org.json.JSONObject - import retrofit2.Call import retrofit2.Callback import retrofit2.Response @@ -51,96 +44,115 @@ class SmartTagsViewModel(context: Context) : BaseViewModel() { get() = _registerSmarttagNode - fun workerShelving_add(usuario:String,password:String,shelvingFK:String){ - GetSmarttagsUserCase.workerShelving_add(usuario,password,shelvingFK).enqueue(object : Callback{ - override fun onFailure(call: Call, t: Throwable) { + fun workerShelving_add(usuario: String, password: String, shelvingFK: String) { + GetSmarttagsUserCase.workerShelving_add(usuario, password, shelvingFK) + .enqueue(object : Callback { + override fun onFailure(call: Call, t: Throwable) { - _responseadd.value = messageError(t.message!!, nameofFunction(this)) - } - - override fun onResponse(call: Call, response: Response) { - - if (!response.isSuccessful){ - _responseadd.value = messageError(response.message(),nameofFunction(this)) - }else{ - _responseadd.value = ResponseItemVO(isError = false,response = response.message()!!) + _responseadd.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) + ) } - } + override fun onResponse(call: Call, response: Response) { + + if (!response.isSuccessful) { + _responseadd.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message() + ) + ) + } else { + _responseadd.value = ResponseItemVO( + isError = false, + errorMessage = response.message() + ) + } + + } - - }) + }) } - fun messageError(message: String,call: String ): ResponseItemVO? { + /* fun messageError(message: String, call: String): ResponseItemVO? { return ResponseItemVO( isError = true, errorMessage = "Error al llamar a " + call + " . Descripción del error:" + message ) - } + }*/ - fun workerShelving_delete(usuario:String,password:String,vBarcode:String){ - GetSmarttagsUserCase.workerShelving_delete(usuario,password,vBarcode).enqueue(object : Callback{ - override fun onFailure(call: Call, t: Throwable) { - //_responseremove.value = ResponseItemVO(isError = true,errorMessage = "Error al llamar a workerShelving_remove") - _responseremove.value = messageError(t.message!!,nameofFunction(this)) - } - - override fun onResponse(call: Call, response: Response) { - - if (!response.isSuccessful){ - _responseremove.value = messageError(response.message(),nameofFunction(this)) - }else{ - _responseremove.value = ResponseItemVO(isError = false,response = response.message()!!) + fun workerShelving_delete(usuario: String, password: String, vBarcode: String) { + GetSmarttagsUserCase.workerShelving_delete(usuario, password, vBarcode) + .enqueue(object : Callback { + override fun onFailure(call: Call, t: Throwable) { + //_responseremove.value = ResponseItemVO(isError = true,errorMessage = "Error al llamar a workerShelving_remove") + _responseremove.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + t.message!! + )) } + override fun onResponse(call: Call, response: Response) { - } + if (!response.isSuccessful) { + _responseremove.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message() + ) + ) + } else { + _responseremove.value = + ResponseItemVO(isError = false, response = response.message()!!) + } - }) + + } + + }) } - fun smartTagRegister(smarttag: String, wagon: String, shelving: String) - { + fun smartTagRegister(smarttag: String, wagon: String, shelving: String) { GetSmarttagsUserCase.smartTagRegister(smarttag, wagon, shelving) - .enqueue(object : Callback - { + .enqueue(object : Callback { override fun onResponse( call: Call, response: Response - ) - { + ) { val responseSmart: SmartTagRegister - if (response.isSuccessful){ - responseSmart = SmartTagRegister( - message="Registrada smartTag.", - isError = false, - errorMessage = "" - ) + if (response.isSuccessful) { + responseSmart = SmartTagRegister( + message = response.message(), + isError = false, + errorMessage = "" + ) - }else{ + } else { // sergio: buscar JSON obtindre el "message" Smarttag - var text = JSONObject(response.errorBody()!!.string()).get("error") - var message =JSONObject(text.toString()).get("message") + var text = JSONObject(response.errorBody()!!.string()).get("error") + var message = JSONObject(text.toString()).get("message") - responseSmart = SmartTagRegister( - isError = true, - errorMessage = message.toString() - ) - - //Log.d("VERDNATURA::","" +message) - } + responseSmart = SmartTagRegister( + isError = true, + errorMessage = message.toString() + ) + } _registerSmarttagNode.value = responseSmart } - override fun onFailure(call: Call, t: Throwable) - { + override fun onFailure(call: Call, t: Throwable) { val responseSmart = SmartTagRegister(isError = true, errorMessage = t.message!!) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/adapter/UbicadorAdapter.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/adapter/UbicadorAdapter.kt index 487b6316..5fbeb976 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/adapter/UbicadorAdapter.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/adapter/UbicadorAdapter.kt @@ -43,7 +43,7 @@ class UbicadorAdapter ( fun bind(item: ItemUbicadorVO) { binding.apply { this.item = item - multiText.text = item.stickers+"x"+item.packing + multiText.text = "${item.stickers}x${item.packing}" imgItem.loadUrl("https://verdnatura.es/vn-image-data/catalog/200x200/"+item.item) imgItem.setOnClickListener { onPasillerosItemClickListener.onPasillerosItemClickListener(PasillerosItemVO(title = res.getString( diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/workermistake/fragment/WorkermistakeFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/workermistake/fragment/WorkermistakeFragment.kt index 9c4e22a9..74b6d841 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/workermistake/fragment/WorkermistakeFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/workermistake/fragment/WorkermistakeFragment.kt @@ -23,33 +23,36 @@ import es.verdnatura.presentation.view.feature.workermistake.model.MistakeWorker import es.verdnatura.presentation.view.feature.workermistake.model.WorkerFromMistake import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat -class WorkermistakeFragment( var entryPoint: String = "" +class WorkermistakeFragment( + var entryPoint: String = "" ) : BaseFragment( - InventaryViewModel::class) { + InventaryViewModel::class +) { - private var adapterworker:WorkermistakeAdapter? = null + private var adapterworker: WorkermistakeAdapter? = null private lateinit var customDialogInput: CustomDialogInput - private var listWorker:MutableList = ArrayList() - private var listWorkerAuxiliary:MutableList = ArrayList() + private var listWorker: MutableList = ArrayList() + private var listWorkerAuxiliary: MutableList = ArrayList() private lateinit var customDialog: CustomDialog private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null - private var layoutManager : LinearLayoutManager? = null - // private var firstVisiblePosition = 0 + private var layoutManager: LinearLayoutManager? = null + + // private var firstVisiblePosition = 0 private lateinit var customDialogList: CustomDialogList private var listMistakes: ArrayList = ArrayList() private var listMistakesAdapter: BarcodeAdapter? = null - private var workerMistakeName: WorkerFromMistake? = null + private var workerMistakeName: WorkerFromMistake? = null - private val departments=ArrayList() - private lateinit var departmentId:String + private val departments = ArrayList() + private lateinit var departmentId: String companion object { - fun newInstance(entryPoint:String) = WorkermistakeFragment(entryPoint) + fun newInstance(entryPoint: String) = WorkermistakeFragment(entryPoint) } override fun getLayoutId(): Int = R.layout.fragment_workermistake @@ -62,11 +65,14 @@ class WorkermistakeFragment( var entryPoint: String = "" override fun onCreate(savedInstanceState: Bundle?) { - var working_in_test=false //sergio:No posar a true fins que Salix puje versió 8.3 + var working_in_test = false //sergio:No posar a true fins que Salix puje versió 8.3 - if (!working_in_test){ - viewModel.department_getHasMistake(usuario = getData(USER),password = getData(PASSWORD)) - }else{ + if (!working_in_test) { + viewModel.department_getHasMistake( + usuario = getData(USER), + password = getData(PASSWORD) + ) + } else { viewModel.department_getHasMistakeSalix(getData(TOKEN)) } @@ -76,26 +82,38 @@ class WorkermistakeFragment( var entryPoint: String = "" override fun init() { - + binding.filterDepartment.setText(getData(DEPARTMENTMISTAKE)) binding.splashProgress.visibility = View.VISIBLE - departmentId=getData(DEPARTMENTMISTAKEID) - + departmentId = getData(DEPARTMENTMISTAKEID) + customDialogList = CustomDialogList(requireContext()) - if (!departmentId.isEmpty()){ - viewModel.worker_getFromHasMistake(getData(USER),getData(PASSWORD),getData(DEPARTMENTMISTAKEID)) + if (!departmentId.isEmpty()) { + viewModel.worker_getFromHasMistake( + getData(USER), + getData(PASSWORD), + getData(DEPARTMENTMISTAKEID) + ) } - binding.filterDepartment.setOnClickListener{ - SimpleSearchDialogCompat(context,getString(R.string.departamentos),getString(R.string.escribirparteNombre),null,departments, + binding.filterDepartment.setOnClickListener { + SimpleSearchDialogCompat(context, + getString(R.string.departamentos), + getString(R.string.escribirparteNombre), + null, + departments, { baseSearchDialogCompat, nombre, position -> binding.filterDepartment.setText((nombre.title)) - saveData(DEPARTMENTMISTAKE,nombre.getDepartmentName()) - saveData(DEPARTMENTMISTAKEID,nombre.getDepartmentId()) - viewModel.worker_getFromHasMistake(getData(USER),getData(PASSWORD),nombre.getDepartmentId()) + saveData(DEPARTMENTMISTAKE, nombre.getDepartmentName()) + saveData(DEPARTMENTMISTAKEID, nombre.getDepartmentId()) + viewModel.worker_getFromHasMistake( + getData(USER), + getData(PASSWORD), + nombre.getDepartmentId() + ) binding.splashProgress.visibility = View.VISIBLE binding.filterItemFk.isEnabled = true baseSearchDialogCompat.dismiss() @@ -112,47 +130,55 @@ class WorkermistakeFragment( var entryPoint: String = "" super.init() } - private fun setToolBar(){ + private fun setToolBar() { - binding.mainToolbar.toolbarTitle.text=entryPoint + binding.mainToolbar.toolbarTitle.text = entryPoint } - private fun setEvents(){ + private fun setEvents() { binding.mainToolbar.backButton.setOnClickListener { requireActivity().onBackPressed() } - if (binding.filterDepartment.text.isNullOrEmpty()){binding.filterItemFk.isEnabled = false} - binding.filterItemFk.addTextChangedListener{ filter()} + if (binding.filterDepartment.text.isNullOrEmpty()) { + binding.filterItemFk.isEnabled = false + } + binding.filterItemFk.addTextChangedListener { filter() } } private fun filter() { - if (!listWorker.isNullOrEmpty()) - {listWorker.clear() - listWorker.addAll(listWorkerAuxiliary.filter{it.firstName.uppercase().contains(binding.filterItemFk.text.toString().uppercase()) || it.lastName.uppercase().contains(binding.filterItemFk.text.toString().uppercase())} as MutableList) - adapterworker!!.notifyDataSetChanged()} + if (!listWorker.isNullOrEmpty()) { + listWorker.clear() + listWorker.addAll(listWorkerAuxiliary.filter { + it.firstName.uppercase().contains( + binding.filterItemFk.text.toString().uppercase() + ) || it.lastName.uppercase() + .contains(binding.filterItemFk.text.toString().uppercase()) + } as MutableList) + adapterworker!!.notifyDataSetChanged() + } } - /* override fun onPause() { - super.onPause() - firstVisiblePosition = layoutManager?.findFirstVisibleItemPosition() ?: 0 - }*/ + /* override fun onPause() { + super.onPause() + firstVisiblePosition = layoutManager?.findFirstVisibleItemPosition() ?: 0 + }*/ - /* override fun onResume() { - super.onResume() - if (binding.workermistakeRecyclerview.layoutManager != null){ - if (firstVisiblePosition <= listInvetory.size){ - binding.workermistakeRecyclerview.layoutManager!!.scrollToPosition(firstVisiblePosition) - } - } - }*/ + /* override fun onResume() { + super.onResume() + if (binding.workermistakeRecyclerview.layoutManager != null){ + if (firstVisiblePosition <= listInvetory.size){ + binding.workermistakeRecyclerview.layoutManager!!.scrollToPosition(firstVisiblePosition) + } + } + }*/ override fun observeViewModel() { - with(viewModel){ + with(viewModel) { mistakeDepartmentList.observe(viewLifecycleOwner, { @@ -161,25 +187,31 @@ class WorkermistakeFragment( var entryPoint: String = "" }) workerFromMistakeList.observe(viewLifecycleOwner, { - binding.splashProgress.visibility = View.GONE + binding.splashProgress.visibility = View.GONE createWorkerList(it.list) - adapterworker= WorkermistakeAdapter(listWorker,object:onMistakeWorkerClickListener{ + adapterworker = + WorkermistakeAdapter(listWorker, object : onMistakeWorkerClickListener { - override fun onMistakeWorkerClickListener(item: WorkerFromMistake) { - viewModel.workerMistakeType_get(usuario = getData(USER), password = getData(PASSWORD)) - workerMistakeName=WorkerFromMistake(item.id,item.firstName,item.lastName,true,"") + override fun onMistakeWorkerClickListener(item: WorkerFromMistake) { + viewModel.workerMistakeType_get( + usuario = getData(USER), + password = getData(PASSWORD) + ) + workerMistakeName = + WorkerFromMistake(item.id, item.firstName, item.lastName, true, "") - } - }) + } + }) binding.workermistakeRecyclerview.adapter = adapterworker - layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) + layoutManager = + LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) binding.workermistakeRecyclerview.layoutManager = layoutManager }) - mistakeWorkerList.observe(viewLifecycleOwner,{ + mistakeWorkerList.observe(viewLifecycleOwner, { binding.splashProgress.visibility = View.GONE showMistakeList(it.list) //goBack = false @@ -188,13 +220,25 @@ class WorkermistakeFragment( var entryPoint: String = "" responseAddMistake.observe(viewLifecycleOwner, { - ma.messageWithSound(if (it.isError){it.errorMessage}else{getString(R.string.errorCauseRegistered)},it.isError,true, isToasted = true) + + ma.messageWithSound( + if (it.isError) { + if (it.codeError == 403) { + getString(R.string.userNotPermission) + } else { + it.errorMessage + } + + } else { + getString(R.string.errorCauseRegistered) + }, it.isError, true, isToasted = true + ) }) response.observe(viewLifecycleOwner, { - if (it.isError){ - ma.messageWithSound(it.errorMessage,true,false) + if (it.isError) { + ma.messageWithSound(it.errorMessage, true, false) } }) @@ -210,10 +254,14 @@ class WorkermistakeFragment( var entryPoint: String = "" } - customDialogList.setTitle(getString(R.string.errorCause)+ workerMistakeName!!.firstName).setKoButton(getString( - R.string.cancel)) { - customDialogList.dismiss() - }.hideDialog().show() + customDialogList.setTitle(getString(R.string.errorCause) + workerMistakeName!!.firstName) + .setKoButton( + getString( + R.string.cancel + ) + ) { + customDialogList.dismiss() + }.hideDialog().show() listMistakesAdapter = @@ -221,12 +269,13 @@ class WorkermistakeFragment( var entryPoint: String = "" override fun onBarcodeRowClickListener(item: BarcodeVO) { list.forEach { if (it.description == item.code) { - viewModel.workerMistake_Add(usuario = getData(USER), + viewModel.workerMistake_Add( + usuario = getData(USER), password = getData(PASSWORD), vUserFk = workerMistakeName!!.id, vTypeFk = it.code ) - // getString(R.string.errorRegistered).toast(requireContext()) + // getString(R.string.errorRegistered).toast(requireContext()) customDialogList.dismiss() } } @@ -242,24 +291,28 @@ class WorkermistakeFragment( var entryPoint: String = "" } - private fun createDepartmentList(list: List){ + private fun createDepartmentList(list: List) { departments.clear() list.forEach { department -> - if (!department.isError){ + if (!department.isError) { try { - departments.add(SearchDepartmentModel(department.name,department.id)) - }catch (e:Exception){} + departments.add(SearchDepartmentModel(department.name, department.id)) + } catch (e: Exception) { + } } - }} - private fun createWorkerList(list: List){ + } + } + + private fun createWorkerList(list: List) { listWorker.clear() list.forEach { worker -> - if (!worker.isError){ - try { - listWorker.add(worker) - }catch (e:Exception){} + if (!worker.isError) { + try { + listWorker.add(worker) + } catch (e: Exception) { + } } } diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 9e960f44..26fd297a 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -45,9 +45,9 @@ Cerrar No existes sectores. Selecciona un sector - Pasilleros - Controladores - Paletizadores + Pasilleros + Controladores + Paletizadores Ajustes Consultar artículo Buscar Item @@ -124,7 +124,7 @@ Nombre del dispositivo: Dispositivo asignado a: Escanea matrícula o smarttag - Consultar estado expedición + Consultar estado expedición Gestión de buffers Paletizar Expedición : @@ -134,7 +134,7 @@ Cantidad mín. Productor Controlar ticket - Escanear expedición + Escanear expedición Día de venta Carro Referencia @@ -200,7 +200,7 @@ Causa de error para : Escanea una matrícula Aparcar carro - Aparcar + Parking Añade item al carro Guardar Permite cambiar la matrícula a un carro @@ -229,7 +229,7 @@ Escanea etiqueta de la expedición. Buffer: Packing guardado - "\"Calidad\" " + Previa recogida Disponibilidad Desmarcar línea Vas a desmarcar la línea: @@ -342,7 +342,7 @@ Faltas Shelving Parking Automatic - Origen + Calidad Sacadores Visor web Vaciado buffer @@ -365,7 +365,7 @@ La respuesta es: Previa OK Colección sin tickets. Escanea tickets para añadirlos - "Pallet " + Pallet Expedition ( ¿Estás seguro de cerrar la sesión? Causa del error registada @@ -373,4 +373,72 @@ "Cantidad original: " No se puede realizar la llamada. El usuario no tiene la extensión configurada. Solicítelo a informática. Historico Vehículo + HH:mm + yyyy-mm-dd HH:mm + Sector + Carros + Sin impresora + Impresora etiquetas + Tipo etiqueta + Control de vehículos + Usuario sin permisos para realizar la acción + Revisa tu usuario y contraseña. En caso de no poder acceder contacta co Informática + Ok + "Ticket: " + "Expedition: " + dd/MM/yyyy + [a-zA-Z ]+ + Ticket insertado OK + Error en la llamada al añadir colección. + Error al añadir ticket a la colección. + Error al cambiar el estado a la colección de previa. + complete + Obtiene colecciones para sacar en previa + Sirve para revisar un ticket de previa + Muestra un ticket sin la posibilidad de modicarlo + Busca información de un ítem + Permite aparcar tickets o carros + Busca donde se encuentra un ítem + Permite ubicar/saber los ítems de un carro + Visualiza que falta o está desubicado + Permite añadir fallos a un trabajador + Permite saber modificaciones de items en un carro + Permite conocer los movimientos en un carro + Visualiza quien y cuando ha llevado un vehículo + Permite saber la fecha de venta de los items de un carro + Indica que falta reponer + Visualiza las faltas en almacén + Muestra parking de estanterías + Permite conocer la calidad de algunos productos por comprador + Permite escanear pallet para incorporarlo al sistema + Permite conocer el estado de una expedición + Permite escanear expediciones que no han pasado por el sorter + Se accede al menú de operaciones con los buffers del sorter + Permite leer información en un qr + Pone en modo vaciado un buffer + Pone en modo llenado un buffer + Pone en modo acumulación un buffer + Pone en modo desactivado un buffer + Pone en modo flejado un buffer + Pone en modo cargar un buffer + Accede menú de los pasilleros:presacar, ver ticket, ubicador... + Accede a sacar pedidos + Accede a la revisión de los tickets + Accede al menú de paletizadores: paletizar, buffer... + Accede al menú de reclamaciones + Ubicación de reclamaciones + Error al construir la colección. Descripción del error: + Principal + "Se ha enviado desde previa a Basura " + "Se ha enviado desde previa a Faltas la cantidad de " + "Se ha modificado desde previa la cantidad de " + " del articulo " + " ticket " + Ticket completo + " a nueva cantidad: " + Obtener colección previa + Sale/s aparcada/s + "Se ha modificado desde previa la cantidad de " + url + title diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 827479e6..520a679e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -26,7 +26,7 @@ Clear access data Welcome Remember username and password - Fouls + Foults Version User Scan label @@ -47,9 +47,9 @@ There are no printers. Select a sector Select a printer - Corridors - Controller - Palletizers + Corridors + Controllers + Palletizers Setting Search item Inventory @@ -88,7 +88,7 @@ Packing type Downstairs Select a wagon - Shelving Radar + Inventory Radar Search buyer Write here Buyers @@ -101,6 +101,7 @@ Select packing type zone : Item diary Get collection + Get previous collection Get previous ticket Locator Quality @@ -125,7 +126,7 @@ Device name : User assigned to device name Scan plate or smartag - Expedition state + Expedition state Buffer Management Pallet make Scan pallet @@ -141,7 +142,7 @@ Min quantity Producer Control ticket - Scan expedition + Scan expedition Day of sale Wagon Reference @@ -176,202 +177,269 @@ Android_id base_url Associate SmartTag Punch - Carro/etiqueta insertado + Wagon/label added Etiqueta o carro no válido - Cerrar - Carro/etiqueta borrada - Finalizar - Deshacer - Etiquetas: + Close + Wagon/label deleted + Finish + Undo + Labels: warehouse - Escanea matrícula del carro/s - Escanea etiqueta superior - Escanea etiqueta del medio - Escanea etiqueta inferior - Carro escaneado - Escaneado: - Problemas con la velocidad de internet. No se puede usar la voz - Permite aparcar ticket/carro - Permite dejar el vehículo - Genera colección para sacar - "Ver filtro" - Ver movimientos de Faltas - Ver movimientos de Basura - Filtra por tipo de flor - Sin impresora + Scan wagoon plate + Scan high label + Scan mid label + Scan low label + Wagoon: + Scanned: + Problems with Internet Speed + Allows you to park a car + Allows you to take off a vehícle + Get collection + Show filter + Show faults movements + Show trash movements + Flower filter + Without printer yyyy-MM-dd - Cancelar - Causa de error para : - Escanea una matrícula - Aparcar carro - Aparcar - Añade item al carro - Guardar - Permite cambiar la matrícula a un carro - Borra todos los items del carro + Cancel + Cause of error for : + Scan plate + Park wagoon + Parking + Add item to wagoon + Save + Allow you to change a wagoon plate + Delete all items of wagoon Cambia la prioridad de los items del carro. Cuanto más alta antes cogerán los sacadores. Permite añadir items al carro de manera continuada. No uno a uno - Nuevo Item - Editar item - Rellena campos obligatorios - Packing obligatorio - Selecciona una acción - Eliminar + New item + Edit item + Fill required fields + Packing required + Select an action + Delete Solo puedes visualizar cuando has cogido tu mismo el vehículo a no ser que tengas permisos para ello. - Información - Aceptar - Tiene que seleccionar impresora. - Nuevo Camión + Information + Accept + You have to select a printer + New truck PScan: - Baldas guardadas - Operación - ¿Estás seguro de cerrar el pedido? - Confirmar - Escanea un item - No hemos podido encontrar el articulo. Revisa el sector. - Error al realizar la operación - Escanea etiqueta de la expedición. + Shelvings saved + Operation + Are you sure to close the order ? + Confirm + Scan item + Item not found. Review sector + Error to perform action + Scan expedition label Buffer: Packing guardado - Previa recogida - availability - Desmarcar linea - Vas a desmarcar la linea: - ¿Estás seguro? - Desmarcar + Previous collected + Availability + Unmark line + "You are going to unmark the line: " + are you sure? + Unmark ALGEMESI V - Coger - Causa del error registrado - Falta seleccionar impresora - Observaciones - Escanea matrícula para ver histórico - Escanea matrícula del vehículo - Escanea matrícula para dejar vehículo - Vuelva a escanear - ¿Qué desea hacer con el vehículo de matrícula - Prioridad modificada - Confirmas eliminar el artículo: - Carro incorrecto - Transferir - Nueva matrícula - Introduce el destino para item: - Vaciar carro - Esta operación no se puede rectificar. + Take + Cause of error registered + Select printer + Observations + "Scan plate for looking historical " + Scan vehicle plate + "Scan plate to take off " + Rescan + "What do you want to do with the plate vehicle " + Priority modified + "Confirm for delete item: " + Incorrect wagoon + Transfer + New plate + "Introduce item destiny: " + Empty wagoon + This operation cannot be rectified. L: P: - Consultar artículo - Cantidad real( - Tirar - Buscar item - Histórico - Artículos similares - "Valor actual: " - Buscar artículos similares - Indica la causa de eliminar stock: - Indica la cantidad a dar de alta - "Indica la cantidad a dar de baja " - Falta - Basura - El elemento introducido no es un número + Consult item + Real quantity ( + Throw + Search item + Historical + Similar items + "Current value: " + Search similar items + Indicate the reason for removing stock: + Indicate the amount to register + Indicate the amount to unregister + Fault + Trah + Element introduced is not a number Buyer - Accede a Salix para ver más información + Access Salix to see more information "Ítem : " - Cambiar matrícula - Carro escaneado completamente.¿Registrar otro carro? - Salir - Escanea matrícula del carro y etiquetas smartTags de arriba a abajo. + Change plate + Wagoon scaned¿Do you want register another? + Exit + Scans wagoon plate and smartTags from top to bottom. Visible: Total visible: - Impresora actualizada - sector actualizado + Printer registered + sector registered warehouse base_urlSalix - Apuntando a servidor Salix ( + Ponting to server Salix ( itemShelving_BuyerTask - Datos completos - Reclamación: - Matrícula: - Inserta el código de reclamación. - Escanea buffer + Complete data + Claim: + Plate: + Insert claim code. + Scan buffer Barcodes - La colección no tiene tickets - Revisar llamada del registro de vehículos - Coger vehículo - Sin vehículo - No hay nada vendido para el carro escaneado. + Collection has no ticket + Check vehicle registration call + Pick up vehicle + Without vehicle + There is nothing sold for the scanned cart. Parking OK - Escanea el parking - La línea de compra de la etiqueta escaneada no existe. - Pendiente de revisar : - Revisar - Se ha enviado a Split el articulo - "del ticket " - Se ha añadido el articulo - unidad/es al ticket - " con " - La cantidad supera a la disponible - cantidad introducida erronea - Escanea item para validar - Cantidad que coges: - Error al marcar la linea - Error al imprimir - Número de baldas del ticket - Indica el número de baldas que ocupa el ticket - Número de paquetes en balda - Indica el número de paquetes que caben en una balda - Comprobar - No ha escaneado expediciones - Escanea expediciones que no han pasado por el Sorter - Añadida - Registro añadido - " guardada con matrícula " + Scan Parking + The purchase line of the scanned label does not exist. + "Pending review : " + Review + "The article has been sent to Split " + " from ticket " + "Item added " + " unity to ticket " + " with " + Quantity exceeds available + " wrong amount entered" + " Scan item to validate" + Amount you take: + Error when marking the line + Error printing + " Number of ticket shelves" + Indicates the number of shelves that the ticket occupies + Number of packages on shelf + Indicates the number of packages that fit on a shelf + Check + You have not scanned expeditions + Scan expeditions that have not passed through the Sorter + Added + Added log + " saved with registration plate " Split OK - Usuario: - Aviso - Error al enviar mensaje rocket. + User: + Warning + Error sending rocket message. HISTÓRICO - Asociar Sacador SmartTags - Registrar SmartTags - Paletizar - Escanear expedición - Gestión de buffers - Reclamaciones - Control de usuario de vehículo - Pre Sacador - Día de venta - Ver Ticket - Historial del vehículo - Reposición + Associate Punch SmartTags + Register SmartTags + Palletize + Scan expedition + Buffer management + Claims + Vehicle User Control + Pre puncher + Day of sale + Show ticket + vehicle history + Replacement Consultar artículo Ubicator Automatic Quality - Visor web + Web viewer Pre Control - Histórico Shelving + Shelving historical Log Shelving - Sacadores - Elemento escaneado no encontrado: - No existen pedidos para reponer - Pedido completado - Asegúrate de escanear una matrícula. - Etiqueta superior: - Etiqueta del medio: - Etiqueta inferior: - Nuevo - La siguiente colección sigue pendiente de preparar: + Pickers + "Scanned element not found: " + There are no requests to replace + Completed order + Make sure to scan a plate. + High label: + Mid label: + Low label: + New + The following collection is still pending preparation: Scan wagoon for item selected - La respuesta es: - Previa OK - Colección sin tickets. Escanea tickets para añadirlos - "Pallet " + "The answer is: " + Previous OK + Colección no tickets. Scan tickets for adding + Pallet Expedition ( - ¿Estás seguro de cerrar la sesión? - Causa del error registada - "Artículo: " - "Cantidad original: " - No se puede realizar la llamada. El usuario no tiene la extensión configurada. Solicítelo a informática. - Historico Vehículo + Are you sure to log out? + Error cause logged + "Item: " + "Original amount: " + " The call cannot be made. The user does not have the extension configured. Request it from IT." + Vehicle historical + HH:mm + yyyy-mm-dd HH:mm + Sector + Wagoons + Without printer + Label printers + Label type + Vehicle control + User without permissions to perform the action + Check your username and password. If you cannot access, contact Informatica + OK + "Ticket: " + Expedition: + dd/MM/yyyy + [a-zA-Z ]+ + Inserted ticket OK + Error in the call when adding collection. + Error adding ticket to collection. + Failed to change state to previous collection. + complete + " Get preview collections" + It is used to review a previous ticket + Show a ticket without the possibility to modify it + " Find information on an item" + Allows parking tickets or cars + Search where an item is located + " Allows you to locate/know the items in a wagoon" + Visualize that it is missing or misplaced + Allows to add faults to a worker + Allows to know modifications of items in a wagoon + Allows to know the movements in a wagoon + Visualize who and when has taken a vehicle + " Allows you to know the sale date of the items in a cart" + Indicates that it needs to be replenished + View fault stock in warehouse + Shelves Parking + It allows to know the quality of some products by buyer + Allows scanning pallet to incorporate it into the sytem + Allows you to know the status of an expedition + Allows scanning shipments that have not passed through the sorter + Access to the operations menu with the sorter buffers + Allows you to read information in a qr + Puts a buffer in flush mode + Puts a buffer in full mode + " Put a buffer in accumulation mode" + Puts a buffer in disabled mode + " Puts a buffer in strapping mode" + " Puts in load mode a buffer" + " Access the menu of the corridors: presacar, see ticket, locator…" + Access to order + Access the ticket review + Access the palletizers menu: palletize, buffer… + Access the claims menu + Claims Location + Error building collection. Error description: + Main + " It has been sent from previous to Trash " + " It has been sent from previous to Fault the quantity of " + "Changed from previous amount of " + "Changed from previous amount of " + " from item " + ticket + Complete ticket + " to new quantity: " + Sale/s park/ed + url + title