Commit 89988103b255abbc58d7b7b3246f4d9787a7ef69

Authored by Mauricio Sanchez
1 parent 8ed3753b48
Exists in master

17092020 2000

app/src/main/java/com/focasoftware/deboinventariov20/UI/main/MainFragment.kt
1 package com.focasoftware.deboinventariov20.UI.main 1 package com.focasoftware.deboinventariov20.UI.main
2 2
3 import android.content.Context 3 import android.content.Context
4 import android.content.SharedPreferences 4 import android.content.SharedPreferences
5 import android.os.Bundle 5 import android.os.Bundle
6 import android.view.LayoutInflater 6 import android.view.LayoutInflater
7 import android.view.View 7 import android.view.View
8 import android.view.ViewGroup 8 import android.view.ViewGroup
9 import android.widget.CheckBox 9 import android.widget.CheckBox
10 import android.widget.ImageButton 10 import android.widget.ImageButton
11 import android.widget.TextView 11 import android.widget.TextView
12 import androidx.fragment.app.Fragment 12 import androidx.fragment.app.Fragment
13 import androidx.navigation.NavController 13 import androidx.navigation.NavController
14 import androidx.navigation.Navigation 14 import androidx.navigation.Navigation
15 import androidx.recyclerview.widget.LinearLayoutManager 15 import androidx.recyclerview.widget.LinearLayoutManager
16 import androidx.recyclerview.widget.RecyclerView 16 import androidx.recyclerview.widget.RecyclerView
17 import com.focasoftware.deboinventariov20.DB.DataBase.AppDb 17 import com.focasoftware.deboinventariov20.DB.DataBase.AppDb
18 import com.focasoftware.deboinventariov20.Model.InvHead 18 import com.focasoftware.deboinventariov20.Model.InvHead
19 import com.focasoftware.deboinventariov20.R 19 import com.focasoftware.deboinventariov20.R
20 import kotlinx.coroutines.Dispatchers 20 import kotlinx.coroutines.Dispatchers
21 import kotlinx.coroutines.GlobalScope 21 import kotlinx.coroutines.GlobalScope
22 import kotlinx.coroutines.async 22 import kotlinx.coroutines.async
23 import kotlinx.coroutines.launch 23 import kotlinx.coroutines.launch
24 import java.util.* 24 import java.util.*
25 import java.util.Locale.filter
26 25
27 class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener { 26 class MainFragment : Fragment(), InventarioListAdapter.OnInventarioClickListener {
28 private lateinit var inventarios: List<InvHead> 27 private lateinit var inventarios: List<InvHead>
29 private lateinit var ordenado: List<InvHead> 28 private lateinit var ordenado: List<InvHead>
30 private lateinit var rcInventario: RecyclerView 29 private lateinit var rcInventario: RecyclerView
31 private lateinit var viewAdapter: RecyclerView.Adapter<*> 30 private lateinit var viewAdapter: RecyclerView.Adapter<*>
32 private lateinit var viewManager: RecyclerView.LayoutManager 31 private lateinit var viewManager: RecyclerView.LayoutManager
33 private var listIvn2 = ArrayList<InvHead>() 32 private var listIvn2 = ArrayList<InvHead>()
34 private lateinit var navController: NavController 33 private lateinit var navController: NavController
35 private lateinit var sharedPreferences: SharedPreferences 34 private lateinit var sharedPreferences: SharedPreferences
36 private var cantidadInventarios: Int = 0 35 private var cantidadInventarios: Int = 0
37 private var adapterFilter: InventarioListAdapter? = null
38 36
39 override fun onCreate(savedInstanceState: Bundle?) { 37 override fun onCreate(savedInstanceState: Bundle?) {
40 super.onCreate(savedInstanceState) 38 super.onCreate(savedInstanceState)
41 sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE) 39 sharedPreferences = requireActivity().getSharedPreferences("SP_INFO", Context.MODE_PRIVATE)
42 } 40 }
43 41
44 override fun onCreateView( 42 override fun onCreateView(
45 inflater: LayoutInflater, 43 inflater: LayoutInflater,
46 container: ViewGroup?, 44 container: ViewGroup?,
47 savedInstanceState: Bundle? 45 savedInstanceState: Bundle?
48 ): View? { 46 ): View? {
49 var bAbiertoCerrado = false 47 var bAbiertoCerrado = false
50 val v = inflater.inflate(R.layout.fragment_main, container, false) 48 val v = inflater.inflate(R.layout.fragment_main, container, false)
51 val tvInvDinamicos = v.findViewById<TextView>(R.id.tvInvDinamicos) 49 val tvInvDinamicos = v.findViewById<TextView>(R.id.tvInvDinamicos)
52 val txtDeposito = v.findViewById<TextView>(R.id.txtDeposito) 50 val txtDeposito = v.findViewById<TextView>(R.id.txtDeposito)
53 val ivSort19 = v.findViewById<ImageButton>(R.id.ivSort19) 51 val ivSort19 = v.findViewById<ImageButton>(R.id.ivSort19)
54 val ivSort91 = v.findViewById<ImageButton>(R.id.ivSort91) 52 val ivSort91 = v.findViewById<ImageButton>(R.id.ivSort91)
55 val cbVentas = v.findViewById<CheckBox>(R.id.cbVentas) 53 val cbVentas = v.findViewById<CheckBox>(R.id.cbVentas)
56 val cbDeposito = v.findViewById<CheckBox>(R.id.cbDeposito) 54 val cbDeposito = v.findViewById<CheckBox>(R.id.cbDeposito)
57 val tvTipo = v.findViewById<TextView>(R.id.tvTipo) 55 val tvTipo = v.findViewById<TextView>(R.id.tvTipo)
58 rcInventario = v.findViewById(R.id.rcInventario) 56 rcInventario = v.findViewById(R.id.rcInventario)
59 57
60 GlobalScope.launch(Dispatchers.Main) { 58 GlobalScope.launch(Dispatchers.Main) {
61 inventarios = buscarEnBDInvHead() 59 inventarios = buscarEnBDInvHead()
62 for ((i, item) in inventarios.withIndex()) { 60 for ((i, item) in inventarios.withIndex()) {
63 val inv = InvHead( 61 val inv = InvHead(
64 inventarios[i].invNum, 62 inventarios[i].invNum,
65 inventarios[i].descripcion, 63 inventarios[i].descripcion,
66 inventarios[i].estado, 64 inventarios[i].estado,
67 inventarios[i].fechaInicio, 65 inventarios[i].fechaInicio,
68 inventarios[i].fechaFinal, 66 inventarios[i].fechaFinal,
69 inventarios[i].prodContados, 67 inventarios[i].prodContados,
70 inventarios[i].lugar, 68 inventarios[i].lugar,
71 inventarios[i].stDesc, 69 inventarios[i].stDesc,
72 inventarios[i].proNoCont 70 inventarios[i].proNoCont
73 ) 71 )
74 cargarRecicler(inv) 72 cargarRecicler(inv)
75 cantidadInventarios = i + 1 73 cantidadInventarios = i + 1
76 } 74 }
77 tvInvDinamicos.text = "Inventarios Dinamicos ($cantidadInventarios) +" 75 tvInvDinamicos.text = "Inventarios Dinamicos ($cantidadInventarios) +"
78 tvInvDinamicos.setOnClickListener { 76 tvInvDinamicos.setOnClickListener {
79 if (!bAbiertoCerrado) { 77 if (!bAbiertoCerrado) {
80 bAbiertoCerrado = true 78 bAbiertoCerrado = true
81 txtDeposito.visibility = View.GONE 79 txtDeposito.visibility = View.GONE
82 rcInventario.visibility = View.VISIBLE 80 rcInventario.visibility = View.VISIBLE
83 ivSort91.visibility = View.INVISIBLE 81 ivSort91.visibility = View.INVISIBLE
84 ivSort19.visibility = View.VISIBLE 82 ivSort19.visibility = View.VISIBLE
85 cbVentas.visibility = View.VISIBLE 83 cbVentas.visibility = View.VISIBLE
86 cbDeposito.visibility = View.VISIBLE 84 cbDeposito.visibility = View.VISIBLE
87 tvTipo.visibility = View.VISIBLE 85 tvTipo.visibility = View.VISIBLE
88 tvInvDinamicos.text = 86 tvInvDinamicos.text =
89 "Inventarios Dinamicos ($cantidadInventarios) -" 87 "Inventarios Dinamicos ($cantidadInventarios) -"
90 } else { 88 } else {
91 bAbiertoCerrado = false 89 bAbiertoCerrado = false
92 rcInventario.visibility = View.GONE 90 rcInventario.visibility = View.GONE
93 ivSort91.visibility = View.GONE 91 ivSort91.visibility = View.GONE
94 ivSort19.visibility = View.GONE 92 ivSort19.visibility = View.GONE
95 txtDeposito.visibility = View.VISIBLE 93 txtDeposito.visibility = View.VISIBLE
96 cbVentas.visibility = View.GONE 94 cbVentas.visibility = View.GONE
97 cbDeposito.visibility = View.GONE 95 cbDeposito.visibility = View.GONE
98 tvTipo.visibility = View.GONE 96 tvTipo.visibility = View.GONE
99 tvInvDinamicos.text = 97 tvInvDinamicos.text =
100 "Inventarios Dinamicos ($cantidadInventarios) +" 98 "Inventarios Dinamicos ($cantidadInventarios) +"
101 } 99 }
102 } 100 }
103 ivSort19.setOnClickListener { 101 ivSort19.setOnClickListener {
104 ordenado = inventarios.sortedByDescending { 102 ordenado = inventarios.sortedByDescending {
105 it.invNum 103 it.invNum
106 } 104 }
107 viewAdapter = InventarioListAdapter(requireContext(), ordenado, this@MainFragment) 105 viewAdapter = InventarioListAdapter(requireContext(), ordenado, this@MainFragment)
108 viewManager = LinearLayoutManager(requireContext()) 106 viewManager = LinearLayoutManager(requireContext())
109 107
110 rcInventario.apply { 108 rcInventario.apply {
111 adapter = viewAdapter 109 adapter = viewAdapter
112 layoutManager = viewManager 110 layoutManager = viewManager
113 } 111 }
114 viewAdapter.notifyDataSetChanged() 112 viewAdapter.notifyDataSetChanged()
115 ivSort19.visibility = View.INVISIBLE 113 ivSort19.visibility = View.INVISIBLE
116 ivSort91.visibility = View.VISIBLE 114 ivSort91.visibility = View.VISIBLE
117 } 115 }
118 ivSort91.setOnClickListener { 116 ivSort91.setOnClickListener {
119 ordenado = inventarios.sortedBy { 117 ordenado = inventarios.sortedBy {
120 it.invNum 118 it.invNum
121 } 119 }
122 viewAdapter = InventarioListAdapter(requireContext(), ordenado, this@MainFragment) 120 viewAdapter = InventarioListAdapter(requireContext(), ordenado, this@MainFragment)
123 viewManager = LinearLayoutManager(requireContext()) 121 viewManager = LinearLayoutManager(requireContext())
124 122
125 rcInventario.apply { 123 rcInventario.apply {
126 adapter = viewAdapter 124 adapter = viewAdapter
127 layoutManager = viewManager 125 layoutManager = viewManager
128 } 126 }
129 viewAdapter.notifyDataSetChanged() 127 viewAdapter.notifyDataSetChanged()
130 ivSort91.visibility = View.INVISIBLE 128 ivSort91.visibility = View.INVISIBLE
131 ivSort19.visibility = View.VISIBLE 129 ivSort19.visibility = View.VISIBLE
132 } 130 }
133 } 131 }
134 132
135 // cbVentas.setOnClickListener { 133 cbVentas.setOnClickListener {
136 // if (cbVentas.isChecked) { 134 if (cbVentas.isChecked) {
137 // rcInventario.apply { 135 listIvn2.clear()
138 // adapter = viewAdapter 136 inventarios.forEach {
139 // layoutManager = viewManager 137 if (it.lugar==false) {
140 // } 138 listIvn2.add(it)
141 // adapterFilter. 139 }
142 // adapterFilter?.filter?.filter("Deposito") 140 }
143 // adapterFilter?.notifyDataSetChanged() 141 } else {
144 // viewAdapter.notifyDataSetChanged() 142 listIvn2.clear()
145 // } 143 listIvn2.addAll(inventarios)
146 // } 144 }
145 rcInventario.apply {
146 adapter = viewAdapter
147 layoutManager = viewManager
148 }
149 viewAdapter.notifyDataSetChanged()
150 }
147 return v 151 return v
148 } 152 }
149 153
150 suspend fun buscarEnBDInvHead(): List<InvHead> { 154 suspend fun buscarEnBDInvHead(): List<InvHead> {
151 //TODO BUSQUEDA POR DESCRIPCION 155 //TODO BUSQUEDA POR DESCRIPCION
152 var busqueda: List<InvHead> 156 var busqueda: List<InvHead>
153 return GlobalScope.async(Dispatchers.IO) { 157 return GlobalScope.async(Dispatchers.IO) {
154 busqueda = AppDb.getAppDb(requireContext())!!.InvHeadDAO()!!.fetchAllInvHead() 158 busqueda = AppDb.getAppDb(requireContext())!!.InvHeadDAO()!!.fetchAllInvHead()
155 return@async busqueda 159 return@async busqueda
156 }.await() 160 }.await()
157 } 161 }
158 162
159 fun cargarRecicler(inv: InvHead) { 163 fun cargarRecicler(inv: InvHead) {
160 //TODO CARGO EN LE RV 164 //TODO CARGO EN LE RV
161 165
162 // val number = if (inv.invNum.toLong() < 10) "0${inv.invNum.toLong()}" else inv.invNum.toString() 166 // val number = if (inv.invNum.toLong() < 10) "0${inv.invNum.toLong()}" else inv.invNum.toString()
163 // val item = ItemInventario("N° $number ${inv.descripcion}. Fecha: ${inv.fechaFinal}") 167 // val item = ItemInventario("N° $number ${inv.descripcion}. Fecha: ${inv.fechaFinal}")
164 168
165 // listIvn.add(item) 169 // listIvn.add(item)
166 listIvn2.add(inv) 170 listIvn2.add(inv)
167 viewAdapter = InventarioListAdapter(requireContext(), listIvn2, this) 171 viewAdapter = InventarioListAdapter(requireContext(), listIvn2, this)
168 viewManager = LinearLayoutManager(requireContext()) 172 viewManager = LinearLayoutManager(requireContext())
169 173
170 rcInventario.apply { 174 rcInventario.apply {
171 adapter = viewAdapter 175 adapter = viewAdapter
172 layoutManager = viewManager 176 layoutManager = viewManager
173 } 177 }
174 } 178 }
175 179
176 override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 180 override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
177 super.onViewCreated(view, savedInstanceState) 181 super.onViewCreated(view, savedInstanceState)
178 navController = Navigation.findNavController(view) 182 navController = Navigation.findNavController(view)
179 listIvn2.clear() 183 listIvn2.clear()
180 } 184 }
181 185
182 override fun onItemClick(inventario: String?) { 186 override fun onItemClick(inventario: String?) {
183 187
184 val editor = sharedPreferences.edit() 188 val editor = sharedPreferences.edit()
185 // var invSel: String = inventario.toString() 189 // var invSel: String = inventario.toString()
186 // invSel = invSel.substring(3, 5) 190 // invSel = invSel.substring(3, 5)
187 editor?.putString("Inventario", inventario) 191 editor?.putString("Inventario", inventario)
188 editor?.apply() 192 editor?.apply()
189 editor.commit() 193 editor.commit()
190 navController.navigate(R.id.action_mainFragment2_to_inventarioFragment) 194 navController.navigate(R.id.action_mainFragment2_to_inventarioFragment)
191 } 195 }
192 196
193 197
194 } 198 }