diff --git a/.idea/misc.xml b/.idea/misc.xml
index 8236be1e..83b8cb7d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -98,6 +98,7 @@
+
@@ -128,6 +129,7 @@
+
@@ -157,7 +159,7 @@
-
+
@@ -176,7 +178,7 @@
-
+
@@ -196,6 +198,7 @@
+
@@ -242,6 +245,7 @@
+
diff --git a/app/build.gradle b/app/build.gradle
index 7cdc2a3a..4163f6e4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -13,9 +13,12 @@ android {
applicationId "es.verdnatura"
minSdkVersion 21 //21
targetSdkVersion 30
- versionCode 128
- versionName = "8.8Beta"
+ versionCode 130
+ versionName = "9Beta"
+ //versionName = "8.9Beta" versionCode 129
+ //versionName = "8.8Beta" versioncode 128
//versionName = "8.7Beta" versionCode 127
+ //versionName = "8.8Beta"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json
index 1e078ff4..73259592 100644
--- a/app/release/output-metadata.json
+++ b/app/release/output-metadata.json
@@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
- "versionCode": 128,
- "versionName": "8.8Beta",
+ "versionCode": 130,
+ "versionName": "9Beta",
"outputFile": "app-release.apk"
}
],
diff --git a/app/release/vn-pickingBeta.apk b/app/release/vn-pickingBeta.apk
index 774552c4..ac10086c 100644
Binary files a/app/release/vn-pickingBeta.apk and b/app/release/vn-pickingBeta.apk differ
diff --git a/app/src/main/java/es/verdnatura/di/viewModelModule.kt b/app/src/main/java/es/verdnatura/di/viewModelModule.kt
index bd43ef02..2f1c63ee 100644
--- a/app/src/main/java/es/verdnatura/di/viewModelModule.kt
+++ b/app/src/main/java/es/verdnatura/di/viewModelModule.kt
@@ -197,4 +197,8 @@ val viewModelModule = module {
ClaimViewModel(androidContext())
}
+ viewModel {
+ PalletScanViewModel(androidContext())
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/java/es/verdnatura/domain/GetLoginUserCase.kt b/app/src/main/java/es/verdnatura/domain/GetLoginUserCase.kt
index a18826c3..cb6ab34e 100644
--- a/app/src/main/java/es/verdnatura/domain/GetLoginUserCase.kt
+++ b/app/src/main/java/es/verdnatura/domain/GetLoginUserCase.kt
@@ -118,6 +118,16 @@ return restClient!!.getVersion("json", "1", usuario, password, "application/json
return restClient!!.worker_getSector("json", "1", usuario, password, "application/json")
}
+ fun operator_getNumberOfWagons(usuario: String, password: String): Call {
+
+ return restClient!!.operator_getNumberOfWagons("json", "1", usuario, password, "application/json")
+ }
+
+ fun operator_add(usuario: String, password: String): Call {
+
+ return restClient!!.operator_add("json", "1", usuario, password, "application/json")
+ }
+
fun worker_getPrinter(usuario: String, password: String): Call> {
return restClient!!.worker_getPrinter("json", "1", usuario, password, "application/json")
diff --git a/app/src/main/java/es/verdnatura/domain/GetPaletizadoresUserCase.kt b/app/src/main/java/es/verdnatura/domain/GetPaletizadoresUserCase.kt
index f3cf4336..fd8cd0f8 100644
--- a/app/src/main/java/es/verdnatura/domain/GetPaletizadoresUserCase.kt
+++ b/app/src/main/java/es/verdnatura/domain/GetPaletizadoresUserCase.kt
@@ -275,6 +275,27 @@ class GetPaletizadoresUserCase(context: Context) : RestClient(context) {
)
}
+ fun expeditionPallet_get(
+ usuario: String,
+ password: String,
+ vPalletFk: String
+
+
+
+ ): Call {
+ val params: ArrayList = ArrayList()
+ params.add(vPalletFk)
+
+ return restClient!!.expeditionPallet_get(
+ "json",
+ "1",
+ usuario,
+ password,
+ "application/json",
+ params
+ )
+ }
+
fun expeditionState_addByPallet(
usuario: String,
password: String,
@@ -296,8 +317,6 @@ class GetPaletizadoresUserCase(context: Context) : RestClient(context) {
params
)
}
-
-
fun expeditionLoading_add(
usuario: String,
password: String,
diff --git a/app/src/main/java/es/verdnatura/domain/GetSacadorControladorUserCase.kt b/app/src/main/java/es/verdnatura/domain/GetSacadorControladorUserCase.kt
index 8f1bacb3..6ad92672 100644
--- a/app/src/main/java/es/verdnatura/domain/GetSacadorControladorUserCase.kt
+++ b/app/src/main/java/es/verdnatura/domain/GetSacadorControladorUserCase.kt
@@ -170,7 +170,7 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
vStateFk: String,
vIsChecked: String,
vBuyFk: String
- ): Call {
+ ): Call {
val params: ArrayList = ArrayList()
params.add(saleFk)
params.add(vOriginalQuantity)
@@ -451,6 +451,25 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
params
)
}
+ fun debug_add(
+ usuario: String,
+ password: String,
+ buyFk: String,
+ message: String
+ ): Call {
+ val params: ArrayList = ArrayList()
+ params.add(buyFk)
+ params.add(message)
+ return restClient!!.debug_add(
+ "json",
+ "1",
+ usuario,
+ password,
+ "application/json",
+ params
+ )
+
+ }
fun getIdFromCode(usuario: String, password: String, code: String): Call {
diff --git a/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt b/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt
index 4768792e..0f4e0981 100644
--- a/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt
+++ b/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt
@@ -170,6 +170,26 @@ interface VerdnaturaService {
):
Call
+ @POST("almacennew/operator_getNumberOfWagons")//NO SALIX
+ fun operator_getNumberOfWagons(
+ @Header("aplicacion") aplicacion: String,
+ @Header("version") version: String,
+ @Header("user") user: String,
+ @Header("pass") pass: String,
+ @Header("Content-Type") content_type: String
+ ):
+ Call
+
+ @POST("almacennew/operator_add")//NO SALIX
+ fun operator_add(
+ @Header("aplicacion") aplicacion: String,
+ @Header("version") version: String,
+ @Header("user") user: String,
+ @Header("pass") pass: String,
+ @Header("Content-Type") content_type: String
+ ):
+ Call
+
//PRESACADORES ========================================================================>
@POST("almacennew/ticketToPrePrepare")//NO SALIX
@@ -369,7 +389,7 @@ interface VerdnaturaService {
@Header("Content-Type") content_type: String,
@Body params: List
):
- Call
+ Call
/* @POST("almacennew/saleTracking_update")//REVISADA
fun saleTracking_update(
@@ -539,6 +559,17 @@ interface VerdnaturaService {
Call
+ @POST("almacennew/debug_add")//REVISADA
+ fun debug_add(
+ @Header("aplicacion") aplicacion: String,
+ @Header("version") version: String,
+ @Header("user") user: String,
+ @Header("pass") pass: String,
+ @Header("Content-Type") content_type: String,
+ @Body params: List
+ ):
+ Call
+
@POST("almacennew/get_salesModifiedFromTicket")//REVISADA
fun get_salesModifiedFromTicket(
@Header("aplicacion") aplicacion: String,
@@ -1353,6 +1384,16 @@ interface VerdnaturaService {
):
Call
+ @POST("almacennew/expeditionPallet_get")//REVISADA
+ fun expeditionPallet_get(
+ @Header("aplicacion") aplicacion: String,
+ @Header("version") version: String,
+ @Header("user") user: String,
+ @Header("pass") pass: String,
+ @Header("Content-Type") content_type: String,
+ @Body params: List
+ ):
+ Call
@POST("almacennew/expeditionLoading_add")//REVISADA
fun expeditionLoading_add(
diff --git a/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt b/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt
index 4ea546f1..7a87b02f 100644
--- a/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt
+++ b/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt
@@ -52,6 +52,7 @@ abstract class BaseFragment(viewModelCla
protected val TOKEN = "token"
protected val SECTORDESCRIP = "sectordescrip"
protected val SECTORFK = "sectorFk"
+ protected val NUMBEROFWAGONS="operatorNumberOfWagons"
protected val PRINTERNAME= "printername"
protected val PRINTERFK = "printerFk"
protected val WAREHOUSEFK = "warehouseFk"
@@ -537,6 +538,7 @@ override fun onViewCreated(view: View, savedInstanceState: Bundle?)
DEPARTMENTMISTAKEID->prefs.getString(name,"").toString()
PRINTERFK->prefs.getInt(name,0).toString()
PRINTERNAME->prefs.getString(name,getString(R.string.noprinter)).toString()
+ NUMBEROFWAGONS->prefs.getInt(name,1).toString()
"base_url"->{
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
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 459fe0a8..d14a9074 100644
--- a/app/src/main/java/es/verdnatura/presentation/common/ResponseItemVO.kt
+++ b/app/src/main/java/es/verdnatura/presentation/common/ResponseItemVO.kt
@@ -7,6 +7,13 @@ class ResponseItemVO(
var codeError:Int=0
)
+class ResponseItemNumber(
+ var response: Int? = null,
+ var isError: Boolean = false,
+ var errorMessage: String = "",
+ var codeError:Int=0
+)
+
class ResponseItemMachineControl(
var response: String = "",
var isError: Boolean = false,
diff --git a/app/src/main/java/es/verdnatura/presentation/testing/testPrint.kt b/app/src/main/java/es/verdnatura/presentation/testing/testPrint.kt
new file mode 100644
index 00000000..8f894078
--- /dev/null
+++ b/app/src/main/java/es/verdnatura/presentation/testing/testPrint.kt
@@ -0,0 +1,503 @@
+package es.verdnatura.presentation.testing
+
+import android.content.ComponentName
+import android.content.Context
+import android.content.Intent
+import android.graphics.Bitmap
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.pdf.PdfRenderer
+import android.net.Uri
+import android.os.Bundle
+import android.os.Parcel
+import android.os.ParcelFileDescriptor
+import android.os.ResultReceiver
+import android.util.Log
+import android.view.View
+import android.view.inputmethod.EditorInfo
+import android.widget.Toast
+import androidx.lifecycle.Observer
+import es.verdnatura.R
+import es.verdnatura.databinding.FragmentTestingPrintBinding
+import es.verdnatura.presentation.base.BaseFragment
+import es.verdnatura.presentation.view.component.CustomDialog
+import es.verdnatura.presentation.view.feature.qr.QrFragmentViewModel
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.withContext
+import java.io.File
+import java.io.IOException
+import java.io.UnsupportedEncodingException
+
+
+@Suppress("UNUSED_ANONYMOUS_PARAMETER")
+class testPrint(
+ var entryPoint: String = ""
+) : BaseFragment(QrFragmentViewModel::class) {
+
+ private var goBack: Boolean = false
+ override fun getLayoutId(): Int = R.layout.fragment_testing_print
+ private lateinit var customDialog: CustomDialog
+ private var itemscaned = ""
+
+ companion object {
+ fun newInstance(entryPoint: String) = testPrint(entryPoint)
+ }
+
+
+ override fun init() {
+
+ binding.splashProgress.visibility = View.GONE
+ customDialog = CustomDialog(requireContext())
+
+ setToolbar()
+ setEvents()
+ super.init()
+ }
+
+ private fun setToolbar() {
+
+ binding.mainToolbar.toolbarTitle.text = entryPoint
+ }
+
+ override fun onPause() {
+ goBack = true
+ super.onPause()
+ }
+
+
+ private fun setEvents() {
+
+ binding.mainToolbar.backButton.setOnClickListener {
+ requireActivity().onBackPressed()
+ }
+
+ binding.buttonPrintTemplate.setOnClickListener {
+
+ printTemplate()
+ }
+
+ binding.buttonPrintAll.setOnClickListener {
+
+ printAllData()
+ }
+ binding.buttonPrintZpl.setOnClickListener {
+
+ printZPL()
+ }
+ binding.buttonPrintStatus.setOnClickListener {
+ printStatus()
+ }
+
+ binding.buttonPrintDisconnect.setOnClickListener {
+ printDisconnect()
+ }
+
+ binding.buttonImgToPdf.setOnClickListener {
+ convertImg()
+ }
+
+ binding.scanInput.requestFocus()
+ binding.scanInput.setOnEditorActionListener { v, actionId, event ->
+
+ if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) {
+
+
+ goBack = false
+ if (!binding.scanInput.text.isNullOrEmpty()) {
+ binding.splashProgress.visibility = View.VISIBLE
+ viewModel.qr_getCall(
+ getData(USER),
+ getData(PASSWORD),
+ binding.scanInput.text.toString()
+ )
+ itemscaned = binding.scanInput.text.toString()
+ }
+
+ }
+ binding.scanInput.setText("")
+ ma.hideKeyboard(binding.scanInput)
+ return@setOnEditorActionListener true
+ }
+ // false
+
+ }
+ @Throws(IOException::class)
+ fun getFileFromAssets(context: Context, fileName: String): File = File(context.cacheDir, fileName)
+ .also {
+ if (!it.exists()) {
+ it.outputStream().use { cache ->
+ context.assets.open(fileName).use { inputStream ->
+ inputStream.copyTo(cache)
+ }
+ }
+ }
+ }
+
+ private fun convertImg() {
+
+ val path: Uri = Uri.parse("file://android_asset/raw/test.pdf")
+
+ //val newPath: String = path.toString()
+ val filePath = getFileFromAssets(requireContext(), "test.pdf").absolutePath
+ val input = ParcelFileDescriptor.open(File(filePath), ParcelFileDescriptor.MODE_READ_ONLY)
+ val renderer = PdfRenderer(input)
+
+
+ val page = renderer.openPage(0)
+ val bitmap = Bitmap.createBitmap(
+ 200, (200.toFloat() / page.width * page.height).toInt(), Bitmap.Config.ARGB_8888
+ )
+ page.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY)
+
+
+
+ page.close()
+ renderer.close()
+
+
+// do something with the bitmap, like putting it on an ImageView
+ binding.imageView.setImageBitmap(bitmap)
+ page.close()
+ renderer.close()
+ }
+
+ suspend fun renderSinglePage(filePath: String, width: Int) = withContext(Dispatchers.IO) {
+ PdfRenderer(
+ ParcelFileDescriptor.open(
+ File(filePath),
+ ParcelFileDescriptor.MODE_READ_ONLY
+ )
+ ).use { renderer ->
+ renderer.openPage(0).renderAndClose(width)
+ }
+ }
+
+ fun PdfRenderer.Page.renderAndClose(width: Int) = use {
+ val bitmap = createBitmap(width)
+ render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY)
+ bitmap
+ }
+
+ private fun PdfRenderer.Page.createBitmap(bitmapWidth: Int): Bitmap {
+ val bitmap = Bitmap.createBitmap(
+ bitmapWidth, (bitmapWidth.toFloat() / width * height).toInt(), Bitmap.Config.ARGB_8888
+ )
+
+ val canvas = Canvas(bitmap)
+ canvas.drawColor(Color.WHITE)
+ canvas.drawBitmap(bitmap, 0f, 0f, null)
+
+ return bitmap
+ }
+
+
+ private fun printZPL() {
+ var variableData = HashMap()
+ variableData.put("%PRODUCT_NAME%", "Apples")
+ variableData.put("%MSRP%", "$1.00")
+ variableData.put("%PCT%", "50")
+ variableData.put("%FINAL%", "$0.50")
+ variableData.put("%UPC_CODE%", "12345678")
+ val passthroughData = """
+ CT~~CD,~CC^~CT~
+ ^XA~TA000~JSN^LT0^MNW^MTD^PON^PMN^LH0,0^JMA^PR4,4~SD10^JUS^LRN^CI0^XZ
+ ^XA
+ ^MMT
+ ^PW591
+ ^LL0203
+ ^LS0
+ ^FT171,82^A0N,27,26^FH\^FDBananas^FS
+ ^FT222,107^A0N,17,16^FH\^FD$0.99^FS
+ ^FT424,163^A0N,23,24^FB82,1,0,R^FH\^FD10^FS
+ ^FT314,167^A0N,28,28^FH\^FD$0.89^FS
+ ^FT367,107^A0N,17,16^FH\^FD8424245^FS
+ ^FT471,138^A0N,14,14^FH\^FDYou saved:^FS
+ ^FO451,119^GB103,54,2^FS
+ ^FT171,20^A0N,17,16^FH\^FDPrintConnect Template Print Example^FS
+ ^FT171,167^A0N,28,28^FH\^FDFinal Price:^FS
+ ^FT171,51^A0N,17,16^FH\^FDProduct:^FS
+ ^FT171,107^A0N,17,16^FH\^FDMSRP:^FS
+ ^FT508,163^A0N,23,24^FH\^FD%^FS
+ ^FT328,107^A0N,17,16^FH\^FDUPC:^FS
+ ^FO171,119^GB259,0,2^FS
+ ^PQ1,0,1,Y^XZ
+
+ """.trimIndent()
+
+ var passthroughDataBytes: ByteArray? = null
+
+ try {
+// Convert template ZPL string to a UTF-8 encoded byte array, which will be sent as an extra with the intent
+ //templateBytes = templateData.getBytes("UTF-8");
+ passthroughDataBytes = passthroughData.toByteArray()
+ } catch (e: UnsupportedEncodingException) {
+ // Handle exception
+ }
+ val intent = Intent()
+ intent.component = ComponentName(
+ "com.zebra.printconnect",
+ "com.zebra.printconnect.print.PassthroughService"
+ )
+
+ intent.putExtra(
+ "com.zebra.printconnect.PrintService.PASSTHROUGH_DATA",
+ passthroughDataBytes
+ )
+ intent.putExtra(
+ "com.zebra.printconnect.PrintService.RESULT_RECEIVER",
+ buildIPCSafeReceiver(object : ResultReceiver(null) {
+
+ override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {
+ super.onReceiveResult(resultCode, resultData)
+
+ if (resultCode == 0) {
+ // Result code 0 indicates success
+ } else {
+ // Handle unsuccessful print
+// Error message (null on successful print)
+ val errorMessage =
+ resultData?.getString("com.zebra.printconnect.PrintService.ERROR_MESSAGE")
+ Toast.makeText(context, errorMessage, Toast.LENGTH_LONG).show()
+ }
+ }
+
+ })
+ )
+
+ requireContext().startService(intent)
+ }
+
+ private fun printAllData() {
+
+ var variableData = HashMap()
+ variableData.put("%PRODUCT_NAME%", "Apples")
+ variableData.put("%MSRP%", "$1.00")
+ variableData.put("%PCT%", "50")
+ variableData.put("%FINAL%", "$0.50")
+ variableData.put("%UPC_CODE%", "12345678")
+
+ val templateData = """
+ CT~~CD,~CC^~CT~
+ ^XA~TA000~JSN^LT0^MNW^MTD^PON^PMN^LH0,0^JMA^PR4,4~SD10^JUS^LRN^CI0^XZ
+ ^XA
+ ^MMT
+ ^PW591
+ ^LL0203
+ ^LS0
+ ^FT171,82^A0N,27,26^FH\^FD%PRODUCT_NAME%^FS
+ ^FT222,107^A0N,17,16^FH\^FD%MSRP%^FS
+ ^FT424,163^A0N,23,24^FB82,1,0,R^FH\^FD%PCT%^FS
+ ^FT314,167^A0N,28,28^FH\^FD%FINAL%^FS
+ ^FT367,107^A0N,17,16^FH\^FD%UPC_CODE%^FS
+ ^FT471,138^A0N,14,14^FH\^FDYou saved:^FS
+ ^FO451,119^GB103,54,2^FS
+ ^FT171,20^A0N,17,16^FH\^FDPrintConnect Template Print Example^FS
+ ^FT171,167^A0N,28,28^FH\^FDFinal Price:^FS
+ ^FT171,51^A0N,17,16^FH\^FDProduct:^FS
+ ^FT171,107^A0N,17,16^FH\^FDMSRP:^FS
+ ^FT508,163^A0N,23,24^FH\^FD%^FS
+ ^FT328,107^A0N,17,16^FH\^FDUPC:^FS
+ ^FO171,119^GB259,0,2^FS
+ ^PQ1,0,1,Y^XZ
+
+ """.trimIndent()
+
+
+ var templateBytes: ByteArray? = null
+
+ try {
+// Convert template ZPL string to a UTF-8 encoded byte array, which will be sent as an extra with the intent
+ //templateBytes = templateData.getBytes("UTF-8");
+ templateBytes = templateData.toByteArray()
+ } catch (e: UnsupportedEncodingException) {
+ // Handle exception
+ Log.d("VERDNATURA::","Error"+e.message)
+ }
+ val intent = Intent()
+ intent.component = ComponentName(
+ "com.zebra.printconnect",
+ "com.zebra.printconnect.print.TemplatePrintWithContentService"
+ )
+
+ intent.putExtra(
+ "com.zebra.printconnect.PrintService.TEMPLATE_DATA",
+ templateBytes
+ )
+ intent.putExtra("com.zebra.printconnect.PrintService.VARIABLE_DATA", variableData)
+ intent.putExtra(
+ "com.zebra.printconnect.PrintService.RESULT_RECEIVER",
+ buildIPCSafeReceiver(object : ResultReceiver(null) {
+
+ override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {
+ super.onReceiveResult(resultCode, resultData)
+
+ if (resultCode == 0) {
+ // Result code 0 indicates success
+ } else {
+ // Handle unsuccessful print
+// Error message (null on successful print)
+ val errorMessage =
+ resultData?.getString("com.zebra.printconnect.PrintService.ERROR_MESSAGE")
+ Toast.makeText(context, errorMessage, Toast.LENGTH_LONG).show()
+ }
+ }
+
+ })
+ )
+
+ requireContext().startService(intent)
+ }
+
+ private fun printTemplate() {
+ // Define a hash map of variable data
+ // Strings used for keys will be replaced by their corresponding values in your template file's ZPL
+ var variableData = HashMap()
+ variableData.put("%PRODUCT_NAME%", "Bananas")
+ variableData.put("%MSRP%", "$1.00")
+ variableData.put("%PCT%", "50")
+ variableData.put("%FINAL%", "$0.50")
+ variableData.put("%UPC_CODE%", "12345678")
+ val intent = Intent()
+ intent.component = ComponentName(
+ "com.zebra.printconnect",
+ "com.zebra.printconnect.print.TemplatePrintService"
+ )
+
+ intent.putExtra(
+ "com.zebra.printconnect.PrintService.TEMPLATE_FILE_NAME",
+ "PriceTagTemplate.zpl"
+ )
+ intent.putExtra("com.zebra.printconnect.PrintService.VARIABLE_DATA", variableData)
+ intent.putExtra(
+ "com.zebra.printconnect.PrintService.RESULT_RECEIVER",
+ buildIPCSafeReceiver(object : ResultReceiver(null) {
+
+ override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {
+ super.onReceiveResult(resultCode, resultData)
+
+ if (resultCode == 0) {
+ // Result code 0 indicates success
+ } else {
+ // Handle unsuccessful print
+ // Error message (null on successful print)
+ val errorMessage =
+ resultData?.getString("com.zebra.printconnect.PrintService.ERROR_MESSAGE")
+ Toast.makeText(context, errorMessage, Toast.LENGTH_LONG).show()
+ }
+ }
+
+ })
+ )
+
+ requireContext().startService(intent)
+ }
+
+ private fun printStatus() {
+ val intent = Intent()
+ intent.component = ComponentName(
+ "com.zebra.printconnect",
+ "com.zebra.printconnect.print.GetPrinterStatusService"
+ )
+ Log.d("VERDNATURA::","Entrando en prinStatus")
+ intent.putExtra(
+ "com.zebra.printconnect.PrintService.RESULT_RECEIVER",
+ buildIPCSafeReceiver(object : ResultReceiver(null) {
+
+ override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {
+ super.onReceiveResult(resultCode, resultData)
+
+ if (resultCode == 0) {
+ Log.d("VERDNATURA::","Result 0")
+ // Result code 0 indicates success
+ val printerStatusMap =
+ resultData!!.getSerializable("PrinterStatusMap") as HashMap?
+ Toast.makeText(context, printerStatusMap.toString(), Toast.LENGTH_LONG).show()
+ } else {
+ // Handle unsuccessful print
+ // Error message (null on successful print)
+ Log.d("VERDNATURA::","Result <>0")
+ val errorMessage =
+ resultData?.getString("com.zebra.printconnect.PrintService.ERROR_MESSAGE")
+ Toast.makeText(context, errorMessage, Toast.LENGTH_LONG).show()
+ }
+ }
+
+ })
+ )
+
+ requireContext().startService(intent)
+}
+ private fun printDisconnect() {
+ val intent = Intent()
+ intent.component = ComponentName(
+ "com.zebra.printconnect",
+ "com.zebra.printconnect.print.UnselectPrinterService"
+ )
+
+ intent.putExtra(
+ "com.zebra.printconnect.PrintService.RESULT_RECEIVER",
+ buildIPCSafeReceiver(object : ResultReceiver(null) {
+
+ override fun onReceiveResult(resultCode: Int, resultData: Bundle?) {
+ super.onReceiveResult(resultCode, resultData)
+
+ if (resultCode == 0) {
+ // Result code 0 indicates success
+ val printerStatusMap =
+ resultData!!.getSerializable("PrinterStatusMap") as HashMap?
+ Toast.makeText(context, printerStatusMap.toString(), Toast.LENGTH_LONG).show()
+ } else {
+ // Handle unsuccessful print
+ // Error message (null on successful print)
+ val errorMessage =
+ resultData?.getString("com.zebra.printconnect.PrintService.ERROR_MESSAGE")
+ Toast.makeText(context, errorMessage, Toast.LENGTH_LONG).show()
+ }
+ }
+
+ })
+ )
+
+ requireContext().startService(intent)
+ }
+ private fun buildIPCSafeReceiver(resultReceiver: ResultReceiver): ResultReceiver? {
+ val parcel = Parcel.obtain()
+ resultReceiver.writeToParcel(parcel, 0)
+ parcel.setDataPosition(0)
+ val receiverForSending = ResultReceiver.CREATOR.createFromParcel(parcel)
+ parcel.recycle()
+ return receiverForSending
+ }
+
+ override fun observeViewModel() {
+
+ with(viewModel) {
+ qrresponse.observe(viewLifecycleOwner, Observer {
+ binding.splashProgress.visibility = View.GONE
+ if (it.isError) {
+
+ ma.messageWithSound(it.errorMessage + " " + itemscaned, true, false)
+
+ } else {
+
+ customDialog.setTitle(getString(R.string.info))
+ .setDescription(
+ getString(R.string.operation) + itemscaned + "." + getString(
+ R.string.answer
+ ) + it.response
+ )
+ .setOkButton(getString(R.string.accept)) {
+ customDialog.dismiss()
+ binding.mainToolbar.backButton.performClick()
+ }.show()
+
+ }
+
+ })
+ }
+
+ }
+
+
+}
+
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt
index 022dd2f8..53ee8a47 100644
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt
@@ -20,7 +20,6 @@ import es.verdnatura.presentation.view.feature.ajustes.model.AjustesItemVO
import es.verdnatura.presentation.view.feature.ajustes.model.Printers
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
-import timber.log.Timber.d
class AjustesFragment :
BaseFragment(AjustesViewModel::class) {
@@ -45,25 +44,34 @@ class AjustesFragment :
override fun onCreate(savedInstanceState: Bundle?) {
prefs = requireActivity().getSharedPreferences(PREFS_USER, 0)
customDialog = CustomDialog(requireContext())
- viewModel.inititializeDefaultAjusts(
- getData(SECTORDESCRIP),
- getData(SECTORFK).toInt(),
- getData(WAREHOUSEFK).toInt(),
- getData(WAGON),
- getData(TAGSTYPE),
- getData(PRINTERFK).toInt(),
- getData(PRINTERNAME),
+
+ //Tarea 4351 quitar if y dejar viewModel.operator solamente ( ya se encarga el viewmodel de hacer el initializeDefault y el WAGON POR NUMBEROFWAGONS)
- )
+ viewModel.operator_getNumberOfWagons(getData(USER), getData(PASSWORD))
+ // }else{
+ /* viewModel.inititializeDefaultAjusts(
+ getData(SECTORDESCRIP),
+ getData(SECTORFK).toInt(),
+ getData(WAREHOUSEFK).toInt(),
+ getData(NUMBEROFWAGONS),
+ getData(TAGSTYPE),
+ getData(PRINTERFK).toInt(),
+ getData(PRINTERNAME),
+
+
+ )*/
+ //}
super.onCreate(savedInstanceState)
+
}
override fun init() {
- binding.mainToolbar.toolbarTitle.text=getString(R.string.settings)
+ binding.mainToolbar.toolbarTitle.text = getString(R.string.settings)
+ // binding.splashProgress.visibility=View.VISIBLE
hideBackButton(binding.mainToolbar)
@@ -98,38 +106,34 @@ class AjustesFragment :
override fun onAjustesItemClickListener(item: AjustesItemVO) {
if (item.id == 0) {
binding.splashProgress.visibility = View.VISIBLE
- // viewModel.getSectors(getData(USER),getData(PASSWORD))
+ // viewModel.getSectors(getData(USER),getData(PASSWORD))
viewModel.getSectorsSalix(getData(TOKEN))
} else if (item.id == 5) {
requireActivity().onBackPressed()
} else if (item.id == 1) {
- val listCarros: ArrayList = ArrayList()
- listCarros.add("1")
- listCarros.add("2")
- listCarros.add("3")
- listCarros.add("4")
- listCarros.add("5")
- listCarros.add("6")
- wagonList = listCarros
+ //Tarea 4351 quitar parte de mostrar los carros y quitar del layout el ">" del final
- val array = arrayOfNulls(listCarros.size)
+ ma.messageWithSound("El número de carros ahora solo se puede modificar por los encargados", true, true,"Información",false)
+ /* val listCarros: ArrayList = ArrayList()
+ listCarros.add("1")
+ listCarros.add("2")
+ listCarros.add("3")
+ listCarros.add("4")
+ listCarros.add("5")
+ listCarros.add("6")
+ wagonList = listCarros
- showDialogCarros(array = listCarros.toArray(array))
+ val array = arrayOfNulls(listCarros.size)
+ showDialogCarros(array = listCarros.toArray(array))*/
} else if (item.id == 2) {
- viewModel.printer_get(getData(USER),getData(PASSWORD))
- /* val listVoz: ArrayList = ArrayList()
- listVoz.add("NO")
- listVoz.add("YES")
- vozList = listVoz
- val array = arrayOfNulls(listVoz.size)
- showDialogVoz(array = listVoz.toArray(array))*/
+ viewModel.printer_get(getData(USER), getData(PASSWORD))
} else if (item.id == 3) {
val listTagsType: ArrayList = ArrayList()
listTagsType.add(getString(R.string.stickers))
- // listTagsType.add(getString(R.string.smarttags))
+ // listTagsType.add(getString(R.string.smarttags))
tagsList = listTagsType
val array = arrayOfNulls(listTagsType.size)
showItemPickerType(array = listTagsType.toArray(array))
@@ -144,16 +148,36 @@ class AjustesFragment :
}
})
- workerupdateSector.observe(viewLifecycleOwner, {
+ operatorGetNumberOfWagons.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
- ma.messageWithSound(if (it.isError) it.errorMessage else{getString(R.string.sectorUpdated)},it.isError,false)
+ if (it.isError) {
+ ma.messageWithSound(it.errorMessage, it.isError, true)
+ setSettings()
+ } else {
+ saveDataInt(NUMBEROFWAGONS, it.response!!)
+ setSettings()
+ }
+
+ }
+ workerupdateSector.observe(viewLifecycleOwner, {
+ binding.splashProgress.visibility = View.GONE
+
+ ma.messageWithSound(
+ if (it.isError) it.errorMessage else {
+ getString(R.string.sectorUpdated)
+ }, it.isError, false
+ )
})
- workerupdatePrinter.observe(viewLifecycleOwner, {
+ workerupdatePrinter.observe(viewLifecycleOwner, {
binding.splashProgress.visibility = View.GONE
- ma.messageWithSound(if (it.isError) it.errorMessage else{getString(R.string.printerUpdated)},it.isError,false)
+ ma.messageWithSound(
+ if (it.isError) it.errorMessage else {
+ getString(R.string.printerUpdated)
+ }, it.isError, false
+ )
})
binding.ajustessItems.adapter = ajustesAdapter
@@ -164,7 +188,8 @@ class AjustesFragment :
event.getContentIfNotHandled().notNull {
binding.splashProgress.visibility = View.INVISIBLE
if (it.list.isNotEmpty() && it.list.get(0).isError) {
- customDialog.setTitle(getString(R.string.error)).setDescription(it.list.get(0).errorMessage)
+ customDialog.setTitle(getString(R.string.error))
+ .setDescription(it.list.get(0).errorMessage)
.setOkButton(getString(R.string.Close)) {
customDialog.dismiss()
}.show()
@@ -194,7 +219,8 @@ class AjustesFragment :
event.getContentIfNotHandled().notNull {
binding.splashProgress.visibility = View.INVISIBLE
if (it.list.isNotEmpty() && it.list.get(0).isError) {
- customDialog.setTitle(getString(R.string.error)).setDescription(it.list.get(0).errorMessage)
+ customDialog.setTitle(getString(R.string.error))
+ .setDescription(it.list.get(0).errorMessage)
.setOkButton(getString(R.string.Close)) {
customDialog.dismiss()
}.show()
@@ -206,7 +232,7 @@ class AjustesFragment :
listPrinters.add(it.name)
}
val array = arrayOfNulls(listPrinters.size)
- printersList= it.list
+ printersList = it.list
showDialogPrinters(listPrinters.toArray(array))
} else {
@@ -224,6 +250,21 @@ class AjustesFragment :
super.observeViewModel()
}
+ private fun setSettings() {
+
+ //Tarea 4351 modificar el WAGON por NUMBEROFWAGONS
+ viewModel.inititializeDefaultAjusts(
+ getData(SECTORDESCRIP),
+ getData(SECTORFK).toInt(),
+ getData(WAREHOUSEFK).toInt(),
+ getData(NUMBEROFWAGONS),
+ getData(TAGSTYPE),
+ getData(PRINTERFK).toInt(),
+ getData(PRINTERNAME),
+
+
+ )
+ }
private fun showDialogPrinters(array: Array) {
val builder = AlertDialog.Builder(this.context)
@@ -240,7 +281,11 @@ class AjustesFragment :
editor.apply()
viewModel.ajustesitem.get(2).selected = it.name
- viewModel.worker_updatePrinter(getData(USER),getData(PASSWORD),it.id.toString())
+ viewModel.worker_updatePrinter(
+ getData(USER),
+ getData(PASSWORD),
+ it.id.toString()
+ )
ajustesAdapter!!.notifyDataSetChanged()
return@forEach
@@ -270,7 +315,11 @@ class AjustesFragment :
viewModel.ajustesitem.get(0).sectorFk = it.id
viewModel.ajustesitem.get(0).warehouse = it.warehouseFk
viewModel.ajustesitem.get(0).selected = it.description
- viewModel.worker_updateSector(getData(USER),getData(PASSWORD),it.id.toString())
+ viewModel.worker_updateSector(
+ getData(USER),
+ getData(PASSWORD),
+ it.id.toString()
+ )
ajustesAdapter!!.notifyDataSetChanged()
return@forEach
@@ -282,34 +331,34 @@ class AjustesFragment :
dialog.show()
}
- /* private fun showDialogVoz(array: Array) {
- val builder = AlertDialog.Builder(this.context)
+ /* private fun showDialogVoz(array: Array) {
+ val builder = AlertDialog.Builder(this.context)
- builder.setTitle(getString(R.string.Seleccionaunsector))
- builder.setItems(array) { _, which ->
- val selected = array[which]
- vozList.forEach {
- if (it.equals(selected)) {
- val editor = prefs!!.edit()
- editor.putString(VOZ, it)
- editor.apply()
+ builder.setTitle(getString(R.string.Seleccionaunsector))
+ builder.setItems(array) { _, which ->
+ val selected = array[which]
+ vozList.forEach {
+ if (it.equals(selected)) {
+ val editor = prefs!!.edit()
+ editor.putString(VOZ, it)
+ editor.apply()
- viewModel.ajustesitem.get(2).selected = it
+ viewModel.ajustesitem.get(2).selected = it
- ajustesAdapter!!.notifyDataSetChanged()
+ ajustesAdapter!!.notifyDataSetChanged()
- return@forEach
- }
- }
+ return@forEach
+ }
+ }
- }
+ }
- val dialog = builder.create()
- dialog.show()
- }*/
+ val dialog = builder.create()
+ dialog.show()
+ }*/
private fun showDialogCarros(array: Array) {
val builder = AlertDialog.Builder(this.context)
@@ -364,17 +413,17 @@ class AjustesFragment :
}
- /* fun setDefaults(key: String?, value: String?, context: Context?) {
- val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
- val editor = preferences.edit()
- editor.putString(key, value)
- editor.commit()
- }*/
+ /* fun setDefaults(key: String?, value: String?, context: Context?) {
+ val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
+ val editor = preferences.edit()
+ editor.putString(key, value)
+ editor.commit()
+ }*/
- /* private fun getDefaults(key: String?, context: Context?): String? {
- val preferences = PreferenceManager.getDefaultSharedPreferences(context)
- return preferences.getString(key, null)
- }*/
+ /* private fun getDefaults(key: String?, context: Context?): String? {
+ val preferences = PreferenceManager.getDefaultSharedPreferences(context)
+ return preferences.getString(key, null)
+ }*/
private fun copyanddrag(string: String): Boolean {
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt
index 6d872102..53aa75bf 100644
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt
@@ -7,10 +7,12 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Transformations
import es.verdnatura.R
import es.verdnatura.domain.GetAjustesUserCase
+import es.verdnatura.domain.GetLoginUserCase
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.ResponseItemNumber
import es.verdnatura.presentation.common.ResponseItemVO
import es.verdnatura.presentation.view.feature.ajustes.model.*
import retrofit2.Call
@@ -24,6 +26,8 @@ class AjustesViewModel(context: Context) : BaseViewModel() {
private val contextApp=context
private val getAjustesUserCase: GetAjustesUserCase = GetAjustesUserCase(context)
+ private val getLoginUserCase: GetLoginUserCase = GetLoginUserCase(context)
+
val version: String = "5.0.0"
private val _ajustesitem by lazy { ArrayList() }
@@ -47,6 +51,10 @@ class AjustesViewModel(context: Context) : BaseViewModel() {
get
() = _printerList
+ private val _operatorGetNumberOfWagons by lazy { MutableLiveData() }
+ val operatorGetNumberOfWagons: LiveData
+ get() = _operatorGetNumberOfWagons
+
val loadSectorList = Transformations.map(_sectorList) { Event(it) }
val loadprintersList = Transformations.map(_printerList) { Event(it) }
@@ -257,13 +265,47 @@ class AjustesViewModel(context: Context) : BaseViewModel() {
)
}
- /*if (response.body() != null){
- _sectorList.value = response.body()?.let { SectorListVO(it) }
- }else{
- val listError:ArrayList = ArrayList()
- listError.add(SectorItemVO(0,"",0,true,"Error en la llamada sector_get"))
- _sectorList.value = SectorListVO(listError)
- }*/
+
+ }
+
+ })
+ }
+
+ fun operator_getNumberOfWagons(user: String, password: String) {
+
+ getLoginUserCase.operator_getNumberOfWagons(user, password)
+ .enqueue(object : Callback {
+ override fun onFailure(call: Call, t: Throwable) {
+
+ _operatorGetNumberOfWagons.value = ResponseItemNumber(
+ null,
+ isError = true,
+ errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
+ )
+ }
+
+ override fun onResponse(
+ call: Call,
+ response: Response
+ ) {
+
+ if (!response.isSuccessful) {
+ _operatorGetNumberOfWagons.value = ResponseItemNumber(
+ null, true,
+ errorMessage = getMessageFromAllResponse(
+ nameofFunction(this),
+ response.message()
+ )
+ )
+ } else {
+
+ if (response.body() != null)
+ _operatorGetNumberOfWagons.value =
+ ResponseItemNumber(response.body(), isError = false)
+
+
+ }
+
}
})
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt
index b146808c..09cc2e0e 100644
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt
@@ -85,6 +85,9 @@ class CollectionFragment(
private lateinit var ticketToParking: String
private lateinit var ticketScanTxt: String
+ private var itemShelvingSaleSupplyAddCall = -1
+ private var saleTrackingCall = -1
+
//private var myKM: KeyguardManager? = null
private var positionUnmarked = -1
@@ -540,9 +543,24 @@ class CollectionFragment(
mpok?.start()
onQuantityOfShelvingSelected(itemShelvingFkStored)
} else {
+ var value = customDialogList.getValueTwo()
customDialogList.setValueTwo("")
- //showErrorMessage("El resultado del procedimiento barcodeToItem de la etiqueta escaneada es: " +it.response)
- showErrorMessage(getString(R.string.lineNotExist))
+
+ if (it.response.isEmpty()) {
+ showErrorMessage("Código artículo no existe. Por favor remite foto del artículo al dpto informática para comprobar si el código buyFk ha sido borrado")
+ viewModel.debug_add(
+ getData(USER),
+ getData(PASSWORD),
+ "buy_deletedFromApp",
+ value + "-" + sales[storedPosition].itemFk + "-" + getData(
+ USERFK
+ )
+ )
+ } else {
+ showErrorMessage(getString(R.string.lineNotExist))
+ }
+
+
if (mperror != null) mperror?.start()
}
}
@@ -699,7 +717,6 @@ class CollectionFragment(
})
responseDel.observe(viewLifecycleOwner, Observer {
-
if (it.isError) {
binding.splashProgress.visibility = GONE
if (!goBack) {
@@ -721,6 +738,9 @@ class CollectionFragment(
}
})
+
+
+
responseItemShelvingUpdate.observe(viewLifecycleOwner, Observer {
if (it.isError) {
@@ -742,6 +762,51 @@ class CollectionFragment(
goBack = false
}
})
+
+ responseSaleReplace.observe(viewLifecycleOwner, Observer {
+
+ if (it.isError) {
+
+ if (!goBack) {
+
+ ma.messageWithSound(it.errorMessage, it.isError, true)
+
+ }
+
+
+ } else {
+ /* viewModel.saleTrackingDel(
+ getData(USER),
+ getData(PASSWORD),
+ saleFk = sales[positionUnmarked].saleFk
+ )*/
+
+ goBack = false
+ }
+ })
+ responseItemShelvingSaleSupplyAdd.observe(viewLifecycleOwner, Observer {
+
+ if (it.isError) {
+
+ if (!goBack) {
+
+ ma.messageWithSound(it.errorMessage, it.isError, true)
+
+ }
+
+
+ } else {
+ /* viewModel.saleTrackingDel(
+ getData(USER),
+ getData(PASSWORD),
+ saleFk = sales[positionUnmarked].saleFk
+ )*/
+
+ goBack = false
+ }
+ })
+
+
responseSalixMessage.observe(viewLifecycleOwner, Observer {
@@ -884,12 +949,12 @@ class CollectionFragment(
//sales = salesList.sortedWith(compareBy({it.placements.get(0).placement}))
// SalesSorter()
- for (s in sales) {
- Log.d(
- "VERDNATURA::",
- "La sale es ${s.saleFk} El item es ${s.itemFk} y su picked ${s.picked} y saleorder ${s.saleOrder}"
- )
- }
+ /* for (s in sales) {
+ Log.d(
+ "VERDNATURA::",
+ "La sale es ${s.saleFk} El item es ${s.itemFk} y su picked ${s.picked} y saleorder ${s.saleOrder}"
+ )
+ }*/
saleAdapter =
SaleAdapter(sales, pasillerosItemClickListener!!, object : OnQuantityClickListener {
@@ -1079,8 +1144,12 @@ class CollectionFragment(
}
} else if (type == CONTROLADOR || type == PRECHECKER) {
- //////Log.i("VERDNATURA:","El tipo es controlador")
+
+ // checkSaleGroup()
+
for (saleVO in sales) {
+ //0-Salegroup
+
if (saleVO.isControlled == "0") {
//1- Por itemFk
if (txtscan == saleVO.itemFk) {
@@ -1098,6 +1167,7 @@ class CollectionFragment(
isBreak = true
}
}
+
if (isBreak) break
}
index += 1
@@ -1106,7 +1176,7 @@ class CollectionFragment(
if (!isOk) {
if (txtscan.contains("-")) {
- Log.d("VERDNATURA::", "VAMOS A PARKING DESDE PANTALLA CONTROLADOR")
+ // Log.d("VERDNATURA::", "VAMOS A PARKING DESDE PANTALLA CONTROLADOR")
if (tickets.size > 0) {
@@ -1119,7 +1189,7 @@ class CollectionFragment(
collectionFk = tickets[0]
)
- Log.d("VERDNATURA::", "LA COLECTION ES ${tickets[0]}")
+ // Log.d("VERDNATURA::", "LA COLECTION ES ${tickets[0]}")
/* viewModel.parking(
getData(USER),
@@ -1163,6 +1233,16 @@ class CollectionFragment(
}
+ /*private fun checkSaleGroup(txtscan: String) {
+
+ for (i in sales.indices) {
+ if (sales[i].saleGroupFk == txtscan) {
+ markLine(i, type)
+ }
+
+ }
+ }*/
+
private fun findSale(txtscan: String, position: Int) {
var isOk = false
if (type == SACADOR) {
@@ -1423,10 +1503,9 @@ class CollectionFragment(
binding.splashProgress.visibility =
VISIBLE
- /* var working_in_test = true // sergio: en proves app
- if (working_in_test) {*/
+
viewModel.getIdFromCodeSalix(
- token = getData(USER),
+ token = getData(TOKEN),
code = customDialogList.getValueTwo(),
)
/* } else {
@@ -1504,8 +1583,7 @@ class CollectionFragment(
itemShelvingFkStored = itemShelvingFk
binding.splashProgress.visibility = View.VISIBLE
- /* var working_in_test = true //sergio: en proves app
- if (working_in_test) {*/
+
viewModel.getIdFromCodeSalix(
getData(TOKEN),
code = customDialogList.getValueTwo()
@@ -1919,9 +1997,11 @@ class CollectionFragment(
if (type.equals("CHECKER") && (isMarking && (getData(SECTORDESCRIP).uppercase() != getString(
- R.string.sectorALGEMESI) && getData(SECTORDESCRIP).uppercase() != getString(
- R.string.sectorALGEMESINEW)
- ) )
+ R.string.sectorALGEMESI
+ ) && getData(SECTORDESCRIP).uppercase() != getString(
+ R.string.sectorALGEMESINEW
+ )
+ ))
) {
@@ -2544,6 +2624,8 @@ class CollectionFragment(
vUserFk = mistakeSale?.workerFk!!,
vTypeFk = it.id
)
+
+
getString(R.string.errorRegistered).toast(requireContext())
customDialogList.dismiss()
}
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt
index 608f323a..52de4652 100644
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt
@@ -48,6 +48,15 @@ class CollectionViewModel(context: Context) : BaseViewModel() {
val response: LiveData
get() = _response
+ private val _responseItemShelvingSaleSupplyAdd by lazy { MutableLiveData() }
+ val responseItemShelvingSaleSupplyAdd: LiveData
+ get() = _responseItemShelvingSaleSupplyAdd
+
+ private val _responseSaleReplace by lazy { MutableLiveData() }
+ val responseSaleReplace: LiveData
+ get() = _responseSaleReplace
+
+
private val _responseParking by lazy { MutableLiveData() }
val responseParking: LiveData
get() = _responseParking
@@ -187,17 +196,17 @@ class CollectionViewModel(context: Context) : BaseViewModel() {
vStateFk,
vIsChecked,
vBuyFk
- ).enqueue(object : Callback {
- override fun onFailure(call: Call, t: Throwable) {
- _response.value = ResponseItemVO(
+ ).enqueue(object : Callback {
+ override fun onFailure(call: Call, t: Throwable) {
+ _responseSaleReplace.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
)
}
- override fun onResponse(call: Call, response: Response) {
+ override fun onResponse(call: Call, response: Response) {
if (!response.isSuccessful) {
- _response.value = ResponseItemVO(
+ _responseSaleReplace.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
@@ -205,7 +214,7 @@ class CollectionViewModel(context: Context) : BaseViewModel() {
)
)
} else {
- _response.value = ResponseItemVO(isError = false, response = response.body()!!)
+ _responseSaleReplace.value = ResponseItemVO(isError = false, response = "")
}
}
})
@@ -275,7 +284,7 @@ class CollectionViewModel(context: Context) : BaseViewModel() {
quantity
).enqueue(object : Callback {
override fun onFailure(call: Call, t: Throwable) {
- _response.value = ResponseItemVO(
+ _responseItemShelvingSaleSupplyAdd.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
)
@@ -283,7 +292,7 @@ class CollectionViewModel(context: Context) : BaseViewModel() {
override fun onResponse(call: Call, response: Response) {
if (!response.isSuccessful) {
- _response.value = ResponseItemVO(
+ _responseItemShelvingSaleSupplyAdd.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
@@ -291,7 +300,7 @@ class CollectionViewModel(context: Context) : BaseViewModel() {
)
)
} else {
- _response.value = ResponseItemVO(isError = false, response = response.message())
+ _responseItemShelvingSaleSupplyAdd.value = ResponseItemVO(isError = false, response = response.message())
}
}
})
@@ -735,6 +744,37 @@ class CollectionViewModel(context: Context) : BaseViewModel() {
})
}
+ fun debug_add(
+ usuario: String,
+ password: String,
+ buyFk: String,
+ message: String
+ ) {
+ getSacadorControladorUserCase.debug_add(usuario, password, buyFk, message)
+ .enqueue(object : Callback {
+ override fun onFailure(call: Call, t: Throwable) {
+ _response.value = ResponseItemVO(
+ isError = true,
+ errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
+ )
+ }
+
+ override fun onResponse(call: Call, response: Response) {
+ if (!response.isSuccessful) {
+ _response.value = ResponseItemVO(
+ isError = true,
+ errorMessage = getMessageFromAllResponse(
+ nameofFunction(this),
+ response.message()
+ )
+ )
+ } else {
+ _response.value =
+ ResponseItemVO(isError = false, response = "")
+ }
+ }
+ })
+ }
fun getIdFromCode(usuario: String, password: String, code: String) {
@@ -786,7 +826,7 @@ class CollectionViewModel(context: Context) : BaseViewModel() {
)
} else {
_responseCode.value =
- ResponseItemVO(isError = false, response = response.body()!!)
+ ResponseItemVO(isError = false, response = if (response.body()==null) "" else {response.body()!!})
}
}
})
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryFragment.kt
index f82e603f..3834731a 100644
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryFragment.kt
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryFragment.kt
@@ -34,8 +34,9 @@ class InventaryFragment :
private var listInvetoryAux: ArrayList = ArrayList()
private lateinit var customDialog: CustomDialog
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
- // private var reload = false
- // private var hideLoad = true
+
+ // private var reload = false
+ // private var hideLoad = true
private var layoutManager: LinearLayoutManager? = null
private var firstVisiblePosition = 0
private var secondVisiblePosition = 1
@@ -165,7 +166,10 @@ class InventaryFragment :
it.itemFk.contains(
binding.filterItemFk.text.toString(),
true
- ) || it.producer.contains(binding.filterItemFk.text.toString(), true)
+ ) || it.producer.contains(
+ binding.filterItemFk.text.toString(),
+ true
+ ) || it.longName.contains(binding.filterItemFk.text.toString(),ignoreCase = true)
})
}
@@ -228,8 +232,8 @@ class InventaryFragment :
customDialog.dismiss()
}.setKoButton(getString(R.string.cancel)) {
- customDialog.dismiss()
- }.show()
+ customDialog.dismiss()
+ }.show()
}
}, onPasillerosItemClickListener = pasillerosItemClickListener!!)
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt
index 883622fb..683df6d6 100644
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt
@@ -66,27 +66,35 @@ class LoginFragment : BaseFragment(LoginVi
"base_url",
binding.edittextServer.text.toString()
)
- if (binding.edittextServer.text!!.contains("test-app.verdnatura.es")) {
+ val working_in_test = false
+ if (working_in_test) {
saveData(
"base_urlSalix",
- "https://test-salix.verdnatura.es/api/"
- // "https://test-salix.verdnatura.es/" //localhost desde emulador 10.0.2.2:3000
- // "http://localhost:3000/api/"
- //"http://10.0.2.2:3000/api/" //-> desde emulador 10.0.2.2:3000
- )
+ "http://localhost:3000/api/"
+ )
} else {
- saveData(
- "base_urlSalix",
- "https://salix.verdnatura.es/api/"
- /*working_in_test*/
- // "http://localhost:3000/api/"
- //"http://10.0.2.2:3000/api/" //-> desde emulador 10.0.2.2:3000
- )
+ if (binding.edittextServer.text!!.contains("test-app.verdnatura.es")) {
+ saveData(
+ "base_urlSalix",
+ "https://test-salix.verdnatura.es/api/"
+ // "https://test-salix.verdnatura.es/" //localhost desde emulador 10.0.2.2:3000
+ // "http://localhost:3000/api/"
+ //"http://10.0.2.2:3000/api/" //-> desde emulador 10.0.2.2:3000
+ )
+ } else {
+ saveData(
+ "base_urlSalix",
+ "https://salix.verdnatura.es/api/"
+ /*working_in_test*/
+ // "http://localhost:3000/api/"
+ //"http://10.0.2.2:3000/api/" //-> desde emulador 10.0.2.2:3000
+ )
+
+ }
}
-
"${getString(R.string.serverSalix)}${getData("base_urlSalix")})".toast(
requireContext()
)
@@ -209,6 +217,13 @@ class LoginFragment : BaseFragment(LoginVi
binding.edittextUsername.text.toString(),
binding.edittextPassword.text.toString()
)
+
+
+ /* viewModel.operator_getNumberOfWagons(
+ binding.edittextUsername.text.toString(),
+ binding.edittextPassword.text.toString()
+ )*/
+
viewModel.worker_getPrinter(
binding.edittextUsername.text.toString(),
binding.edittextPassword.text.toString()
@@ -274,7 +289,37 @@ class LoginFragment : BaseFragment(LoginVi
}
+ operatorAdd.observe(viewLifecycleOwner) {
+ if (it.isError) {
+ customDialog.setTitle(getString(R.string.info))
+ .setDescription(it.errorMessage)
+ .setOkButton(getString(R.string.close)) {
+ customDialog.dismiss()
+ }.show()
+ }
+ viewModel.operator_getNumberOfWagons(getData(USER),getData(PASSWORD))
+
+ viewModel.device_checkLogin(
+ binding.edittextUsername.text.toString(),
+ binding.edittextPassword.text.toString(),
+ getData(ANDROID_ID)
+ )
+ }
+
+ operatorGetNumberOfWagons.observe(viewLifecycleOwner) {
+
+ if (!it.isError) {
+ saveDataInt(NUMBEROFWAGONS, it.response!!)
+ } else {
+ customDialog.setTitle(getString(R.string.error)).setDescription(it.errorMessage)
+ .setOkButton(getString(R.string.close)) {
+ customDialog.dismiss()
+ }.show()
+ }
+
+
+ }
devicelogresponse.observe(viewLifecycleOwner) {
@@ -336,7 +381,13 @@ class LoginFragment : BaseFragment(LoginVi
saveTokenPref("")
customDialog.setTitle(getString(R.string.error))
- .setDescription(if (it.errorMessage.contains("Unauthorized")){getString(R.string.messageUserError)}else{it.errorMessage})
+ .setDescription(
+ if (it.errorMessage.contains("Unauthorized")) {
+ getString(R.string.messageUserError)
+ } else {
+ it.errorMessage
+ }
+ )
.setOkButton(
getString(R.string.accept)
) {
@@ -345,11 +396,15 @@ class LoginFragment : BaseFragment(LoginVi
}.show()
} else {
saveTokenPref(it.token)
- viewModel.device_checkLogin(
+
+ //Tarea 4351 quitar el if y poner e device_checkLogin a continuación del response de operator_add
+ viewModel.operator_add(getData(USER),getData(PASSWORD))
+
+ /* viewModel.device_checkLogin(
binding.edittextUsername.text.toString(),
binding.edittextPassword.text.toString(),
getData(ANDROID_ID)
- )
+ )*/
}
}
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt
index a39963d5..46c3829f 100644
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt
@@ -1,26 +1,23 @@
package es.verdnatura.presentation.view.feature.login.fragment
import android.content.Context
-import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Transformations
import com.google.gson.Gson
import com.google.gson.JsonObject
import com.google.gson.reflect.TypeToken
-import es.verdnatura.domain.GetAjustesUserCase
import es.verdnatura.domain.GetLoginUserCase
import es.verdnatura.domain.NodeJsService
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.ResponseItemNumber
import es.verdnatura.presentation.common.ResponseItemVO
import es.verdnatura.presentation.view.feature.ajustes.model.Printers
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
import es.verdnatura.presentation.view.feature.ajustes.model.WorkerPrintersList
-import es.verdnatura.presentation.view.feature.historicovehiculo.model.ItemHistoricoVehiculo
-import es.verdnatura.presentation.view.feature.historicovehiculo.model.ItemHistoricoVehiculoList
import es.verdnatura.presentation.view.feature.login.model.LoginDevice
import es.verdnatura.presentation.view.feature.login.model.LoginSalixVO
import es.verdnatura.presentation.view.feature.login.model.versionApp
@@ -29,11 +26,8 @@ import es.verdnatura.presentation.view.feature.paletizador.model.itemsExpedition
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
-import timber.log.Timber
-import timber.log.Timber.d
-class LoginViewModel(context: Context) : BaseViewModel()
-{
+class LoginViewModel(context: Context) : BaseViewModel() {
private val getLoginUserCase: GetLoginUserCase = GetLoginUserCase(context)
@@ -46,6 +40,10 @@ class LoginViewModel(context: Context) : BaseViewModel()
val devicelogresponse: LiveData
get() = _devicelogresponse
+ private val _operatorAdd by lazy { MutableLiveData() }
+ val operatorAdd: LiveData
+ get() = _operatorAdd
+
private val _versionappitem by lazy { MutableLiveData() }
val versionappitem: LiveData
get() = _versionappitem
@@ -71,21 +69,21 @@ class LoginViewModel(context: Context) : BaseViewModel()
val workergetPrinter: LiveData
get() = _workergetPrinter
+ private val _operatorGetNumberOfWagons by lazy { MutableLiveData() }
+ val operatorGetNumberOfWagons: LiveData
+ get() = _operatorGetNumberOfWagons
+
private val _workerPrintList by lazy { MutableLiveData() }
val loadWorkerPrintList = Transformations.map(_workerPrintList) { Event(it) }
- fun loginSalix(user: String, password: String)
- {
- getLoginUserCase.salixLogin(user, password).enqueue(object : Callback
- {
- override fun onResponse(call: Call, response: Response)
- {
+ fun loginSalix(user: String, password: String) {
+ getLoginUserCase.salixLogin(user, password).enqueue(object : Callback {
+ override fun onResponse(call: Call, response: Response) {
val loginSalixVO: LoginSalixVO?
- if (response.body() != null)
- {
+ if (response.body() != null) {
loginSalixVO = response.body()?.token?.let {
LoginSalixVO(
@@ -94,17 +92,18 @@ class LoginViewModel(context: Context) : BaseViewModel()
it,
isError = false,
errorMessage = ""
- )
+ )
}
- } else
- {
+ } else {
loginSalixVO = LoginSalixVO(
user,
password,
isError = true,
- errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message()
- ))
+ errorMessage = getMessageFromAllResponse(
+ nameofFunction(this), response.message()
+ )
+ )
}
@@ -112,44 +111,41 @@ class LoginViewModel(context: Context) : BaseViewModel()
_loginsalixitem.value = loginSalixVO
}
- override fun onFailure(call: Call, t: Throwable)
- {
+ override fun onFailure(call: Call, t: Throwable) {
val loginSalixVO =
LoginSalixVO(
user,
password,
"",
isError = true,
- errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!)
- )
+ errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
+ )
_loginsalixitem.value = loginSalixVO
}
})
}
- fun device_checkLogin(user: String, password: String, android_id: String)
- {
+ fun device_checkLogin(user: String, password: String, android_id: String) {
getLoginUserCase.device_checkLogin(user, password, android_id)
- .enqueue(object : Callback
- {
- override fun onResponse(call: Call, response: Response)
- {
+ .enqueue(object : Callback {
+ override fun onResponse(call: Call, response: Response) {
val loginDevice: LoginDevice?
- if (!response.isSuccessful)
- {
- loginDevice = LoginDevice(
- isError = true,
- errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message()))
+ if (!response.isSuccessful) {
+ loginDevice = LoginDevice(
+ isError = true,
+ errorMessage = getMessageFromAllResponse(
+ nameofFunction(this),
+ response.message()
+ )
+ )
- } else
- {
- if (response.body() != null)
- {
+ } else {
+ if (response.body() != null) {
loginDevice = response.body()?.let {
@@ -157,76 +153,79 @@ class LoginViewModel(context: Context) : BaseViewModel()
it.vMessage, it.vIsAuthorized,
isError = false,
errorMessage = ""
- )
+ )
}
- } else
- {
+ } else {
loginDevice = LoginDevice(
isError = true,
- errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())
- )
+ errorMessage = getMessageFromAllResponse(
+ nameofFunction(this),
+ response.message()
+ )
+ )
}
}
_logindevice.value = loginDevice
}
- override fun onFailure(call: Call, t: Throwable)
- {
+ override fun onFailure(call: Call, t: Throwable) {
val loginDevice =
LoginDevice(
"",
"",
isError = true,
- errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!)
- )
+ errorMessage = getMessageFromAllResponse(
+ nameofFunction(this),
+ t.message!!
+ )
+ )
_logindevice.value = loginDevice
}
})
}
-
- fun worker_getId(user: String, password: String)
- {
+ fun worker_getId(user: String, password: String) {
getLoginUserCase.worker_getId(user, password)
- .enqueue(object : Callback
- {
- override fun onResponse(call: Call, response: Response)
- {
+ .enqueue(object : Callback {
+ override fun onResponse(call: Call, response: Response) {
val workerId: workerId?
- if (response.body() != null)
- {
+ if (response.body() != null) {
workerId = workerId(
response.body().toString(),
isError = false,
errorMessage = ""
- )
+ )
- } else
- {
+ } else {
workerId = workerId(
isError = true,
- errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())
- )
+ errorMessage = getMessageFromAllResponse(
+ nameofFunction(this),
+ response.message()
+ )
+ )
}
_workerId.value = workerId
}
- override fun onFailure(call: Call, t: Throwable)
- {
+ override fun onFailure(call: Call, t: Throwable) {
val workerId =
workerId(
isError = true,
- errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!)
- )
+ errorMessage = getMessageFromAllResponse(
+ nameofFunction(this),
+ t.message!!
+ )
+ )
_workerId.value = workerId
}
@@ -234,57 +233,46 @@ class LoginViewModel(context: Context) : BaseViewModel()
}
-
fun deviceLog_add(
user: String, password: String, app: String, versionApp: String, android_id: String
- )
- {
+ ) {
getLoginUserCase.deviceLog_add(user, password, app, versionApp, android_id)
- .enqueue(object : Callback
- {
- override fun onResponse(call: Call, response: Response)
- {
+ .enqueue(object : Callback {
+ override fun onResponse(call: Call, response: Response) {
- if (!response.isSuccessful)
- {
+ if (!response.isSuccessful) {
- messageError(nameofFunction(this),response.message())
+ messageError(nameofFunction(this), response.message())
}
}
- override fun onFailure(call: Call, t: Throwable)
- {
+ override fun onFailure(call: Call, t: Throwable) {
- messageError(nameofFunction(this),t.message!!)
+ messageError(nameofFunction(this), t.message!!)
}
})
}
- fun messageError(callFunction:String,message: String)
- {
+ fun messageError(callFunction: String, message: String) {
_devicelogresponse.value = ResponseItemVO(
isError = true,
- errorMessage = getMessageFromAllResponse(callFunction,message)
- )
+ errorMessage = getMessageFromAllResponse(callFunction, message)
+ )
}
- fun checkVersion(user: String, password: String, nameApp: String)
- {
+ fun checkVersion(user: String, password: String, nameApp: String) {
getLoginUserCase.checkVersion(user, password, nameApp)
- .enqueue(object : Callback
- {
- override fun onResponse(call: Call, response: Response)
- {
+ .enqueue(object : Callback {
+ override fun onResponse(call: Call, response: Response) {
//var versionApp: versionApp?
- if (response.body() != null)
- {
+ if (response.body() != null) {
- _versionappitem.value = response.body()?.let {
+ _versionappitem.value = response.body()?.let {
versionApp(
it.appname,
@@ -293,53 +281,57 @@ class LoginViewModel(context: Context) : BaseViewModel()
it.url,
isError = false,
errorMessage = ""
- )
+ )
}
- } else
- {
+ } else {
_versionappitem.value = versionApp(
user,
password,
isError = true,
- errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())
- )
+ errorMessage = getMessageFromAllResponse(
+ nameofFunction(this),
+ response.message()
+ )
+ )
}
- // _versionappitem.value = versionApp
+ // _versionappitem.value = versionApp
}
- override fun onFailure(call: Call, t: Throwable)
- {
+ override fun onFailure(call: Call, t: Throwable) {
_versionappitem.value =
versionApp(
nameApp,
"",
isError = true,
- errorMessage =getMessageFromAllResponse(nameofFunction(this), t.message!!)
- )
+ errorMessage = getMessageFromAllResponse(
+ nameofFunction(this),
+ t.message!!
+ )
+ )
//_versionappitem.value = versionApp
}
})
}
- /* fun nodeJsTest(smarttag: String, wagon: String, shelving: String)
- {
- getLoginUserCase.nodeJsTest(smarttag, wagon, shelving)
- .enqueue(object : Callback
- {
- override fun onResponse(
- call: Call,
- response: Response
- )
- {
+ /* fun nodeJsTest(smarttag: String, wagon: String, shelving: String)
+ {
+ getLoginUserCase.nodeJsTest(smarttag, wagon, shelving)
+ .enqueue(object : Callback
+ {
+ override fun onResponse(
+ call: Call,
+ response: Response
+ )
+ {
- val workerId: NodeJsService.SmartTagNode?
+ val workerId: NodeJsService.SmartTagNode?
- *//* if (response.isSuccessful()){
+ *//* if (response.isSuccessful()){
//Log.i("VERDNATURA::","OK")
}
@@ -380,16 +372,14 @@ class LoginViewModel(context: Context) : BaseViewModel()
})
}*/
- fun getListFromJSON(json: JsonObject): MutableList
- {
+ fun getListFromJSON(json: JsonObject): MutableList {
val gson = Gson()
var list = mutableListOf()
// val mapType = object : TypeToken