diff --git a/app/build.gradle b/app/build.gradle index d35473c8..a6a3d625 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,9 @@ android { applicationId "es.verdnatura" minSdkVersion 21 //21 targetSdkVersion 30 - versionCode 126 - versionName = "8.6.1Beta" + versionCode 127 + versionName = "8.7Beta" + //versionName = "8.6.1Beta" versionCode 126 //versionName = "8.5.1Beta" versionCode 122 //versionName = "8.5Beta" //versionCode 121 //versionName = "8.4"// versionCode 120 diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 85b4b44b..d64cd035 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 126, - "versionName": "8.6.1Beta", + "versionCode": 127, + "versionName": "8.7Beta", "outputFile": "app-release.apk" } ], diff --git a/app/release/vn-pickingBeta8.6.1.apk b/app/release/vn-pickingBeta8.6.1.apk deleted file mode 100644 index c82a83f8..00000000 Binary files a/app/release/vn-pickingBeta8.6.1.apk and /dev/null differ diff --git a/app/src/main/java/es/verdnatura/domain/GetSacadorControladorUserCase.kt b/app/src/main/java/es/verdnatura/domain/GetSacadorControladorUserCase.kt index 4ca2a629..8f1bacb3 100644 --- a/app/src/main/java/es/verdnatura/domain/GetSacadorControladorUserCase.kt +++ b/app/src/main/java/es/verdnatura/domain/GetSacadorControladorUserCase.kt @@ -90,6 +90,24 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) { params ) } + + fun collection_getUncheckedTicket( + usuario: String, + password: String, + collectionFk: String + ): Call { + val params: ArrayList = ArrayList() + params.add(collectionFk) + return restClient!!.collection_getUncheckedTicket( + "json", + "1", + usuario, + password, + "application/json", + params + ) + } + fun collectionNew( usuario: String, password: String, diff --git a/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt b/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt index 1685eb34..ec99227f 100644 --- a/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt +++ b/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt @@ -315,6 +315,17 @@ interface VerdnaturaService { ): Call + @POST("almacennew/collection_getUncheckedTicket")//NO SALIX + fun collection_getUncheckedTicket( + @Header("aplicacion") aplicacion: String, + @Header("version") version: String, + @Header("user") user: String, + @Header("pass") pass: String, + @Header("Content-Type") content_type: String, + @Body params: List + ): + Call + @POST("almacennew/sip_getExtension")//REVISADA fun sip_getExtension( @Header("aplicacion") aplicacion: String, diff --git a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInputTwoValues.kt b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInputTwoValues.kt index c6eca434..bce109d7 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInputTwoValues.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInputTwoValues.kt @@ -20,6 +20,7 @@ class CustomDialogInputTwoValues(context: Context) : Dialog(context, R.style.Dia setContentView(binding.root) setInputText() setInputTextTwoVisibility() + setFocusTextTwo() } fun getEditText(): TextInputEditText { diff --git a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogThreeButtons.kt b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogThreeButtons.kt index 35cb1a3d..1298c61a 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogThreeButtons.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogThreeButtons.kt @@ -130,4 +130,7 @@ class CustomDialogThreeButtons (context: Context) : Dialog(context, R.style.Dial fun setCustomDialogValue(visibility:Int){ binding.customDialogValue.visibility=visibility } + fun setFocusDialogValue(){ + binding.customDialogValue.requestFocus() + } } \ No newline at end of file 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 25c1fb96..092c590b 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 @@ -65,7 +65,7 @@ class CollectionFragment( private lateinit var customDialog: CustomDialog private var goBack: Boolean = false private var goBack2: Boolean = false - private var goMistakeBack:Boolean=false + private var goMistakeBack: Boolean = false var mperror: MediaPlayer? = null var mpok: MediaPlayer? = null private var itemShelvingFkStored: String = "" @@ -82,6 +82,8 @@ class CollectionFragment( private var isMarking = false private var positionCollectionSplit = 0 private var quantityCollectionSplit = "" + private lateinit var ticketToParking: String + private lateinit var ticketScanTxt: String //private var myKM: KeyguardManager? = null private var positionUnmarked = -1 @@ -250,7 +252,7 @@ class CollectionFragment( /* var working_in_test = true // sergio: en proves app if (working_in_test) {*/ - goMistakeBack=false + goMistakeBack = false viewModel.sip_getExtensionSalix(getData(TOKEN), workerFkFromTicket) /* } else { viewModel.sip_getExtension( @@ -387,6 +389,7 @@ class CollectionFragment( binding.splashProgress.visibility = GONE if (!goBack) { + binding.splashProgress.visibility = GONE ma.messageWithSound( if (it.isError) it.errorMessage else getString(R.string.Aparcado), it.isError, true @@ -485,7 +488,7 @@ class CollectionFragment( // if (!goBack) { if (it.isError) { customDialog.setTitle(getString(R.string.disponibility)) - .setDescription(getString(R.string.errorCollectionNew)+it.errorMessage) + .setDescription(getString(R.string.errorCollectionNew) + it.errorMessage) .setKoButton(getString(R.string.close)) { scanRequest() customDialog.dismiss() @@ -610,7 +613,7 @@ class CollectionFragment( callPicker(it.response) } - goMistakeBack=true + goMistakeBack = true }) @@ -620,17 +623,14 @@ class CollectionFragment( if (!goMistakeBack) showMistakeList(it.list) - goMistakeBack=true + goMistakeBack = true }) - //sergio: para si hay algun ticket por revisar + //sergio: para si hay algun ticket por revisar antes de parkinear responsecheckfully.observe(viewLifecycleOwner, Observer { binding.splashProgress.visibility = View.GONE if (it.isError) { ma.messageWithSound(it.errorMessage, it.isError, false) - /*customDialog.setTitle(getString(R.string.error)).setDescription(it.errorMessage) - .setOkButton(getString(R.string.accept)) { - customDialog.dismiss() - }.show()*/ + } else { //sergio: devuelve false si no hay para revisar y <> false. if (it.response != "false") { @@ -658,7 +658,45 @@ class CollectionFragment( //goBack = false } }) + responseCollectionUnchecked.observe(viewLifecycleOwner, Observer { + binding.splashProgress.visibility = View.GONE + if (it.isError) { + ma.messageWithSound(it.errorMessage, it.isError, false) + } else { + //sergio: devuelve false si no hay para revisar y <> false. + if (it.response != "false") { + + customDialog.setTitle(getString(R.string.warning)) + .setDescription(getString(R.string.pendingReviewParking) + (it.response)) + .setOkButton(getString(R.string.accept)) { + customDialog.dismiss() + + } + .setKoButton(getString(R.string.review)) { + binding.splashProgress.visibility = View.VISIBLE + viewModel.collectionTicketGet( + getData(USER), + getData(PASSWORD), + it.response, + getData(SECTORFK), + type + ) + customDialog.dismiss() + } + customDialog.show() + } else { + viewModel.parking( + getData(USER), + getData(PASSWORD), + ticketFk = tickets[0], + parking = ticketScanTxt + ) + } + // if (!goBack)navigateToCollectionList(it) + //goBack = false + } + }) responseDel.observe(viewLifecycleOwner, Observer { @@ -710,7 +748,11 @@ class CollectionFragment( if (it.isError) { if (!goBack) { - ma.messageWithSound( getString(R.string.rocketKO) + it.errorMessage, it.isError, false) + ma.messageWithSound( + getString(R.string.rocketKO) + it.errorMessage, + it.isError, + false + ) } else { goBack = false } @@ -817,8 +859,8 @@ class CollectionFragment( if (tickets.firstOrNull { it == saleVO.ticketFk }.isNullOrEmpty()) tickets.add(saleVO.ticketFk) }//Refactor #4030// - else if (type==PRECHECKER){ - if (saleVO.saleGroupFk!=""){ + else if (type == PRECHECKER) { + if (saleVO.saleGroupFk != "") { salesList.add(saleVO) if (tickets.firstOrNull { it == saleVO.ticketFk }.isNullOrEmpty()) tickets.add(saleVO.ticketFk) @@ -832,17 +874,22 @@ class CollectionFragment( sales = salesList.sortedWith(compareBy({ it.saleOrder })) + if (type == CONTROLADOR) { sales = salesList.sortedWith(compareBy({ it.picked })) - /* for (s in sales){ - Log.d("VERDNATURA::","El item es ${s.itemFk} y su picked ${s.picked} y saleorder ${s.saleOrder}") - }*/ + } //pruebas sergio // sales = salesList.sortedWith(compareBy({it.placements.get(0).created})) //sales = salesList.sortedWith(compareBy({it.placements.get(0).placement})) // SalesSorter() + for (s in sales) { + Log.d( + "VERDNATURA::", + "El item es ${s.itemFk} y su picked ${s.picked} y saleorder ${s.saleOrder}" + ) + } saleAdapter = SaleAdapter(sales, pasillerosItemClickListener!!, object : OnQuantityClickListener { @@ -888,7 +935,7 @@ class CollectionFragment( binding.splashProgress.visibility = VISIBLE mistakeSale = sale - goMistakeBack=false + goMistakeBack = false viewModel.mistakeType( usuario = getData(USER), getData(PASSWORD) @@ -1013,12 +1060,15 @@ class CollectionFragment( if (!isOk) { if (txtscan.contains("-")) { if (tickets.size > 0) { + + viewModel.parking( getData(USER), getData(PASSWORD), ticketFk = tickets[0], parking = txtscan ) + } Timber.i("La coleccion es %s", tickets[0]) /* if (mpok != null) mpok!!.start() @@ -1055,13 +1105,28 @@ class CollectionFragment( //Lo escaneado no encontrado miramos si es parking o ticket if (!isOk) { if (txtscan.contains("-")) { + + Log.d("VERDNATURA::", "VAMOS A PARKING DESDE PANTALLA CONTROLADOR") + if (tickets.size > 0) { - viewModel.parking( + + ticketToParking = tickets[0] + ticketScanTxt = txtscan + //#tarea4107 + viewModel.collection_getUncheckedTicket( getData(USER), getData(PASSWORD), - ticketFk = tickets[0], - parking = txtscan + collectionFk = tickets[0] ) + + Log.d("VERDNATURA::", "LA COLECTION ES ${tickets[0]}") + + /* viewModel.parking( + getData(USER), + getData(PASSWORD), + ticketFk = tickets[0], + parking = txtscan + )*/ } /* if (mpok != null) mpok!!.start() getString(R.string.Ticketaparcado).toast(requireContext())*/ @@ -1201,6 +1266,8 @@ class CollectionFragment( storedPosition = position if (type == SACADOR || (type == CONTROLADOR && (getData(SECTORDESCRIP).uppercase() == getString( R.string.sectorALGEMESI + ) || getData(SECTORDESCRIP).uppercase() == getString( + R.string.sectorALGEMESINEW ))) ) { if (binding.fragmentSacadorCollections != null) { @@ -1639,7 +1706,7 @@ class CollectionFragment( getString(R.string.Todosloscampossonobligatorios).toast(requireContext()) } else { binding.splashProgress.visibility = - VISIBLE + VISIBLE //sergio datos para mensaje salix @@ -1695,7 +1762,7 @@ class CollectionFragment( getString(R.string.Todosloscampossonobligatorios).toast(requireContext()) } else { binding.splashProgress.visibility = - VISIBLE + VISIBLE dataMessageSalix = DataMessageSalix( ticket = ticketSelected, @@ -1799,7 +1866,7 @@ class CollectionFragment( item.available = "0" } customDialog.setTitle(getString(R.string.itemPoints) + item.id) - .setDescription(getString(R.string.available)+":" + item.available) + .setDescription(getString(R.string.available) + ":" + item.available) .setOkButton(getString(R.string.accept)) { scanRequest() customDialog.dismiss() @@ -1817,13 +1884,15 @@ class CollectionFragment( } else if (it.quantity == "0") { totalMark += 1 } - } else if (type == CONTROLADOR ) { + } else if (type == CONTROLADOR) { if (it.isControlled == "1" || it.isControlled == "2") totalMark += 1 }//Refactor #4030 - else if(type==PRECHECKER){ - if (it.isPreControlled == "1"){totalMark += 1} + else if (type == PRECHECKER) { + if (it.isPreControlled == "1") { + totalMark += 1 + } } } @@ -1849,9 +1918,10 @@ class CollectionFragment( private fun ticketCollection_setUsedShelves() { - if (type.equals("CHECKER") && (isMarking && getData(SECTORDESCRIP).uppercase() != getString( - R.string.sectorALGEMESI - )) + if (type.equals("CHECKER") && (isMarking && (getData(SECTORDESCRIP).uppercase() != getString( + R.string.sectorALGEMESI) && getData(SECTORDESCRIP).uppercase() != getString( + R.string.sectorALGEMESINEW) + ) ) ) { @@ -2529,13 +2599,13 @@ class CollectionFragment( } REPITE -> { - // speakOrder() + // speakOrder() } OTRO -> { - // speak("Orden no registrada") + // speak("Orden no registrada") } FALTA -> { - // speak("Orden no registrada") + // speak("Orden no registrada") } //else -> speak("Orden no registrada") } 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 963a7cf2..608f323a 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 @@ -85,6 +85,11 @@ class CollectionViewModel(context: Context) : BaseViewModel() { val responsecheckfully: LiveData get() = _responsecheckfully + private val _responseCollectionUnchecked by lazy { MutableLiveData() } + val responseCollectionUnchecked: LiveData + get() = _responseCollectionUnchecked + + private val _responseMissingTrash by lazy { MutableLiveData() } val responseMissingTrash: LiveData get() = _responseMissingTrash @@ -1097,5 +1102,44 @@ class CollectionViewModel(context: Context) : BaseViewModel() { } }) } + fun collection_getUncheckedTicket( + usuario: String, + password: String, + collectionFk: String + ) { + getSacadorControladorUserCase.collection_getUncheckedTicket( + usuario, + password, + collectionFk + ).enqueue(object : + Callback { + override fun onFailure(call: Call, t: Throwable) { + _responseCollectionUnchecked.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) + ) + } + + override fun onResponse( + call: Call, + response: Response + ) { + + if (response.body()!=null) { + + _responseCollectionUnchecked.value = ResponseItemVO( + isError = false, + response = response.body()!!, + errorMessage = "" + ) + }else{ + _responseCollectionUnchecked.value = ResponseItemVO( + isError = true, + response = response.body()!!, + errorMessage = getMessageFromAllResponse(nameofFunction(this), response.message())) + } + } + }) + } } 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 79ae6e7a..27bc09a4 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 @@ -634,7 +634,7 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL } - fun openFragmentReubications(list: List,shelving:String) { + fun openFragmentReubications(list: MutableList, shelving:String) { addFragmentOnTop(ReubicationCollectionFragment.newInstance(list,shelving)) 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 cd438a95..b9ea2f05 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 @@ -168,7 +168,7 @@ class ExpeditionPalletDetailFragment( responsePrintPallet.observe(viewLifecycleOwner, Observer { binding.splashProgress.visibility = View.GONE if (it.isError) { - ma.messageWithSound(it.errorMessage, true, false) + ma.messageWithSound(it.errorMessage, true, true, isToasted = false) } else { binding.splashProgress.visibility = View.VISIBLE 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 c99aa811..4744350a 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt @@ -119,8 +119,8 @@ class PasilleroViewModel(context: Context) : BaseViewModel() { ) ) - //Tarea #3754 --> Falta arreglar la colección que se le pasa a ReubicationCollectionFragment y diseño más visual - /* _pasillerositem.add( + //Tarea #3754 --> Falta arreglar la colección que se le pasa a ReubicationCollectionFragment + _pasillerositem.add( PasillerosItemVO( 1, R.drawable.ic_reubication, @@ -130,7 +130,7 @@ class PasilleroViewModel(context: Context) : BaseViewModel() { R.string.titleReubicatorDescrip ) ) - )*/ + ) _pasillerositem.add( PasillerosItemVO( 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 33d54524..08bfcc8f 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 @@ -105,7 +105,7 @@ class EndSacadorFragment( customDialogInput = CustomDialogInput(requireContext()) customDialogInputParking = CustomDialogInput(requireContext()) customDialogThreeButtons = CustomDialogThreeButtons(requireContext()) - binding.splashProgress.visibility = View.GONE + binding.splashProgress.visibility =GONE binding.mainToolbar.toolbarTitle.text = getString(R.string.getticketpre) setToolBar() setEvents() @@ -172,7 +172,7 @@ class EndSacadorFragment( override fun observeViewModel() { with(viewModel) { salesList.observe(viewLifecycleOwner, Observer { - binding.splashProgress.visibility = View.GONE + binding.splashProgress.visibility =GONE createSaleList(it) }) @@ -200,7 +200,7 @@ class EndSacadorFragment( }) placementSuppleyList.observe(viewLifecycleOwner, Observer { - binding.splashProgress.visibility = View.GONE + binding.splashProgress.visibility =GONE if (!goBack) printShelvingResult(it) goBack = false }) @@ -394,7 +394,7 @@ class EndSacadorFragment( }) responseCode.observe(viewLifecycleOwner, Observer { - binding.splashProgress.visibility = View.GONE + binding.splashProgress.visibility =GONE if (!goBack2) { if (it.isError) { customDialog.setTitle(getString(R.string.error)) @@ -625,7 +625,7 @@ class EndSacadorFragment( } - var sortedSales = sales.sortedBy { it.pickingOrder } + // var sortedSales = sales.sortedBy { it.pickingOrder } //sergio: Se ordena las sales por ellas mismas con With sales.sortWith(compareBy({ it.pickingOrder })) @@ -938,7 +938,7 @@ class EndSacadorFragment( scanRequest() hideKeyboards() } else { - "getString(R.string.scanItemValidate) validar".toast(requireContext()) + getString(R.string.scanItemValidate).toast(requireContext()) } @@ -984,7 +984,7 @@ class EndSacadorFragment( customDialogList.dismiss() } } else { - "getString(R.string.scanItemValidate) validar".toast(requireContext()) + getString(R.string.scanItemValidate) .toast(requireContext()) } scanRequest() hideKeyboards() 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 5709276e..ca46fbf8 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 @@ -5,8 +5,6 @@ import android.graphics.drawable.Drawable import android.media.MediaPlayer import android.os.Build import android.os.Bundle -import android.util.Log -import android.util.Log.d import android.view.View import android.view.View.GONE import android.view.inputmethod.EditorInfo @@ -41,6 +39,7 @@ class PreSacadorFragment : BaseFragment(PreSacadorViewModel::class) { var mperror: MediaPlayer? = null var mpok: MediaPlayer? = null + //private var sales: ArrayList = ArrayList() private lateinit var sales: MutableList private lateinit var customDialog: CustomDialog @@ -63,9 +62,10 @@ class PreSacadorFragment : private var ticketFk = "" private var originalScanned = "" - fun changevariables(){ + fun changevariables() { TODO("Refactor llevar variables i deixar soles una com positionToChange i quantityToChange") } + private var typeCollectionMissing = "" private var positionCollectionMissing = 0 private var quantityCollectionMissing = "" @@ -74,7 +74,7 @@ class PreSacadorFragment : private var quantityCollectionSplit = "" private var positionCollectionSplit = 0 - // private val listIcons:ArrayList = ArrayList() + // private val listIcons:ArrayList = ArrayList() //sergio: se añada para leer el articulo leido que era el buyFk private var originalItemScan: String = "" @@ -99,7 +99,7 @@ class PreSacadorFragment : customDialogInput = CustomDialogInput(requireContext()) customDialogInputParking = CustomDialogInput(requireContext()) customDialogThreeButtons = CustomDialogThreeButtons(requireContext()) - binding.splashProgress.visibility = View.GONE + binding.splashProgress.visibility = GONE binding.mainToolbar.toolbarTitle.text = getString(R.string.getticketpre) setToolBar() setEvents() @@ -129,10 +129,10 @@ class PreSacadorFragment : pasillerosItemClickListener?.onPasillerosItemClickListener( PasillerosItemVO( title = getString(R.string.Parking) - ), "") - // parkingTicket(binding.scanInput.text.toString()) + ), "" + ) + // parkingTicket(binding.scanInput.text.toString()) } else { - //if (binding.scanInput.text.length > 6){ // miramos si el primer digito es un numero de esta manera sabemos que no es una matrícula que sería el findsale if (binding.scanInput.text.first().isDigit()) { //es ticket @@ -166,19 +166,23 @@ class PreSacadorFragment : override fun observeViewModel() { with(viewModel) { salesList.observe(viewLifecycleOwner, Observer { - binding.splashProgress.visibility = View.GONE + binding.splashProgress.visibility = GONE createSaleList(it) }) placementSuppleyList.observe(viewLifecycleOwner, Observer { - binding.splashProgress.visibility = View.GONE + binding.splashProgress.visibility = GONE if (!goBack) printShelvingResult(it) goBack = false }) responseSalixMessage.observe(viewLifecycleOwner, Observer { if (it.isError) { - ma.messageWithSound( getString(R.string.rocketKO) + it.errorMessage, it.isError, false) + ma.messageWithSound( + getString(R.string.rocketKO) + it.errorMessage, + it.isError, + false + ) } }) @@ -186,7 +190,7 @@ class PreSacadorFragment : responseIncQuantity.observe(viewLifecycleOwner, Observer { if (it.isError) { - ma.messageWithSound(it.errorMessage, isError = true,true) + ma.messageWithSound(it.errorMessage, isError = true, true) } else { incresaseSuccesful() } @@ -197,26 +201,24 @@ class PreSacadorFragment : responseParkingAdd.observe(viewLifecycleOwner, Observer { 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()*/ + 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()) } }) responseSaleTrackingUpdate.observe(viewLifecycleOwner, Observer { - ma.messageWithSound(it.errorMessage, isError = it.isError,true) + ma.messageWithSound(it.errorMessage, isError = it.isError, true) try { sales.clear() - } - catch(e:Exception) - { + } catch (e: Exception) { } @@ -226,17 +228,17 @@ class PreSacadorFragment : responseSaleMove.observe(viewLifecycleOwner, Observer { if (it.isError) { - ma.messageWithSound(it.errorMessage, isError = true,true) + ma.messageWithSound(it.errorMessage, isError = true, true) } else { responseSaleMoveSuccesful() } }) - responseMissingTrash.observe(viewLifecycleOwner, Observer { + responseMissingTrash.observe(viewLifecycleOwner, Observer { if (it.isError) { - ma.messageWithSound(it.errorMessage, isError = true,true) + ma.messageWithSound(it.errorMessage, isError = true, true) } else { missingTrashSuccesful() @@ -244,10 +246,11 @@ class PreSacadorFragment : }) responseCode.observe(viewLifecycleOwner, Observer { - binding.splashProgress.visibility = View.GONE + binding.splashProgress.visibility = 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() @@ -292,14 +295,14 @@ class PreSacadorFragment : val ticket = "[" + sales[positionCollectionSplit].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionCollectionSplit].id + "/summary)" val message = - getString(R.string.splitSent) + sales[positionCollectionSplit].itemFk + " getString(R.string.fromTicket) " + ticket - /* viewModel.sendChekingPresence( - token = getData(TOKEN), - workerId = sales[positionCollectionSplit].salesPersonFk, - message = message, - "sendChekingPresence" - )*/ - sendSalixMessageNew(message,sales[positionCollectionSplit].salesPersonFk) + getString(R.string.splitSent) + sales[positionCollectionSplit].itemFk + " getString(R.string.fromTicket) " + ticket + /* viewModel.sendChekingPresence( + token = getData(TOKEN), + workerId = sales[positionCollectionSplit].salesPersonFk, + message = message, + "sendChekingPresence" + )*/ + sendSalixMessageNew(message, sales[positionCollectionSplit].salesPersonFk) } @@ -316,11 +319,11 @@ class PreSacadorFragment : saleAdapter?.notifyDataSetChanged() val ticket = - "[" + sales[positionIncreaseQuantity].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionIncreaseQuantity].id + "/summary)" + "[" + 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 - sendSalixMessageNew(message, sales[positionIncreaseQuantity].salesPersonFk) + sendSalixMessageNew(message, sales[positionIncreaseQuantity].salesPersonFk) } @@ -328,7 +331,8 @@ class PreSacadorFragment : var totalQuantity: Int = 0 try { - totalQuantity = sales[positionCollectionMissing].saldo.toInt() - quantityCollectionMissing.toInt() + totalQuantity = + sales[positionCollectionMissing].saldo.toInt() - quantityCollectionMissing.toInt() } catch (e: Exception) { } @@ -348,28 +352,31 @@ class PreSacadorFragment : saleAdapter!!.notifyDataSetChanged() - - var message="" + var message = "" val ticket = - "[" + sales[positionCollectionMissing].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionCollectionMissing].id + "/summary)" + "[" + sales[positionCollectionMissing].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionCollectionMissing].id + "/summary)" - when (typeCollectionMissing){ + when (typeCollectionMissing) { - "TRUE"->{ - message = "Se ha enviado desde previa a Basura " + totalQuantity + getString(R.string.fromItem) + sales[positionCollectionMissing].itemFk + " ticket " + ticket + "TRUE" -> { + 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 + getString(R.string.fromItem) + sales[positionCollectionMissing].itemFk + " ticket " + ticket + "FALSE" -> { + message = + "Se ha enviado desde previa a Faltas la cantidad de " + totalQuantity + getString( + R.string.fromItem + ) + sales[positionCollectionMissing].itemFk + " ticket " + ticket } - - "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 + "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 } } @@ -379,6 +386,7 @@ class PreSacadorFragment : } + private fun sendSalixMessageNew(message: String, workerId: String) { viewModel.sendChekingPresence( @@ -387,6 +395,7 @@ class PreSacadorFragment : message = message ) } + //CREATE LIST private fun searchTicket(ticketFk: String) { //Log.i(TAG, "Escaneamos ticket en previa") @@ -406,13 +415,18 @@ class PreSacadorFragment : binding.splashProgress.visibility = GONE if (salesList.isNullOrEmpty()) { - ma.messageWithSound("No hemos podido obtener movimientos para el ticket escaneado",true,false,"Pre Sacador") + ma.messageWithSound( + "No hemos podido obtener movimientos para el ticket escaneado", + true, + false, + "Pre Sacador" + ) - /* customDialog.setTitle("Pre Sacador") - .setDescription("No hemos podido obtener movimientos para el ticket escaneado") - .setKoButton(getString(R.string.cancel)) { - customDialog.dismiss() - }.show()*/ + /* customDialog.setTitle("Pre Sacador") + .setDescription("No hemos podido obtener movimientos para el ticket escaneado") + .setKoButton(getString(R.string.cancel)) { + customDialog.dismiss() + }.show()*/ } else { binding.mainToolbar.toolbarTitle.text = ticket sales = ArrayList() @@ -423,20 +437,20 @@ class PreSacadorFragment : //sergio: se tiene que ordenar por el pickingOrder del primer carro (Pako) - for (s in sales){ - Log.d("VERDNATURA::","sales "+s.longName) - Log.d("VERDNATURA::","sales "+s.salesPersonFk) - //sergio: para que no de error si no hay carros. Ya está asignado a 0 el pickingorder si no hay item en el carro - if (!s.carros.isNullOrEmpty()){ - s.pickingOrder=s.carros.get(0).pickingOrder + for (s in sales) { + // Log.d("VERDNATURA::","sales "+s.longName) + // Log.d("VERDNATURA::","sales "+s.salesPersonFk) + //sergio: para que no de error si no hay carros. Ya está asignado a 0 el pickingorder si no hay item en el carro + if (!s.carros.isNullOrEmpty()) { + s.pickingOrder = s.carros.get(0).pickingOrder } } - var sortedSales=sales.sortedBy{ it.pickingOrder } + // var sortedSales = sales.sortedBy { it.pickingOrder } //sergio: Se ordena las sales por ellas mismas con With - sales.sortWith(compareBy({it.pickingOrder})) + sales.sortWith(compareBy({ it.pickingOrder })) lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) @@ -630,7 +644,7 @@ class PreSacadorFragment : setListPosition(position) viewModel.saleTrackingDel( - usuario =getData(USER), + usuario = getData(USER), password = getData(PASSWORD), saleFk = sales[position].idMovimiento ) @@ -638,9 +652,9 @@ class PreSacadorFragment : scanRequest() customDialog.dismiss() }.setKoButton(getString(R.string.cancel)) { - scanRequest() - customDialog.dismiss() - }.show() + scanRequest() + customDialog.dismiss() + }.show() } @@ -685,41 +699,43 @@ class PreSacadorFragment : 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()) } - scanRequest() - hideKeyboards() - } else { - "getString(R.string.scanItemValidate) validar".toast(requireContext()) - } - }.setKoButton(getString(R.string.close)) { + }.setKoButton(getString(R.string.close)) { scanRequest() hideKeyboards() customDialogList.dismiss() - }.setHintValue("getString(R.string.quantitySelect))").setValue(total).setHintValueTwo(getString(R.string.scanItem)) + }.setHintValue("getString(R.string.quantitySelect))").setValue(total) + .setHintValueTwo(getString(R.string.scanItem)) .setValueTwo("").show() @@ -824,38 +840,38 @@ class PreSacadorFragment : return saleToCheck.itemFk == valueToCheck } - /* private fun showScannerParking(ticket: String) { + /* private fun showScannerParking(ticket: String) { - customDialogInputParking.setTitle("Parking").setDescription("Escanea el parking") - .setOkButton(getString(R.string.accept)) { - if (!customDialogInputParking.getValue().isNullOrEmpty()) { - //findSale(customDialogInput.getValue(),index) - parkingTicket(ticket, customDialogInputParking.getValue()) + customDialogInputParking.setTitle("Parking").setDescription("Escanea el parking") + .setOkButton(getString(R.string.accept)) { + if (!customDialogInputParking.getValue().isNullOrEmpty()) { + //findSale(customDialogInput.getValue(),index) + parkingTicket(ticket, customDialogInputParking.getValue()) - } - customDialogInputParking.setValue("") - scanRequest() - customDialogInputParking.dismiss() - hideKeyboards() - }.setKoButton(getString(R.string.cancel)) { - customDialogInputParking.dismiss() - }.setValue("").show() - customDialogInputParking.getEditText().requestFocus() - customDialogInputParking.getEditText().setOnEditorActionListener { v, actionId, event -> - if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) { - if (!customDialogInputParking.getValue().isNullOrEmpty()) { - parkingTicket(ticket, customDialogInputParking.getValue()) - } - customDialogInputParking.setValue("") - scanRequest() - customDialogInputParking.dismiss() - hideKeyboards() - return@setOnEditorActionListener true - } - false - } + } + customDialogInputParking.setValue("") + scanRequest() + customDialogInputParking.dismiss() + hideKeyboards() + }.setKoButton(getString(R.string.cancel)) { + customDialogInputParking.dismiss() + }.setValue("").show() + customDialogInputParking.getEditText().requestFocus() + customDialogInputParking.getEditText().setOnEditorActionListener { v, actionId, event -> + if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) { + if (!customDialogInputParking.getValue().isNullOrEmpty()) { + parkingTicket(ticket, customDialogInputParking.getValue()) + } + customDialogInputParking.setValue("") + scanRequest() + customDialogInputParking.dismiss() + hideKeyboards() + return@setOnEditorActionListener true + } + false + } - }*/ + }*/ /*private fun showScannerTicket() { @@ -893,17 +909,18 @@ class PreSacadorFragment : private fun showScanner(index: Int, sale: PreSacadorItemVO) { customDialogInput.setTitle("" + sale.itemFk) - .setDescription("Escanea el carro para el item seleccionado").setOkButton(getString(R.string.accept)) { - if (!customDialogInput.getValue().isNullOrEmpty()) { - findSale(customDialogInput.getValue(), index) - } - customDialogInput.setValue("") - scanRequest() - customDialogInput.dismiss() - hideKeyboards() - }.setKoButton(getString(R.string.cancel)) { - customDialogInput.dismiss() - }.setValue("").show() + .setDescription("Escanea el carro para el item seleccionado") + .setOkButton(getString(R.string.accept)) { + if (!customDialogInput.getValue().isNullOrEmpty()) { + findSale(customDialogInput.getValue(), index) + } + customDialogInput.setValue("") + scanRequest() + customDialogInput.dismiss() + hideKeyboards() + }.setKoButton(getString(R.string.cancel)) { + customDialogInput.dismiss() + }.setValue("").show() customDialogInput.getEditText().requestFocus() customDialogInput.getEditText().setOnEditorActionListener { v, actionId, event -> if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) { @@ -939,7 +956,7 @@ class PreSacadorFragment : private fun setToolBar() { binding.mainToolbar.toolbarSubtitle.visibility = View.VISIBLE - val listIcons:ArrayList = ArrayList() + val listIcons: ArrayList = ArrayList() val iconParking = ImageView(context) iconParking.setImageResource(R.drawable.ic_local_parking_black_24dp) @@ -948,8 +965,8 @@ class PreSacadorFragment : iconEraser.setImageResource(R.drawable.previous_delete) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - iconParking.tooltipText=getTooltip(R.drawable.ic_local_parking_black_24dp) - iconEraser.tooltipText=getTooltip(R.drawable.previous_delete) + iconParking.tooltipText = getTooltip(R.drawable.ic_local_parking_black_24dp) + iconEraser.tooltipText = getTooltip(R.drawable.previous_delete) } @@ -961,12 +978,12 @@ class PreSacadorFragment : ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener { override fun onOptionsItemSelected(item: Drawable) { - when (item){ - iconParking.drawable-> pasillerosItemClickListener?.onPasillerosItemClickListener( - PasillerosItemVO( - title = "Parking" - ), "" - ) + when (item) { + iconParking.drawable -> pasillerosItemClickListener?.onPasillerosItemClickListener( + PasillerosItemVO( + title = "Parking" + ), "" + ) } @@ -990,7 +1007,6 @@ class PreSacadorFragment : } - companion object { fun newInstance() = PreSacadorFragment() } @@ -1063,9 +1079,9 @@ class PreSacadorFragment : when (action) { getString(R.string.Agregar) -> increaseQuantity(position, value) - getString(R.string.BasuraRechazar) -> TrashMissingReject(position, value,"TRUE") - getString(R.string.titleFaults) -> TrashMissingReject(position, value,"FALSE") - getString(R.string.Reject) -> TrashMissingReject(position, value,"reject") + getString(R.string.BasuraRechazar) -> TrashMissingReject(position, value, "TRUE") + getString(R.string.titleFaults) -> TrashMissingReject(position, value, "FALSE") + getString(R.string.Reject) -> TrashMissingReject(position, value, "reject") getString(R.string.Split) -> split(position, value) } @@ -1074,6 +1090,7 @@ class PreSacadorFragment : customDialogThreeButtons.dismiss() } } + private fun TrashMissingReject( position: Int, quantity: String, @@ -1154,8 +1171,8 @@ class PreSacadorFragment : private fun split(position: Int, quantity: String) { - positionCollectionSplit=position - quantityCollectionSplit=quantity + positionCollectionSplit = position + quantityCollectionSplit = quantity var totalQuantity: Int = 0 try { @@ -1164,36 +1181,36 @@ class PreSacadorFragment : } viewModel.saleMove( usuario = getData(USER), - password = getData(PASSWORD), + password = getData(PASSWORD), saleFk = sales[position].idMovimiento, quantity = totalQuantity.toString(), originalQuantity = sales[position].quantity.toString() ) - /* - try { - sales[position].saldo = quantity.toInt() - } catch (e: Exception) { - sales[position].saldo = 0 - } + /* + try { + sales[position].saldo = quantity.toInt() + } catch (e: Exception) { + sales[position].saldo = 0 + } - 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 Split el articulo " + sales[position].itemFk + " del 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 Split el articulo " + sales[position].itemFk + " del ticket " + ticket + viewModel.sendChekingPresence( + token = getData(TOKEN), + workerId = sales[position].salesPersonFk, + message = message, + "sendChekingPresence" + ) + */ } @@ -1337,7 +1354,7 @@ class PreSacadorFragment : message = message ) - Log.d("VERDNATURA","el trabajador es "+sales[position].salesPersonFk) + //Log.d("VERDNATURA","el trabajador es "+sales[position].salesPersonFk) try { sales[position].saldo = quantity.toInt() } catch (e: Exception) { @@ -1349,6 +1366,7 @@ class PreSacadorFragment : } + private fun increaseQuantity(position: Int, quantity: String) { positionIncreaseQuantity = position quantityIncrease = quantity diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/mapper/SaleMapper.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/mapper/SaleMapper.kt index b7d6cd0c..993c8b17 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/mapper/SaleMapper.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/mapper/SaleMapper.kt @@ -13,7 +13,7 @@ fun PreSacadorItemVO.toSale() : SaleVO { longName = if (longName != null) longName else "", isPreviousPrepared = if (quantity == picked) "1" else "0", line1 = longName, - line2 = if (subName.isNullOrEmpty()) "" else subName, + line2 = if (subName.isNullOrEmpty()) "" else subName,//sergio:cuando subida versión de tarea #3510 se puede quitar isNullOrEmpty pickedQuantity = picked.toString(), workerFk = if (trabajador.isNullOrEmpty()) { "0" } else trabajador, originalQuantity = quantity.toString(), diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/model/PreSacadorItemVO.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/model/PreSacadorItemVO.kt index ace1e293..ce07e9c5 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/model/PreSacadorItemVO.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/model/PreSacadorItemVO.kt @@ -2,23 +2,24 @@ package es.verdnatura.presentation.view.feature.presacador.model import es.verdnatura.presentation.view.feature.sacador.model.PlacementVO -class PreSacadorItemVO ( - var id : String = "", - var itemFk : String = "", - var packingType: String?="", - var longName : String = "", - var subName : String? = "", - var quantity : Int = 0, - var saldo : Int = 0, - var picked : Int = 45, - var idMovimiento : String = "", - var trabajador : String = "", - var carros : List = listOf(), +class PreSacadorItemVO( + var id: String = "", + var itemFk: String = "", + var packingType: String? = "",//sergio:cuando subida versión de tarea #3510 se puede quitar incialización + var longName: String = "", + var subName: String? = "",//sergio:cuando subida versión de tarea #3510 se puede quitar incialización + var quantity: Int = 0, + var saldo: Int = 0, + //var picked : Int = 45, + var picked: Int = 0, + var idMovimiento: String = "", + var trabajador: String = "", + var carros: List = listOf(), //var priority:Int =0, 7-1-2022 - var pickingOrder:Int =0, - var salesPersonFk:String= "", + var pickingOrder: Int = 0, + var salesPersonFk: String = "", - var reference:String="" + var reference: String = "" ) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/adapter/ReubicatorAdapter.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/adapter/ReubicatorAdapter.kt index 295f1589..bbd18d98 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/adapter/ReubicatorAdapter.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/adapter/ReubicatorAdapter.kt @@ -76,7 +76,7 @@ class ReubicatorAdapter( itemArticlePlacements.apply { layoutManager = childLayoutManager - adapter = reubication.placements.let { ReubicatorPlacementAdapter(it, onPasillerosItemClickListener) } + adapter = reubication.carros.let { ReubicatorPlacementAdapter(it, onPasillerosItemClickListener) } } //CLICK EVENTS diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/fragment/ReubicationCollectionFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/fragment/ReubicationCollectionFragment.kt index 5c18833e..4b54c6eb 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/fragment/ReubicationCollectionFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/fragment/ReubicationCollectionFragment.kt @@ -2,7 +2,6 @@ package es.verdnatura.presentation.view.feature.reubication.fragment import android.annotation.SuppressLint import android.content.Context -import android.util.Log import android.view.View.GONE import android.view.View.VISIBLE import android.view.inputmethod.EditorInfo @@ -16,7 +15,6 @@ import es.verdnatura.presentation.common.OnReubicationClickListener import es.verdnatura.presentation.view.component.CustomDialogInputTwoValues import es.verdnatura.presentation.view.component.CustomDialogThreeButtons import es.verdnatura.presentation.view.feature.reubication.adapter.ReubicatorAdapter -import es.verdnatura.presentation.view.feature.reubication.model.PlacementReubication import es.verdnatura.presentation.view.feature.reubication.model.Reubication import es.verdnatura.presentation.view.feature.ubicador.fragment.UbicadorViewModel @@ -24,7 +22,7 @@ import es.verdnatura.presentation.view.feature.ubicador.fragment.UbicadorViewMod //Tarea #3754 @Suppress("UNUSED_ANONYMOUS_PARAMETER") class ReubicationCollectionFragment( - var list: List, + var list: MutableList, var shelving: String ) : BaseFragment( UbicadorViewModel::class @@ -33,10 +31,11 @@ class ReubicationCollectionFragment( private var adapter: ReubicatorAdapter? = null private lateinit var customDialogThreeButtons: CustomDialogThreeButtons private lateinit var customDialogInputTwoValues: CustomDialogInputTwoValues + private lateinit var listItems: ArrayList companion object { fun newInstance( - entryPoint: List, + entryPoint: MutableList, shelving: String ): ReubicationCollectionFragment { @@ -54,7 +53,7 @@ class ReubicationCollectionFragment( @SuppressLint("SetTextI18n") override fun init() { - customDialogThreeButtons = CustomDialogThreeButtons(requireContext()) + // customDialogThreeButtons = CustomDialogThreeButtons(requireContext()) customDialogInputTwoValues = CustomDialogInputTwoValues(requireContext()) ma.hideBottomNavigation(GONE) binding.splashProgress.visibility = GONE @@ -62,32 +61,40 @@ class ReubicationCollectionFragment( "${getString(R.string.wagoon)}:${shelving.uppercase()}" setEvents() - // showList(list) - // createReubicationsTwo(list) - //createReubications(list) - showList(list.sortedBy { it.pickingOrder }) + showList(list.sortedBy { it.pickingOrder } as MutableList) super.init() } - private fun showList(list: List) { + private fun showList(list: MutableList) { + //sergio:ponemos paréntesis y la matrícula + //sergio: mirar de ordenar no solo por el picking order de un elemento si no de todos*/ - for (l in list){ - Log.d("VERDNATURA:::","El item es "+l.itemFk+":"+l.pickingOrder) + for (item in list) { + item.code = shelving.uppercase() + for (i in item.carros) { + i.visible = "(" + i.visible + ")" + } + if (item.carros.size == 0) { + item.pickingOrder = 0 + } else { + item.pickingOrder = item.carros[0].pickingOrder + } } - adapter = ReubicatorAdapter(list, pasillerosItemClickListener!!, object : - OnReubicationClickListener { - override fun onReubicationClick(reubication: Reubication) { - binding.splashProgress.visibility = VISIBLE - Log.d("VERDNATURA::", "el click en reubication") - showLeaveItemDialog(reubication, "") + adapter = ReubicatorAdapter(list.sortedBy { it.pickingOrder }, + pasillerosItemClickListener!!, + object : + OnReubicationClickListener { + override fun onReubicationClick(reubication: Reubication) { + //binding.splashProgress.visibility = VISIBLE + showLeaveItemDialog(reubication) - } + } - }) + }) binding.reubicatorCollectionsRecycler.adapter = adapter binding.reubicatorCollectionsRecycler.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) @@ -111,7 +118,12 @@ class ReubicationCollectionFragment( if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) { if (!binding.scanInput.text.isNullOrEmpty()) { - scanPlate(binding.scanInput.text.toString().uppercase()) + if (list.isNotEmpty()) { + scanPlate(binding.scanInput.text.toString().uppercase()) + } else { + shelving = binding.scanInput.text.toString().uppercase() + callItemShelvingReturn() + } } binding.scanInput.setText("") @@ -129,76 +141,65 @@ class ReubicationCollectionFragment( var found = false all_list@ for (items in list) { - for (placements in items.placements) { + for (placements in items.carros) { - if (placements.plate == plate ) { - Log.d("VERDNATURA::", "Encontrada matrícula") - found = true - showLeaveItemDialog(items, placements.plate) - break@all_list + if (placements.shelvingFk == plate) { + found = true + showLeaveItemDialog(items) + break@all_list - } + } - }} + } + } if (!found) { - ma.messageWithSound(getString(R.string.itemScanetNotFound), true, true, isToasted = true) + ma.messageWithSound( + getString(R.string.itemScanetNotFound), + true, + true, + isToasted = true + ) } } - private fun showLeaveItemDialog(itemReubication: Reubication, placementReubication: String) { + private fun showLeaveItemDialog(itemReubication: Reubication) { + + val messageDescrip = + getString(R.string.scanPlateToLeave) + itemReubication.itemFk + "-" + itemReubication.longName + + customDialogInputTwoValues.setDescription(messageDescrip) + .setValue(itemReubication.quantity) + .setOkButton(getString(R.string.leaveItem)) { - if (placementReubication.isNotEmpty()) { - val messageDescrip = - "¿ Dejar item: ${itemReubication.itemFk}-" + itemReubication.longName + " en el carro :" + placementReubication + "?" - customDialogThreeButtons.setDescription(messageDescrip) - .setValue(itemReubication.visible) - .setOkButton(getString(R.string.leaveItem)) { - - if (customDialogThreeButtons.getValue() == itemReubication.visible) { - binding.splashProgress.visibility = VISIBLE - viewModel.itemShelving_merge( - getData(USER), - getData(PASSWORD), - itemReubication.id, - placementReubication - ) - } - customDialogThreeButtons.dismiss() - - }.setKoButton(getString(R.string.cancel)) { - scanRequest() - customDialogThreeButtons.dismiss() - }.show() - - } else { - val messageDescrip = - getString(R.string.scanPlateToLeave)+itemReubication.itemFk+"-" + itemReubication.longName - - customDialogInputTwoValues.setDescription(messageDescrip) - .setValue(itemReubication.visible) - .setOkButton(getString(R.string.leaveItem)) { - + if (customDialogInputTwoValues.getValueTwo().isNotEmpty()) { binding.splashProgress.visibility = VISIBLE viewModel.itemShelving_merge( getData(USER), getData(PASSWORD), itemReubication.id, - placementReubication.uppercase() + customDialogInputTwoValues.getValueTwo().uppercase() ) + } else { + ma.messageWithSound( + getString(R.string.returnScan), + true, + true, + isToasted = true + ) + } + customDialogInputTwoValues.setValueTwo("") + customDialogInputTwoValues.dismiss() - customDialogInputTwoValues.dismiss() - - }.setKoButton(getString(R.string.cancel)) { - binding.splashProgress.visibility = GONE - customDialogInputTwoValues.setValueTwo("") - scanRequest() - - customDialogInputTwoValues.dismiss() - }.show() - } + }.setKoButton(getString(R.string.cancel)) { + binding.splashProgress.visibility = GONE + customDialogInputTwoValues.setValueTwo("") + scanRequest() + customDialogInputTwoValues.dismiss() + }.show() + //} customDialogInputTwoValues.getEditTextTwo() .setOnEditorActionListener { v, actionId, event -> if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) { @@ -215,14 +216,14 @@ class ReubicationCollectionFragment( } customDialogInputTwoValues.setValue("") scanRequest() - customDialogInputTwoValues.dismiss() + customDialogInputTwoValues.dismiss() //hideKeyboards() return@setOnEditorActionListener true } false } - customDialogInputTwoValues.setFocusTextTwo() + customDialogInputTwoValues.setFocusTextTwo() } @@ -242,11 +243,13 @@ class ReubicationCollectionFragment( if (it.list.isEmpty()) { + ma.messageWithSound( - getString(R.string.errorReubication), true, true, getString( + getString(R.string.successReubication), false, true, getString( R.string.info ) ) + ma.onBackPressed() } else { if (it.list[0].isError) { ma.messageWithSound( @@ -255,8 +258,7 @@ class ReubicationCollectionFragment( ) ) } else { - // createReubications(it.list) - createReubicationsTwo(it.list) + showList(it.list) } } @@ -274,12 +276,7 @@ class ReubicationCollectionFragment( ma.messageWithSound(it.response, false, false, "", false) - if (!list.isEmpty()) - { - callItemShelvingReturn() - }else{ - ma.onBackPressed() - } + callItemShelvingReturn() } } @@ -299,85 +296,54 @@ class ReubicationCollectionFragment( } - private fun createReubicationsTwo(list: List) { + /* private fun createReubications(list: MutableList) { - //var listItems= mutableListOf() - val reubication=mutableListOf() + *//* val listItems = mutableListOf() + val reubication = mutableListOf() - for (item in list){ - Log.d("VERDNATURA::", "itemFk"+item.shelvingFk) - Log.d("VERDNATURA::", "escaneado"+shelving) - if (item.shelvingFk.uppercase()==shelving.uppercase()){ - //listItems.add(item.itemFk) - Log.d("VERDNATURA::", "añadiendo") - reubication.add(Reubication(itemFk =item.itemFk, id=item.id,longName = item.longName, visible = item.visible, shelvingFk = item.shelvingFk)) - } - } + for (item in list) { + if (!listItems.contains(item.itemFk)) { + listItems.add(item.itemFk) + reubication.add( + Reubication( + itemFk = item.itemFk, + longName = item.longName, + visible = item.visible, + shelvingFk = item.shelvingFk + ) + ) + } + } + for (item in list) { + for (r in reubication) { + if (item.itemFk == r.itemFk) { - for (item in list){ - for (r in reubication){ - if (item.itemFk==r.itemFk){ - - if (item.shelvingFk.uppercase()!=shelving.uppercase()) - r.placements.add(PlacementReubication(code=item.code,plate=item.shelvingFk,visible="("+item.visible+")", idItemShelving = item.id)) - } - } - } - - // ma.openFragmentReubications(reubication,shelving) - } - - - - private fun createReubications(list: List) { - - val listItems = mutableListOf() - val reubication = mutableListOf() - - for (item in list) { - if (!listItems.contains(item.itemFk)) { - listItems.add(item.itemFk) - reubication.add( - Reubication( - itemFk = item.itemFk, - longName = item.longName, - visible = item.visible, - shelvingFk = item.shelvingFk - ) - ) - } - } - - for (item in list) { - for (r in reubication) { - if (item.itemFk == r.itemFk) { - - if (item.shelvingFk.uppercase() != shelving.uppercase()) - r.placements.add( - PlacementReubication( - code = item.code, - plate = item.shelvingFk, - visible = "(" + item.visible + ")", - idItemShelving = item.id - ) - ) - } - } - } - - for (item in list) { - Log.d("VERDNATURA::", "el item es " + item.itemFk + "-" + item.id + "-" + item.visible) - for (r in item.placements) { - Log.d( - "VERDNATURA::", - "la reubic es" + r.idItemShelving + "-" + r.plate + "-" + r.code - ) - } - } - //ma.openFragmentReubications(reubication,shelving) + if (item.shelvingFk.uppercase() != shelving.uppercase()) + r.carros.add( + PlacementReubication( + code = item.code, + plate = item.shelvingFk, + visible = "(" + item.visible + ")", + idItemShelving = item.id + ) + ) + } + } + } + for (item in list) { + Log.d("VERDNATURA::", "el item es " + item.itemFk + "-" + item.id + "-" + item.visible) + for (r in item.carros) { + Log.d( + "VERDNATURA::", + "la reubic es" + r.idItemShelving + "-" + r.plate + "-" + r.code + ) + } + } + //ma.openFragmentReubications(reubication,shelving) + *//* showList(list) - } + }*/ } \ No newline at end of file diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/fragment/ReubicationFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/fragment/ReubicationFragment.kt index 89bcc523..3c7b3a79 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/fragment/ReubicationFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/fragment/ReubicationFragment.kt @@ -1,7 +1,6 @@ package es.verdnatura.presentation.view.feature.reubication.fragment import android.content.Context -import android.util.Log import android.view.View import android.view.View.GONE import android.view.inputmethod.EditorInfo @@ -10,7 +9,6 @@ import es.verdnatura.databinding.FragmentControladorBinding import es.verdnatura.domain.notNull import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.common.OnCollectionSelectedListener -import es.verdnatura.presentation.view.feature.reubication.model.PlacementReubication import es.verdnatura.presentation.view.feature.reubication.model.Reubication import es.verdnatura.presentation.view.feature.ubicador.fragment.UbicadorViewModel @@ -101,10 +99,6 @@ class ReubicationFragment(var entrypoint: String) : ) } else { - - /* for (item in it.list){ - Log.d("VERDNATURA::", "Listando itemFk"+item.itemFk+":"+item.shelvingFk+":"+item.code) - }*/ createReubications(it.list) } @@ -121,63 +115,7 @@ class ReubicationFragment(var entrypoint: String) : private fun createReubications(list: List) { - - // var listItems = mutableListOf() - - val reubication = mutableListOf() as ArrayList - Log.d("VERDNATURA::", "Iniciem llistat") - - for (item in list.sortedBy { it.pickingOrder }) { - if (item.shelvingFk.uppercase() == shelvingScaned.uppercase()) { - Log.d("VERDNATURA::", "añadiendo" + item.itemFk + ":" + item.shelvingFk) - reubication.add( - Reubication( - itemFk = item.itemFk, - id = item.id, - longName = item.longName, - visible = item.visible, - shelvingFk = item.shelvingFk, - pickingOrder = item.pickingOrder - ) - ) - } - } - - - - for (item in list.sortedBy { it.pickingOrder }) { - for (r in reubication) { - if (item.itemFk == r.itemFk) { - if (item.shelvingFk.uppercase() != shelvingScaned.uppercase()) - r.placements.add( - PlacementReubication( - code = item.code, - plate = item.shelvingFk, - visible = "(" + item.visible + ")", - idItemShelving = item.id - ) - ) - } - } - } - - for (item in reubication) { - if (item.placements.isEmpty()) { - item.pickingOrder = 0 - }else{ - //item.pickingOrder= - } - - } - - for (item in reubication) { - Log.d( - "VERDNATURA::", - "Item:" + item.itemFk + ":" + item.shelvingFk + " pickingORder:" + item.pickingOrder - ) - - } - ma.openFragmentReubications(reubication.sortedBy { it.pickingOrder }, shelvingScaned) + ma.openFragmentReubications(list as MutableList, shelvingScaned) } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/model/Reubication.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/model/Reubication.kt index 9328b872..a2dd0c2f 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/model/Reubication.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/model/Reubication.kt @@ -1,29 +1,31 @@ package es.verdnatura.presentation.view.feature.reubication.model -import es.verdnatura.presentation.view.feature.sacador.model.PlacementVO - class ReubicationList( var list: ArrayList = arrayListOf() ) class Reubication( - var id: String = "", - var shelvingFk: String = "", - var code: String = "", - var itemFk: String = "", - var longName: String = "", - var visible: String = "", - var placements: MutableList = mutableListOf(), - var pickingOrder:Int=0, + var id: String = "", //ok + var shelvingFk: String = "", //ok + var code: String = "", // no + var itemFk: String = "",//ok + var longName: String = "",//ok + var quantity: String = "", //=quantity + var carros: MutableList = mutableListOf(),//placements + var pickingOrder:Int=0,//no var isError: Boolean=false, var errorMessage: String="" ) class PlacementReubication( - var code:String ="", + var code:String ="",//ok =parking var plate: String = "", - var visible: String = "", - var idItemShelving:String="" + var visible: String= "",//ok + var idItemShelving:String="", + var id: Int=0,//ok + var shelvingFk:String ="",//ok=matricula del carro + var itemFk: Int=0,//ok + var pickingOrder:Int=0//ok ) \ No newline at end of file diff --git a/app/src/main/res/layout/component_custom_edit_dialog_two_values.xml b/app/src/main/res/layout/component_custom_edit_dialog_two_values.xml index e77a0c06..15764a94 100644 --- a/app/src/main/res/layout/component_custom_edit_dialog_two_values.xml +++ b/app/src/main/res/layout/component_custom_edit_dialog_two_values.xml @@ -32,9 +32,9 @@ android:id="@+id/custom_dialog_description" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginBottom="@dimen/layout_margin_1" android:textAlignment="center" android:textColor="@color/verdnatura_white" - android:layout_marginBottom="@dimen/layout_margin_1" android:textSize="@dimen/body1" android:visibility="gone" tools:text="Este cambio no podrá deshacerse a no ser que vuelvas a vincular el dispositivo" @@ -43,46 +43,47 @@ + android:layout_margin="@dimen/layout_margin_min" + android:textColorHint="@android:color/darker_gray"> - + android:textColorHint="@android:color/darker_gray" + android:visibility="gone" /> + android:visibility="visible"> +