diff --git a/app/src/main/java/es/verdnatura/domain/SalixService.kt b/app/src/main/java/es/verdnatura/domain/SalixService.kt index d27e14ef..a4eaf801 100644 --- a/app/src/main/java/es/verdnatura/domain/SalixService.kt +++ b/app/src/main/java/es/verdnatura/domain/SalixService.kt @@ -50,19 +50,11 @@ import es.verdnatura.presentation.view.feature.paletizador.model.ItemScanVO import es.verdnatura.presentation.view.feature.presacador.model.PreSacadorItemVO import es.verdnatura.presentation.view.feature.reubication.model.Reubication import es.verdnatura.presentation.view.feature.sacador.model.CollectionTicket +import es.verdnatura.presentation.view.feature.packaging.model.* import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO -import es.verdnatura.presentation.view.feature.sacador.model.MistakeTypeVO -import es.verdnatura.presentation.view.feature.sacador.model.PlacementSupplyVO -import es.verdnatura.presentation.view.feature.sacador.model.TicketStateSalix -import es.verdnatura.presentation.view.feature.ubicador.model.ItemUbicador -import es.verdnatura.presentation.view.feature.ubicador.model.ItemUbicadorVO import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake -import es.verdnatura.presentation.view.feature.workermistake.model.ExpeditionMistakeSalix -import es.verdnatura.presentation.view.feature.workermistake.model.MistakeType -import es.verdnatura.presentation.view.feature.workermistake.model.SaleMistakeSalix -import es.verdnatura.presentation.view.feature.workermistake.model.WorkerFromMistake -import es.verdnatura.presentation.view.feature.workermistake.model.WorkerMistakeSalix import okhttp3.MultipartBody +import org.json.JSONObject import retrofit2.Call import retrofit2.http.* @@ -694,7 +686,9 @@ interface SalixService { @Path("id") id: Number, @Query("item") item: Number, @Query("printedStickers") printedStickers: Number - ): Call + ): + Call + @POST("tickets/{idTicket}/transferSales") //-->saleMove en Silex fun transferSalesSalix( @@ -807,13 +801,44 @@ interface SalixService { "\"scope\":{" + "\"fields\":[\"email\"],\"order\":\"id DESC\",\"limit\":1," + "\"where\":{ \"email\":{\"neq\":null } }}}]})"*/ + //@Query("filter") filter:String? = """""\"order\":\"name DESC\"""" ): Call> + /* fun getEntries( + //@Body params:JSONObject=JSONObject("""filter"={"fields":{"id":true,"name":true},"include":[{"relation":"contacts","scope":{"fields":["email"],"order":"id DESC","limit":1,"where":{"email":{"neq":null}}}}]}""") + *//* @Query("filter") filter:String="{\"fields\":{\"id\":true,\"name\":true},\"include\":[{\"relation\":\"contacts\"," + + "\"scope\":{" + + "\"fields\":[\"email\"],\"order\":\"id DESC\",\"limit\":1," + + "\"where\":{ \"email\":{\"neq\":null } }}}]})"*//* + + ): + Call>*/ + @PUT("Entries")//REVISADA fun Entries( - @Body entry: EntrySalix - ): Call + @Body supplier: Any + ): + Call> + + @GET("Entries")//REVISADA + fun getEntries_fromSupplier( + @Query("filter") filter:String + ): + Call> + + @GET("Entries")//REVISADA + fun add_entry( + @Body entry:EntrySalix + ): + Call + + @PATCH("Entries/{entryId}")//REVISADA + fun entry_updateObserv( + @Path("entryId") entryId:Int, + @Body entry: obervationEntry + ): + Call @GET("Shelvings") fun Shelvings( @@ -833,10 +858,17 @@ interface SalixService { @POST("Entries/addFromPackaging") fun addFromPackaging( - @Query("supplier") supplier: Int, @Query("isTravelReception") isTravelReception: Boolean + @Query("supplier") supplier: Number, + @Query("isTravelReception") isTravelReception: Boolean ): Call + @POST("notificationQueues") + fun notificationQueues( + @Body notificationQueue: notificationQueue + ): + Call + @POST("Images/upload") @Multipart fun uploadImage( 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 73c05fbe..7896711a 100644 --- a/app/src/main/java/es/verdnatura/presentation/common/UICallbacks.kt +++ b/app/src/main/java/es/verdnatura/presentation/common/UICallbacks.kt @@ -92,7 +92,7 @@ interface OnGeneralItemRowClickListener { } interface OnImageTrashClickListener { - fun OnImageUpdateClickListener(item: Any) + fun OnImageTrashClickListener(item: Any) } interface OnEditSubQuantityListener { diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/adapter/ItemSupplierAdapter.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/adapter/ItemSupplierAdapter.kt index ba68fb0f..f1d423bc 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/adapter/ItemSupplierAdapter.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/adapter/ItemSupplierAdapter.kt @@ -1,6 +1,7 @@ package es.verdnatura.presentation.view.feature.packaging.adapter import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import android.view.inputmethod.EditorInfo import androidx.recyclerview.widget.RecyclerView @@ -10,11 +11,10 @@ import es.verdnatura.presentation.view.feature.packaging.model.ItemSupplier class ItemSupplierAdapter( private val items: List, - private val onImageUpdateClickListener: OnImageUpdateClickListener, - private val onImageTrashClickListener: OnImageTrashClickListener, - private val onEditSubQuantityListener: OnEditSubQuantityListener - // private val OnGeneralItemRowClickListener: OnGeneralItemRowClickListener, - // private var showDelete: Boolean = false + private val onImageUpdateClickListener: OnImageUpdateClickListener? , + private val onImageTrashClickListener: OnImageTrashClickListener?, + private val onEditSubQuantityListener: OnEditSubQuantityListener?, + private var showItems: Boolean = true ) : RecyclerView.Adapter() { @@ -42,16 +42,20 @@ class ItemSupplierAdapter( binding.apply { this.item = item - itemImageUpdate.setOnClickListener { - onImageUpdateClickListener.OnImageUpdateClickListener( + if (!showItems){ + itemAdd.visibility= View.GONE + itemRemove.visibility=View.GONE + } + itemAdd.setOnClickListener { + onImageUpdateClickListener!!.OnImageUpdateClickListener( item ) - itemImageTrash.setOnClickListener { - onImageTrashClickListener.OnImageUpdateClickListener(item) - } + } + itemRemove.setOnClickListener { + onImageTrashClickListener!!.OnImageTrashClickListener(item) } - itemSubquantity.setOnEditorActionListener { v, actionId, event -> + /* itemSubquantity.setOnEditorActionListener { v, actionId, event -> if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) { onEditSubQuantityListener.OnEditSubQuantityListener( @@ -61,7 +65,7 @@ class ItemSupplierAdapter( v.clearFocus() } return@setOnEditorActionListener false - } + }*/ } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/adapter/ListImageAdapter.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/adapter/ListImageAdapter.kt index c9c4076f..2ce723a5 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/adapter/ListImageAdapter.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/adapter/ListImageAdapter.kt @@ -41,7 +41,7 @@ class ListImageAdapter( item ) itemImageTrash.setOnClickListener { - onImageTrashClickListener.OnImageUpdateClickListener(item) + onImageTrashClickListener.OnImageTrashClickListener(item) } } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/ObservFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/ObservFragment.kt index dd7ce67d..88c73db0 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/ObservFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/ObservFragment.kt @@ -7,34 +7,27 @@ import android.os.Build import android.util.Log.d import android.view.View import android.widget.ImageView -import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import com.esafirm.imagepicker.features.ImagePickerConfig import com.esafirm.imagepicker.features.registerImagePicker import com.esafirm.imagepicker.model.Image import es.verdnatura.R import es.verdnatura.databinding.FragmentPackagingObsBinding -import es.verdnatura.domain.ConstAndValues.ENTRYNUMBERIMAGES -import es.verdnatura.domain.ConstAndValues.ENTRYOBSERVATIONS -import es.verdnatura.domain.ConstAndValues.ENTRYTYPE -import es.verdnatura.domain.ConstAndValues.SUPPLIERNAME import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.common.* import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialogList -import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel import es.verdnatura.presentation.view.feature.packaging.adapter.ListImageAdapter +import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingViewModel.PackagingViewModel import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch -import kotlinx.coroutines.runBlocking + @Suppress("UNUSED_ANONYMOUS_PARAMETER") class ObservFragment( var entryPoint: String = "" -) : BaseFragment( - InventaryViewModel::class +) : BaseFragment( + PackagingViewModel::class ) { private var adapterListImage: ListImageAdapter? = null @@ -65,12 +58,7 @@ class ObservFragment( private fun setToolBar() { - binding.mainToolbar.toolbarTitle.text = - runBlocking { - mobileApplication.dataStoreApp.readDataStoreKey(ENTRYTYPE) + ":" + mobileApplication.dataStoreApp.readDataStoreKey( - SUPPLIERNAME - ) - } + binding.mainToolbar.toolbarTitle.text = getData("ENTRYTYPE") + ": " + getData("SUPPLIERNAME") val listIcons: ArrayList = ArrayList() val iconNext = ImageView(context) @@ -84,18 +72,15 @@ class ObservFragment( override fun onOptionsItemSelected(item: Drawable) { when (item) { iconNext.drawable -> { - lifecycleScope.launch(Dispatchers.IO) { - mobileApplication.dataStoreApp.editDataStoreKey( - ENTRYNUMBERIMAGES, if (listImages.isNullOrEmpty()) 0 else { - listImages!!.size.toString() - } - ) + saveData( + "ENTRYNUMBERIMAGES", + if (listImages.isNullOrEmpty()) "0" else { + listImages!!.size.toString() + } + ) + saveData("ENTRYOBSERVATIONS",binding.observations.text.toString() ) - mobileApplication.dataStoreApp.editDataStoreKey( - ENTRYOBSERVATIONS, - binding.observations.text.toString() - ) - } + viewModel.entry_updateObserv(getDataInt("ENTRYID"),binding.observations.text.toString()) ma.onPasillerosItemClickListener( PasillerosItemVO(title = getString(R.string.titlePackagingSummary)), @@ -103,8 +88,10 @@ class ObservFragment( ) } + } + } }) @@ -114,18 +101,21 @@ class ObservFragment( } private fun setEvents() { + val launcher = registerImagePicker { for (image in it) { d("VERDNATURA::", "el nombre es " + image.name) d("VERDNATURA::", "el nombre es " + image.uri) //binding.imageView30.setImageURI(image.uri) } + listImages?.clear() listImages = it as MutableList + setAdapter(listImages!!) } binding.mainToolbar.backButton.setOnClickListener { - ma.onMyBackPressed() + requireActivity().onBackPressed() } binding.openPickerImages.setOnClickListener { val config = ImagePickerConfig { @@ -155,6 +145,7 @@ class ObservFragment( launcher.launch(config) } + } override fun observeViewModel() { @@ -167,11 +158,12 @@ class ObservFragment( adapterListImage = ListImageAdapter(list, object : OnImageUpdateClickListener { + override fun OnImageUpdateClickListener(item: Any) { d("VERDNATURA::", "Seleccionado update" + (item as Image).name) } }, object : OnImageTrashClickListener { - override fun OnImageUpdateClickListener(item: Any) { + override fun OnImageTrashClickListener(item: Any) { d("VERDNATURA::", "Seleccionado trash" + (item as Image).name) list.remove(item) adapterListImage!!.notifyDataSetChanged() diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingCountFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingCountFragment.kt index 43481874..1efb4478 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingCountFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingCountFragment.kt @@ -2,15 +2,12 @@ package es.verdnatura.presentation.view.feature.packaging.fragment import android.graphics.drawable.Drawable import android.os.Build -import android.os.Bundle -import android.util.Log.d +import android.text.InputType import android.view.View import android.widget.ImageView import androidx.recyclerview.widget.LinearLayoutManager import es.verdnatura.R import es.verdnatura.databinding.FragmentPackagingCountBinding -import es.verdnatura.domain.ConstAndValues.ENTRYTYPE -import es.verdnatura.domain.ConstAndValues.SUPPLIERNAME import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.common.* import es.verdnatura.presentation.view.component.CustomDialog @@ -20,6 +17,7 @@ import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingViewM import es.verdnatura.presentation.view.feature.packaging.model.ItemSupplier import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO + @Suppress("UNUSED_ANONYMOUS_PARAMETER") class PackagingCountFragment( var entryPoint: String = "" @@ -40,22 +38,12 @@ class PackagingCountFragment( override fun getLayoutId(): Int = R.layout.fragment_packaging_count - override fun onCreate(savedInstanceState: Bundle?) { - - /* viewModel.supplier_getItemsSalix( - 2, 1 - )*/ - - super.onCreate(savedInstanceState) - } override fun init() { - binding.quantityPackaging.setOnClickListener { - ma.onPasillerosItemClickListener( - PasillerosItemVO(title = getString(R.string.titlePackagingObs)), - getString(R.string.titlePackagingObs) - ) - } + binding.splashProgress.visibility = View.VISIBLE + viewModel.getItemsPackaging( + getDataInt("SUPPLIERID"), getDataInt("ENTRYID") + ) customDialogInput = CustomDialogInput(requireContext()) customDialog = CustomDialog(requireContext()) ma.hideBottomNavigation(View.GONE) @@ -67,9 +55,7 @@ class PackagingCountFragment( private fun setToolBar() { binding.mainToolbar.toolbarTitle.text = - mobileApplication.dataStoreApp.readDataStoreKey(ENTRYTYPE) + ":" + mobileApplication.dataStoreApp.readDataStoreKey( - SUPPLIERNAME - ) + "${getData("ENTRYTYPE")}: ${getData("SUPPLIERNAME")}" val listIcons: ArrayList = ArrayList() val iconNext = ImageView(context) @@ -102,33 +88,48 @@ class PackagingCountFragment( private fun setEvents() { binding.mainToolbar.backButton.setOnClickListener { - ma.onMyBackPressed() + requireActivity().onBackPressed() } } + override fun observeViewModel() { with(viewModel) { + entryAdd.observe(viewLifecycleOwner) { + + if (it.isError) { + binding.splashProgress.visibility = View.INVISIBLE + ma.messageWithSound(it.errorMessage, true, true) + + } else { + ma.messageWithSound(it.errorMessage, false, true) + binding.splashProgress.visibility = View.VISIBLE + viewModel.getItemsPackaging( + getDataInt("SUPPLIERID"), getDataInt("ENTRYID") + ) + } + } + itemSupplierList.observe(viewLifecycleOwner) { + binding.splashProgress.visibility = View.GONE adapteritemsupplier = ItemSupplierAdapter(it.list, object : OnImageUpdateClickListener { override fun OnImageUpdateClickListener(item: Any) { - d("VERDNATURA::", "Seleccionado update" + (item as ItemSupplier).name) + showCustomDialog("quantity", item as ItemSupplier) + + } }, object : OnImageTrashClickListener { - override fun OnImageUpdateClickListener(item: Any) { - d("VERDNATURA::", "Seleccionado trash" + (item as ItemSupplier).name) + override fun OnImageTrashClickListener(item: Any) { + showCustomDialog("delete", item as ItemSupplier) } }, object : OnEditSubQuantityListener { override fun OnEditSubQuantityListener(item: Any, text: String) { - d( - "VERDNATURA::", - "la subquantity es " + (item as ItemSupplier).name + "el valor es :" + text - ) hideKeyboard() } }) @@ -143,5 +144,73 @@ class PackagingCountFragment( } } + private fun showCustomDialog(action: String, item: ItemSupplier) { + + when (action) { + "quantity" -> { + customDialogInput.getEditText().setRawInputType(InputType.TYPE_CLASS_NUMBER) + customDialogInput.setTitle(getString(R.string.quantityReviewed)) + .setDescription(getString(R.string.Indicanuevacantidad)) + .setOkButton(getString(R.string.accept)) { + if (!customDialogInput.getValue().isEmpty()) { + requireActivity().hideKeyboard() + } + + binding.splashProgress.visibility = View.VISIBLE + viewModel.entry_addFromBuy( + getDataInt("ENTRYID"), item = item.id!!.toInt(), + (if (getData("ENTRYTYPE") == "Rec") { + (item.printedStickers.plus(customDialogInput.getValue().toInt())) + } else { + item.printedStickers.plus(customDialogInput.getValue().toInt() * -1) + }) as Number + ) + customDialog.cancel() + customDialogInput.dismiss() + customDialogInput.setValue("") + }.setKoButton(getString(R.string.cancel)) { + customDialog.cancel() + customDialogInput.dismiss() + }.setValue("") + .show() + + + + customDialogInput.currentFocus + customDialogInput.setFocusText() + } + "delete" -> { + customDialog.setTitle(getString(R.string.deleteEntryReviewed)) + .setDescription(getString(R.string.sure)) + .setOkButton( + getString( + R.string.delete + ) + + ) { + customDialog.cancel() + customDialog.dismiss() + binding.splashProgress.visibility = View.VISIBLE + viewModel.entry_addFromBuy( + getDataInt("ENTRYID"), item = item.id!!.toInt(), + 0 + ) + } + + .setKoButton(getString(R.string.cancel)) { + customDialog.cancel() + customDialog.dismiss() + + + } + .show() + } + + } + + } + } + + diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingSummaryFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingSummaryFragment.kt index 554403e1..35791e47 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingSummaryFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingSummaryFragment.kt @@ -7,51 +7,25 @@ import android.widget.ImageView import androidx.recyclerview.widget.LinearLayoutManager import es.verdnatura.R import es.verdnatura.databinding.FragmentPackagingSummaryBinding -import es.verdnatura.domain.ConstAndValues.ENTRYNUMBERIMAGES -import es.verdnatura.domain.ConstAndValues.ENTRYOBSERVATIONS -import es.verdnatura.domain.ConstAndValues.ENTRYTYPE -import es.verdnatura.domain.ConstAndValues.SUPPLIERNAME import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.common.* 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.model.BarcodeVO -import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel -import es.verdnatura.presentation.view.feature.inventario.fragment.SearchDepartmentModel -import es.verdnatura.presentation.view.feature.workermistake.adapter.WorkermistakeAdapter -import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake -import es.verdnatura.presentation.view.feature.workermistake.model.MistakeType -import es.verdnatura.presentation.view.feature.workermistake.model.WorkerFromMistake -import kotlinx.coroutines.runBlocking +import es.verdnatura.presentation.view.feature.packaging.adapter.ItemSupplierAdapter +import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingViewModel.PackagingViewModel + @Suppress("UNUSED_ANONYMOUS_PARAMETER") class PackagingSummaryFragment( var entryPoint: String = "" -) : BaseFragment( - InventaryViewModel::class +) : BaseFragment( + PackagingViewModel::class ) { - - private var adapterworker: WorkermistakeAdapter? = null - - private lateinit var customDialogInput: CustomDialogInput - - private var listWorker: MutableList = ArrayList() - private var listWorkerAuxiliary: MutableList = ArrayList() + private var adapteritemsupplier: ItemSupplierAdapter? = null private lateinit var customDialog: CustomDialog private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null private var layoutManager: LinearLayoutManager? = null - private lateinit var customDialogList: CustomDialogList - private var listMistakes: ArrayList = ArrayList() - private var listMistakesAdapter: BarcodeAdapter? = null - private var workerMistakeName: WorkerFromMistake? = null - - private val departments = ArrayList() - private lateinit var departmentId: String - companion object { fun newInstance(entryPoint: String) = PackagingSummaryFragment(entryPoint) } @@ -59,20 +33,17 @@ class PackagingSummaryFragment( override fun getLayoutId(): Int = R.layout.fragment_packaging_summary override fun init() { - - binding.totalImages.text = mobileApplication.dataStoreApp.readDataStoreKey(ENTRYNUMBERIMAGES) - binding.observations.text = mobileApplication.dataStoreApp.readDataStoreKey(ENTRYOBSERVATIONS) - customDialogList = CustomDialogList(requireContext()) -/* - if (!departmentId.isEmpty()) { - viewModel.workerGetFromHasMistake( - getData(DEPARTMENTMISTAKEID).toInt() - ) - }*/ - - customDialogInput = CustomDialogInput(requireContext()) customDialog = CustomDialog(requireContext()) + binding.totalImages.text = getData("ENTRYNUMBERIMAGES") + binding.observations.text = getData("ENTRYOBSERVATIONS") + + binding.splashProgress.visibility = View.VISIBLE + viewModel.getItemsPackaging( + getDataInt("SUPPLIERID"), getDataInt("ENTRYID") + ) + ma.hideBottomNavigation(View.GONE) + binding.splashProgress.visibility = View.GONE setToolBar() setEvents() super.init() @@ -80,11 +51,7 @@ class PackagingSummaryFragment( private fun setToolBar() { - binding.mainToolbar.toolbarTitle.text = runBlocking { - mobileApplication.dataStoreApp.readDataStoreKey(ENTRYTYPE) + ":" + mobileApplication.dataStoreApp.readDataStoreKey( - SUPPLIERNAME - ) - } + binding.mainToolbar.toolbarTitle.text = getData("ENTRYTYPE") + ": " + getData("SUPPLIERNAME") val listIcons: ArrayList = ArrayList() val iconConfirm = ImageView(context) @@ -99,7 +66,7 @@ class PackagingSummaryFragment( override fun onOptionsItemSelected(item: Drawable) { when (item) { iconConfirm.drawable -> { - // TODO() + showWarning() } } } @@ -112,148 +79,55 @@ class PackagingSummaryFragment( private fun setEvents() { + binding.mainToolbar.backButton.setOnClickListener { - ma.onMyBackPressed() + requireActivity().onBackPressed() } } + override fun observeViewModel() { with(viewModel) { - mistakeDepartmentList.observe(viewLifecycleOwner) { - createDepartmentList(it.list) - - } - workerFromMistakeList.observe(viewLifecycleOwner) { - createWorkerList(it.list) - adapterworker = - WorkermistakeAdapter(listWorker, object : onMistakeWorkerClickListener { - - override fun onMistakeWorkerClickListener(item: WorkerFromMistake) { - viewModel.workerMistakeTypeGet( - ) - workerMistakeName = - WorkerFromMistake( - item.id, - item.firstName, - item.lastName, - true, - "" - ) - - } - }) - binding.workermistakeRecyclerview.adapter = adapterworker + itemSupplierList.observe(viewLifecycleOwner) { + binding.splashProgress.visibility = View.GONE + var mySummaryList = it.list.filter { it.quantity > 0 } + adapteritemsupplier = + ItemSupplierAdapter(mySummaryList, null, null, null, showItems = false) + binding.itemsupplierRecyclerview.adapter = adapteritemsupplier layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) - binding.workermistakeRecyclerview.layoutManager = layoutManager - + binding.itemsupplierRecyclerview.layoutManager = layoutManager } - - mistakeWorkerList.observe(viewLifecycleOwner, { - showMistakeList(it.list) - //goBack = false - - }) - - responseAddMistake.observe(viewLifecycleOwner, { - - ma.messageWithSound( - if (it.isError) { - if (it.codeError == 403) { - getString(R.string.userNotPermission) - } else { - it.errorMessage - } - - } else { - getString(R.string.errorCauseRegistered) - }, it.isError, true, isToasted = true - ) - - }) - - response.observe(viewLifecycleOwner, { - if (it.isError) { - ma.messageWithSound(it.errorMessage, true, false) - - } - }) } } - private fun showMistakeList(list: List) { - listMistakes = ArrayList() - list.forEach { - listMistakes.add(BarcodeVO(code = it.description)) - } + private fun showWarning() { + + customDialog.setTitle(getString(R.string.sendEntry)) + customDialog.setTitle(getString(R.string.warningEntry)) + .setOkButton( + getString( + R.string.accept + ) + ) { + viewModel.notificationQueues("modified-entry",getDataInt(USERFK),"""{"url":"${getData("base_urlSalix")}/#!/entry/${getDataInt("ENTRYID")}/summary"}""") + customDialog.dismiss() + } - customDialogList.setTitle(getString(R.string.errorCause) + workerMistakeName!!.firstName) .setKoButton( getString( R.string.cancel ) ) { - customDialogList.dismiss() - }.hideDialog().show() + customDialog.dismiss() + }.show() - listMistakesAdapter = - BarcodeAdapter(listMistakes, object : OnBarcodeRowClickListener { - override fun onBarcodeRowClickListener(item: BarcodeVO) { - list.forEach { - if (it.description == item.code) { - /* viewModel.workerMistake_Add( - vUserFk = workerMistakeName!!.id!!, - vTypeFk = it.code - )*/ - // getString(R.string.errorRegistered).toast(requireContext()) - customDialogList.dismiss() - } - } - - } - }, showDelete = false) - - customDialogList.getRecyclerView().adapter = listMistakesAdapter - - customDialogList.getRecyclerView().layoutManager = - LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) - } - private fun createDepartmentList(list: List) { - departments.clear() - list.forEach { department -> - if (!department.isError) { - try { - departments.add(SearchDepartmentModel(department.name, department.id)) - } catch (e: Exception) { - } - } - } - } - private fun createWorkerList(list: List) { - listWorker.clear() - - list.forEach { worker -> - - if (!worker.isError) { - try { - listWorker.add(worker) - } catch (e: Exception) { - } - } - - } - listWorker.add(WorkerFromMistake(0, "Añadir nuevo", "", false)) - listWorkerAuxiliary.clear() - listWorkerAuxiliary.addAll(listWorker) - listWorkerAuxiliary.add(WorkerFromMistake(0, "Añadir nuevo", "", false)) - - } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingViewModel/SupplierViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingViewModel/SupplierViewModel.kt index 81fd62ef..5ef4988b 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingViewModel/SupplierViewModel.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingViewModel/SupplierViewModel.kt @@ -3,16 +3,14 @@ package es.verdnatura.presentation.view.feature.packaging.fragment.PackagingView import android.content.Context import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData -import es.verdnatura.domain.SalixCallback +import androidx.lifecycle.Transformations +import es.verdnatura.domain.SilexCallback import es.verdnatura.presentation.base.BaseViewModel import es.verdnatura.presentation.base.getMessageFromAllResponse import es.verdnatura.presentation.base.nameofFunction +import es.verdnatura.presentation.common.Event import es.verdnatura.presentation.common.ResponseItemVO -import es.verdnatura.presentation.view.feature.packaging.model.EntrySalix -import es.verdnatura.presentation.view.feature.packaging.model.ItemSupplier -import es.verdnatura.presentation.view.feature.packaging.model.Supplier -import es.verdnatura.presentation.view.feature.packaging.model.SupplierList -import es.verdnatura.presentation.view.feature.packaging.model.itemSupplierList +import es.verdnatura.presentation.view.feature.packaging.model.* import okhttp3.MultipartBody import retrofit2.Response @@ -27,18 +25,32 @@ class PackagingViewModel(val context: Context) : BaseViewModel(context) { val supplierList: LiveData get() = _supplierList + private val _entryList by lazy { MutableLiveData() } + val entryList: LiveData + get() = _entryList + private val _entry by lazy { MutableLiveData() } val entry: LiveData get() = _entry + private val _entryUpdate by lazy { MutableLiveData() } + val entryUpdate: LiveData + get() = _entryUpdate + + private val _entryAdd by lazy { MutableLiveData() } + val entryAdd: LiveData + get() = _entryAdd + private val _response by lazy { MutableLiveData() } val response: LiveData get() = _response + val loadEntryAdd = Transformations.map(_entryAdd) { Event(it) } + fun getSuppliers() { salix.getSuppliers() .enqueue(object : - SalixCallback>(context) { + SilexCallback>(context) { override fun onError(t: Throwable) { val listError: ArrayList = ArrayList() listError.add( @@ -75,10 +87,50 @@ class PackagingViewModel(val context: Context) : BaseViewModel(context) { }) } - fun supplier_getItems(supplierFk: Int) { + fun getEntries_fromSupplier(supplier: Int) { + salix.getEntries_fromSupplier("""{"where": {"supplierFk": "$supplier"},"limit":5, "order":"created DESC"}""") + .enqueue(object : + SilexCallback>(context) { + override fun onError(t: Throwable) { + val listError: ArrayList = ArrayList() + listError.add( + EntrySalix( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + t.message!! + ) + ) + ) + _entryList.value = EntryList(listError) + } + + override fun onSuccess(response: Response>) { + if (response.body() != null) { + _entryList.value = response.body()?.let { EntryList(it) } + } else { + val listError: ArrayList = ArrayList() + listError.add( + EntrySalix( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message() + ) + ) + ) + _entryList.value = EntryList(listError) + + } + } + + }) + } + + fun supplier_getItems(supplierFk: Any) { silex.supplier_getItems(supplierFk) - .enqueue(object : SalixCallback>(context) { + .enqueue(object : SilexCallback>(context) { override fun onError(t: Throwable) { val listError: ArrayList = ArrayList() listError.add( @@ -107,10 +159,10 @@ class PackagingViewModel(val context: Context) : BaseViewModel(context) { }) } - fun entry_addSalix(entry: EntrySalix) { - salix.Entries(entry = entry) + fun entry_addSalix(entry: EntrySalix) { + salix.add_entry(entry) .enqueue(object : - SalixCallback (context){ + SilexCallback(context) { override fun onError(t: Throwable) { _entry.value = EntrySalix( isError = true, @@ -138,13 +190,152 @@ class PackagingViewModel(val context: Context) : BaseViewModel(context) { }) } + fun entry_updateObserv(entryId: Int, observation: String) { + salix.entry_updateObserv(entryId,obervationEntry(observation)) + .enqueue(object : + SilexCallback(context) { + override fun onError(t: Throwable) { + _entryUpdate.value = EntrySalix( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + t.message!! + ) + ) + } + + override fun onSuccess(response: Response) { + if (response.body() != null) { + _entryUpdate.value = response.body() + } else { + _entryUpdate.value = EntrySalix( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message() + ) + ) + } + + } + }) + } + fun entry_uploadPhotoSalix(id: Number, warehouseId: Number, companyId: Number, dmsTypeId: Number, reference: String, description: String, hasFile: Boolean, file: MultipartBody.Part) { salix.uploadEntryPhoto(id, warehouseId, companyId, dmsTypeId, reference, description, hasFile, file) - .enqueue(object : SalixCallback(context){}) + .enqueue(object : SilexCallback(context){}) } fun entry_addFromBuy(id: Number, item: Number, printedStickers: Number) { salix.addFromBuy(id, item, printedStickers) - .enqueue(object : SalixCallback(context){}) + .enqueue(object : SilexCallback(context){override fun onError(t: Throwable) { + _entryAdd.value = EntrySalix( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + t.message!! + ) + ) + } + + override fun onSuccess(response: Response) { + if (response.body() != null) { + _entryAdd.value = response.body() + } else { + _entryAdd.value = EntrySalix( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message() + ) + ) + } + + } + }) + } + fun notificationQueues(notification: String, workerfk: Int, bodyUrl: String) { + salix.notificationQueues(notificationQueue(notification,workerfk,bodyUrl)) + .enqueue(object : SilexCallback(context){override fun onError(t: Throwable) { + _response.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + t.message!! + ) + ) + } + + override fun onSuccess(response: Response) { + + _response.value = ResponseItemVO( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message() + ) + ) + + } + }) + } + fun entry_addFromPackaging(supplier: Number,isPackaging: Boolean) { + salix.addFromPackaging(supplier, isPackaging) + .enqueue(object : SilexCallback(context) { + override fun onError(t: Throwable) { + _entryAdd.value = EntrySalix( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + t.message!! + ) + ) + } + + override fun onSuccess(response: Response) { + if (response.body() != null) { + _entryAdd.value = response.body() + } else { + _entryAdd.value = EntrySalix( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + response.message() + ) + ) + } + + } + }) + } + fun getItemsPackaging(supplierId: Int,entryId: Int) { + salix.getItemsPackaging(supplierId, entryId) + .enqueue(object : SilexCallback>(context){ + override fun onError(t: Throwable) { + val listError: ArrayList = ArrayList() + listError.add( + ItemSupplier( + isError = true, + errorMessage = getMessageFromAllResponse( + nameofFunction(this), + t.message!! + ) + ) + ) + _itemSupplierList.value = itemSupplierList(listError) + } + + override fun onSuccess(response: Response>) { + if (response.body() != null) { + _itemSupplierList.value = + response.body()?.let { itemSupplierList(it) } + } else { + val listError: ArrayList = ArrayList() + listError.add(ItemSupplier(null, null)) + _itemSupplierList.value = itemSupplierList(listError) + } + } + + }) } } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/SupplierFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/SupplierFragment.kt index 983dd2c2..ec6f8740 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/SupplierFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/SupplierFragment.kt @@ -6,22 +6,18 @@ import android.view.View import androidx.recyclerview.widget.LinearLayoutManager import es.verdnatura.R import es.verdnatura.databinding.FragmentPackagingBinding -import es.verdnatura.domain.ConstAndValues.ENTRY -import es.verdnatura.domain.ConstAndValues.ENTRYTYPE -import es.verdnatura.domain.ConstAndValues.SUPPLIERID -import es.verdnatura.domain.ConstAndValues.SUPPLIERNAME +import es.verdnatura.domain.notNull import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.common.OnPasillerosItemClickListener +import es.verdnatura.presentation.common.convertToDateString +import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.feature.inventario.fragment.SearchSupplierModel import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingViewModel.PackagingViewModel +import es.verdnatura.presentation.view.feature.packaging.model.EntrySalix import es.verdnatura.presentation.view.feature.packaging.model.Supplier import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat -import kotlinx.coroutines.runBlocking -import okhttp3.MediaType -import okhttp3.MultipartBody -import okhttp3.RequestBody -import java.io.File + @Suppress("UNUSED_ANONYMOUS_PARAMETER") class SupplierFragment( @@ -35,6 +31,10 @@ class SupplierFragment( private var layoutManager: LinearLayoutManager? = null private var onBack = false private val suppliers = ArrayList() + private val entries = ArrayList() + private lateinit var customDialog: CustomDialog + + companion object { fun newInstance(entryPoint: String) = SupplierFragment(entryPoint) @@ -49,12 +49,12 @@ class SupplierFragment( override fun onCreate(savedInstanceState: Bundle?) { - /* viewModel.getSuppliers( - )*/ + viewModel.getSuppliers() val drawableId: Int = R.drawable.background_test // Reemplaza "mi_drawable" con el nombre de tu recurso Drawable + /* val uri: Uri = Uri.parse( ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + context!!.resources.getResourcePackageName(drawableId) + '/' + @@ -64,8 +64,9 @@ class SupplierFragment( val rutaAbsoluta: String = uri.toString()*/ - val file = - File("/storage/emulated/0/Android/data/es.verdnatura.sfusion/files/Pictures/test.png") + +/* + val file = File("/storage/emulated/0/Android/data/es.verdnatura.sfusion/files/Pictures/test.png") val filePart = MultipartBody.Part.createFormData( "file", file.name, @@ -80,7 +81,7 @@ class SupplierFragment( "Example description", false, file = filePart - ) + )*/ // viewModel.entry_addFromBuy(8,1,100) super.onCreate(savedInstanceState) } @@ -93,6 +94,7 @@ class SupplierFragment( override fun init() { + binding.splashProgress.visibility = View.VISIBLE binding.filterSupplier.setOnClickListener { SimpleSearchDialogCompat( context, @@ -103,18 +105,13 @@ class SupplierFragment( ) { baseSearchDialogCompat, nombre, position -> binding.filterSupplier.setText((nombre.getName())) binding.radiobuttonTypePackaging.visibility = View.VISIBLE - - runBlocking { - mobileApplication.dataStoreApp.editDataStoreKey(SUPPLIERNAME, nombre.getName()) - mobileApplication.dataStoreApp.editDataStoreKey( - SUPPLIERID, - nombre.getId() as Int - ) - } + saveData("SUPPLIERNAME", nombre.getName()) + saveDataInt("SUPPLIERID", nombre.getId().toInt()) + viewModel.getEntries_fromSupplier(nombre.getId().toInt()) baseSearchDialogCompat.dismiss() }.show() } - + customDialog = CustomDialog(requireContext()) ma.hideBottomNavigation(View.GONE) setToolBar() setEvents() @@ -129,46 +126,64 @@ class SupplierFragment( private fun setEvents() { binding.mainToolbar.backButton.setOnClickListener { - ma.onMyBackPressed() + requireActivity().onBackPressed() } + binding.radiobuttonTypePackaging.setOnCheckedChangeListener { buttonView, isChecked -> when (isChecked) { R.id.radioButtonRec -> { - runBlocking { - mobileApplication.dataStoreApp.editDataStoreKey( - ENTRYTYPE, - "Rec" - ) - } - + saveData("ENTRYTYPE", "Rec") } - R.id.radioButtonDev -> { - runBlocking { - mobileApplication.dataStoreApp.editDataStoreKey( - ENTRYTYPE, - "Dev" - ) - } + + saveData("ENTRYTYPE", "Dev") } } - if (!onBack) { - - //viewModel.addFromPackaging(getDataInt("SUPPLIERID"), getData("ENTRYTYPE")=="Rec") - - } - onBack = false + binding.filterEntry.visibility = View.VISIBLE } } + private fun setEntryDialog() { + binding.filterEntry.setOnClickListener { + SimpleSearchDialogCompat( + context, + getString(R.string.Entrada), + getString(R.string.escribirparteNombre), + null, + entries + ) { baseSearchDialogCompat, nombre, position -> + binding.filterEntry.setText((nombre.getName())) + binding.radiobuttonTypePackaging.visibility = View.VISIBLE + + if (nombre.getName() == getString(R.string.newEntry)) { + addEntry() + } else { + saveDataInt("ENTRYID", nombre.getId().toInt()) + ma.onPasillerosItemClickListener( + PasillerosItemVO(title = getString(R.string.titlePackagingCount)), + getString(R.string.titlePackagingCount) + ) + } + baseSearchDialogCompat.dismiss() + }.show() + } + + } + + override fun observeViewModel() { with(viewModel) { supplierList.observe(viewLifecycleOwner) { + binding.splashProgress.visibility = View.GONE createSupplierList(it.list) } + entryList.observe(viewLifecycleOwner) { + binding.splashProgress.visibility = View.GONE + createEntryList(it.list) + } response.observe(viewLifecycleOwner) { if (it.isError) { @@ -176,13 +191,46 @@ class SupplierFragment( } } - entry.observe(viewLifecycleOwner) { + loadEntryAdd.observe(viewLifecycleOwner) { event -> + event.getContentIfNotHandled().notNull { + binding.splashProgress.visibility = View.INVISIBLE + if (it.isError) { + ma.messageWithSound(it.errorMessage, true, false) + + } else { + saveDataInt("ENTRYID", it.id!!.toInt()) + ma.onPasillerosItemClickListener( + PasillerosItemVO(title = getString(R.string.titlePackagingCount)), + it.id!!.toString() + ) + } + + } + } + + + + /* entryAdd.observe(viewLifecycleOwner) { if (it.isError) { ma.messageWithSound(it.errorMessage, true, false) } else { - runBlocking { mobileApplication.dataStoreApp.editDataStoreKey(ENTRY, it.id!!) } + saveDataInt("ENTRYID", it.id!!.toInt()) + ma.onPasillerosItemClickListener( + PasillerosItemVO(title = getString(R.string.titlePackagingCount)), + it.id!!.toString() + ) + } + }*/ + + entry.observe(viewLifecycleOwner) { + binding.splashProgress.visibility = View.GONE + if (it.isError) { + ma.messageWithSound(it.errorMessage, true, false) + + } else { + saveDataInt("ENTRYID", it.id!!.toInt()) ma.onPasillerosItemClickListener( PasillerosItemVO(title = getString(R.string.titlePackagingCount)), getString(R.string.titlePackagingCount) @@ -192,6 +240,7 @@ class SupplierFragment( } } + private fun createSupplierList(list: List) { suppliers.clear() list.forEach { supplier -> @@ -204,5 +253,54 @@ class SupplierFragment( } } + private fun createEntryList(list: List) { + entries.clear() + list.forEach { entry -> + if (!entry.isError!!) { + try { + entries.add( + SearchSupplierModel( + entry.id.toString() + "->" + convertToDateString(entry.created), + id = entry.id.toString() + ) + ) + } catch (e: Exception) { + } + } + } + + entries.add(SearchSupplierModel(getString(R.string.newEntry), "")) + setEntryDialog() + } + + private fun addEntry() { + + customDialog.setTitle(getString(R.string.createEntryDescrip)) + .setDescription(getString(R.string.sure)) + .setOkButton( + getString( + R.string.accept + ) + + ) { + customDialog.cancel() + customDialog.dismiss() + binding.splashProgress.visibility = View.VISIBLE + viewModel.entry_addFromPackaging( + getDataInt("SUPPLIERID"), + getData("ENTRYTYPE") == "Rec" + ) + + } + + .setKoButton(getString(R.string.cancel)) { + customDialog.cancel() + customDialog.dismiss() + + + } + .show() + } + } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/model/EntrySalix.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/model/EntrySalix.kt index d976d3ed..e18b0641 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/model/EntrySalix.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/model/EntrySalix.kt @@ -1,10 +1,38 @@ package es.verdnatura.presentation.view.feature.packaging.model +import es.verdnatura.presentation.common.convertToDateString + class EntrySalix( - var id: Int? = null, - var supplierFk: String? = null, - var travelFk: String? = null, - var companyFk: String? = null, + var id: Number? = null, + var dated: String? = null, + var created: String? = null, + var supplierFk: Number? = null, + var travelFk: Number? = null, + var companyFk: Number? = null, var isError: Boolean = false, var errorMessage: String = "" ) + +fun List.toDateFormat(): ArrayList { + val entries: ArrayList = ArrayList() + this.forEach { + entries.add( + EntrySalix( + dated = convertToDateString(it.dated), + created = convertToDateString(it.created) + ) + ) + + } + return entries.sortedBy { it.dated } as ArrayList +} + +data class obervationEntry( + val observation:String +) + +data class notificationQueue( + val notificationFk:String, + val authorFk:Int, + val params: String +) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/model/Supplier.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/model/Supplier.kt index d4a8ee27..c8dd8b04 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/model/Supplier.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/model/Supplier.kt @@ -12,6 +12,10 @@ class SupplierList( var list: List = listOf() ) +class EntryList( + var list: List = listOf() +) + class itemSupplierList( var list: List = listOf() ) @@ -19,8 +23,9 @@ class itemSupplierList( data class ItemSupplier( var id: Int? = null, var name: String? = null, - var quantity: Int? = 0, - var quantityTotal: Int? = 0, + var quantity: Int = 0, + var quantityTotal: Int = 0, + var printedStickers: Int = 0, var buy: Int? = null, var isError: Boolean = false, var errorMessage: String? = null 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 c5e58462..c8a35ac0 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 @@ -438,25 +438,25 @@ class PasilleroViewModel(context: Context) : BaseViewModel(context) { ) ) - //#tarea4021 - /* _pasillerositem.add( - PasillerosItemVO( - 6, - R.drawable.ic_packaging, - contextApp.getString(R.string.titlePackaging), - R.string.titlePackaging, - contextApp.getString(R.string.titlePackagingDescrip) - ) - )*/ - //Tarea 5322 - _pasillerositem.add( - PasillerosItemVO( - 6, - R.drawable.photo_camera, - contextApp.getString(R.string.titlePhotos), - R.string.titlePhotos, - contextApp.getString(R.string.titlePhotos) - ) +*/ + + //#tarea4021 + _pasillerositem.add( + PasillerosItemVO( + 6, + R.drawable.ic_packaging_entries, + contextApp.getString(R.string.titlePackaging), + R.string.titlePackaging, + contextApp.getString(R.string.titlePackagingDescrip) + ) + ) + _pasillerositem.add( + PasillerosItemVO( + 6, + R.drawable.photo_camera, + contextApp.getString(R.string.titlePhotos), + R.string.titlePhotos, + contextApp.getString(R.string.titlePhotos) ) _pasillerositem.add( diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/mapper/SacadoresMapper.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/mapper/SacadoresMapper.kt index 8610dcac..74ea4995 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/mapper/SacadoresMapper.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/mapper/SacadoresMapper.kt @@ -46,4 +46,4 @@ private fun getCalendarFromDate(date: String, context: Context): Calendar { val cal = Calendar.getInstance() cal.time = sdf.parse(date)!! return cal -} \ No newline at end of file +} diff --git a/app/src/main/res/layout/fragment_packaging.xml b/app/src/main/res/layout/fragment_packaging.xml index 79767be3..e9065065 100644 --- a/app/src/main/res/layout/fragment_packaging.xml +++ b/app/src/main/res/layout/fragment_packaging.xml @@ -35,7 +35,7 @@ android:layout_width="match_parent" android:layout_weight="1.5" android:backgroundTint="@android:color/white" - android:hint="@string/nameSurname" + android:hint="Nombre o apellido" android:inputType="text" android:lines="1" android:maxLines="1" @@ -50,15 +50,16 @@ android:layout_width="match_parent" android:layout_weight="1" android:backgroundTint="@android:color/white" + android:drawableEnd="@drawable/ic_arrow_drop_down_black_24dp" android:focusable="false" - android:hint="@string/suppliers" + android:hint="Proveedor" + android:inputType="text" android:lines="1" android:maxLines="1" android:textAlignment="center" android:textColor="@color/verdnatura_pumpkin_orange" android:textColorHint="@android:color/darker_gray" - android:visibility="visible" - app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp" /> + android:visibility="visible" /> @@ -95,8 +96,44 @@ android:text="@string/comeback" android:textColor="@color/verdnatura_white" /> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_packaging_count.xml b/app/src/main/res/layout/fragment_packaging_count.xml index 1957d63b..dda7987c 100644 --- a/app/src/main/res/layout/fragment_packaging_count.xml +++ b/app/src/main/res/layout/fragment_packaging_count.xml @@ -89,6 +89,7 @@ android:layout_weight="1" android:gravity="center" android:text="@string/Cantidad" + android:visibility="gone" android:textColor="@color/verdnatura_white" android:textSize="@dimen/body2" /> @@ -102,6 +103,7 @@ android:textColor="@color/verdnatura_white" android:textSize="@dimen/body2" /> + diff --git a/app/src/main/res/layout/fragment_packaging_obs.xml b/app/src/main/res/layout/fragment_packaging_obs.xml index dcbbd726..b7b3b2d0 100644 --- a/app/src/main/res/layout/fragment_packaging_obs.xml +++ b/app/src/main/res/layout/fragment_packaging_obs.xml @@ -1,7 +1,7 @@ - + @@ -23,7 +23,7 @@ android:layout_width="match_parent" android:layout_height="100dp" android:gravity="center" - android:hint="@string/observations" + android:hint="Observaciones" android:inputType="textCapSentences|textMultiLine" android:textColor="@color/verdnatura_white" android:textColorHint="@android:color/tertiary_text_light" @@ -32,46 +32,51 @@ app:layout_constraintTop_toBottomOf="@+id/textObs" /> - + android:paddingLeft="@dimen/layout_margin_min" + android:paddingRight="@dimen/layout_margin_min" + android:visibility="gone" + app:layout_constraintTop_toBottomOf="@+id/openPickerImages" > - - + + tools:listitem="@layout/item_image_row" + /> + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_packaging_summary.xml b/app/src/main/res/layout/fragment_packaging_summary.xml index 1a1efc6d..bbd75e48 100644 --- a/app/src/main/res/layout/fragment_packaging_summary.xml +++ b/app/src/main/res/layout/fragment_packaging_summary.xml @@ -19,7 +19,7 @@ app:layout_constraintTop_toTopOf="parent"> @@ -27,235 +27,143 @@ + android:orientation="horizontal"> + + + + + + + + android:paddingLeft="@dimen/layout_margin_min" + android:paddingRight="@dimen/layout_margin_min"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:paddingStart="@dimen/layout_margin_3" + android:textSize="@dimen/body2" /> - + android:visibility="visible" + tools:listitem="@layout/item_itemsupplier_row" /> + + + + + + + + + + + + @@ -267,5 +175,30 @@ app:layout_constraintTop_toTopOf="parent" /> + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_image_row.xml b/app/src/main/res/layout/item_image_row.xml index 68aa8781..8734a188 100644 --- a/app/src/main/res/layout/item_image_row.xml +++ b/app/src/main/res/layout/item_image_row.xml @@ -1,5 +1,6 @@ @@ -26,8 +27,7 @@ android:layout_width="48dp" android:layout_height="48dp" android:layout_weight="1" - tools:srcCompat="@tools:sample/avatars" - android:contentDescription="@string/images"/> + tools:srcCompat="@tools:sample/avatars" /> + android:visibility="gone" /> + android:src="@drawable/ic_delete_black_24dp" /> diff --git a/app/src/main/res/layout/item_itemsupplier_row.xml b/app/src/main/res/layout/item_itemsupplier_row.xml index 4d428059..3694ea63 100644 --- a/app/src/main/res/layout/item_itemsupplier_row.xml +++ b/app/src/main/res/layout/item_itemsupplier_row.xml @@ -31,7 +31,7 @@ android:gravity="center_vertical" android:visibility="gone" android:layout_gravity="center" - android:layout_marginStart="@dimen/pasilleros_margin_main_menu" + android:layout_marginLeft="@dimen/pasilleros_margin_main_menu" tools:text="1" /> + android:src="@drawable/ic_add_black_24dp" /> + android:src="@drawable/ic_delete_black_24dp" /> - Gestor Almacén Fecha Cliente @@ -740,5 +739,19 @@ Añadir… ¿Estás seguro que quieres parkinear la matricula %1$s? Tienes material mas antiguo en otra ubicación. + Revisión del carro + Cantidad revisada a sumar/restar del total + Vas a borrar la cantidad de la compra de la entrada + Cantidad a revisar + Selecciona entrada + Crear entrada + Añadir nueva + Añadir nueva + Crear entrada + Va a crear una entrada para el proveedor seleccionado. + Va a notificar la entrada al dpto de Logística + Enviar entrada embalajes + "Imágenes: " + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 4ec83817..e1e4a7f3 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -739,5 +739,17 @@ Añadir… ¿Estás seguro que quieres parkinear la matricula %1$s? Tienes material mas antiguo en otra ubicación. + Cantidad revisada a sumar/restar del total + Borrar entrada + Cantidad a revisar + Selecciona entrada + Crear entrada + Añadir nueva + Añadir nueva + Crear entrada + Va a crear una entrada para el proveedor seleccionado. + Va a notificar la entrada al dpto de Logística + Enviar entrada embalajes + "Imágenes: " diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 150b58c4..2585d6f4 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -738,5 +738,17 @@ Imágenes adjuntas: Añadir... ¿Estás seguro que quieres parkinear la matricula %1$s? Tienes material mas antiguo en otra ubicación. + Cantidad revisada a sumar/restar del total + Borrar entrada + Cantidad a revisar + Selecciona entrada + Crear entrada + Añadir nueva + Añadir nueva + Crear entrada + Va a crear una entrada para el proveedor seleccionado. + Va a notificar la entrada al dpto de Logística + Enviar entrada embalajes + "Imágenes: " diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e41c1b56..5a5a03d3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -738,5 +738,17 @@ Imágenes adjuntas: Añadir… ¿Estás seguro que quieres parkinear la matricula %1$s? Tienes material mas antiguo en otra ubicación. + Cantidad revisada a sumar/restar del total + Borrar entrada + Cantidad a revisar + Selecciona entrada + Crear entrada + Añadir nueva + Crear entrada + Añadir nueva + Va a crear una entrada para el proveedor seleccionado. + Va a notificar la entrada al dpto de Logística + Enviar entrada embalajes + Imágenes: