diff --git a/.idea/misc.xml b/.idea/misc.xml index 2f9db50d..8236be1e 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -66,6 +66,7 @@ + @@ -172,7 +173,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index a6a3d625..7cdc2a3a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,17 +13,9 @@ android { applicationId "es.verdnatura" minSdkVersion 21 //21 targetSdkVersion 30 - 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 - //versionName "8.4.2Beta" versioncode 119 - //versionName "8.4.1Beta" //versionCode 118: arreglat rocket a Alex i llevat callFunction,strings ok - //versionName "8.4Beta" //versionCode 117: return i workerAppTester - //versionName "8.3" //versionCode 116: versionCode 116: cambios finales en return, diseño grafico... - + versionCode 128 + versionName = "8.8Beta" + //versionName = "8.7Beta" versionCode 127 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index d64cd035..1e078ff4 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 127, - "versionName": "8.7Beta", + "versionCode": 128, + "versionName": "8.8Beta", "outputFile": "app-release.apk" } ], diff --git a/app/release/vn-pickingBeta.apk b/app/release/vn-pickingBeta.apk new file mode 100644 index 00000000..774552c4 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 37837ab9..bd43ef02 100644 --- a/app/src/main/java/es/verdnatura/di/viewModelModule.kt +++ b/app/src/main/java/es/verdnatura/di/viewModelModule.kt @@ -112,6 +112,11 @@ val viewModelModule = module { ExpeditionScanSorterViewModel(androidContext()) } + + viewModel { + CmrExpeditionPalletViewModel(androidContext()) + } + viewModel { BufferFragmentViewModel(androidContext()) } diff --git a/app/src/main/java/es/verdnatura/domain/ConstAndValues.kt b/app/src/main/java/es/verdnatura/domain/ConstAndValues.kt index fd56e43c..ed4edbf5 100644 --- a/app/src/main/java/es/verdnatura/domain/ConstAndValues.kt +++ b/app/src/main/java/es/verdnatura/domain/ConstAndValues.kt @@ -14,7 +14,7 @@ object ConstAndValues { const val PRECHECKER = "PRECHECKER" const val MAINACTIVITY = "MAIN" const val VERTICKET = "SHOWTICKET" - const val SECTORFKDEFAULT=37 - const val WAREHOUSEFKDEFAULT=1 + const val SECTORFKDEFAULT=0 + const val WAREHOUSEFKDEFAULT=60 } diff --git a/app/src/main/java/es/verdnatura/domain/GetItemCardUserCase.kt b/app/src/main/java/es/verdnatura/domain/GetItemCardUserCase.kt index ad20ff04..0b6c7bae 100644 --- a/app/src/main/java/es/verdnatura/domain/GetItemCardUserCase.kt +++ b/app/src/main/java/es/verdnatura/domain/GetItemCardUserCase.kt @@ -220,7 +220,7 @@ class GetItemCardUserCase(context: Context) : RestClient(context) { params = params ) } - fun itemSaveMin( + fun item_saveStems( usuario: String, password: String, itemFk: String, @@ -229,7 +229,7 @@ class GetItemCardUserCase(context: Context) : RestClient(context) { val params: ArrayList = ArrayList() params.add(itemFk) params.add(value) - return restClient!!.itemSaveMin( + return restClient!!.item_saveStems( "json", "1", usuario, diff --git a/app/src/main/java/es/verdnatura/domain/GetPaletizadoresUserCase.kt b/app/src/main/java/es/verdnatura/domain/GetPaletizadoresUserCase.kt index 087a0ecf..f3cf4336 100644 --- a/app/src/main/java/es/verdnatura/domain/GetPaletizadoresUserCase.kt +++ b/app/src/main/java/es/verdnatura/domain/GetPaletizadoresUserCase.kt @@ -41,6 +41,26 @@ class GetPaletizadoresUserCase(context: Context) : RestClient(context) { ) } + //informar cmr paletizadores + fun cmrExpeditionPallet_add( + usuario: String, + password: String, + vExpeditionPallet: String, + vCmrId: String + ): Call { + val params: ArrayList = ArrayList() + params.add(vExpeditionPallet) + params.add(vCmrId) + + return restClient!!.cmrExpeditionPallet_add( + "json", + "1", + usuario, + password, + "application/json", + params + ) + } //expedition fun expedition_getState( @@ -78,7 +98,7 @@ class GetPaletizadoresUserCase(context: Context) : RestClient(context) { } fun expeditionTruckList(usuario: String, password: String): Call> { - // val params: ArrayList = ArrayList() + // val params: ArrayList = ArrayList() return restClient!!.expeditionTruckList("json", "1", usuario, password, "application/json") } @@ -259,7 +279,7 @@ class GetPaletizadoresUserCase(context: Context) : RestClient(context) { usuario: String, password: String, vPalletFk: String, - vStateCode:String + vStateCode: String ): Call { diff --git a/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt b/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt index ec99227f..4768792e 100644 --- a/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt +++ b/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt @@ -750,8 +750,8 @@ interface VerdnaturaService { ): Call*/ - @POST("almacennew/itemSaveMin")//REVISADA - fun itemSaveMin( + @POST("almacennew/item_saveStems")//REVISADA + fun item_saveStems( @Header("aplicacion") aplicacion: String, @Header("version") version: String, @Header("user") user: String, @@ -1131,6 +1131,17 @@ interface VerdnaturaService { ): Call + @POST("almacennew/cmrExpeditionPallet_add")//REVISADA + fun cmrExpeditionPallet_add( + @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/expedition_getState")//REVISADA fun expedition_getState( @Header("aplicacion") aplicacion: String, 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 83f68f46..4ea546f1 100644 --- a/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt @@ -31,6 +31,7 @@ import es.verdnatura.R import es.verdnatura.databinding.ToolbarFragmentBinding import es.verdnatura.domain.ConstAndValues import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT +import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT import es.verdnatura.domain.toast import es.verdnatura.presentation.common.mediaCurrentVolume import es.verdnatura.presentation.view.feature.main.activity.MainActivity @@ -524,7 +525,7 @@ override fun onViewCreated(view: View, savedInstanceState: Bundle?) USER->prefs.getString(USER, "").toString() PASSWORD -> prefs.getString(PASSWORD, "").toString() SECTORFK->prefs.getInt(name, SECTORFKDEFAULT).toString() - WAREHOUSEFK->prefs.getInt(name, ConstAndValues.WAREHOUSEFKDEFAULT).toString() + WAREHOUSEFK->prefs.getInt(name, WAREHOUSEFKDEFAULT).toString() //VOZ->prefs.getString(name, "NO").toString() WAGON->prefs.getInt(name, 2).toString() TAGSTYPE-> prefs.getString(name, getString(R.string.stickers)).toString() 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 bce109d7..4edca0dd 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 @@ -65,7 +65,13 @@ class CustomDialogInputTwoValues(context: Context) : Dialog(context, R.style.Dia return this } + fun setEnableValue(isEnabled: Boolean): CustomDialogInputTwoValues { + binding.customDialogValue.isEnabled=isEnabled + + + return this + } fun setTitle(title: String): CustomDialogInputTwoValues { binding.customDialogTitle.visibility = View.VISIBLE @@ -109,14 +115,25 @@ class CustomDialogInputTwoValues(context: Context) : Dialog(context, R.style.Dia fun setInputTextTwo() { binding.customDialogValueTwo.inputType = InputType.TYPE_CLASS_NUMBER } + fun setInfoTex(text:String){ + binding.textinputlayoutUsername.hint = text + } + + fun setInfoTextTwo(text:String){ + binding.textinputlayoutTwo.hint = text + } + fun setInputTextTwoVisibility() { binding.textinputlayoutTwo.visibility = View.VISIBLE } + fun setInputTextVisibility(visibility:Int) { + binding.textinputlayoutTwo.visibility = visibility + } - /* fun setFocusText() { + fun setFocusText() { binding.customDialogValue.requestFocus() - }*/ + } fun setFocusTextTwo() { binding.customDialogValueTwo.requestFocus() 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 867046cf..b9bd4e74 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 @@ -65,10 +65,7 @@ class ItemCardFragment( ma.hideBottomNavigation(GONE) setEvents() - //toolbar_title.text = getString(R.string.ConsultarArticulo) binding.mainToolbar.toolbarTitle.text = getString(R.string.titleItemConsult) - - //customDialog = CustomDialog(requireContext()) customDialogInput = CustomDialogInput(requireContext()) customDialogList = CustomDialogList(requireContext()) customDialogTwo = CustomDialogTwoButtons(requireContext()) @@ -214,7 +211,7 @@ class ItemCardFragment( ma.messageWithSound(it.errorMessage, true, false) } else { - if (it.id != "0") { + if (!it.id.isNullOrEmpty()) { binding.itemcardLayout.visibility = View.VISIBLE setItemCard(it) binding.mainToolbar.toolbarIcons.visibility = View.VISIBLE @@ -270,7 +267,6 @@ class ItemCardFragment( itemInfoG = itemInfo binding.mainToolbar.toolbarTitle.text = itemInfo.id + "-" + itemInfo.longName titleImage = itemInfo.id + "-" + itemInfo.longName - // binding.itemcardImage.setImageDrawable(resources.getDrawable(R.drawable.loadphoto,resources.newTheme())) binding.itemcardImage.loadUrl(itemInfo.urlImage200) urlLarge = itemInfo.urlImage binding.itemcardTag1.text = itemInfo.size @@ -337,6 +333,14 @@ class ItemCardFragment( action = "itemStockUpdate" ) ) + listItemsRow.add( + ItemCardRowVO( + title = getString(R.string.itemCost), + value = itemInfo.itemCost, + isEditable = false, + action = "" + ) + ) //EDITABLES @@ -389,15 +393,15 @@ class ItemCardFragment( action = "updatePacking" ) ) - /* sergio: quitar de back cuando ya tengan la app actualizada todos + //sergio: quitar de back cuando ya tengan la app actualizada todos listItemsRow.add( ItemCardRowVO( - title = getString(R.string.MINIMO), - value = itemInfo.min, + title = getString(R.string.stems), + value = itemInfo.stems, isEditable = true, - action = "itemSaveMin" + action = "itemSaveStem" ) - )*/ + ) listItemsRow.add( ItemCardRowVO( title = getString(R.string.Referencia), @@ -446,7 +450,7 @@ class ItemCardFragment( } else { if (item.action != "toBarcode" && item.action != "buscarItem" && item.action != "itemStockUpdateAdd" && item.action != "itemStockUpdateRemove") { customDialogInput.setTitle(item.title!!) - .setDescription(getString(R.string.currentVAlue) + item.value!!) + .setDescription(getString(R.string.currentVAlue) + if(item.value.isNullOrEmpty()) "" else{item.value}) .setOkButton(getString(R.string.save)) { ma.hideKeyboard(customDialogInput.getEditText()) editItemCardRow(item, customDialogInput.getValue()) @@ -576,7 +580,7 @@ class ItemCardFragment( value = value, warehouseFk = warehouseFk ) - "itemSaveMin" -> viewModel.itemSaveMin( + "itemSaveStem" -> viewModel.item_saveStems( itemFk = itemFk, user = user, password = password, diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt index c1f39d11..d1df4261 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt @@ -48,15 +48,17 @@ class ItemCardViewModel(context: Context) : BaseViewModel() { override fun onFailure(call: Call, t: Throwable) { _itemcard.value = ItemCardVO( isError = true, - errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!) - ) + errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!), + stems = "" + , itemCost = "") } override fun onResponse(call: Call, response: Response) { - if (response.body() != null) { + if (response.body() != null ) { + _itemcard.value = response.body()!! } else { _itemcard.value = ItemCardVO( @@ -64,7 +66,9 @@ class ItemCardViewModel(context: Context) : BaseViewModel() { errorMessage = getMessageFromAllResponse( nameofFunction(this), response.message() - ) + ), + stems = "", + itemCost = "" ) } } @@ -346,14 +350,14 @@ class ItemCardViewModel(context: Context) : BaseViewModel() { }) } - fun itemSaveMin( + fun item_saveStems( itemFk: String, user: String, password: String, value: String ) { - getItemCardUserCase.itemSaveMin(user, password, itemFk, value) + getItemCardUserCase.item_saveStems(user, password, itemFk, value) .enqueue(object : Callback { override fun onFailure(call: Call, t: Throwable) { _response.value = ResponseItemVO( diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/model/ItemCardVO.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/model/ItemCardVO.kt index e8466f71..0ddd8b3b 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/model/ItemCardVO.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/model/ItemCardVO.kt @@ -1,14 +1,15 @@ package es.verdnatura.presentation.view.feature.articulo.model class ItemCardVO ( - var id:String = "0", + var id:String = "", var longName:String = "0", var value5:String = "", var value6:String = "0", var value7:String = "0", var image:String = "0", var size:String = "0", - var stems:String = "0", + var stems:String?, + var itemCost:String?, var category:String = "0", var producer:String = "0", var origin:String = "0", 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 092c590b..b146808c 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 @@ -887,7 +887,7 @@ class CollectionFragment( for (s in sales) { Log.d( "VERDNATURA::", - "El item es ${s.itemFk} y su picked ${s.picked} y saleorder ${s.saleOrder}" + "La sale es ${s.saleFk} El item es ${s.itemFk} y su picked ${s.picked} y saleorder ${s.saleOrder}" ) } 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 cbff3a11..dc45840b 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 @@ -4,6 +4,7 @@ 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.view.View.GONE import android.view.View.VISIBLE @@ -222,6 +223,7 @@ class CollectionShowTicketFragment( } sales = salesList.sortedWith(compareBy({ it.saleOrder })) + saleAdapter = SaleAdapter(sales, pasillerosItemClickListener!!, object : OnQuantityClickListener { 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 571ea194..ec42709a 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 @@ -70,8 +70,8 @@ fun CollectionVO.map(context: Context): CollectionVO { } } catch (e: Exception) { this.isError = true - if (this.tickets.isEmpty()) { - this.errorMessage = context.getString(R.string.collectionNoTickets) + if (this.tickets.isNullOrEmpty()) { + this.errorMessage = context.getString(R.string.collectionNoTicketsError) } else { this.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 c76adee7..883622fb 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 @@ -70,13 +70,18 @@ class LoginFragment : BaseFragment(LoginVi saveData( "base_urlSalix", "https://test-salix.verdnatura.es/api/" + // "https://test-salix.verdnatura.es/" //localhost desde emulador 10.0.2.2:3000 + // "http://localhost:3000/api/" + //"http://10.0.2.2:3000/api/" //-> desde emulador 10.0.2.2:3000 ) } else { saveData( "base_urlSalix", - /*working_in_test*/ "https://salix.verdnatura.es/api/" + /*working_in_test*/ + // "http://localhost:3000/api/" + //"http://10.0.2.2:3000/api/" //-> desde emulador 10.0.2.2:3000 ) } @@ -154,10 +159,7 @@ class LoginFragment : BaseFragment(LoginVi ) { val openURL = Intent(Intent.ACTION_VIEW) openURL.data = - // sergio Redmine Tarea #3730 - //Uri.parse("https://app.verdnatura.es/bin/vn-picking.apk") Uri.parse(it.url) - //Log.d("VERDNATURA::","Datos"+ openURL.data) startActivity(openURL) } @@ -294,12 +296,11 @@ class LoginFragment : BaseFragment(LoginVi if (it.isError) { removeSector() - //Log.d("VERDNATURA::",getString(R.string.error)) } else { if (it.id != 0) { saveDataInt(SECTORFK, it.id) saveData(SECTORDESCRIP, it.description) - it.warehouseFk?.let { it1 -> saveDataInt("warehouseFk", it1) } + it.warehouseFk?.let { it1 -> saveDataInt(WAREHOUSEFK, it1) } } } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt index a93efb5b..a39963d5 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt @@ -411,14 +411,12 @@ class LoginViewModel(context: Context) : BaseViewModel() ) { if (!response.isSuccessful){ - d("El sector is not successfull") _workergetSector.value= SectorItemVO(0,"",0, isError = true, errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message()) ) }else{ - d("El sector is successfull") _workergetSector.value = response.body()?.let { SectorItemVO(it.id,it.description,it.warehouseFk,isError = false) } 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 27bc09a4..4d91c24d 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 @@ -3,6 +3,7 @@ package es.verdnatura.presentation.view.feature.main.activity import android.content.SharedPreferences import android.media.MediaPlayer +import android.util.Log import android.view.Menu import android.widget.Toast import androidx.core.content.ContextCompat @@ -504,6 +505,9 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL getString(R.string.titleReUbicator) -> { addFragmentOnTop(ReubicationFragment.newInstance(item.title)) } + getString(R.string.titleCMRState) -> { + addFragmentOnTop(CmrExpeditionPalletFragment.newInstance(item.title)) + } } } @@ -548,6 +552,8 @@ class MainActivity : BaseActivity(), OnPasillerosItemClickL } override fun onPalletClickListener(itemTruck: ItemExpeditionTruckVO, itemPallet: ItemPalletVO) { + //Tarea #4125 + //Log.d("VERDNATURA::","Entrando en pallet2") addFragmentOnTop(ExpeditionScanFragment.newInstance(itemTruck, itemPallet)) } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionPalletAdapter.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionPalletAdapter.kt index 36e113d5..44ed4724 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionPalletAdapter.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionPalletAdapter.kt @@ -1,6 +1,7 @@ package es.verdnatura.presentation.view.feature.paletizador.adapter import android.content.Context +import android.util.Log import android.view.LayoutInflater import android.view.ViewGroup import androidx.core.content.ContextCompat @@ -11,6 +12,7 @@ import es.verdnatura.presentation.common.OnComprobarPalletViewClickListener import es.verdnatura.presentation.common.OnPalletClickListener import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionTruckVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO +import timber.log.Timber.d class ExpeditionPalletAdapter ( private val items: List, @@ -32,6 +34,8 @@ class ExpeditionPalletAdapter ( override fun onBindViewHolder(holder: ItemHolder, position: Int) { holder.bind(items[position]) holder.binding.root.setOnClickListener { + //Tarea #4125 + Log.d("VERDNATURA::","Entrando en el pallet") onPalletClickListener.onPalletClickListener(itemExpeditionTruckVO,items[position]) } holder.binding.root.setOnLongClickListener { diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionScanAdapter.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionScanAdapter.kt index 15d4466f..9a1dc2e8 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionScanAdapter.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionScanAdapter.kt @@ -1,6 +1,7 @@ package es.verdnatura.presentation.view.feature.paletizador.adapter import android.content.Context +import android.util.Log import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView @@ -26,6 +27,8 @@ class ExpeditionScanAdapter ( override fun onBindViewHolder(holder: ItemHolder, position: Int) { holder.bind(items[position]) holder.binding.root.setOnClickListener { + //Tarea #4125 + Log.d("VERDNATURA::","ENtranado en las expediciones del pallet") onScanLongClickListener.onScanLongClickListener(items[position]) } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/CmrExpeditionPalletFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/CmrExpeditionPalletFragment.kt new file mode 100644 index 00000000..80b0c8bc --- /dev/null +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/CmrExpeditionPalletFragment.kt @@ -0,0 +1,140 @@ +package es.verdnatura.presentation.view.feature.paletizador.fragment + +import android.view.View +import android.view.inputmethod.EditorInfo +import es.verdnatura.R +import es.verdnatura.databinding.FragmentExpeditionscanSorterBinding +import es.verdnatura.presentation.base.BaseFragment +import es.verdnatura.presentation.view.component.CustomDialogInputTwoValues + +class CmrExpeditionPalletFragment( + var title: String = "" +) : BaseFragment( + CmrExpeditionPalletViewModel::class +) { + + override fun getLayoutId(): Int = R.layout.fragment_expeditionscan_sorter + private lateinit var customDialogList: CustomDialogInputTwoValues + private var itemScaned: String = "" + + companion object { + fun newInstance(title: String) = CmrExpeditionPalletFragment(title) + } + + override fun init() { + + customDialogList = CustomDialogInputTwoValues(requireContext()) + ma.hideBottomNavigation(View.GONE) + binding.splashProgress.visibility = View.GONE + setEvents() + setToolBar() + showExpeditionPalletScan() + super.init() + } + + private fun setToolBar() { + binding.mainToolbar.toolbarTitle.text = title + } + + private fun cmrExpeditionPallet_add(vExpeditionPallet: String, vCmrId: String) { + + customDialogList.dismiss() + binding.splashProgress.visibility = View.VISIBLE + viewModel.cmrExpeditionPallet_add( + getData(USER), + getData(PASSWORD), + vExpeditionPallet, + vCmrId + ) + + } + + private fun setEvents() { + + binding.mainToolbar.backButton.setOnClickListener { + requireActivity().onBackPressed() + + } + + } + + override fun observeViewModel() { + + with(viewModel) { + binding.splashProgress.visibility = View.GONE + responsescan.observe(viewLifecycleOwner) { + + if (it.isError) { + + ma.messageWithSound(getString(R.string.cmrError)+it.errorMessage, true, true, isToasted =true) + showExpeditionPalletScan() + + } else { + binding.splashProgress.visibility = View.GONE + ma.messageWithSound(getString(R.string.added), false, true) + showExpeditionPalletScan() + + } + } + + } + + } + + private fun showExpeditionPalletScan() { + + customDialogList.setInfoTex(getString(R.string.pallet)) + customDialogList.setInfoTextTwo(getString(R.string.cmr)) + customDialogList.setInputTextVisibility(View.GONE) + + customDialogList.setTitle(getString(R.string.expeditionPalletScan)) + .setOkButton(getString(R.string.end)) { + + ma.hideKeyboard(customDialogList.getEditText()) + customDialogList.dismiss() + binding.mainToolbar.backButton.performClick() + + + }.setValue("").show() + + + + + customDialogList.setFocusText() + ma.hideKeyboard(customDialogList.getEditText()) + customDialogList.getEditText().setOnEditorActionListener { _, actionId, _ -> + if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5 || actionId == 6) { + + if (customDialogList.getValue().isNotEmpty()) { + customDialogList.setInputTextVisibility(View.VISIBLE) + customDialogList.setTitle(getString(R.string.cmrScan)) + customDialogList.setFocusTextTwo() + + } + + return@setOnEditorActionListener false + } + false + } + customDialogList.getEditTextTwo().setOnEditorActionListener { _, actionId, _ -> + if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5 || actionId == 6) { + + if (customDialogList.getValue().isNotEmpty() && customDialogList.getValueTwo() + .isNotEmpty() + ) { + ma.hideKeyboard(customDialogList.getEditText()) + customDialogList.setValueTwo("") + cmrExpeditionPallet_add( + customDialogList.getValue(), + customDialogList.getValueTwo() + ) + } + + return@setOnEditorActionListener true + } + false + } + } + +} + diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/CmrExpeditionPalletViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/CmrExpeditionPalletViewModel.kt new file mode 100644 index 00000000..83b12c8f --- /dev/null +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/CmrExpeditionPalletViewModel.kt @@ -0,0 +1,58 @@ +package es.verdnatura.presentation.view.feature.paletizador.fragment + +import android.content.Context +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import es.verdnatura.domain.GetPaletizadoresUserCase +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 retrofit2.Call +import retrofit2.Callback +import retrofit2.Response + + + class CmrExpeditionPalletViewModel(context: Context) : BaseViewModel() { + + private val GetPaletizadoresUserCase: GetPaletizadoresUserCase = + GetPaletizadoresUserCase(context) + + private val _responsescan by lazy { MutableLiveData() } + val responsescan: LiveData + get() = _responsescan + + + fun cmrExpeditionPallet_add(usuario: String, password: String, vExpeditionPallet: String,vCmrId:String) { + GetPaletizadoresUserCase.cmrExpeditionPallet_add(usuario, password, vExpeditionPallet, vCmrId) + .enqueue(object : Callback { + override fun onFailure(call: Call, t: Throwable) { + + _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()!!) + } + + } + + }) + } + + + } \ No newline at end of file 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 cb0c06f2..94adb13d 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 @@ -73,14 +73,13 @@ class ExpeditionPalletFragment( customDialog = CustomDialog(requireContext()) customDialogList = CustomDialogList(requireContext()) binding.splashProgress.visibility = View.VISIBLE - //requireActivity().main_bottom_navigation.visibility = View.GONE ma.hideBottomNavigation(View.GONE) binding.mainToolbar.toolbarTitle.text = getCURDATE(itemExpeditionTruckVO!!.ETD) + " " + itemExpeditionTruckVO!!.Destino setToolBar() setEvents() viewModel.expeditionPallet_List(getData(USER), getData(PASSWORD),itemExpeditionTruckVO!!.truckFk) - ////Log.i("VERDNATURA:","4-listamos listado de pallets para la expedicion") + super.init() } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionStateViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionStateViewModel.kt index a9fab867..4ed5c385 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionStateViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionStateViewModel.kt @@ -153,11 +153,11 @@ class ExpeditionStateViewModel(context: Context) : BaseViewModel() { // val mapType = object : TypeToken>() {}.type - var expeditionState: Map = - gson.fromJson(json, object : TypeToken>() {}.type) + var expeditionState: Map = + gson.fromJson(json, object : TypeToken>() {}.type) expeditionState.forEach { - list.add(itemsExpeditionDynamics(key=it.key, it.value.toString())) + list.add(itemsExpeditionDynamics(key=it.key, it.value?:"")) } return list 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 4744350a..ffdca4cc 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 @@ -264,16 +264,25 @@ class PasilleroViewModel(context: Context) : BaseViewModel() { ) ) ) - _pasillerositem.add( PasillerosItemVO( - 31, + 50, R.drawable.ic_visibility_black_24dp, contextApp.getString(R.string.titleExpeditionState), R.string.titleExpeditionState, contextApp.getString(R.string.titleExpeditionDescrip) ) ) + /* + _pasillerositem.add( + PasillerosItemVO( + 31, + R.drawable.ic_cmr, + contextApp.getString(R.string.titleCMRState), + R.string.titleCMRState, + contextApp.getString(R.string.titleCMRDescrip) + ) + )*/ _pasillerositem.add( PasillerosItemVO( 40, 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 4b54c6eb..6860cf4e 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 @@ -169,6 +169,8 @@ class ReubicationCollectionFragment( val messageDescrip = getString(R.string.scanPlateToLeave) + itemReubication.itemFk + "-" + itemReubication.longName + customDialogInputTwoValues.setEnableValue(false) + customDialogInputTwoValues.setDescription(messageDescrip) .setValue(itemReubication.quantity) .setOkButton(getString(R.string.leaveItem)) { diff --git a/app/src/main/res/drawable/ic_cmr.xml b/app/src/main/res/drawable/ic_cmr.xml new file mode 100644 index 00000000..53039a79 --- /dev/null +++ b/app/src/main/res/drawable/ic_cmr.xml @@ -0,0 +1,8 @@ + + + + \ 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 15764a94..733cdf6c 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 @@ -53,14 +53,14 @@ style="@style/DefaultButton.NormalButton" android:layout_width="match_parent" android:background="@drawable/background_round" - android:enabled="false" + android:enabled="true" android:hint="@string/quantity" android:inputType="number" android:lines="1" android:maxLines="1" android:textColor="@color/verdnatura_white" android:textColorHint="@android:color/darker_gray" - android:visibility="gone" /> + android:visibility="visible" /> Colección completa Parking Rechazar + No se ha podido guardar.Revisa el código del Pallet y del CMR. Existe una versión nueva, es recomendable actualizar. Actualizar Reposición @@ -224,7 +225,7 @@ ¿Estás seguro de cerrar el pedido? Confirmar Escanea un item - No hemos podido encontrar el articulo. Revisa el sector. + No hemos podido encontrar el artículo. Revisa el sector. Error al realizar la operación Escanea etiqueta de la expedición. Buffer: @@ -382,7 +383,7 @@ 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 + Revisa tu usuario y contraseña. En caso de no poder acceder contacta con Informática Ok Ticket: Expedición: @@ -452,4 +453,12 @@ En balda: No es posible aparcar el ticket porque hay un ticket pendiente: SACADOR V + Informar CMR + Permite infomar de un CMR + Escanea el Pallet + Escanea CMR + CMR + Colección no tiene tickets, el ticket no es de ahora o ticket eliminado + Tallos + Precio coste diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8a66da16..dc1c511a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,6 +6,7 @@ Departure Balance Pallet + CMR Route Boxes Level: @@ -57,7 +58,9 @@ Available Located Unlocated + Item cost Minimun + Steams First scan as many cars or tickets as you want to park and finally scan the parking to finish the process Parked ticket Printing by @@ -128,6 +131,7 @@ User assigned to device name Scan plate or smartag Expedition state + Report CMR Buffer Management Pallet make Scan pallet @@ -299,6 +303,7 @@ Scan buffer Barcodes Collection has no ticket + Collection has no ticket or ticket is old Check vehicle registration call Pick up vehicle Without vehicle @@ -327,6 +332,8 @@ Check You have not scanned expeditions Scan expeditions that have not passed through the Sorter + Scan pallet expedition + Scan CMR Added Added log " saved with registration plate " @@ -419,6 +426,7 @@ It allows to know the quality of some products by buyer Allows scanning pallet to incorporate it into the system Allows you to know the status of an expedition + Allows you to report a CMR 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 @@ -452,6 +460,7 @@ Scan the plate where you want to leave the item : In shelve: Reubication ended + It\'s not saved. Please review pallet and CMR