diff --git a/app/src/main/java/es/verdnatura/domain/GetItemCardUserCase.kt b/app/src/main/java/es/verdnatura/domain/GetItemCardUserCase.kt index adb74a52..7f23ef9f 100644 --- a/app/src/main/java/es/verdnatura/domain/GetItemCardUserCase.kt +++ b/app/src/main/java/es/verdnatura/domain/GetItemCardUserCase.kt @@ -37,4 +37,27 @@ class GetItemCardUserCase : RestClient() { params.add(warehouseFk) return restClient!!.updateGrouping("json","1",usuario,password,"application/json",params = params)!! } + + fun updatePacking(usuario:String,password:String,itemFk:String,value:String ,warehouseFk:String) : Call { + val params:ArrayList = ArrayList(); + params.add(itemFk) + params.add(value) + params.add(warehouseFk) + return restClient!!.updatePacking("json","1",usuario,password,"application/json",params = params)!! + } + + fun itemSaveMin(usuario:String,password:String,itemFk:String,value:String) : Call { + val params:ArrayList = ArrayList(); + params.add(itemFk) + params.add(value) + return restClient!!.itemSaveMin("json","1",usuario,password,"application/json",params = params)!! + } + + fun barcodes_edit(usuario:String,password:String,itemFk:String,value:String, delete:String) : Call { + val params:ArrayList = ArrayList(); + params.add(value) + params.add(itemFk) + params.add(delete) + return restClient!!.barcodes_edit("json","1",usuario,password,"application/json",params = params)!! + } } \ No newline at end of file diff --git a/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt b/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt index 65266116..c12e1c19 100644 --- a/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt +++ b/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt @@ -77,4 +77,32 @@ interface VerdnaturaService { @Body params: List): Call + @POST("almacenv2/buy_updatePacking") + fun updatePacking(@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("almacenv2/itemSaveMin") + fun itemSaveMin(@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("almacenv2/barcodes_edit") + fun barcodes_edit(@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 + } \ No newline at end of file diff --git a/app/src/main/java/es/verdnatura/presentation/common/ResponseItemVO.kt b/app/src/main/java/es/verdnatura/presentation/common/ResponseItemVO.kt index 997acba2..dc9c22c2 100644 --- a/app/src/main/java/es/verdnatura/presentation/common/ResponseItemVO.kt +++ b/app/src/main/java/es/verdnatura/presentation/common/ResponseItemVO.kt @@ -1,7 +1,5 @@ package es.verdnatura.presentation.common -import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO - class ResponseItemVO ( var response:String = "", var isError: Boolean = false, diff --git a/app/src/main/java/es/verdnatura/presentation/common/UICallbacks.kt b/app/src/main/java/es/verdnatura/presentation/common/UICallbacks.kt index 8e4aaf11..aa0965f9 100644 --- a/app/src/main/java/es/verdnatura/presentation/common/UICallbacks.kt +++ b/app/src/main/java/es/verdnatura/presentation/common/UICallbacks.kt @@ -1,6 +1,7 @@ package es.verdnatura.presentation.common import es.verdnatura.presentation.view.feature.ajustes.model.AjustesItemVO +import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO import es.verdnatura.presentation.view.feature.articulo.model.ItemCardRowVO import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO @@ -15,4 +16,8 @@ interface OnAjustesItemClickListener { interface OnItemCardRowClickListener { fun onItemCardRowClickListener(item: ItemCardRowVO) +} + +interface OnBarcodeRowClickListener { + fun onBarcodeRowClickListener(item: BarcodeVO) } \ No newline at end of file diff --git a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInput.kt b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInput.kt index 07dd2a39..50ade35e 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInput.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInput.kt @@ -3,10 +3,8 @@ package es.verdnatura.presentation.view.component import android.app.Dialog import android.content.Context import android.view.View -import android.widget.EditText import com.google.android.material.textfield.TextInputEditText import es.verdnatura.R -import kotlinx.android.synthetic.main.component_custom_dialog.* import kotlinx.android.synthetic.main.component_custom_dialog.custom_dialog_button_ko import kotlinx.android.synthetic.main.component_custom_dialog.custom_dialog_button_ok import kotlinx.android.synthetic.main.component_custom_dialog.custom_dialog_description diff --git a/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogList.kt b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogList.kt new file mode 100644 index 00000000..7db84dd2 --- /dev/null +++ b/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogList.kt @@ -0,0 +1,57 @@ +package es.verdnatura.presentation.view.component + +import android.app.Dialog +import android.content.Context +import android.view.View +import androidx.recyclerview.widget.RecyclerView +import com.google.android.material.textfield.TextInputEditText +import es.verdnatura.R +import kotlinx.android.synthetic.main.component_custom_list_dialog.* + + +class CustomDialogList (context: Context) : Dialog(context, R.style.DialogTheme) { + + init { + setContentView(R.layout.component_custom_list_dialog) + } + + fun getRecyclerView() : RecyclerView { + return item_recyclerview + } + + fun getEditText() : TextInputEditText { + return custom_dialog_value + } + + fun getValue() : String { + return custom_dialog_value.text.toString() + } + + fun setValue(value : String): CustomDialogList{ + custom_dialog_value.setText(value) + custom_dialog_value.visibility = View.VISIBLE + return this + } + + fun setTitle(title: String): CustomDialogList { + custom_dialog_title.visibility = View.VISIBLE + custom_dialog_title.text = title + return this + } + + + fun setOkButton(text: String, onButtonClicked: () -> Unit): CustomDialogList { + custom_dialog_button_ok.visibility = View.VISIBLE + custom_dialog_button_ok.text = text + custom_dialog_button_ok.setOnClickListener { onButtonClicked() } + return this + } + + fun setKoButton(text: String, onButtonClicked: () -> Unit): CustomDialogList { + custom_dialog_button_ko.visibility = View.VISIBLE + custom_dialog_button_ko.text = text + custom_dialog_button_ko.setOnClickListener { onButtonClicked() } + return this + } + +} \ No newline at end of file diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/adapter/BarcodeAdapter.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/adapter/BarcodeAdapter.kt new file mode 100644 index 00000000..c952e822 --- /dev/null +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/adapter/BarcodeAdapter.kt @@ -0,0 +1,44 @@ +package es.verdnatura.presentation.view.feature.articulo.adapter + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import es.verdnatura.databinding.ItemBarcodeRowBinding +import es.verdnatura.presentation.common.OnBarcodeRowClickListener +import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO + +class BarcodeAdapter( + private val items: List, + private val onBarcodeRowClickListener: OnBarcodeRowClickListener +): RecyclerView.Adapter () { + + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder { + return ItemHolder( + ItemBarcodeRowBinding.inflate(LayoutInflater.from(parent.context),parent,false) + ) + } + + override fun getItemCount() =items.size + + override fun onBindViewHolder(holder: ItemHolder, position: Int) { + holder.bind(items[position]) + + holder.binding.root.setOnClickListener { + onBarcodeRowClickListener.onBarcodeRowClickListener(items[position]) + } + + } + + + class ItemHolder( + val binding: ItemBarcodeRowBinding + ) : RecyclerView.ViewHolder(binding.root){ + private val res = binding.root.context.resources + fun bind(item: BarcodeVO) { + binding.apply { + this.item = item + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/adapter/ItemCardAdapter.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/adapter/ItemCardAdapter.kt index 9f5c3ae6..f270fc82 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/adapter/ItemCardAdapter.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/adapter/ItemCardAdapter.kt @@ -5,12 +5,8 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import es.verdnatura.R -import es.verdnatura.databinding.ItemAjustesRowBinding import es.verdnatura.databinding.ItemCardRowBinding -import es.verdnatura.presentation.common.OnAjustesItemClickListener import es.verdnatura.presentation.common.OnItemCardRowClickListener -import es.verdnatura.presentation.view.feature.ajustes.adapter.AjustesAdapter -import es.verdnatura.presentation.view.feature.ajustes.model.AjustesItemVO import es.verdnatura.presentation.view.feature.articulo.model.ItemCardRowVO class ItemCardAdapter ( @@ -44,6 +40,7 @@ class ItemCardAdapter ( fun bind(item: ItemCardRowVO) { binding.apply { if (item.barcodes.isNotEmpty()){ + item.value = "" item.barcodes.forEach { item.value = item.value + it.code + "\n" } 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 7e6d1e0c..9756a410 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 @@ -3,9 +3,7 @@ package es.verdnatura.presentation.view.feature.articulo.fragment import android.content.Intent -import android.content.LocusId import android.content.SharedPreferences -import android.util.Log import android.view.View import android.view.inputmethod.EditorInfo import androidx.lifecycle.Observer @@ -13,12 +11,15 @@ import androidx.recyclerview.widget.LinearLayoutManager import es.verdnatura.R import es.verdnatura.databinding.FragmentItemCardBinding import es.verdnatura.presentation.base.BaseFragment +import es.verdnatura.presentation.common.OnBarcodeRowClickListener import es.verdnatura.presentation.common.OnItemCardRowClickListener -import es.verdnatura.presentation.common.addFragment import es.verdnatura.presentation.common.loadUrl import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialogInput +import es.verdnatura.presentation.view.component.CustomDialogList +import es.verdnatura.presentation.view.feature.articulo.adapter.BarcodeAdapter import es.verdnatura.presentation.view.feature.articulo.adapter.ItemCardAdapter +import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO import es.verdnatura.presentation.view.feature.articulo.model.ItemCardRowVO import es.verdnatura.presentation.view.feature.articulo.model.ItemCardVO import es.verdnatura.presentation.view.feature.imageview.activity.ImageViewActivity @@ -36,13 +37,16 @@ class ItemCardFragment : BaseFragment private var warehouseFk = "" private var itemFk = "" private var adapter : ItemCardAdapter? = null + private var barcodeAdapter : BarcodeAdapter? = null private var listItemsRow:ArrayList = ArrayList() + private var listBarcodes:ArrayList = ArrayList() companion object { fun newInstance() = ItemCardFragment() } private lateinit var customDialog: CustomDialog private lateinit var customDialogInput: CustomDialogInput + private lateinit var customDialogList: CustomDialogList override fun getLayoutId(): Int = R.layout.fragment_item_card @@ -53,6 +57,7 @@ class ItemCardFragment : BaseFragment toolbar_title.text = "ItemCard" customDialog = CustomDialog(requireContext()) customDialogInput = CustomDialogInput(requireContext()) + customDialogList = CustomDialogList(requireContext()) super.init() } @@ -143,39 +148,48 @@ class ItemCardFragment : BaseFragment listItemsRow.add(ItemCardRowVO(title = "Total",value = itemInfo.total,isEditable = false)) listItemsRow.add(ItemCardRowVO(title = "Disponible",value = itemInfo.available,isEditable = false)) listItemsRow.add(ItemCardRowVO(title = "Ubicado",value = itemInfo.enAltillo,isEditable = false)) - //EDITABLES + //EDITABLES listItemsRow.add(ItemCardRowVO(title = "SIN UBICAR",value = itemInfo.enNicho,isEditable = true, action = "itemStockUpdate")) listItemsRow.add(ItemCardRowVO(title = "NICHO",value = itemInfo.nicho,isEditable = true, action = "itemPlacementSave")) listItemsRow.add(ItemCardRowVO(title = "RESERVA",value = itemInfo.reserva,isEditable = true, action = "itemPlacementSave")) listItemsRow.add(ItemCardRowVO(title = "GROUPING",value = itemInfo.grouping,isEditable = true, action = "updateGrouping")) - listItemsRow.add(ItemCardRowVO(title = "PACKING",value = itemInfo.packing,isEditable = true)) - listItemsRow.add(ItemCardRowVO(title = "MINIMO",value = itemInfo.min,isEditable = true)) - listItemsRow.add(ItemCardRowVO(title = "BARCODE",barcodes = itemInfo.barcodes,isEditable = true)) + listItemsRow.add(ItemCardRowVO(title = "PACKING",value = itemInfo.packing,isEditable = true, action = "updatePacking")) + listItemsRow.add(ItemCardRowVO(title = "MINIMO",value = itemInfo.min,isEditable = true, action = "itemSaveMin")) + listItemsRow.add(ItemCardRowVO(title = "BARCODE",barcodes = itemInfo.barcodes,isEditable = true, action = "toBarcode")) + listBarcodes = itemInfo.barcodes as ArrayList adapter = ItemCardAdapter(listItemsRow,object: OnItemCardRowClickListener{ override fun onItemCardRowClickListener(item: ItemCardRowVO) { - customDialogInput.setTitle(item.title!!).setDescription("Valor actual: "+item.value!!).setOkButton("Guardar"){ - (activity as MainActivity).hideKeyboard(customDialogInput.getEditText()) - editItemCardRow(item,customDialogInput.getValue()) - customDialogInput.hide() - }.setKoButton("Cancelar"){ - (activity as MainActivity).hideKeyboard(customDialogInput.getEditText()) - customDialogInput.hide() - }.setValue("").show() - customDialogInput.getEditText().requestFocus() - customDialogInput.getEditText().setOnEditorActionListener { v, actionId, event -> - if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) { - if (!customDialogInput.getValue().isNullOrEmpty()) - editItemCardRow(item,customDialogInput.getValue()) - customDialogInput.setValue("") - customDialogInput.hide() + + if(item.action != "toBarcode"){ + customDialogInput.setTitle(item.title!!).setDescription("Valor actual: "+item.value!!).setOkButton("Guardar"){ (activity as MainActivity).hideKeyboard(customDialogInput.getEditText()) - return@setOnEditorActionListener true + editItemCardRow(item,customDialogInput.getValue()) + customDialogInput.hide() + + }.setKoButton("Cancelar"){ + (activity as MainActivity).hideKeyboard(customDialogInput.getEditText()) + customDialogInput.hide() + }.setValue("").show() + customDialogInput.getEditText().requestFocus() + customDialogInput.getEditText().setOnEditorActionListener { v, actionId, event -> + if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) { + if (!customDialogInput.getValue().isNullOrEmpty()) + editItemCardRow(item,customDialogInput.getValue()) + customDialogInput.setValue("") + customDialogInput.hide() + (activity as MainActivity).hideKeyboard(customDialogInput.getEditText()) + return@setOnEditorActionListener true + } + false } - false + }else{ + //BARCODE ROW + prepareBarcodeDialog(item) } + } }) itemcard_recyclerview.adapter = adapter @@ -196,11 +210,13 @@ class ItemCardFragment : BaseFragment "itemStockUpdate" -> viewModel.itemStockUpdate(itemFk = itemFk,warehouseFk = warehouseFk,user = user,password = password,newValue = value,isTrash = "0") "itemPlacementSave" -> viewModel.itemPlacementSave(itemFk = itemFk, warehouseFk = warehouseFk, user = user, password = password, value = value) "updateGrouping" -> viewModel.updateGrouping(itemFk = itemFk, user = user, password = password, value = value,warehouseFk = warehouseFk) + "updatePacking" -> viewModel.updatePacking(itemFk = itemFk, user = user, password = password, value = value,warehouseFk = warehouseFk) + "itemSaveMin" -> viewModel.itemSaveMin(itemFk = itemFk, user = user, password = password, value = value) } - changeOfflineValue(item,value) + changeOfflineValue(item,value, listBarcodes) } - private fun changeOfflineValue(item:ItemCardRowVO,newValue:String){ + private fun changeOfflineValue(item:ItemCardRowVO,newValue:String, barcodes:List){ var i = 0 var position = 0 listItemsRow.forEach { @@ -209,9 +225,65 @@ class ItemCardFragment : BaseFragment } i = i.plus(1) } - listItemsRow.get(position).value = newValue + if (listItemsRow.get(position).title != "BARCODE") listItemsRow.get(position).value = newValue + else listItemsRow.get(position).barcodes = barcodes adapter?.notifyDataSetChanged() } + private fun prepareBarcodeDialog(itemB:ItemCardRowVO){ + + customDialogList.setTitle("Barcodes").setOkButton("Guardar"){ + (activity as MainActivity).hideKeyboard(customDialogList.getEditText()) + if (!customDialogList.getValue().isNullOrEmpty()) + updateBarcode(customDialogList.getValue(),"0",itemB) + customDialogList.hide() + + }.setKoButton("Cerrar"){ + (activity as MainActivity).hideKeyboard(customDialogList.getEditText()) + customDialogList.hide() + }.setValue("").show() + + + (activity as MainActivity).hideKeyboard(customDialogList.getEditText()) + customDialogList.getEditText().setOnEditorActionListener { v, actionId, event -> + if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) { + if (!customDialogList.getValue().isNullOrEmpty()) + updateBarcode(customDialogList.getValue(),"0",itemB) + customDialogList.setValue("") + customDialogList.hide() + (activity as MainActivity).hideKeyboard(customDialogList.getEditText()) + return@setOnEditorActionListener true + } + false + } + + barcodeAdapter = BarcodeAdapter(listBarcodes,object: OnBarcodeRowClickListener{ + override fun onBarcodeRowClickListener(item: BarcodeVO) { + updateBarcode(item.code!!,"1",itemB) + } + }) + customDialogList.getRecyclerView().adapter = barcodeAdapter + + customDialogList.getRecyclerView().layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) + } + + + private fun updateBarcode(code:String,delete:String,item:ItemCardRowVO){ + if (delete == "1"){ + var i = 0 + var posDelete = 0 + listBarcodes.forEach { + if (it.code == code) + posDelete = i + i+=1 + } + listBarcodes.removeAt(posDelete) + }else{ + listBarcodes.add(BarcodeVO(code)) + } + viewModel.barcodesEdit(itemFk = itemFk, user = user, password = password, value = code, delete = delete) + barcodeAdapter!!.notifyDataSetChanged() + changeOfflineValue(item,"", listBarcodes) + } } 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 88f4be50..1b8652b2 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 @@ -27,7 +27,7 @@ class ItemCardViewModel : BaseViewModel() { fun getItemCard(itemFk:String,warehouseFk:String,user:String,password:String) { getItemCardUserCase.getItemCard(user,password,itemFk,warehouseFk).enqueue(object :Callback{ override fun onFailure(call: Call, t: Throwable) { - _itemcard.value = ItemCardVO(isError = true,errorMessage = t.message!!) + _itemcard.value = ItemCardVO(isError = true,errorMessage = "Error al OBTENER "+itemFk+ " Respuesta:"+t.message!!) } override fun onResponse(call: Call, response: Response) { @@ -44,7 +44,7 @@ class ItemCardViewModel : BaseViewModel() { fun itemStockUpdate(itemFk:String,warehouseFk:String,user:String,password:String,newValue:String,isTrash:String){ getItemCardUserCase.itemStockUpdate(user,password,itemFk,warehouseFk,newValue,isTrash).enqueue(object : Callback{ override fun onFailure(call: Call, t: Throwable) { - _response.value = ResponseItemVO(isError = true,errorMessage = t.message!!) + _response.value = ResponseItemVO(isError = true,errorMessage = "Error al guardar STOCK "+itemFk+ " Respuesta:"+t.message!!) } override fun onResponse(call: Call, response: Response) { @@ -62,12 +62,12 @@ class ItemCardViewModel : BaseViewModel() { fun itemPlacementSave(itemFk:String,warehouseFk:String,user:String,password:String,value:String){ getItemCardUserCase.itemPlacementSave(user,password,itemFk,warehouseFk,value).enqueue(object : Callback{ override fun onFailure(call: Call, t: Throwable) { - _response.value = ResponseItemVO(isError = true,errorMessage = t.message!!) + _response.value = ResponseItemVO(isError = true,errorMessage ="Error al guardar NICHO "+itemFk+ " Respuesta:"+t.message!!) } override fun onResponse(call: Call, response: Response) { if (response.body() == null){ - _response.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada itemStockUpdate") + _response.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada itemPlacementSave") }else{ _response.value = ResponseItemVO(isError = false,response = response.body()!!) } @@ -80,12 +80,66 @@ class ItemCardViewModel : BaseViewModel() { fun updateGrouping(itemFk:String,user:String,password:String,value:String,warehouseFk: String){ getItemCardUserCase.updateGrouping(user,password,itemFk,value,warehouseFk).enqueue(object : Callback{ override fun onFailure(call: Call, t: Throwable) { - _response.value = ResponseItemVO(isError = true,errorMessage = t.message!!) + _response.value = ResponseItemVO(isError = true,errorMessage = "Error al guardar GROUPING "+itemFk+ " Respuesta:"+t.message!!) } override fun onResponse(call: Call, response: Response) { if (response.body() == null){ - _response.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada itemStockUpdate") + _response.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada updateGrouping") + }else{ + _response.value = ResponseItemVO(isError = false,response = response.body()!!) + } + + } + + }) + } + + fun updatePacking(itemFk:String,user:String,password:String,value:String,warehouseFk: String){ + getItemCardUserCase.updatePacking(user,password,itemFk,value,warehouseFk).enqueue(object : Callback{ + override fun onFailure(call: Call, t: Throwable) { + _response.value = ResponseItemVO(isError = true,errorMessage = "Error al guardar PACKING "+itemFk+ " Respuesta:"+t.message!!) + } + + override fun onResponse(call: Call, response: Response) { + if (response.body() == null){ + _response.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada updatePacking") + }else{ + _response.value = ResponseItemVO(isError = false,response = response.body()!!) + } + + } + + }) + } + + fun itemSaveMin(itemFk:String,user:String,password:String,value:String){ + getItemCardUserCase.itemSaveMin(user,password,itemFk,value).enqueue(object : Callback{ + override fun onFailure(call: Call, t: Throwable) { + _response.value = ResponseItemVO(isError = true,errorMessage = "Error al guardar MIN "+itemFk+ " Respuesta:"+t.message!!) + } + + override fun onResponse(call: Call, response: Response) { + if (response.body() == null){ + _response.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada updatePacking") + }else{ + _response.value = ResponseItemVO(isError = false,response = response.body()!!) + } + + } + + }) + } + + fun barcodesEdit(itemFk:String,user:String,password:String,value:String,delete:String){ + getItemCardUserCase.barcodes_edit(user,password,itemFk,value,delete).enqueue(object : Callback{ + override fun onFailure(call: Call, t: Throwable) { + _response.value = ResponseItemVO(isError = true,errorMessage = "Error al guardar BARCODES "+itemFk+ " Respuesta:"+t.message!!) + } + + override fun onResponse(call: Call, response: Response) { + if (response.body() == null){ + _response.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada itemBarcode_update") }else{ _response.value = ResponseItemVO(isError = false,response = response.body()!!) } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/imageview/activity/ImageViewActivity.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/imageview/activity/ImageViewActivity.kt index d4d5c8c9..64b58521 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/imageview/activity/ImageViewActivity.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/imageview/activity/ImageViewActivity.kt @@ -1,11 +1,5 @@ package es.verdnatura.presentation.view.feature.imageview.activity -import android.graphics.Bitmap -import android.graphics.drawable.Drawable -import androidx.appcompat.app.AppCompatActivity -import com.bumptech.glide.Glide -import com.bumptech.glide.request.target.CustomTarget -import com.bumptech.glide.request.transition.Transition import es.verdnatura.R import es.verdnatura.databinding.ActivityImageviewBinding import es.verdnatura.presentation.base.BaseActivity diff --git a/app/src/main/res/drawable/ic_delete_black_24dp.xml b/app/src/main/res/drawable/ic_delete_black_24dp.xml new file mode 100644 index 00000000..389a6a12 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete_black_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/component_custom_edit_dialog.xml b/app/src/main/res/layout/component_custom_edit_dialog.xml index 543e2641..5b0f575b 100644 --- a/app/src/main/res/layout/component_custom_edit_dialog.xml +++ b/app/src/main/res/layout/component_custom_edit_dialog.xml @@ -60,6 +60,7 @@ +