refs #4678 Carga/descarga

This commit is contained in:
Sergio De la torre 2023-05-25 09:18:48 +02:00
parent 6c9e85c574
commit a76692dff6
6 changed files with 70 additions and 47 deletions

View File

@ -1,19 +1,18 @@
package es.verdnatura.presentation.view.feature.delivery.adapters package es.verdnatura.presentation.view.feature.delivery.adapters
import android.graphics.Color
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.getColor import androidx.core.content.ContextCompat.getColor
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.ItemExpeditionLoadunloadRowBinding import es.verdnatura.databinding.ItemExpeditionLoadunloadRowBinding
import es.verdnatura.presentation.common.OnItemCardRowClickListener
import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLoadUnload import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLoadUnload
import java.security.AccessController.getContext
class ExpeditionLoadUnloadAdapter( class ExpeditionLoadUnloadAdapter(
private val items: List<ExpeditionInfoLoadUnload> private val items: List<ExpeditionInfoLoadUnload>,
) : RecyclerView.Adapter<ExpeditionLoadUnloadAdapter.ItemHolder>() { ) : RecyclerView.Adapter<ExpeditionLoadUnloadAdapter.ItemHolder>() {
@ -31,6 +30,7 @@ class ExpeditionLoadUnloadAdapter(
override fun onBindViewHolder(holder: ItemHolder, position: Int) { override fun onBindViewHolder(holder: ItemHolder, position: Int) {
holder.bind(items[position]) holder.bind(items[position])
} }
inner class ItemHolder( inner class ItemHolder(
@ -59,6 +59,8 @@ class ExpeditionLoadUnloadAdapter(
} }
} }
this.item = item this.item = item
} }
} }

View File

@ -11,7 +11,6 @@ import android.widget.ImageView
import android.widget.Toast import android.widget.Toast
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.room.Room import androidx.room.Room
@ -25,16 +24,18 @@ import es.verdnatura.presentation.common.OnOptionsSelectedListener
import es.verdnatura.presentation.common.ToolBarAdapterTooltip import es.verdnatura.presentation.common.ToolBarAdapterTooltip
import es.verdnatura.presentation.view.feature.delivery.adapters.ExpeditionLoadUnloadAdapter import es.verdnatura.presentation.view.feature.delivery.adapters.ExpeditionLoadUnloadAdapter
import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLoadUnload import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLoadUnload
import es.verdnatura.presentation.view.feature.delivery.viewmodels.DatabaseViewModel
import es.verdnatura.presentation.view.feature.delivery.viewmodels.DeliveryViewModel import es.verdnatura.presentation.view.feature.delivery.viewmodels.DeliveryViewModel
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.json.JSONObject
class LoadUnloadFragment( class LoadUnloadFragment(
var title: String = "", var title: String = "",
var state: String = "" var state: String = "",
var entryPoint: String
) : BaseFragment<FragmentExpeditionLoadunloadDeliveryBinding, DeliveryViewModel>( ) : BaseFragment<FragmentExpeditionLoadunloadDeliveryBinding, DeliveryViewModel>(
DeliveryViewModel::class DeliveryViewModel::class
) { ) {
@ -44,10 +45,12 @@ class LoadUnloadFragment(
private lateinit var myList: MutableList<ExpeditionInfoLoadUnload> private lateinit var myList: MutableList<ExpeditionInfoLoadUnload>
private var counterCalls = 0 private var counterCalls = 0
private var counterResponse = 0 private var counterResponse = 0
private var route = 0
private var addressFk = 0
companion object { companion object {
fun newInstance(title: String, state: String) = LoadUnloadFragment(title, state) fun newInstance(title: String, state: String, entryPoint: String) =
LoadUnloadFragment(title, state, entryPoint)
} }
override fun getLayoutId(): Int = R.layout.fragment_expedition_loadunload_delivery override fun getLayoutId(): Int = R.layout.fragment_expedition_loadunload_delivery
@ -55,11 +58,13 @@ class LoadUnloadFragment(
@RequiresApi(Build.VERSION_CODES.O) @RequiresApi(Build.VERSION_CODES.O)
override fun init() { override fun init() {
route = JSONObject(entryPoint).get("route").toString().toInt()
addressFk = JSONObject(entryPoint).get("address").toString().toInt()
setEvents() setEvents()
setToolBar() setToolBar()
binding.scanInput.requestFocus() binding.scanInput.requestFocus()
viewModel.getExpeditionFromRoute(159390) viewModel.getExpeditionFromRoute(route)
super.init() super.init()
database() database()
} }
@ -78,12 +83,12 @@ class LoadUnloadFragment(
// val myViewModel = ViewModelProvider(this).get(DatabaseViewModel::class.java) // val myViewModel = ViewModelProvider(this).get(DatabaseViewModel::class.java)
lifecycleScope.launch { lifecycleScope.launch {
val expedicionInsert = withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
val expedicion = Expedicion(12345, "Mi expedición", System.currentTimeMillis()) val expedicion = Expedicion(12345, "Mi expedición", System.currentTimeMillis())
db.expedicionDao().insert(expedicion) db.expedicionDao().insert(expedicion)
var expediciones = db.expedicionDao().getAll() var expediciones = db.expedicionDao().getAll()
for (e in expediciones){ for (e in expediciones) {
println("la exp es "+e.nombre) println("la exp es " + e.nombre)
} }
} }
} }
@ -194,14 +199,14 @@ class LoadUnloadFragment(
private fun setEvents() { private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener { binding.mainToolbar.backButton.setOnClickListener {
/* requireActivity().onBackPressed() */ requireActivity().onBackPressed()
val callback = object : OnBackPressedCallback(true /* enabled by default */) { /*val callback = object : OnBackPressedCallback(true /* enabled by default */) {
override fun handleOnBackPressed() { override fun handleOnBackPressed() {
println("volviendo antras") println("volviendo antras")
} }
} }
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback) requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback)*/
} }
binding.scanInput.setOnEditorActionListener { _, actionId, _ -> binding.scanInput.setOnEditorActionListener { _, actionId, _ ->
@ -289,7 +294,7 @@ class LoadUnloadFragment(
if (!it.isError) { if (!it.isError) {
counterResponse = counterResponse + 1 counterResponse = counterResponse + 1
if (counterResponse == counterCalls) { if (counterResponse == counterCalls) {
viewModel.getExpeditionFromRoute(159390) viewModel.getExpeditionFromRoute(route)
counterResponse = 0 counterResponse = 0
counterCalls = 0 counterCalls = 0
} }
@ -321,12 +326,15 @@ class LoadUnloadFragment(
private fun createList(list: List<ExpeditionInfoLoadUnload>) { private fun createList(list: List<ExpeditionInfoLoadUnload>) {
myList = list as MutableList<ExpeditionInfoLoadUnload> myList = list as MutableList<ExpeditionInfoLoadUnload>
adapter = ExpeditionLoadUnloadAdapter(list) if (addressFk!=0){
myList= list.filter{it.addressFk==addressFk} as MutableList<ExpeditionInfoLoadUnload>
}
adapter = ExpeditionLoadUnloadAdapter(myList)
binding.expeditionloadunloadRecyclerview.adapter = adapter binding.expeditionloadunloadRecyclerview.adapter = adapter
binding.expeditionloadunloadRecyclerview.layoutManager = binding.expeditionloadunloadRecyclerview.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
binding.mainToolbar.toolbarSubtitle.text = binding.mainToolbar.toolbarSubtitle.text =
getString(R.string.summaryCount, list.filter { it.code == state }.size, list.size) getString(R.string.summaryCount, myList.filter { it.code == state }.size, myList.size)
setListPosition(list) setListPosition(list)
} }
@ -340,8 +348,8 @@ class LoadUnloadFragment(
} }
private fun updateCount(list: MutableList<ExpeditionInfoLoadUnload>, state: String) { private fun updateCount(list: MutableList<ExpeditionInfoLoadUnload>, state: String) {
val countMarked = list.filter { it.code == state }.size val countMarked = list.filter { it.code == state }.size/list.filter { it.code == state }.size
getString(R.string.summaryCount, countMarked, list.size) binding.mainToolbar.toolbarSubtitle.text = getString(R.string.summaryCount, countMarked, list.size)
if (countMarked == list.size) { if (countMarked == list.size) {
setExpeditionsState(list, state) setExpeditionsState(list, state)
} }

View File

@ -1,7 +1,5 @@
package es.verdnatura.presentation.view.feature.delivery.model package es.verdnatura.presentation.view.feature.delivery.model
import androidx.room.Entity
import androidx.room.PrimaryKey
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
class FreeLanceDeliveryInfoList( class FreeLanceDeliveryInfoList(
@ -52,20 +50,35 @@ class
Expedition( Expedition(
var id: Int var id: Int
) )
class ExpeditionList( class ExpeditionList(
var list: List<ExpeditionInfoLoadUnload> = listOf() var list: List<ExpeditionInfoLoadUnload> = listOf()
) )
class ExpeditionInfoLoadUnload( class ExpeditionInfoLoadUnload(
var id:Int, var id: Int,
var ticketFk:Int, var ticketFk: Int,
var routeFk:Int, var routeFk: Int,
var addressFk:Int, var addressFk: Int,
var itemPackingTypeConcat:String, var itemPackingTypeConcat: String,
var city:String, var city: String,
var street:String, var street: String,
var code:String?, var code: String?,
var nickname:String, var nickname: String,
var postalCode:Int var postalCode: Int
)
class ExpeditionSummaryList(
var list: List<ExpeditionInfoSummary> = listOf()
)
class ExpeditionInfoSummary(
var routeFk: Int,
var addressFk: Int,
var itemPackingType: String?,
var total: Int ,
var delivery: Int= 0 ,
var lost: Int = 0 ,
var delivered: Int = 0
) )

View File

@ -38,31 +38,31 @@
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Expedición" android:text="@string/expedition"
android:textSize="@dimen/body1" android:textSize="@dimen/body1"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:paddingLeft="@dimen/layout_margin_min" android:paddingStart="@dimen/layout_margin_min"
android:layout_weight="1" android:layout_weight="1"
android:gravity="left" /> android:gravity="start" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Embalaje" android:text="@string/titlePackagingCount"
android:textSize="@dimen/body1" android:textSize="@dimen/body1"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:layout_weight="1" android:layout_weight="1"
android:gravity="left"/> android:gravity="start"/>
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Consignatario" android:text="@string/consignatario"
android:textSize="@dimen/body1" android:textSize="@dimen/body1"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:layout_weight="1" android:layout_weight="1"
android:gravity="right"/> android:gravity="end"/>
</LinearLayout> </LinearLayout>

View File

@ -46,7 +46,7 @@
android:id="@+id/route" android:id="@+id/route"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Ruta" android:text="@string/Ruta"
android:textSize="@dimen/body1" android:textSize="@dimen/body1"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:paddingLeft="@dimen/layout_margin_min" android:paddingLeft="@dimen/layout_margin_min"
@ -57,7 +57,7 @@
android:id="@+id/agency" android:id="@+id/agency"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Zona" android:text="@string/zone"
android:textSize="@dimen/body2" android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:layout_weight="1.25" android:layout_weight="1.25"
@ -68,7 +68,7 @@
android:id="@+id/date" android:id="@+id/date"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="fecha" android:text="@string/Fecha"
android:textSize="@dimen/body2" android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:layout_weight="1.25" android:layout_weight="1.25"
@ -87,7 +87,7 @@
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Fecha" android:text="@string/Fecha"
android:textSize="@dimen/body2" android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:paddingLeft="@dimen/layout_margin_min" android:paddingLeft="@dimen/layout_margin_min"
@ -97,7 +97,7 @@
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Trabajador" android:text="@string/Worker"
android:textSize="@dimen/body2" android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:layout_weight="1.25" android:layout_weight="1.25"
@ -107,7 +107,7 @@
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Estado" android:text="@string/state"
android:textSize="@dimen/body2" android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:layout_weight="1.25" android:layout_weight="1.25"

View File

@ -23,7 +23,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/main_toolbar"/> app:layout_constraintTop_toTopOf="@+id/main_toolbar"/>
' <include <include
android:id="@+id/main_toolbar" android:id="@+id/main_toolbar"
layout="@layout/toolbar_fragment" layout="@layout/toolbar_fragment"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"