Versión 6.1.3 más textos cambiados y quitadas llamadas a collection_updateState
This commit is contained in:
parent
6b374d72b7
commit
f8ac0a95bc
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="1.8" />
|
||||
<bytecodeTargetLevel target="11" />
|
||||
</component>
|
||||
</project>
|
|
@ -5,6 +5,7 @@
|
|||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="testRunner" value="PLATFORM" />
|
||||
<option name="disableWrapperSourceDistributionNotification" value="true" />
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="modules">
|
||||
|
|
|
@ -21,5 +21,10 @@
|
|||
<option name="name" value="Google" />
|
||||
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="maven" />
|
||||
<option name="name" value="maven" />
|
||||
<option name="url" value="https://jitpack.io" />
|
||||
</remote-repository>
|
||||
</component>
|
||||
</project>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<component name="RunConfigurationProducerService">
|
||||
<option name="ignoredProducers">
|
||||
<set>
|
||||
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
|
||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
|
||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
|
||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
|
||||
|
|
|
@ -14,8 +14,9 @@ android {
|
|||
applicationId "es.verdnatura"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 29
|
||||
versionCode 55
|
||||
versionName "5.4.5"
|
||||
versionCode 60
|
||||
// versionName "5.4.4"
|
||||
versionName "6.1.3"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
|
@ -84,4 +85,7 @@ dependencies {
|
|||
implementation 'com.google.firebase:firebase-analytics:17.5.0'
|
||||
implementation 'com.google.firebase:firebase-crashlytics:17.2.1'
|
||||
|
||||
//search
|
||||
implementation 'com.github.mirrajabi:search-dialog:1.1'
|
||||
|
||||
}
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"version": 2,
|
||||
"artifactType": {
|
||||
"type": "APK",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "es.verdnatura",
|
||||
"variantName": "processReleaseResources",
|
||||
"elements": [
|
||||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"versionCode": 60,
|
||||
"versionName": "6.1.3",
|
||||
"outputFile": "app-release.apk"
|
||||
}
|
||||
]
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -3,6 +3,7 @@ package es.verdnatura.di
|
|||
import es.verdnatura.presentation.view.feature.ajustes.fragment.AjustesViewModel
|
||||
import es.verdnatura.presentation.view.feature.articulo.fragment.ItemCardViewModel
|
||||
import es.verdnatura.presentation.view.feature.buscaritem.fragment.BuscarItemViewModel
|
||||
import es.verdnatura.presentation.view.feature.buscaritemall.fragment.BuscarItemAllViewModel
|
||||
import es.verdnatura.presentation.view.feature.calidad.fragment.BuyersViewModel
|
||||
import es.verdnatura.presentation.view.feature.calidad.fragment.QaualityViewModel
|
||||
import es.verdnatura.presentation.view.feature.collection.fragment.CollectionViewModel
|
||||
|
@ -53,6 +54,11 @@ val viewModelModule = module{
|
|||
BuscarItemViewModel(androidContext())
|
||||
}
|
||||
|
||||
// Pasilleros / Buscar Item 2
|
||||
viewModel {
|
||||
BuscarItemAllViewModel(androidContext())
|
||||
}
|
||||
|
||||
// Pasilleros / Inventario
|
||||
viewModel {
|
||||
InventaryViewModel(androidContext())
|
||||
|
|
|
@ -3,6 +3,7 @@ package es.verdnatura.domain
|
|||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.preference.PreferenceManager
|
||||
import android.util.Log
|
||||
import okhttp3.OkHttpClient
|
||||
import retrofit2.Retrofit
|
||||
import retrofit2.converter.gson.GsonConverterFactory
|
||||
|
@ -13,8 +14,8 @@ class ApiUtils {
|
|||
companion object {
|
||||
//const val BASE_URL:String = "http://192.168.1.54:8009/"
|
||||
const val BASE_URL:String = "https://app.verdnatura.es/"
|
||||
|
||||
|
||||
//const val BASE_URL:String = "https://test-app.verdnatura.es/"
|
||||
//const val BASE_URL:String = "http://10.1.4.186/"
|
||||
|
||||
fun getApiService(context: Context):VerdnaturaService{
|
||||
val retrofit = Retrofit.Builder()
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package es.verdnatura.domain
|
||||
|
||||
import android.content.Context
|
||||
import es.verdnatura.presentation.view.feature.buscaritemall.model.ItemLocationAll
|
||||
import retrofit2.Call
|
||||
|
||||
class GetBuscarItemAllUserCase(context: Context) : RestClient(context) {
|
||||
|
||||
fun searchItemsUbicadorAll(usuario:String,password:String,itemFk:String) : Call<List<ItemLocationAll>> {
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(itemFk)
|
||||
return restClient!!.searchItemsUbicadorAll("json","1",usuario,password,"application/json",params = params)
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
package es.verdnatura.domain
|
||||
|
||||
import android.content.Context
|
||||
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
|
||||
import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO
|
||||
import es.verdnatura.presentation.view.feature.faltas.model.ItemFaltasVO
|
||||
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
|
||||
import retrofit2.Call
|
||||
|
@ -13,6 +15,13 @@ class GetInventaryUserCase(context: Context) : RestClient(context) {
|
|||
return restClient!!.itemShelvingRadar("json","1",usuario,password,"application/json",params = params)
|
||||
}
|
||||
|
||||
fun itemShelvingRadarFilterBuyer(usuario:String,password:String,buyerFk:String,warehouseFk: String) : Call<List<ItemInventaryVO>> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
params.add(buyerFk)
|
||||
params.add(warehouseFk)
|
||||
return restClient!!.itemShelvingRadarFilterBuyer("json","1",usuario,password,"application/json",params = params)
|
||||
}
|
||||
|
||||
fun faultsReview(usuario:String,password:String,warehouseFk:String) : Call<List<ItemFaltasVO>> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
params.add(warehouseFk)
|
||||
|
@ -26,4 +35,10 @@ class GetInventaryUserCase(context: Context) : RestClient(context) {
|
|||
return restClient!!.faultsReview_isChecked("json","1",usuario,password,"application/json",params = params)
|
||||
}
|
||||
|
||||
|
||||
fun itemShelvingBuyerGet(usuario:String,password:String) : Call<List<BuyerVO>> {
|
||||
return restClient!!.itemShelvingBuyerGet("json","1",usuario,password,"application/json")
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -2,6 +2,7 @@ package es.verdnatura.domain
|
|||
|
||||
import android.content.Context
|
||||
import es.verdnatura.presentation.view.feature.articulo.model.ItemCardVO
|
||||
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
|
||||
import es.verdnatura.presentation.view.feature.historico.model.ItemHistoricoVO
|
||||
import retrofit2.Call
|
||||
|
||||
|
@ -14,6 +15,10 @@ class GetItemCardUserCase(context: Context) : RestClient(context) {
|
|||
return restClient!!.getItemCard("json","1",usuario,password,"application/json",params = params)
|
||||
}
|
||||
|
||||
fun getItemPackingType(usuario:String,password:String) : Call<List<ItemPackingType>> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
return restClient!!.getItemPackingType("json","1",usuario,password,"application/json",params = params)
|
||||
}
|
||||
|
||||
fun itemStockUpdate(usuario:String,password:String,itemFk:String,warehouseFk:String,newVisible:String,isTrash:String ) : Call<String> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
|
@ -57,6 +62,14 @@ class GetItemCardUserCase(context: Context) : RestClient(context) {
|
|||
return restClient!!.updatePacking("json","1",usuario,password,"application/json",params = params)
|
||||
}
|
||||
|
||||
fun updatePackingType(usuario:String,password:String,itemFk:String,ItemPackingType:String) : Call<Boolean> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
params.add(itemFk)
|
||||
params.add(ItemPackingType)
|
||||
return restClient!!.updatePackingType("json","1",usuario,password,"application/json",params = params)
|
||||
}
|
||||
|
||||
|
||||
fun itemSaveMin(usuario:String,password:String,itemFk:String,value:String) : Call<String> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
params.add(itemFk)
|
||||
|
|
|
@ -3,12 +3,13 @@ package es.verdnatura.domain
|
|||
import android.content.Context
|
||||
import es.verdnatura.presentation.view.feature.login.model.LoginSalixVO
|
||||
import es.verdnatura.presentation.view.feature.login.model.SalixMessageVO
|
||||
import es.verdnatura.presentation.view.feature.login.model.versionApp
|
||||
import retrofit2.Call
|
||||
|
||||
class GetLoginUserCase(context: Context) : RestClient(context) {
|
||||
|
||||
fun login(usuario:String,password:String) : Call<String>{
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(usuario)
|
||||
params.add(password)
|
||||
return restClient!!.login("json","1",usuario,password,"application/json",params)
|
||||
|
@ -18,8 +19,8 @@ class GetLoginUserCase(context: Context) : RestClient(context) {
|
|||
return salixClient!!.login("application/json", LoginSalixVO(usuario,password))
|
||||
}
|
||||
|
||||
fun checkVersion(usuario:String,password:String,version:String) : Call<Boolean> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
fun checkVersion_old(usuario:String,password:String,version:String) : Call<Boolean> {
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(version)
|
||||
return restClient!!.version("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
@ -28,4 +29,10 @@ class GetLoginUserCase(context: Context) : RestClient(context) {
|
|||
return salixClient!!.sendChekingPresence(content_type = "application/json", authorization = token, params = SalixMessageVO(workerId = workerId,message = message))
|
||||
}
|
||||
|
||||
fun checkVersion(usuario:String,password:String,nameApp:String) : Call<versionApp> {
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(nameApp)
|
||||
return restClient!!.version2("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
}
|
|
@ -12,59 +12,74 @@ class GetPaletizadoresUserCase(context: Context) : RestClient(context) {
|
|||
}
|
||||
|
||||
fun expeditionTruckAdd(usuario:String,password:String,vHour:String,vDescription:String) : Call<String> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(vHour)
|
||||
params.add(vDescription)
|
||||
// ////Log.i("VERDNATURA"," La hora es $vHour y descrip $vDescription")
|
||||
return restClient!!.expeditionTruckAdd("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
fun expeditionPallet_List(usuario:String,password:String,vTruckFk:String) : Call<List<ItemPalletVO>> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(vTruckFk)
|
||||
return restClient!!.expeditionPallet_List("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
fun expeditionScanAdd(usuario:String,password:String,vPalletFk:String,vTruckFk:String) : Call<List<ItemScanVO>> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(vPalletFk)
|
||||
params.add(vTruckFk)
|
||||
return restClient!!.expeditionScanAdd("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
fun expeditionScanPut(usuario:String,password:String,vPalletFk:String,vExpeditionFk:String) : Call<String> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(vPalletFk)
|
||||
params.add(vExpeditionFk)
|
||||
return restClient!!.expeditionScanPut("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
fun checkRouteExpeditionScanPut(usuario:String,password:String,vPalletFk:String,vExpeditionFk:String) : Call<String> {
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(vPalletFk)
|
||||
params.add(vExpeditionFk)
|
||||
return restClient!!.checkRouteExpeditionScanPut("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
|
||||
|
||||
fun expeditionPalletView(usuario:String,password:String,vPalletFk:String) : Call<List<ItemPalletViewVO>> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(vPalletFk)
|
||||
return restClient!!.expeditionPalletView("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
fun expeditionPalletDel(usuario:String,password:String,vPalletFk:String) : Call<String> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(vPalletFk)
|
||||
return restClient!!.expeditionPalletDel("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
fun expeditionScanList(usuario:String,password:String,vPalletFk:String) : Call<List<ItemExpeditionScanVO>> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(vPalletFk)
|
||||
return restClient!!.expeditionScanList("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
fun expeditionScanDel(usuario:String,password:String,vScanFk:String) : Call<String> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
val params:ArrayList<String> = ArrayList()
|
||||
params.add(vScanFk)
|
||||
return restClient!!.expeditionScanDel("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
fun expeditionPalletPrintSet(usuario:String,password:String,vPalletFk:String) : Call<String> {
|
||||
fun expeditionPalletPrintSet(
|
||||
usuario: String,
|
||||
password: String,
|
||||
vPalletFk: String,
|
||||
vSectorFk: String
|
||||
) : Call<String> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
params.add(vPalletFk)
|
||||
params.add(vSectorFk)
|
||||
return restClient!!.expeditionPalletPrintSet("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package es.verdnatura.domain
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import es.verdnatura.presentation.view.feature.collection.ItemVO
|
||||
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
|
||||
import es.verdnatura.presentation.view.feature.sacador.model.MistakeTypeVO
|
||||
|
@ -17,11 +18,14 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
|
|||
return restClient!!.collectionTicketGet("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
fun collectionNew(usuario:String,password:String,sectorFk:String) : Call<String> {
|
||||
fun collectionNew(usuario:String,password:String,sectorFk:String,carros:String) : Call<String> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
params.add(sectorFk)
|
||||
params.add(carros)
|
||||
return restClient!!.collectionNew("json","1",usuario,password,"application/json",params)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
fun collectionGet(usuario:String,password:String) : Call<List<CollectionVO>> {
|
||||
val params:ArrayList<String> = ArrayList();
|
||||
|
|
|
@ -4,6 +4,8 @@ package es.verdnatura.domain
|
|||
|
||||
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
|
||||
import es.verdnatura.presentation.view.feature.articulo.model.ItemCardVO
|
||||
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
|
||||
import es.verdnatura.presentation.view.feature.buscaritemall.model.ItemLocationAll
|
||||
import es.verdnatura.presentation.view.feature.buscaritem.model.ItemLocationVO
|
||||
import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO
|
||||
import es.verdnatura.presentation.view.feature.calidad.model.ItemBuyerVO
|
||||
|
@ -11,6 +13,7 @@ import es.verdnatura.presentation.view.feature.collection.ItemVO
|
|||
import es.verdnatura.presentation.view.feature.faltas.model.ItemFaltasVO
|
||||
import es.verdnatura.presentation.view.feature.historico.model.ItemHistoricoVO
|
||||
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
|
||||
import es.verdnatura.presentation.view.feature.login.model.versionApp
|
||||
import es.verdnatura.presentation.view.feature.paletizador.model.*
|
||||
import es.verdnatura.presentation.view.feature.presacador.model.PreSacadorItemVO
|
||||
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
|
||||
|
@ -46,6 +49,16 @@ interface VerdnaturaService {
|
|||
@Body params: List<String>):
|
||||
Call<Boolean>
|
||||
|
||||
@POST("/security/getVersion")
|
||||
fun version2(@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<String>):
|
||||
Call<versionApp>
|
||||
|
||||
|
||||
|
||||
//AJUSTES ========================================================================>
|
||||
@POST("almacennew/sector_get")
|
||||
|
@ -273,6 +286,17 @@ interface VerdnaturaService {
|
|||
@Body params: List<String>):
|
||||
Call<ItemCardVO>
|
||||
|
||||
@POST("almacennew/get_ItemPackingType")
|
||||
fun getItemPackingType(@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<String>):
|
||||
Call<List<ItemPackingType>>
|
||||
|
||||
|
||||
|
||||
@POST("almacennew/itemStockUpdate")
|
||||
fun itemStockUpdate(@Header("aplicacion") aplicacion: String,
|
||||
@Header("version") version: String,
|
||||
|
@ -318,6 +342,15 @@ interface VerdnaturaService {
|
|||
@Body params: List<String>):
|
||||
Call<String>
|
||||
|
||||
@POST("almacennew/update_ItemPackingType")
|
||||
fun updatePackingType(@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<String>):
|
||||
Call<Boolean>
|
||||
|
||||
@POST("almacennew/itemSaveMin")
|
||||
fun itemSaveMin(@Header("aplicacion") aplicacion: String,
|
||||
@Header("version") version: String,
|
||||
|
@ -347,7 +380,19 @@ interface VerdnaturaService {
|
|||
@Body params: List<String>):
|
||||
Call<List<ItemLocationVO>>
|
||||
|
||||
// BUSCAR ITEM ALL
|
||||
@POST("almacennew/getItemUbication")
|
||||
fun searchItemsUbicadorAll(@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<String>):
|
||||
Call<List<ItemLocationAll>>
|
||||
|
||||
//INVENTARIO ========================================================================>
|
||||
|
||||
|
||||
@POST("almacennew/itemShelvingRadar")
|
||||
fun itemShelvingRadar(@Header("aplicacion") aplicacion: String,
|
||||
@Header("version") version: String,
|
||||
|
@ -357,6 +402,15 @@ interface VerdnaturaService {
|
|||
@Body params: List<String>):
|
||||
Call<List<ItemInventaryVO>>
|
||||
|
||||
@POST("almacennew/itemShelving_filterBuyer")
|
||||
fun itemShelvingRadarFilterBuyer(@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<String>):
|
||||
Call<List<ItemInventaryVO>>
|
||||
|
||||
@POST("almacennew/faultsReview")
|
||||
fun faultsReview(@Header("aplicacion") aplicacion: String,
|
||||
@Header("version") version: String,
|
||||
|
@ -523,6 +577,17 @@ interface VerdnaturaService {
|
|||
@Body params: List<String>):
|
||||
Call<String>
|
||||
|
||||
@POST("almacennew/checkRouteExpeditionScanPut")
|
||||
fun checkRouteExpeditionScanPut(@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<String>):
|
||||
Call<String>
|
||||
|
||||
|
||||
|
||||
@POST("almacennew/expeditionPalletView")
|
||||
fun expeditionPalletView(@Header("aplicacion") aplicacion: String,
|
||||
@Header("version") version: String,
|
||||
|
@ -595,4 +660,7 @@ interface VerdnaturaService {
|
|||
@Header("Content-Type") content_type: String,
|
||||
@Body params: List<String>):
|
||||
Call<String>
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,8 +1,11 @@
|
|||
package es.verdnatura.presentation.base
|
||||
|
||||
import android.Manifest
|
||||
import android.app.AlarmManager
|
||||
import android.app.PendingIntent
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.content.pm.PackageManager
|
||||
import android.media.AudioManager
|
||||
import android.os.Build
|
||||
|
@ -23,7 +26,6 @@ import androidx.fragment.app.Fragment
|
|||
import es.verdnatura.domain.toast
|
||||
import es.verdnatura.presentation.common.mediaCurrentVolume
|
||||
import es.verdnatura.presentation.common.mediaMaxVolume
|
||||
import es.verdnatura.presentation.common.setMediaVolume
|
||||
import org.koin.androidx.viewmodel.ext.android.viewModel
|
||||
import java.util.*
|
||||
import kotlin.reflect.KClass
|
||||
|
@ -32,7 +34,7 @@ import kotlin.reflect.KClass
|
|||
abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelClass: KClass<V>) :
|
||||
Fragment(), TextToSpeech.OnInitListener , RecognitionListener{
|
||||
|
||||
|
||||
protected val TAG="VERDNATURA"
|
||||
protected val PREFS_USER = "es.verdnatura.user.prefs"
|
||||
protected val USERFK = "userFk"
|
||||
protected val USER = "user"
|
||||
|
@ -43,11 +45,18 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelCla
|
|||
protected val WAREHOUSEFK = "warehouseFk"
|
||||
protected val RECORDAR = "recordar"
|
||||
protected val VOZ = "voz"
|
||||
//nuevo campo número carros ajustes y campos para guardar el buyerid y buyernickname
|
||||
protected val BUYER = "buyernickname"
|
||||
protected val BUYERID="buyerid"
|
||||
protected val CARRO="carro"
|
||||
protected val WAREHOUSEFK_DEFAULT=60
|
||||
|
||||
protected val viewModel: V by viewModel(viewModelClass)
|
||||
protected lateinit var binding: T
|
||||
private var isOnReadyForSpeech = false
|
||||
|
||||
|
||||
|
||||
private var textToSpeech: TextToSpeech? = null
|
||||
private var mAudioManager:AudioManager? = null
|
||||
protected var mSpeechRecognizer: SpeechRecognizer? = null
|
||||
|
@ -101,6 +110,21 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelCla
|
|||
mAudioManager = requireActivity().getSystemService(Context.AUDIO_SERVICE) as AudioManager
|
||||
}
|
||||
|
||||
open fun restartapp(f : Fragment){
|
||||
val mStartActivity = Intent(context, f::class.java)
|
||||
val mPendingIntentId = 123456
|
||||
val mPendingIntent = PendingIntent.getActivity(
|
||||
context,
|
||||
mPendingIntentId,
|
||||
mStartActivity,
|
||||
PendingIntent.FLAG_CANCEL_CURRENT
|
||||
)
|
||||
val mgr = context!!.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||
mgr[AlarmManager.RTC, System.currentTimeMillis() + 100] = mPendingIntent
|
||||
System.exit(0)
|
||||
}
|
||||
|
||||
|
||||
open fun initialize(){
|
||||
//ESCUCHA
|
||||
try {
|
||||
|
@ -316,94 +340,107 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelCla
|
|||
mSpeechRecognizer = null
|
||||
}
|
||||
}
|
||||
fun saveBuyer(buyernickname: String) {
|
||||
val prefs: SharedPreferences = activity!!.getSharedPreferences(PREFS_USER, 0)
|
||||
val editor = prefs.edit()
|
||||
editor.putString(BUYER, buyernickname)
|
||||
editor.apply()
|
||||
}
|
||||
fun saveBuyerId(buyerid: String) {
|
||||
val prefs: SharedPreferences = activity!!.getSharedPreferences(PREFS_USER, 0)
|
||||
val editor = prefs.edit()
|
||||
editor.putString(BUYERID, buyerid)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
/*open fun wordToNumber(input: String?): Int {
|
||||
var input = input
|
||||
var isValidInput = true
|
||||
var result = 0
|
||||
var finalResult = 0
|
||||
if (input != null && input.length > 0) {
|
||||
input = input.replace("-".toRegex(), " ")
|
||||
input = input.toLowerCase().replace(" and".toRegex(), " ")
|
||||
val splittedParts =
|
||||
input.trim { it <= ' ' }.split("\\s+".toRegex()).toTypedArray()
|
||||
for (str in splittedParts) {
|
||||
if (!es.verdnatura.warehouse.UTILS.Utils.allowedStrings.contains(str)) {
|
||||
isValidInput = false
|
||||
return -1
|
||||
}
|
||||
}
|
||||
if (isValidInput) {
|
||||
|
||||
/*open fun wordToNumber(input: String?): Int {
|
||||
var input = input
|
||||
var isValidInput = true
|
||||
var result = 0
|
||||
var finalResult = 0
|
||||
if (input != null && input.length > 0) {
|
||||
input = input.replace("-".toRegex(), " ")
|
||||
input = input.toLowerCase().replace(" and".toRegex(), " ")
|
||||
val splittedParts =
|
||||
input.trim { it <= ' ' }.split("\\s+".toRegex()).toTypedArray()
|
||||
for (str in splittedParts) {
|
||||
if (str.equals("cero", ignoreCase = true)) {
|
||||
result += 0
|
||||
} else if (str.equals("uno", ignoreCase = true)) {
|
||||
result += 1
|
||||
} else if (str.equals("dos", ignoreCase = true)) {
|
||||
result += 2
|
||||
} else if (str.equals("tres", ignoreCase = true)) {
|
||||
result += 3
|
||||
} else if (str.equals("cuatro", ignoreCase = true)) {
|
||||
result += 4
|
||||
} else if (str.equals("cinco", ignoreCase = true)) {
|
||||
result += 5
|
||||
} else if (str.equals("seis", ignoreCase = true)) {
|
||||
result += 6
|
||||
} else if (str.equals("siete", ignoreCase = true)) {
|
||||
result += 7
|
||||
} else if (str.equals("ocho", ignoreCase = true)) {
|
||||
result += 8
|
||||
} else if (str.equals("nueve", ignoreCase = true)) {
|
||||
result += 9
|
||||
} else if (str.equals("diez", ignoreCase = true)) {
|
||||
result += 10
|
||||
} else if (str.equals("once", ignoreCase = true)) {
|
||||
result += 11
|
||||
} else if (str.equals("doce", ignoreCase = true)) {
|
||||
result += 12
|
||||
} else if (str.equals("trece", ignoreCase = true)) {
|
||||
result += 13
|
||||
} else if (str.equals("catorce", ignoreCase = true)) {
|
||||
result += 14
|
||||
} else if (str.equals("quince", ignoreCase = true)) {
|
||||
result += 15
|
||||
} else if (str.equals("dieziseis", ignoreCase = true)) {
|
||||
result += 16
|
||||
} else if (str.equals("diezisiete", ignoreCase = true)) {
|
||||
result += 17
|
||||
} else if (str.equals("dieziocho", ignoreCase = true)) {
|
||||
result += 18
|
||||
} else if (str.equals("diezinueve", ignoreCase = true)) {
|
||||
result += 19
|
||||
} else if (str.equals("veinte", ignoreCase = true)) {
|
||||
result += 20
|
||||
} else if (str.equals("treinta", ignoreCase = true)) {
|
||||
result += 30
|
||||
} else if (str.equals("cuarenta", ignoreCase = true)) {
|
||||
result += 40
|
||||
} else if (str.equals("cincuenta", ignoreCase = true)) {
|
||||
result += 50
|
||||
} else if (str.equals("sesenta", ignoreCase = true)) {
|
||||
result += 60
|
||||
} else if (str.equals("setenta", ignoreCase = true)) {
|
||||
result += 70
|
||||
} else if (str.equals("ochenta", ignoreCase = true)) {
|
||||
result += 80
|
||||
} else if (str.equals("noventa", ignoreCase = true)) {
|
||||
result += 90
|
||||
} else if (str.equals("cien", ignoreCase = true)) {
|
||||
result *= 100
|
||||
} else if (str.equals("mil", ignoreCase = true)) {
|
||||
result *= 1000
|
||||
finalResult += result
|
||||
result = 0
|
||||
if (!es.verdnatura.warehouse.UTILS.Utils.allowedStrings.contains(str)) {
|
||||
isValidInput = false
|
||||
return -1
|
||||
}
|
||||
}
|
||||
finalResult += result
|
||||
return finalResult
|
||||
if (isValidInput) {
|
||||
for (str in splittedParts) {
|
||||
if (str.equals("cero", ignoreCase = true)) {
|
||||
result += 0
|
||||
} else if (str.equals("uno", ignoreCase = true)) {
|
||||
result += 1
|
||||
} else if (str.equals("dos", ignoreCase = true)) {
|
||||
result += 2
|
||||
} else if (str.equals("tres", ignoreCase = true)) {
|
||||
result += 3
|
||||
} else if (str.equals("cuatro", ignoreCase = true)) {
|
||||
result += 4
|
||||
} else if (str.equals("cinco", ignoreCase = true)) {
|
||||
result += 5
|
||||
} else if (str.equals("seis", ignoreCase = true)) {
|
||||
result += 6
|
||||
} else if (str.equals("siete", ignoreCase = true)) {
|
||||
result += 7
|
||||
} else if (str.equals("ocho", ignoreCase = true)) {
|
||||
result += 8
|
||||
} else if (str.equals("nueve", ignoreCase = true)) {
|
||||
result += 9
|
||||
} else if (str.equals("diez", ignoreCase = true)) {
|
||||
result += 10
|
||||
} else if (str.equals("once", ignoreCase = true)) {
|
||||
result += 11
|
||||
} else if (str.equals("doce", ignoreCase = true)) {
|
||||
result += 12
|
||||
} else if (str.equals("trece", ignoreCase = true)) {
|
||||
result += 13
|
||||
} else if (str.equals("catorce", ignoreCase = true)) {
|
||||
result += 14
|
||||
} else if (str.equals("quince", ignoreCase = true)) {
|
||||
result += 15
|
||||
} else if (str.equals("dieziseis", ignoreCase = true)) {
|
||||
result += 16
|
||||
} else if (str.equals("diezisiete", ignoreCase = true)) {
|
||||
result += 17
|
||||
} else if (str.equals("dieziocho", ignoreCase = true)) {
|
||||
result += 18
|
||||
} else if (str.equals("diezinueve", ignoreCase = true)) {
|
||||
result += 19
|
||||
} else if (str.equals("veinte", ignoreCase = true)) {
|
||||
result += 20
|
||||
} else if (str.equals("treinta", ignoreCase = true)) {
|
||||
result += 30
|
||||
} else if (str.equals("cuarenta", ignoreCase = true)) {
|
||||
result += 40
|
||||
} else if (str.equals("cincuenta", ignoreCase = true)) {
|
||||
result += 50
|
||||
} else if (str.equals("sesenta", ignoreCase = true)) {
|
||||
result += 60
|
||||
} else if (str.equals("setenta", ignoreCase = true)) {
|
||||
result += 70
|
||||
} else if (str.equals("ochenta", ignoreCase = true)) {
|
||||
result += 80
|
||||
} else if (str.equals("noventa", ignoreCase = true)) {
|
||||
result += 90
|
||||
} else if (str.equals("cien", ignoreCase = true)) {
|
||||
result *= 100
|
||||
} else if (str.equals("mil", ignoreCase = true)) {
|
||||
result *= 1000
|
||||
finalResult += result
|
||||
result = 0
|
||||
}
|
||||
}
|
||||
finalResult += result
|
||||
return finalResult
|
||||
}
|
||||
}
|
||||
}
|
||||
return finalResult
|
||||
}*/
|
||||
return finalResult
|
||||
}*/
|
||||
}
|
||||
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
package es.verdnatura.presentation.view.feature.ajustes.fragment
|
||||
|
||||
import android.app.AlarmManager
|
||||
import android.app.AlertDialog
|
||||
import android.app.PendingIntent
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Bundle
|
||||
import android.preference.PreferenceManager
|
||||
import android.util.Log
|
||||
import android.view.KeyEvent
|
||||
import android.view.View
|
||||
import androidx.lifecycle.Observer
|
||||
|
@ -20,6 +24,8 @@ import es.verdnatura.presentation.view.component.CustomDialog
|
|||
import es.verdnatura.presentation.view.feature.ajustes.adapter.AjustesAdapter
|
||||
import es.verdnatura.presentation.view.feature.ajustes.model.AjustesItemVO
|
||||
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
|
||||
import es.verdnatura.presentation.view.feature.login.activity.LoginActivity
|
||||
import es.verdnatura.presentation.view.feature.login.fragment.LoginFragment
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import kotlinx.android.synthetic.main.fragment_ajustes.*
|
||||
import kotlinx.android.synthetic.main.fragment_ajustes.splash_progress
|
||||
|
@ -34,6 +40,8 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
|
|||
private var vozList:List<String> = listOf()
|
||||
private var prefs: SharedPreferences? = null
|
||||
private var ajustesAdapter: AjustesAdapter? = null
|
||||
//añadido
|
||||
private var carroList:List<String> = listOf()
|
||||
|
||||
companion object {
|
||||
fun newInstance() = AjustesFragment()
|
||||
|
@ -43,8 +51,9 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
|
|||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
prefs = activity!!.getSharedPreferences(PREFS_USER,0)
|
||||
customDialog = CustomDialog(requireContext())
|
||||
viewModel.inititializeDefaultAjusts(prefs!!.getString(SECTORDESCRIP,getString(R.string.Sinsector)).toString(),prefs!!.getInt(SECTORFK,0),prefs!!.getInt(WAREHOUSEFK,0),prefs!!.getString(VOZ,"NO").toString())
|
||||
|
||||
//modificat el InitilializeAjusts
|
||||
viewModel.inititializeDefaultAjusts(prefs!!.getString(SECTORDESCRIP,getString(R.string.Sinsector)).toString(),prefs!!.getInt(SECTORFK,0),prefs!!.getInt(WAREHOUSEFK,0),prefs!!.getString(VOZ,"NO").toString(),prefs!!.getString(CARRO,"2").toString())
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
|
@ -61,10 +70,17 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
|
|||
txtserver.setOnKeyListener(View.OnKeyListener { v, keyCode, event ->
|
||||
if (keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_UP) {
|
||||
this.setDefaults("base_url",txtserver.text.toString(),this.requireContext())
|
||||
this.setDefaults("base_url", edittext_server.text.toString(), this.requireContext())
|
||||
this.hideKeyboard()
|
||||
// sergio: se comenta línea de abajo porque da fallo en la app//
|
||||
// this.setDefaults("base_url", edittext_server.text.toString(), this.requireContext())
|
||||
this.hideKeyboard()
|
||||
//sergio:creada restartapp en BaseFragment por si es necesario utilizarla de nuevo.
|
||||
// se hace un restart por si se cambia el servidor para que tome nuevos valores
|
||||
|
||||
restartapp(this)
|
||||
|
||||
return@OnKeyListener false
|
||||
}
|
||||
|
||||
false
|
||||
})
|
||||
|
||||
|
@ -82,7 +98,22 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
|
|||
} else if (item.id == 1){
|
||||
activity!!.onBackPressed()
|
||||
}else if (item.id == 2){
|
||||
getString(R.string.Nodisponibleenestaversión).toast(requireContext())
|
||||
// ////Log.i("VERDNATURA","Carros pulsados")
|
||||
val listCarros : ArrayList<String> = ArrayList()
|
||||
listCarros.add("1")
|
||||
listCarros.add("2")
|
||||
listCarros.add("3")
|
||||
listCarros.add("4")
|
||||
listCarros.add("5")
|
||||
listCarros.add("6")
|
||||
carroList = listCarros
|
||||
|
||||
val array= arrayOfNulls<String>(listCarros.size)
|
||||
|
||||
showDialogCarros(array=listCarros.toArray(array))
|
||||
|
||||
// getString(R.string.Nodisponibleenestaversión).toast(requireContext())
|
||||
// getString(R.string.enbreveDisponible).toast(requireContext())
|
||||
}else if (item.id == 3){
|
||||
val listVoz : ArrayList<String> = ArrayList()
|
||||
listVoz.add("NO")
|
||||
|
@ -151,9 +182,7 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
val dialog = builder.create()
|
||||
dialog.show()
|
||||
}
|
||||
|
@ -170,7 +199,6 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
|
|||
val editor = prefs!!.edit()
|
||||
editor.putString(VOZ,it)
|
||||
editor.apply()
|
||||
|
||||
viewModel.ajustesitem.get(3).selected = it
|
||||
ajustesAdapter!!.notifyDataSetChanged()
|
||||
|
||||
|
@ -186,6 +214,36 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
|
|||
}
|
||||
|
||||
|
||||
//sergio : guardar datos
|
||||
private fun showDialogCarros(array:Array<String>){
|
||||
val builder = AlertDialog.Builder(this.context)
|
||||
|
||||
|
||||
builder.setTitle(getString(R.string.Seleccionauncarro))
|
||||
builder.setItems(array) { _, which ->
|
||||
val selected = array[which]
|
||||
carroList.forEach {
|
||||
if (it.equals(selected)){
|
||||
val editor = prefs!!.edit()
|
||||
editor.putString(CARRO,it)
|
||||
editor.apply()
|
||||
|
||||
viewModel.ajustesitem.get(2).selected = it
|
||||
ajustesAdapter!!.notifyDataSetChanged()
|
||||
|
||||
return@forEach
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
val dialog = builder.create()
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
|
||||
|
||||
fun setDefaults(key: String?, value: String?, context: Context?) {
|
||||
val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
val editor = preferences.edit()
|
||||
|
|
|
@ -35,7 +35,7 @@ class AjustesViewModel(context: Context) : BaseViewModel() {
|
|||
|
||||
|
||||
|
||||
fun inititializeDefaultAjusts(sectorDescrip: String,sectorFk : Int, warehouseFk : Int,vozDescrip:String) {
|
||||
fun inititializeDefaultAjusts(sectorDescrip: String,sectorFk : Int, warehouseFk : Int,vozDescrip:String,carroDescrip:String) {
|
||||
_ajustesitem.add(
|
||||
AjustesItemVO(0,
|
||||
"Sector",
|
||||
|
@ -54,7 +54,7 @@ class AjustesViewModel(context: Context) : BaseViewModel() {
|
|||
_ajustesitem.add(
|
||||
AjustesItemVO(2,
|
||||
"Carros",
|
||||
"",
|
||||
carroDescrip,
|
||||
0,
|
||||
0)
|
||||
)
|
||||
|
|
|
@ -2,11 +2,15 @@ package es.verdnatura.presentation.view.feature.articulo.fragment
|
|||
|
||||
|
||||
|
||||
import android.app.AlertDialog
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import es.verdnatura.R
|
||||
|
@ -26,12 +30,17 @@ import es.verdnatura.presentation.view.feature.articulo.adapter.ItemCardAdapter
|
|||
import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO
|
||||
import es.verdnatura.presentation.view.feature.articulo.model.ItemCardRowVO
|
||||
import es.verdnatura.presentation.view.feature.articulo.model.ItemCardVO
|
||||
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
|
||||
import es.verdnatura.presentation.view.feature.calidad.model.BuyerListVO
|
||||
import es.verdnatura.presentation.view.feature.imageview.activity.ImageViewActivity
|
||||
import es.verdnatura.presentation.view.feature.inventario.adapter.ToolBarAdapter
|
||||
import es.verdnatura.presentation.view.feature.inventario.fragment.SearchBuyerModel
|
||||
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
|
||||
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import kotlinx.android.synthetic.main.buyers_fragment.*
|
||||
import kotlinx.android.synthetic.main.fragment_item_card.*
|
||||
import kotlinx.android.synthetic.main.fragment_item_card.splash_progress
|
||||
import kotlinx.android.synthetic.main.toolbar.*
|
||||
|
||||
class ItemCardFragment(
|
||||
|
@ -47,6 +56,9 @@ class ItemCardFragment(
|
|||
private var barcodeAdapter : BarcodeAdapter? = null
|
||||
private var listItemsRow:ArrayList<ItemCardRowVO> = ArrayList()
|
||||
private var listBarcodes:ArrayList<BarcodeVO> = ArrayList()
|
||||
private var itemsPackingType:ArrayList<ItemPackingType> = ArrayList()
|
||||
|
||||
|
||||
|
||||
private var itemInfoG:ItemCardVO? = null
|
||||
|
||||
|
@ -58,17 +70,23 @@ class ItemCardFragment(
|
|||
private lateinit var customDialogList: CustomDialogList
|
||||
private lateinit var customDialogTwo: CustomDialogTwoButtons
|
||||
|
||||
private val _buyersList by lazy { MutableLiveData<BuyerListVO>() }
|
||||
val buyersList: LiveData<BuyerListVO>
|
||||
get() = _buyersList
|
||||
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.fragment_item_card
|
||||
|
||||
override fun init() {
|
||||
itemcard_layout.visibility = View.GONE
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
setEvents()
|
||||
toolbar_title.text = "ItemCard"
|
||||
toolbar_title.text = getString(R.string.ConsultarArticulo)
|
||||
customDialog = CustomDialog(requireContext())
|
||||
customDialogInput = CustomDialogInput(requireContext())
|
||||
customDialogList = CustomDialogList(requireContext())
|
||||
customDialogTwo = CustomDialogTwoButtons(requireContext())
|
||||
//sergio: se le pasa el item desde otros fragments
|
||||
if (!itemFk.isNullOrEmpty()){
|
||||
getItemCard(itemFk)
|
||||
}
|
||||
|
@ -138,6 +156,7 @@ class ItemCardFragment(
|
|||
this.itemFk = itemFk
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
viewModel.getItemCard(itemFk,warehouseFk,user!!,password!!)
|
||||
viewModel.getItemPackingType(user!!,password!!)
|
||||
}
|
||||
|
||||
override fun observeViewModel() {
|
||||
|
@ -165,6 +184,13 @@ class ItemCardFragment(
|
|||
}
|
||||
})
|
||||
|
||||
itemspackinglist.observe(viewLifecycleOwner, Observer {
|
||||
splash_progress.visibility = View.GONE
|
||||
// Log.i("VERDNATURA","el code es $it.code")
|
||||
// Log.i("VERDNATURA","la descrip es $it.description")
|
||||
createItemTypeTypeList(it.list)
|
||||
})
|
||||
|
||||
response.observe(viewLifecycleOwner, Observer {
|
||||
splash_progress.visibility = View.GONE
|
||||
if (it.isError){
|
||||
|
@ -178,6 +204,20 @@ class ItemCardFragment(
|
|||
}
|
||||
}
|
||||
|
||||
private fun createItemTypeTypeList(list: List<ItemPackingType>) {
|
||||
itemsPackingType.clear()
|
||||
list.forEach { item ->
|
||||
if (!item.isError){
|
||||
try {
|
||||
itemsPackingType.add(ItemPackingType(item.code,item.description));
|
||||
// Log.i("VERDNATURA","Nombre encajado ${item.code} : ${item.description}")
|
||||
}catch (e:Exception){}
|
||||
}
|
||||
}}
|
||||
|
||||
|
||||
|
||||
|
||||
private fun setItemCard(itemInfo:ItemCardVO){
|
||||
itemInfoG = itemInfo
|
||||
toolbar_title.text = itemInfo.id+"-"+itemInfo.longName
|
||||
|
@ -190,7 +230,7 @@ class ItemCardFragment(
|
|||
itemcard_tag3.text = itemInfo.value6
|
||||
itemcard_tag4.text = itemInfo.value7 + " " + itemInfo.origin
|
||||
listItemsRow = ArrayList()
|
||||
listItemsRow.add(ItemCardRowVO(title = "Total",value = itemInfo.total,isEditable = false))
|
||||
listItemsRow.add(ItemCardRowVO(title = getString(R.string.total),value = itemInfo.total,isEditable = false))
|
||||
listItemsRow.add(ItemCardRowVO(title = getString(R.string.Disponible),value = itemInfo.available,isEditable = false))
|
||||
listItemsRow.add(ItemCardRowVO(title = getString(R.string.Ubicado),value = itemInfo.enAltillo,isEditable = false))
|
||||
|
||||
|
@ -201,16 +241,20 @@ class ItemCardFragment(
|
|||
listItemsRow.add(ItemCardRowVO(title = getString(R.string.BUSCARITEM),value = "",isEditable = true, action = "buscarItem"))
|
||||
//listItemsRow.add(ItemCardRowVO(title = "NICHO",value = itemInfo.nicho,isEditable = true, action = "itemPlacementSave"))
|
||||
// listItemsRow.add(ItemCardRowVO(title = "RESERVA",value = itemInfo.reserva,isEditable = true, action = "itemPlacementSave"))
|
||||
listItemsRow.add(ItemCardRowVO(title = "GROUPING",value = itemInfo.grouping,isEditable = true, action = "updateGrouping"))
|
||||
listItemsRow.add(ItemCardRowVO(title = "PACKING",value = itemInfo.packing,isEditable = true, action = "updatePacking"))
|
||||
listItemsRow.add(ItemCardRowVO(title = getString(R.string.Grouping),value = itemInfo.grouping,isEditable = true, action = "updateGrouping"))
|
||||
listItemsRow.add(ItemCardRowVO(title = getString(R.string.Packing),value = itemInfo.packing,isEditable = true, action = "updatePacking"))
|
||||
listItemsRow.add(ItemCardRowVO(title = getString(R.string.MINIMO),value = itemInfo.min,isEditable = true, action = "itemSaveMin"))
|
||||
listItemsRow.add(ItemCardRowVO(title = "BARCODE",barcodes = itemInfo.barcodes,isEditable = true, action = "toBarcode"))
|
||||
listItemsRow.add(ItemCardRowVO(title = getString(R.string.Barcode),barcodes = itemInfo.barcodes,isEditable = true, action = "toBarcode"))
|
||||
//sergio para itemTypePacking
|
||||
listItemsRow.add(ItemCardRowVO(title = getString(R.string.tipodeencajado),value = itemInfo.itemPackingTypeFk,isEditable = true, action = "updateSector"))
|
||||
|
||||
listBarcodes = itemInfo.barcodes as ArrayList<BarcodeVO>
|
||||
|
||||
adapter = ItemCardAdapter(listItemsRow,object: OnItemCardRowClickListener{
|
||||
override fun onItemCardRowClickListener(item: ItemCardRowVO) {
|
||||
|
||||
|
||||
if (item.action=="updateSector"){ showDialogSelectItemTypePacking()
|
||||
}else{
|
||||
if(item.action != "toBarcode" && item.action != "buscarItem" && item.action != "itemStockUpdateAdd" && item.action != "itemStockUpdateRemove"){
|
||||
customDialogInput.setTitle(item.title!!).setDescription("Valor actual: "+item.value!!).setOkButton("Guardar"){
|
||||
(activity as MainActivity).hideKeyboard(customDialogInput.getEditText())
|
||||
|
@ -281,7 +325,7 @@ class ItemCardFragment(
|
|||
return@setOnEditorActionListener true
|
||||
}
|
||||
false
|
||||
}
|
||||
}}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -360,8 +404,6 @@ class ItemCardFragment(
|
|||
}.show()
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun prepareItemStockUpdate2(itemB:ItemCardRowVO,value:String){
|
||||
|
@ -449,4 +491,27 @@ class ItemCardFragment(
|
|||
changeOfflineValue(item,"", listBarcodes)
|
||||
}
|
||||
|
||||
private fun showDialogSelectItemTypePacking(){
|
||||
|
||||
var array= arrayOfNulls<String>(itemsPackingType.size)
|
||||
for (indice in array.indices){
|
||||
array[indice]=itemsPackingType[indice].code + " : "+itemsPackingType[indice].description
|
||||
}
|
||||
val builder = AlertDialog.Builder(this.context)
|
||||
builder.setTitle(getString(R.string.mensajeseleccionencajado))
|
||||
.setItems(array
|
||||
) { dialog, position ->
|
||||
updateItemPackingType(itemsPackingType[position].code.toString());
|
||||
}
|
||||
|
||||
builder.create().show()
|
||||
}
|
||||
|
||||
private fun updateItemPackingType(itemPackingType:String) {
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
viewModel.updatePackingType(this.itemFk,user,password,itemPackingType)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2,12 +2,18 @@ package es.verdnatura.presentation.view.feature.articulo.fragment
|
|||
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import es.verdnatura.domain.GetItemCardUserCase
|
||||
import es.verdnatura.presentation.base.BaseViewModel
|
||||
import es.verdnatura.presentation.common.ResponseItemVO
|
||||
import es.verdnatura.presentation.view.feature.articulo.model.ItemCardVO
|
||||
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
|
||||
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingTypeList
|
||||
import es.verdnatura.presentation.view.feature.calidad.model.BuyerListVO
|
||||
import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO
|
||||
import es.verdnatura.presentation.view.feature.calidad.model.ItemBuyerListVO
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
|
@ -24,6 +30,10 @@ class ItemCardViewModel(context: Context) : BaseViewModel() {
|
|||
val response: LiveData<ResponseItemVO>
|
||||
get() = _response
|
||||
|
||||
private val _itemspackinglist by lazy { MutableLiveData<ItemPackingTypeList>() }
|
||||
val itemspackinglist: LiveData<ItemPackingTypeList>
|
||||
get() = _itemspackinglist
|
||||
|
||||
|
||||
fun getItemCard(itemFk:String,warehouseFk:String,user:String,password:String) {
|
||||
getItemCardUserCase.getItemCard(user,password,itemFk,warehouseFk).enqueue(object :Callback<ItemCardVO>{
|
||||
|
@ -42,6 +52,31 @@ class ItemCardViewModel(context: Context) : BaseViewModel() {
|
|||
})
|
||||
}
|
||||
|
||||
fun getItemPackingType(user:String,password:String) {
|
||||
getItemCardUserCase.getItemPackingType(user,password).enqueue(object :
|
||||
Callback<List<ItemPackingType>>{
|
||||
override fun onFailure(call: Call<List<ItemPackingType>>, t: Throwable) {
|
||||
val listError:ArrayList<ItemPackingType> = ArrayList()
|
||||
listError.add(ItemPackingType(isError = true,errorMessage = t.message!!))
|
||||
_itemspackinglist.value = ItemPackingTypeList(listError)
|
||||
}
|
||||
|
||||
override fun onResponse(call: Call<List<ItemPackingType>>, response: Response<List<ItemPackingType>>) {
|
||||
if (response.body() != null){
|
||||
_itemspackinglist.value = response.body()?.let { ItemPackingTypeList(it) }
|
||||
|
||||
}else{
|
||||
val listError:ArrayList<ItemPackingType> = ArrayList()
|
||||
listError.add(ItemPackingType(isError = true,errorMessage = "Error en la llamada de getItemPackingType"))
|
||||
_itemspackinglist.value = ItemPackingTypeList(listError)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
fun itemStockUpdate(itemFk:String,warehouseFk:String,user:String,password:String,newValue:String,isTrash:String){
|
||||
getItemCardUserCase.itemStockUpdate(user,password,itemFk,warehouseFk,newValue,isTrash).enqueue(object : Callback<String>{
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
|
@ -132,6 +167,27 @@ class ItemCardViewModel(context: Context) : BaseViewModel() {
|
|||
})
|
||||
}
|
||||
|
||||
//sergio ver como solucionar el tema del "Finish"
|
||||
fun updatePackingType(itemFk:String,user:String,password:String,itemPackingType:String){
|
||||
getItemCardUserCase.updatePackingType(user,password,itemFk,itemPackingType).enqueue(object : Callback<Boolean>{
|
||||
override fun onFailure(call: Call<Boolean>, t: Throwable) {
|
||||
_response.value = ResponseItemVO(isError = true,errorMessage = "Error al guardar PackingType "+itemFk+ " Respuesta:"+t.message!!)
|
||||
}
|
||||
|
||||
override fun onResponse(call: Call<Boolean>, response: Response<Boolean>) {
|
||||
if (response.body() == null){
|
||||
_response.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada updatePackingType")
|
||||
}else{
|
||||
//if (response.body()=="Finish"){
|
||||
// Log.i("VERDNATURA","Fisnih encontrado")}
|
||||
_response.value = ResponseItemVO(isError = false,response = response.body()!!.toString())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
fun itemSaveMin(itemFk:String,user:String,password:String,value:String){
|
||||
getItemCardUserCase.itemSaveMin(user,password,itemFk,value).enqueue(object : Callback<String>{
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
|
|
|
@ -29,7 +29,8 @@ class ItemCardVO (
|
|||
var isError: Boolean = false,
|
||||
var errorMessage:String = "",
|
||||
var urlImage200:String = "",
|
||||
var urlImage:String = ""
|
||||
var urlImage:String = "",
|
||||
var itemPackingTypeFk:String =" "
|
||||
)
|
||||
|
||||
class ItemCardRowVO (
|
||||
|
@ -46,3 +47,5 @@ class BarcodeVO(
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package es.verdnatura.presentation.view.feature.articulo.model
|
||||
|
||||
|
||||
|
||||
class ItemPackingType (
|
||||
|
||||
var code:String= "",
|
||||
var description:String = "",
|
||||
var isError: Boolean = false,
|
||||
var errorMessage:String = ""
|
||||
)
|
||||
|
||||
class ItemPackingTypeList (
|
||||
var list: List<ItemPackingType> = listOf()
|
||||
)
|
|
@ -41,7 +41,7 @@ class BuscarItemFragment(
|
|||
|
||||
override fun init() {
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
toolbar_title.text = "getItemUbication"
|
||||
toolbar_title.text = getString(R.string.getubicaition)
|
||||
customDialog = CustomDialog(requireContext())
|
||||
setEvents()
|
||||
if (!itemFk.isNullOrEmpty()){
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
package es.verdnatura.presentation.view.feature.buscaritemall.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import es.verdnatura.databinding.ItemLocationAllRowBinding
|
||||
import es.verdnatura.databinding.ItemLocationRowBinding
|
||||
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
|
||||
import es.verdnatura.presentation.view.feature.buscaritemall.model.ItemLocationAll
|
||||
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
|
||||
|
||||
class LocationAdapterAll (
|
||||
private val items: List<ItemLocationAll>,
|
||||
private val onPasillerosItemClickListener: OnPasillerosItemClickListener
|
||||
): RecyclerView.Adapter<LocationAdapterAll.ItemHolderAll> () {
|
||||
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolderAll{
|
||||
return ItemHolderAll(
|
||||
ItemLocationAllRowBinding.inflate(LayoutInflater.from(parent.context),parent,false)
|
||||
)
|
||||
}
|
||||
|
||||
override fun getItemCount() =items.size
|
||||
|
||||
override fun onBindViewHolder(holder: ItemHolderAll, position: Int) {
|
||||
holder.bind(items[position])
|
||||
holder.binding.root.setOnClickListener {
|
||||
onPasillerosItemClickListener.onPasillerosItemClickListener(PasillerosItemVO(title = "Ubicador"),items[position].Matricula)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class ItemHolderAll(
|
||||
val binding: ItemLocationAllRowBinding
|
||||
) : RecyclerView.ViewHolder(binding.root){
|
||||
private val res = binding.root.context.resources
|
||||
fun bind(item: ItemLocationAll) {
|
||||
binding.apply {
|
||||
this.item = item
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
package es.verdnatura.presentation.view.feature.buscaritem.fragment
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import es.verdnatura.R
|
||||
import es.verdnatura.databinding.FragmentBuscarItemAllBinding
|
||||
import es.verdnatura.domain.notNull
|
||||
import es.verdnatura.presentation.base.BaseFragment
|
||||
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
|
||||
import es.verdnatura.presentation.view.component.CustomDialog
|
||||
import es.verdnatura.presentation.view.feature.buscaritemall.adapter.LocationAdapterAll
|
||||
import es.verdnatura.presentation.view.feature.buscaritemall.fragment.BuscarItemAllViewModel
|
||||
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import kotlinx.android.synthetic.main.fragment_buscar_item.*
|
||||
import kotlinx.android.synthetic.main.fragment_buscar_item.edit_itemFk
|
||||
import kotlinx.android.synthetic.main.fragment_buscar_item.location_recyclerview
|
||||
import kotlinx.android.synthetic.main.fragment_buscar_item.splash_progress
|
||||
import kotlinx.android.synthetic.main.fragment_buscar_item_all.*
|
||||
import kotlinx.android.synthetic.main.fragment_inventary.*
|
||||
import kotlinx.android.synthetic.main.toolbar.*
|
||||
|
||||
class BuscarItemAllFragment(
|
||||
var itemFk:String = ""
|
||||
) : BaseFragment<FragmentBuscarItemAllBinding, BuscarItemAllViewModel>(BuscarItemAllViewModel::class) {
|
||||
|
||||
private var user = ""
|
||||
private var password = ""
|
||||
private var warehouseFk = ""
|
||||
private var adapter : LocationAdapterAll? = null
|
||||
private lateinit var customDialog: CustomDialog
|
||||
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
|
||||
|
||||
companion object {
|
||||
fun newInstance(entryPoint:String) = BuscarItemAllFragment(entryPoint)
|
||||
}
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
if (context is OnPasillerosItemClickListener) pasillerosItemClickListener = context
|
||||
super.onAttach(context)
|
||||
}
|
||||
override fun getLayoutId(): Int = R.layout.fragment_buscar_item_all
|
||||
|
||||
override fun init() {
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
toolbar_title.text = getString(R.string.getubicaition)
|
||||
customDialog = CustomDialog(requireContext())
|
||||
setEvents()
|
||||
if (!itemFk.isNullOrEmpty()){
|
||||
getLocations(itemFk)
|
||||
}
|
||||
super.init()
|
||||
}
|
||||
|
||||
|
||||
private fun setEvents(){
|
||||
edit_itemFk.requestFocus()
|
||||
edit_itemFk.setOnEditorActionListener { v, actionId, event ->
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
|
||||
if (!edit_itemFk.text.toString().isNullOrEmpty())
|
||||
getLocations(edit_itemFk.text.toString())
|
||||
edit_itemFk.setText("")
|
||||
(activity as MainActivity).hideKeyboard(edit_itemFk)
|
||||
return@setOnEditorActionListener true
|
||||
}
|
||||
false
|
||||
}
|
||||
|
||||
edit_itemFk.setOnKeyListener { v, keyCode, event ->
|
||||
Log.i("VERDNATURA","text")
|
||||
return@setOnKeyListener false}
|
||||
/*if (filter_itemFk.text.toString().isNullOrEmpty()){
|
||||
if (listInvetory.size != listInvetoryAux.size){
|
||||
listInvetory.removeAll(listInvetoryAux)
|
||||
listInvetoryAux.forEach {
|
||||
listInvetory.add(it)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
listInvetory.removeAll(listInvetoryAux)
|
||||
listInvetoryAux.forEach {
|
||||
if ((it.itemFk.contains(filter_itemFk.text.toString(),true)) || (it.producer?.contains(filter_itemFk.text.toString(),true))){
|
||||
listInvetory.add(it)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
LocationAdapterAll!!.notifyDataSetChanged()
|
||||
return@setOnKeyListener false
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
|
||||
backButton.setOnClickListener {
|
||||
activity!!.onBackPressed()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun getLocations(itemFk:String){
|
||||
val prefs: SharedPreferences = activity!!.getSharedPreferences(PREFS_USER,0)
|
||||
user = prefs.getString(USER,"").toString()
|
||||
password = prefs.getString(PASSWORD,"").toString()
|
||||
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString()
|
||||
this.itemFk = itemFk
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
viewModel.getLocationsAll(user,password,itemFk)
|
||||
}
|
||||
|
||||
override fun observeViewModel() {
|
||||
with(viewModel){
|
||||
loadLocationListAll.observe(viewLifecycleOwner, Observer { event ->
|
||||
|
||||
event.getContentIfNotHandled().notNull {
|
||||
splash_progress.visibility = View.GONE
|
||||
adapter = LocationAdapterAll(it.list,pasillerosItemClickListener!!)
|
||||
|
||||
location_all_recyclerview.adapter = adapter
|
||||
location_all_recyclerview.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
|
||||
|
||||
var totalVisible:Int = 0
|
||||
it.list.forEach {
|
||||
if (!it.visible.isNullOrEmpty())
|
||||
totalVisible += it.visible.toInt()
|
||||
}
|
||||
toolbar_title.text = "Item: "+itemFk+ " Total visible: "+totalVisible
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
package es.verdnatura.presentation.view.feature.buscaritemall.fragment
|
||||
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.Transformations
|
||||
import es.verdnatura.domain.GetBuscarItemAllUserCase
|
||||
import es.verdnatura.presentation.base.BaseViewModel
|
||||
import es.verdnatura.presentation.common.Event
|
||||
import es.verdnatura.presentation.view.feature.buscaritemall.model.ItemLocationAll
|
||||
import es.verdnatura.presentation.view.feature.buscaritemall.model.LocationListAll
|
||||
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
|
||||
class BuscarItemAllViewModel(context: Context) : BaseViewModel() {
|
||||
private val getBuscarItemAllUserCase: GetBuscarItemAllUserCase = GetBuscarItemAllUserCase(context)
|
||||
|
||||
|
||||
private val _locationListAll by lazy { MutableLiveData<LocationListAll>() }
|
||||
val locationListAll: LiveData<LocationListAll>
|
||||
get() = _locationListAll
|
||||
|
||||
|
||||
val loadLocationListAll = Transformations.map(_locationListAll) { Event(it) }
|
||||
|
||||
|
||||
fun getLocationsAll(user:String,password:String,itemFk:String){
|
||||
getBuscarItemAllUserCase.searchItemsUbicadorAll(user,password,itemFk).enqueue(object : Callback<List<ItemLocationAll>> {
|
||||
override fun onFailure(call: Call<List<ItemLocationAll>>, t: Throwable) {
|
||||
val listError:ArrayList<ItemLocationAll> = ArrayList()
|
||||
listError.add(ItemLocationAll(isError = true,errorMessage = t.message!!))
|
||||
_locationListAll.value = LocationListAll(listError)
|
||||
}
|
||||
|
||||
override fun onResponse(
|
||||
call: Call<List<ItemLocationAll>>,
|
||||
response: Response<List<ItemLocationAll>>
|
||||
) {
|
||||
if (response.body() != null){
|
||||
_locationListAll.value = response.body()?.let { LocationListAll(it) }
|
||||
}else{
|
||||
val listError:ArrayList<ItemLocationAll> = ArrayList()
|
||||
listError.add(ItemLocationAll(isError = true,errorMessage = "Error en la llamada de searchItemsUbicadorAll"))
|
||||
_locationListAll.value = LocationListAll(listError)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package es.verdnatura.presentation.view.feature.buscaritemall.model
|
||||
|
||||
|
||||
class ItemLocationAll (
|
||||
var Parking:String = "",
|
||||
var Matricula:String = "",
|
||||
var visible:String = "",
|
||||
var Disponible:String = "",
|
||||
var level:String = "",
|
||||
var created:String = "",
|
||||
var itemFk:String = "",
|
||||
val isError : Boolean = false,
|
||||
var errorMessage : String = ""
|
||||
)
|
||||
|
||||
class LocationListAll (
|
||||
var list: List<ItemLocationAll> = listOf()
|
||||
)
|
|
@ -62,7 +62,7 @@ class BuyersFragment : BaseFragment<BuyersFragmentBinding,BuyersViewModel>(Buyer
|
|||
customDialog = CustomDialog(requireContext())
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
toolbar_title.text = "itemShelving_BuyerGet"
|
||||
toolbar_title.text = getString(R.string.quality)
|
||||
setToolBar()
|
||||
setEvents()
|
||||
super.init()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package es.verdnatura.presentation.view.feature.calidad.model
|
||||
|
||||
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
|
||||
//import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
|
||||
|
||||
class BuyerVO (
|
||||
var userFk:String = "",
|
||||
|
|
|
@ -110,6 +110,7 @@ class CollectionFragment(
|
|||
mpok = MediaPlayer.create((activity as MainActivity),R.raw.ok)
|
||||
if (collection.tickets.isEmpty()){
|
||||
viewModel.collectionTicketGet(user,password,collection.collectionFk,sectorFk)
|
||||
Log.i("VERDNATURA","La collection es ${collection.collectionFk}")
|
||||
}
|
||||
|
||||
|
||||
|
@ -133,6 +134,8 @@ class CollectionFragment(
|
|||
toolbar_title.text = "collectionTicket_get"
|
||||
setToolBar()
|
||||
setEvents()
|
||||
|
||||
// Log.i("VERDNATURA","el type es $type")
|
||||
if (type == SACADOR && voz != "NO"){
|
||||
setSpeak()
|
||||
}
|
||||
|
@ -190,8 +193,9 @@ class CollectionFragment(
|
|||
hideKeyboards()
|
||||
scan_input.requestFocus()
|
||||
scan_input.setOnEditorActionListener { v, actionId, event ->
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {//ID=0 ACTION_NEXT ID=5 ACTION_UNESPECEFIED)
|
||||
if (!scan_input.text.toString().isNullOrEmpty()){
|
||||
////Log.i("VERDNATURA","Pita o no pita si encuentra. Diferencia si es matricula o no")
|
||||
findSale(scan_input.text.toString())
|
||||
}
|
||||
scan_input.setText("")
|
||||
|
@ -207,6 +211,7 @@ class CollectionFragment(
|
|||
collection_swipe.setOnRefreshListener {
|
||||
if (splash_progress != null) splash_progress.visibility = View.VISIBLE
|
||||
viewModel.collectionTicketGet(user,password,collection.collectionFk,sectorFk)
|
||||
Log.i("VERDNATURA","La collection es ${collection.collectionFk}")
|
||||
collection_swipe.isRefreshing = false
|
||||
}
|
||||
}
|
||||
|
@ -262,6 +267,7 @@ class CollectionFragment(
|
|||
}else{
|
||||
if (splash_progress != null) splash_progress.visibility = View.VISIBLE
|
||||
viewModel.collectionTicketGet(user,password,collection.collectionFk,sectorFk)
|
||||
Log.i("VERDNATURA","La collection es ${collection.collectionFk}")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -329,6 +335,7 @@ class CollectionFragment(
|
|||
if (tickets.firstOrNull { it == saleVO.ticketFk}.isNullOrEmpty())
|
||||
tickets.add(saleVO.ticketFk)
|
||||
}else if (type == CONTROLADOR){
|
||||
//sergio el type CHECKED =CONTROLADOR
|
||||
salesList.add(saleVO)
|
||||
if (tickets.firstOrNull { it == saleVO.ticketFk}.isNullOrEmpty())
|
||||
tickets.add(saleVO.ticketFk)
|
||||
|
@ -344,6 +351,7 @@ class CollectionFragment(
|
|||
sales.forEachIndexed { index, saleVO ->
|
||||
if (saleVO.saleFk == sale.saleFk){
|
||||
showQuantityDialog(index)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -355,6 +363,7 @@ class CollectionFragment(
|
|||
if (saleVO.saleFk == sale.saleFk){
|
||||
if (type == CONTROLADOR) {
|
||||
markLine(index,type)
|
||||
////Log.i("VERDNATURA","marcamos linea")
|
||||
} else if (type == SACADOR){
|
||||
if (sale.isPrepared == "0"){
|
||||
showScanner(index,sale)
|
||||
|
@ -385,7 +394,8 @@ class CollectionFragment(
|
|||
setListPosition(storedBackPosition,true)
|
||||
|
||||
setScrollListener(lm!!)
|
||||
changeInitTicketState()
|
||||
//sergio: se quita porque se realiza desde triggers
|
||||
// changeInitTicketState()
|
||||
|
||||
printObservations(observations)
|
||||
}
|
||||
|
@ -408,7 +418,6 @@ class CollectionFragment(
|
|||
}.show()
|
||||
}
|
||||
}
|
||||
|
||||
//SEARCH AND MARK
|
||||
private fun findSale(txtscan:String){
|
||||
goBack = false
|
||||
|
@ -420,6 +429,17 @@ class CollectionFragment(
|
|||
|
||||
if (type == SACADOR){
|
||||
for (saleVO in sales) {
|
||||
//sergio: pita si encuentra ticket
|
||||
////Log.i("VERDNATURA","SE busca en sales ${saleVO.ticketFk}")
|
||||
|
||||
if (saleVO.ticketFk==txtscan){
|
||||
isOk=true
|
||||
if ((isOk) && mpok != null) mpok!!.start()
|
||||
//Log.i("VERDNTURA","ENCONTRADO")
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if(saleVO.isPrepared != "1" && saleVO.isPreviousPrepared != "1"){
|
||||
//1- Por itemFk
|
||||
/* if (txtscan == saleVO.itemFk){
|
||||
|
@ -432,9 +452,11 @@ class CollectionFragment(
|
|||
if (saleVO.placements != null){
|
||||
var shelvingIndex = 0
|
||||
for (placementVO in saleVO.placements){
|
||||
// para comprobar si es igual a una matricula
|
||||
if (placementVO.shelving != null && placementVO.visible != null && txtscan.toUpperCase() == placementVO.shelving.toUpperCase() && placementVO.visible != "(0)"){
|
||||
if (mpok != null) mpok!!.start()
|
||||
isOk = true
|
||||
////Log.i("VERDNATURA","encontrado producto")
|
||||
showShelving(index,shelvingIndex)
|
||||
isBreak = true
|
||||
break
|
||||
|
@ -475,6 +497,7 @@ class CollectionFragment(
|
|||
|
||||
}
|
||||
}else if(type == CONTROLADOR){
|
||||
////Log.i("VERDNATURA","El tipo es controlador")
|
||||
for (saleVO in sales) {
|
||||
if(saleVO.isControlled == "0"){
|
||||
//1- Por itemFk
|
||||
|
@ -515,6 +538,7 @@ class CollectionFragment(
|
|||
storedPosition = 0
|
||||
storedBackPosition = 0
|
||||
viewModel.collectionTicketGet(user,password,txtscan,sectorFk)
|
||||
Log.i("VERDNATURA","La collection es ${txtscan}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -582,6 +606,7 @@ class CollectionFragment(
|
|||
|
||||
private fun markLine(position:Int,newType: String){
|
||||
state = 0
|
||||
////Log.i("VERDNATURA","Marcamos linea y enviamos saleTracking")
|
||||
if (type == SACADOR){
|
||||
sales[position].isPrepared = if (sales[position].isPrepared == "1") "0" else "1"
|
||||
if (sales[position].isPrepared == "1"){
|
||||
|
@ -617,6 +642,8 @@ class CollectionFragment(
|
|||
}
|
||||
|
||||
private fun saleTrackingReplace(position: Int,type: String){
|
||||
////Log.i("VERDNATURA","POSICION $position y el tipo $type")
|
||||
////Log.i("VERDNATURA","El buyfk que no es real es $originalItemScan")
|
||||
viewModel.saleTrackingReplace(
|
||||
usuario = user,
|
||||
password = password,
|
||||
|
@ -626,6 +653,10 @@ class CollectionFragment(
|
|||
vStateFk = type.toString(),
|
||||
vBuyFk = originalItemScan
|
||||
)
|
||||
//Log.i("VERDNATURA","POSICION $position y el tipo $type")
|
||||
//Log.i("VERDNATURA","El buyfk que no es real es $originalItemScan")
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun unMarkLine(position: Int,newType: String){
|
||||
|
@ -664,6 +695,7 @@ class CollectionFragment(
|
|||
try{
|
||||
quantityGet = (sales[position].quantity.toInt() - sales[position].pickedQuantity.toInt()).toString()
|
||||
}catch (e:Exception){}
|
||||
////Log.i("VERDNATURA","Aparece para enviar")
|
||||
viewModel.itemPlacementSupplyAiming(
|
||||
usuario = user,
|
||||
password = password,
|
||||
|
@ -674,6 +706,7 @@ class CollectionFragment(
|
|||
}
|
||||
|
||||
private fun printShelvingResult(placementSupplyListVO: PlacementSupplyListVO){
|
||||
////Log.i("VERDNATURA","Print CustomDialog")
|
||||
var shelving = ""
|
||||
var item = ""
|
||||
var longName = ""
|
||||
|
@ -698,16 +731,21 @@ class CollectionFragment(
|
|||
placementSupplyListVO.list.forEach {
|
||||
if (it.stock != "0")
|
||||
listPlacementSupply.add(BarcodeVO(code = it.proposal))
|
||||
////Log.i("VERDNATURA","Array de placementsupply")
|
||||
}
|
||||
try {
|
||||
customDialogList.setTitle("$shelving($item) $total de $longName").setOkButton("Coger") {
|
||||
////Log.i("VERDNATURA","Pulso COGER-1")
|
||||
customDialogList.setTitle("$shelving($item) $total dee $longName").setOkButton("Coger") {
|
||||
////Log.i("VERDNATURA","Pulso COGER-2")
|
||||
if (customDialogList.getValueTwo().isNotEmpty()) {
|
||||
if (isNumber(customDialogList.getValue()) && isNumber(total) && customDialogList.getValue().toInt() > total.toInt()) {
|
||||
"La cantidad supera a la disponible".toast(requireContext())
|
||||
} else if (isNumber(customDialogList.getValue())) {
|
||||
originalItemScan = customDialogList.getValueTwo()
|
||||
// Log.i("VERDATURA","Le pasamos el siguiente item $originalItemScan que es el escaneado")
|
||||
if (checkItemScan(customDialogList.getValueTwo())) {
|
||||
onQuantityOfShelvingSelected(itemShelvingFk)
|
||||
////Log.i("VERDNATURA","Cantidad seleccionada")
|
||||
mpok?.start()
|
||||
customDialogList.dismiss()
|
||||
} else {
|
||||
|
@ -737,7 +775,9 @@ class CollectionFragment(
|
|||
customDialogList.dismiss()
|
||||
}.setHintValue("Cantidad que coges:").setValue(total).setHintValueTwo("Escanea item")
|
||||
.setValueTwo("").show()
|
||||
}catch (e:Exception){}
|
||||
}catch (e:Exception){
|
||||
////Log.i("VERDNATURA","${e.message.toString()}")
|
||||
}
|
||||
try{
|
||||
customDialogList.getEditTextTwo().post(Runnable {
|
||||
customDialogList.getEditTextTwo().requestFocusFromTouch()
|
||||
|
@ -811,14 +851,16 @@ class CollectionFragment(
|
|||
customDialogList.getRecyclerView().layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
|
||||
|
||||
}
|
||||
|
||||
private fun checkItemScan(valueToCheck:String):Boolean{
|
||||
////Log.i("VERDNATURA","Entramos a comprobar el CheckItemScan $valueToCheck")
|
||||
if (storedPosition >= 0 && sales.size > storedPosition) {
|
||||
val saleToCheck = sales[storedPosition]
|
||||
//////Log.i("VERDNATURA","Entramos a comprobar si lo escaneado es el item $saleToCheck.itemFk escaneado:$valueToCheck")
|
||||
if (saleToCheck.itemFk == valueToCheck)
|
||||
return true
|
||||
else {
|
||||
saleToCheck.Barcodes.forEach { barcode ->
|
||||
////Log.i("VERDNATURA","Mirando barcode ${barcode.toString()}")
|
||||
if (barcode == valueToCheck)
|
||||
return true
|
||||
}
|
||||
|
@ -1056,12 +1098,14 @@ class CollectionFragment(
|
|||
if (toolbar_subtitle != null && totalMark != null && sales != null) toolbar_subtitle.text = "" +totalMark + "/" + sales.size
|
||||
if (totalMark == sales.size) {
|
||||
getString(R.string.Coleccióncompleta).toast(this.context,Toast.LENGTH_SHORT)
|
||||
changeTicketState()
|
||||
//sergio: se quita porque se realiza desde triggers
|
||||
//changeTicketState()
|
||||
}
|
||||
}
|
||||
|
||||
//FALTAS / BASURA / SPLIT
|
||||
private fun showQuantityDialog(position:Int) {
|
||||
// Log.i("VERDNATURA","Aparece CustomDialog")
|
||||
customDialogThreeButtons.setDescription(getString(R.string.txtnuevacantidad)).setValue("")
|
||||
.setOkButton(getString(R.string.Faltas)){
|
||||
if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()){
|
||||
|
@ -1152,7 +1196,7 @@ class CollectionFragment(
|
|||
quantity = totalQuantity.toString(),
|
||||
warehouseFk = warehouseFk,
|
||||
type = "FALSE",
|
||||
originalQuantity = quantity
|
||||
originalQuantity = quantity
|
||||
)
|
||||
//sales[position].originalQuantity = quantity
|
||||
sales[position].quantity = quantity
|
||||
|
|
|
@ -3,6 +3,7 @@ package es.verdnatura.presentation.view.feature.controlador.fragment
|
|||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.lifecycle.Observer
|
||||
|
@ -38,9 +39,11 @@ class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorV
|
|||
}
|
||||
|
||||
override fun init() {
|
||||
|
||||
|
||||
splash_progress.visibility = View.GONE
|
||||
customDialog = CustomDialog(requireContext())
|
||||
toolbar_title.text = "collection_get"
|
||||
toolbar_title.text = getString(R.string.getcollection)
|
||||
setEvents()
|
||||
super.init()
|
||||
}
|
||||
|
@ -60,6 +63,7 @@ class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorV
|
|||
}
|
||||
|
||||
private fun setEvents(){
|
||||
|
||||
scan_input.requestFocus()
|
||||
scan_input.setOnEditorActionListener { v, actionId, event ->
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) {
|
||||
|
@ -71,6 +75,7 @@ class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorV
|
|||
sectorFk = sectorFk,
|
||||
collectionFk = scan_input.text.toString()
|
||||
)
|
||||
Log.i("VERDNATURA","La collection es ${scan_input.text.toString()}")
|
||||
}
|
||||
scan_input.setText("")
|
||||
(activity as MainActivity).hideKeyboard(scan_input)
|
||||
|
@ -100,4 +105,6 @@ class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorV
|
|||
private fun navigateToCollectionList(collection: CollectionVO){
|
||||
onCollectionSelectedListener?.onCollectionSelected(collection, ConstAndValues.CONTROLADOR)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ class FaltasFragment : BaseFragment<FragmentFaltasBinding, FaltasViewModel>(Falt
|
|||
override fun init() {
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
toolbar_title.text = "faultsReview"
|
||||
toolbar_title.text = getString(R.string.faultsReview)
|
||||
setToolBar()
|
||||
|
||||
customDialogInput = CustomDialogInput(requireContext())
|
||||
|
|
|
@ -35,7 +35,7 @@ class HistoricoAdapter (
|
|||
this.item = item
|
||||
val sdf = SimpleDateFormat("yyyy-MM-dd")
|
||||
val currentDate = sdf.format(Date())
|
||||
if (currentDate == item.date){
|
||||
if (currentDate == item.shipped){
|
||||
historicoDate.setBackgroundColor(res.getColor(R.color.verdnatura_pumpkin_orange))
|
||||
}else{
|
||||
historicoDate.setBackgroundColor(res.getColor(R.color.verdnatura_black_5))
|
||||
|
|
|
@ -49,7 +49,7 @@ class HistoricoFragment(
|
|||
customDialog = CustomDialog(requireContext())
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
viewModel.itemDiary(user,password,itemFk,warehouseFk)
|
||||
toolbar_title.text = "itemDiary"
|
||||
toolbar_title.text = getString(R.string.itemdiary)
|
||||
setEvents()
|
||||
super.init()
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ class HistoricoFragment(
|
|||
val currentDate = sdf.format(Date())
|
||||
|
||||
for (item in it.list){
|
||||
if (currentDate == item.date){
|
||||
if (currentDate == item.shipped){
|
||||
break
|
||||
}
|
||||
positionToday += 1
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package es.verdnatura.presentation.view.feature.historico.model
|
||||
|
||||
class ItemHistoricoVO (
|
||||
var date:String = "",
|
||||
var shipped:String = "",
|
||||
var stateName:String = "",
|
||||
var origin:String = "",
|
||||
var reference: String = "",
|
||||
|
|
|
@ -5,7 +5,6 @@ import android.content.SharedPreferences
|
|||
import android.graphics.drawable.Drawable
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import es.verdnatura.R
|
||||
|
@ -16,14 +15,19 @@ import es.verdnatura.presentation.common.OnOptionsSelectedListener
|
|||
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
|
||||
import es.verdnatura.presentation.view.component.CustomDialog
|
||||
import es.verdnatura.presentation.view.component.CustomDialogInput
|
||||
import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO
|
||||
import es.verdnatura.presentation.view.feature.inventario.adapter.InventoryAdapter
|
||||
import es.verdnatura.presentation.view.feature.inventario.adapter.ToolBarAdapter
|
||||
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
|
||||
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
|
||||
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
|
||||
import ir.mirrajabi.searchdialog.core.SearchResultListener
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import kotlinx.android.synthetic.main.buyers_fragment.*
|
||||
import kotlinx.android.synthetic.main.fragment_ajustes.*
|
||||
import kotlinx.android.synthetic.main.fragment_buscar_item.location_recyclerview
|
||||
import kotlinx.android.synthetic.main.fragment_buscar_item.splash_progress
|
||||
import kotlinx.android.synthetic.main.fragment_inventary.*
|
||||
import kotlinx.android.synthetic.main.fragment_inventary.filter_itemFk
|
||||
import kotlinx.android.synthetic.main.toolbar.*
|
||||
|
||||
class InventaryFragment : BaseFragment<FragmentInventaryBinding,InventaryViewModel>(InventaryViewModel::class) {
|
||||
|
@ -42,11 +46,21 @@ class InventaryFragment : BaseFragment<FragmentInventaryBinding,InventaryViewMod
|
|||
private var hideLoad = true
|
||||
private var layoutManager : LinearLayoutManager? = null
|
||||
private var firstVisiblePosition = 0
|
||||
private var secondVisiblePosition = 1
|
||||
|
||||
|
||||
//sergio : cmbios para insertar lista compradores en inventary en el searchable
|
||||
private val items=ArrayList<SearchBuyerModel>()
|
||||
private var prefs: SharedPreferences? = null
|
||||
private lateinit var buyerId:String
|
||||
|
||||
|
||||
companion object {
|
||||
fun newInstance() = InventaryFragment()
|
||||
}
|
||||
|
||||
|
||||
//override fun getLayoutId(): Int = R.layout.fragment_inventary
|
||||
override fun getLayoutId(): Int = R.layout.fragment_inventary
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
|
@ -55,21 +69,48 @@ class InventaryFragment : BaseFragment<FragmentInventaryBinding,InventaryViewMod
|
|||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
val prefs: SharedPreferences = activity!!.getSharedPreferences(PREFS_USER,0)
|
||||
user = prefs.getString(USER,"").toString()
|
||||
password = prefs.getString(PASSWORD,"").toString()
|
||||
sectorFk = prefs.getInt(SECTORFK,1).toString()
|
||||
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString()
|
||||
viewModel.getInventory(user,password,sectorFk)
|
||||
prefs = activity!!.getSharedPreferences(PREFS_USER,0)
|
||||
user = prefs!!.getString(USER,"").toString()
|
||||
password = prefs!!.getString(PASSWORD,"").toString()
|
||||
sectorFk = prefs!!.getInt(SECTORFK,1).toString()
|
||||
warehouseFk = prefs!!.getInt(WAREHOUSEFK,1).toString()
|
||||
|
||||
//sergio. se quita para subir version.A la espera de como será el inventario
|
||||
viewModel.itemShelvingBuyerGet(user = user,password = password)
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
|
||||
override fun init() {
|
||||
|
||||
filter_buyer.setText(prefs!!.getString(BUYER,""))
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
buyerId=prefs!!.getString(BUYERID,"").toString()
|
||||
//Log.i("VERDNATURA","el sector es $warehouseFk")
|
||||
//Log.i("VERDNATURA","el sbuyerid es $buyerId")
|
||||
viewModel.getInventory(user,password,buyerId,warehouseFk)
|
||||
filter_buyer.setOnClickListener{
|
||||
//SimpleSearchDialogCompat(context,getString(R.string.compradores),getString(R.string.escribirparteNombre),null,initData(),
|
||||
SimpleSearchDialogCompat(context,getString(R.string.compradores),getString(R.string.escribirparteNombre),null,items,
|
||||
SearchResultListener { baseSearchDialogCompat, nombre, position ->
|
||||
////Log.i("VERDNATURA","nombre "+nombre.title)
|
||||
////Log.i("VERDNATURA","el id es "+nombre.getBuyerId())
|
||||
filter_buyer.setText((nombre.title))
|
||||
saveBuyer(nombre.getBuyerNickname())
|
||||
saveBuyerId(nombre.getBuyerId())
|
||||
buyerId=nombre.getBuyerId()
|
||||
viewModel.getInventory(user,password,nombre.getBuyerId(),warehouseFk)
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
baseSearchDialogCompat.dismiss()
|
||||
}).show()
|
||||
}
|
||||
|
||||
|
||||
customDialogInput = CustomDialogInput(requireContext())
|
||||
customDialog = CustomDialog(requireContext())
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
toolbar_title.text = "itemShelvingRadar"
|
||||
toolbar_title.text = getString(R.string.itemShelvingRadar)
|
||||
setToolBar()
|
||||
setEvents()
|
||||
|
||||
|
@ -77,29 +118,36 @@ class InventaryFragment : BaseFragment<FragmentInventaryBinding,InventaryViewMod
|
|||
reload = false
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
hideLoad = false
|
||||
viewModel.getInventory(user,password,sectorFk)
|
||||
viewModel.getInventory(user,password,buyerId,warehouseFk)
|
||||
}
|
||||
|
||||
|
||||
super.init()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private fun setToolBar(){
|
||||
val listIcons:ArrayList<Drawable> = ArrayList()
|
||||
val iconReload : Drawable = resources.getDrawable(R.drawable.ic_autorenew_black_24dp,resources.newTheme())
|
||||
|
||||
listIcons.add(iconReload)
|
||||
|
||||
toolbar_icons.adapter = ToolBarAdapter(listIcons,object: OnOptionsSelectedListener{
|
||||
override fun onOptionsItemSelected(item: Drawable) {
|
||||
if (item == iconReload){
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
firstVisiblePosition = layoutManager?.findFirstVisibleItemPosition() ?: 0
|
||||
viewModel.getInventory(user,password,sectorFk)
|
||||
// sergio.
|
||||
viewModel.getInventory(user,password,buyerId,warehouseFk)
|
||||
//viewModel.getInventory(user,password,prefs!!.getInt(SECTORFK,1).toString())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
toolbar_icons.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
|
||||
|
||||
}
|
||||
|
||||
private fun setEvents(){
|
||||
|
@ -120,7 +168,7 @@ class InventaryFragment : BaseFragment<FragmentInventaryBinding,InventaryViewMod
|
|||
}else{
|
||||
listInvetory.removeAll(listInvetoryAux)
|
||||
listInvetoryAux.forEach {
|
||||
if (it.itemFk.contains(filter_itemFk.text.toString(),true)){
|
||||
if ((it.itemFk.contains(filter_itemFk.text.toString(),true)) || (it.producer?.contains(filter_itemFk.text.toString(),true))){
|
||||
listInvetory.add(it)
|
||||
}
|
||||
}
|
||||
|
@ -150,6 +198,12 @@ class InventaryFragment : BaseFragment<FragmentInventaryBinding,InventaryViewMod
|
|||
override fun observeViewModel() {
|
||||
with(viewModel){
|
||||
|
||||
//sergio: para compradores
|
||||
buyersList.observe(viewLifecycleOwner, Observer {
|
||||
splash_progress.visibility = View.GONE
|
||||
createBuyerList(it.list)
|
||||
})
|
||||
|
||||
|
||||
inventaryList.observe(viewLifecycleOwner, Observer {
|
||||
if (hideLoad){
|
||||
|
@ -169,18 +223,28 @@ class InventaryFragment : BaseFragment<FragmentInventaryBinding,InventaryViewMod
|
|||
|
||||
adapter = InventoryAdapter(listInvetory,object: OnInvetoryNichoClickListener{
|
||||
override fun onInvetoryNichoClickListener(item: ItemInventaryVO) {
|
||||
customDialogInput.setTitle(item.itemFk+"\n"+item.longName+" "+item.size).setDescription("Cantidad real("+item.nicho+")").setOkButton("Tirar"){
|
||||
viewModel.itemStockUpdate(item.itemFk,warehouseFk,user,password,customDialogInput.getValue(),"0")
|
||||
changeOfflineValue(item)
|
||||
customDialogInput.dismiss()
|
||||
}.setKoButton("Cancelar"){
|
||||
customDialogInput.dismiss()
|
||||
}.setValue("0").show()
|
||||
|
||||
customDialogInput.getEditText().requestFocus()
|
||||
//sergio: cambiad customdialogInput pòr customdialog 6.1.4
|
||||
//Log.i("VERDNATURA","A tirar tanto")
|
||||
customDialog.setTitle(item.itemFk+"\n"+item.longName+" "+item.size).setDescription("Cantidad real("+item.nicho+")").setOkButton("Tirar"){
|
||||
//customDialogInput.setTitle(item.itemFk+"\n"+item.longName+" "+item.size).setDescription("Cantidad real("+item.nicho+")").setOkButton("Tirar"){
|
||||
//Log.i("VERDNATURA","A tirar tanto viewmodel dentro")
|
||||
viewModel.itemStockUpdate(item.itemFk,warehouseFk,user,password,"0","0")
|
||||
// viewModel.itemStockUpdate(item.itemFk,warehouseFk,user,password,customDialogInput.getValue(),"0")
|
||||
changeOfflineValue(item)
|
||||
// customDialogInput.dismiss()
|
||||
customDialog.dismiss()
|
||||
}.setKoButton("Cancelar"){
|
||||
// customDialogInput.dismiss()
|
||||
customDialog.dismiss()
|
||||
}.show()
|
||||
// }.setValue("0").show()
|
||||
//sergio: ya no recoge focus porque no tiene cuadro para insertar número de artículo
|
||||
/* customDialogInput.getEditText().requestFocus()
|
||||
customDialogInput.getEditText().setOnEditorActionListener { v, actionId, event ->
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) {
|
||||
if (!customDialogInput.getValue().isNullOrEmpty()){
|
||||
//Log.i("VERDNATURA","A tirar tanto viewmodel fuera")
|
||||
viewModel.itemStockUpdate(item.itemFk,warehouseFk,user,password,customDialogInput.getValue(),"0")
|
||||
changeOfflineValue(item)
|
||||
}
|
||||
|
@ -190,7 +254,7 @@ class InventaryFragment : BaseFragment<FragmentInventaryBinding,InventaryViewMod
|
|||
return@setOnEditorActionListener true
|
||||
}
|
||||
false
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
},onPasillerosItemClickListener = pasillerosItemClickListener!!)
|
||||
|
@ -243,4 +307,19 @@ class InventaryFragment : BaseFragment<FragmentInventaryBinding,InventaryViewMod
|
|||
}
|
||||
|
||||
|
||||
//sergio:añadido para compradores
|
||||
private fun createBuyerList(list: List<BuyerVO>){
|
||||
items.clear()
|
||||
list.forEach { buyer ->
|
||||
if (!buyer.isError){
|
||||
try {
|
||||
items.add(SearchBuyerModel(buyer.nickname,buyer.userFk));
|
||||
//Log.i("VERDNATURA","Nombre comprador ${buyer.nickname} : ${buyer.userFk}")
|
||||
}catch (e:Exception){}
|
||||
}
|
||||
}}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -9,6 +9,10 @@ import es.verdnatura.domain.GetItemCardUserCase
|
|||
import es.verdnatura.presentation.base.BaseViewModel
|
||||
import es.verdnatura.presentation.common.Event
|
||||
import es.verdnatura.presentation.common.ResponseItemVO
|
||||
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
|
||||
import es.verdnatura.presentation.view.feature.ajustes.model.SectorListVO
|
||||
import es.verdnatura.presentation.view.feature.calidad.model.BuyerListVO
|
||||
import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO
|
||||
import es.verdnatura.presentation.view.feature.inventario.model.InventaryListVO
|
||||
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
|
||||
import retrofit2.Call
|
||||
|
@ -30,11 +34,71 @@ class InventaryViewModel(context: Context) : BaseViewModel() {
|
|||
get() = _response
|
||||
|
||||
|
||||
private val _buyersList by lazy { MutableLiveData<BuyerListVO>() }
|
||||
val buyersList: LiveData<BuyerListVO>
|
||||
get() = _buyersList
|
||||
|
||||
|
||||
//sergio para obtener comprador
|
||||
fun itemShelvingBuyerGet(user:String,password:String){
|
||||
getInventaryUserCase.itemShelvingBuyerGet(user,password).enqueue(object :
|
||||
Callback<List<BuyerVO>> {
|
||||
override fun onFailure(call: Call<List<BuyerVO>>, t: Throwable) {
|
||||
val listError:ArrayList<BuyerVO> = ArrayList()
|
||||
listError.add(BuyerVO(isError = true,errorMessage = t.message!!))
|
||||
_buyersList.value = BuyerListVO(listError)
|
||||
}
|
||||
|
||||
override fun onResponse(
|
||||
call: Call<List<BuyerVO>>,
|
||||
response: Response<List<BuyerVO>>
|
||||
) {
|
||||
if (response.body() != null){
|
||||
_buyersList.value = response.body()?.let { BuyerListVO(it) }
|
||||
}else{
|
||||
val listError:ArrayList<BuyerVO> = ArrayList()
|
||||
listError.add(BuyerVO(isError = true,errorMessage = "Error en la llamada de itemShelving_buyerGet"))
|
||||
_buyersList.value = BuyerListVO(listError)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
val loadInventaryList = Transformations.map(_inventaryList) { Event(it) }
|
||||
|
||||
//sergio: borrar. En 6.1.3 ya no se utiliza
|
||||
/*fun getInventory(user:String,password:String,buyerFk:String){
|
||||
|
||||
fun getInventory(user:String,password:String,sectorFk:String){
|
||||
getInventaryUserCase.itemShelvingRadar(user,password,sectorFk).enqueue(object :
|
||||
getInventaryUserCase.itemShelvingRadar(user,password,buyerFk).enqueue(object :
|
||||
Callback<List<ItemInventaryVO>> {
|
||||
override fun onFailure(call: Call<List<ItemInventaryVO>>, t: Throwable) {
|
||||
val listError:ArrayList<ItemInventaryVO> = ArrayList()
|
||||
listError.add(ItemInventaryVO(isError = true,errorMessage = t.message!!))
|
||||
_inventaryList.value = InventaryListVO(listError)
|
||||
}
|
||||
|
||||
override fun onResponse(
|
||||
call: Call<List<ItemInventaryVO>>,
|
||||
response: Response<List<ItemInventaryVO>>
|
||||
) {
|
||||
if (response.body() != null){
|
||||
_inventaryList.value = response.body()?.let { InventaryListVO(it) }
|
||||
}else{
|
||||
val listError:ArrayList<ItemInventaryVO> = ArrayList()
|
||||
listError.add(ItemInventaryVO(isError = true,errorMessage = "Error en la llamada de itemShelvingRadar"))
|
||||
_inventaryList.value = InventaryListVO(listError)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}*/
|
||||
|
||||
fun getInventory(user:String,password:String,buyerFk:String,warehouseFk: String){
|
||||
// getInventaryUserCase.itemShelvingRadar(user,password,buyerFk).enqueue(object :
|
||||
getInventaryUserCase.itemShelvingRadarFilterBuyer(user,password,buyerFk,warehouseFk).enqueue(object :
|
||||
Callback<List<ItemInventaryVO>> {
|
||||
override fun onFailure(call: Call<List<ItemInventaryVO>>, t: Throwable) {
|
||||
val listError:ArrayList<ItemInventaryVO> = ArrayList()
|
||||
|
@ -77,4 +141,6 @@ class InventaryViewModel(context: Context) : BaseViewModel() {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package es.verdnatura.presentation.view.feature.inventario.fragment
|
||||
|
||||
import ir.mirrajabi.searchdialog.core.Searchable
|
||||
|
||||
class SearchBuyerModel(private var nickname: String?, private var buyerId: String?) : Searchable {
|
||||
|
||||
|
||||
|
||||
override fun getTitle(): String {
|
||||
|
||||
return nickname!!
|
||||
}
|
||||
|
||||
fun getBuyerId(): String {
|
||||
return buyerId!!
|
||||
}
|
||||
|
||||
fun getBuyerNickname(): String {
|
||||
return nickname!!
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package es.verdnatura.presentation.view.feature.inventario.model
|
||||
|
||||
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
|
||||
|
||||
class BuyerInventary (
|
||||
var userFk:String = "",
|
||||
var nickname:String= "",
|
||||
var isError:Boolean = false,
|
||||
var errorMessage:String = ""
|
||||
)
|
||||
|
||||
|
||||
class BuyerListInventary (
|
||||
var list: List<BuyerInventary> = listOf()
|
||||
)
|
||||
|
|
@ -12,7 +12,8 @@ class ItemInventaryVO (
|
|||
var errorMessage:String = ""
|
||||
)
|
||||
|
||||
|
||||
class InventaryListVO (
|
||||
var list: List<ItemInventaryVO> = listOf()
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
package es.verdnatura.presentation.view.feature.login.activity
|
||||
|
||||
import android.content.Intent
|
||||
import es.verdnatura.R
|
||||
import es.verdnatura.databinding.ActivityLoginBinding
|
||||
import es.verdnatura.presentation.base.BaseActivity
|
||||
import es.verdnatura.presentation.common.TAG
|
||||
import es.verdnatura.presentation.common.addFragment
|
||||
import es.verdnatura.presentation.view.feature.login.fragment.LoginFragment
|
||||
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
|
||||
|
||||
class LoginActivity : BaseActivity<ActivityLoginBinding>() {
|
||||
|
||||
|
@ -22,7 +24,11 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>() {
|
|||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT))*/
|
||||
|
||||
|
||||
addFragment(LoginFragment.newInstance(),R.id.main_frame_layout,LoginFragment.TAG)
|
||||
//sergio: para no hacer login se inicia MainActivity directamente
|
||||
/* val intent = Intent(this, MainActivity::class.java)
|
||||
startActivity(intent)*/
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -6,6 +6,8 @@ import android.app.PendingIntent
|
|||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.content.pm.PackageInfo
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.preference.PreferenceManager
|
||||
import android.view.KeyEvent
|
||||
|
@ -34,6 +36,8 @@ class LoginFragment : BaseFragment<FragmentLoginBinding, LoginViewModel>(LoginVi
|
|||
override fun getLayoutId(): Int = R.layout.fragment_login
|
||||
|
||||
override fun init() {
|
||||
|
||||
|
||||
customDialog = CustomDialog(requireContext())
|
||||
checkUser()
|
||||
button_login.setOnClickListener(View.OnClickListener {
|
||||
|
@ -55,12 +59,16 @@ class LoginFragment : BaseFragment<FragmentLoginBinding, LoginViewModel>(LoginVi
|
|||
if (keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_UP) {
|
||||
this.setDefaults("base_url", edittext_server.text.toString(), this.requireContext())
|
||||
this.hideKeyboard()
|
||||
//sergio: deberia lanzar la funcion nueva creada por mi restartapp de BaseFragment. Pero no vuelve a arrancar
|
||||
restartapp()
|
||||
return@OnKeyListener false
|
||||
|
||||
}
|
||||
false
|
||||
})
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun checkUser(){
|
||||
|
@ -77,6 +85,42 @@ class LoginFragment : BaseFragment<FragmentLoginBinding, LoginViewModel>(LoginVi
|
|||
|
||||
override fun observeViewModel() {
|
||||
with(viewModel){
|
||||
|
||||
versionappitem.observe(viewLifecycleOwner, Observer {
|
||||
splash_progress.visibility = View.INVISIBLE
|
||||
if (it.isError) {
|
||||
customDialog.setTitle("Error").setDescription(it.errorMessage)
|
||||
.setOkButton("Cerrar") {
|
||||
customDialog.dismiss()
|
||||
}.show()
|
||||
} else {
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
if (it.version.equals(getInfoVersionNameApp())) {
|
||||
splash_progress.visibility = View.INVISIBLE
|
||||
goToMain()}
|
||||
else {
|
||||
customDialog.setTitle(getString(R.string.Actualizar))
|
||||
.setDescription(getString(R.string.updatemng)).setOkButton(
|
||||
getString(
|
||||
R.string.Actualizar
|
||||
)
|
||||
) {
|
||||
val openURL = Intent(Intent.ACTION_VIEW)
|
||||
openURL.data = Uri.parse("https://app.verdnatura.es/bin/vn-picking.apk")
|
||||
startActivity(openURL)
|
||||
}.setKoButton("Cancelar") {
|
||||
customDialog.dismiss()
|
||||
goToMain()
|
||||
}.show()
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
|
||||
loginitem.observe(viewLifecycleOwner, Observer {
|
||||
splash_progress.visibility = View.INVISIBLE
|
||||
if (it.isError) {
|
||||
|
@ -153,6 +197,12 @@ class LoginFragment : BaseFragment<FragmentLoginBinding, LoginViewModel>(LoginVi
|
|||
super.observeViewModel()
|
||||
}
|
||||
|
||||
private fun getInfoVersionNameApp(): String {
|
||||
val manager: PackageManager = context!!.getPackageManager()
|
||||
val info: PackageInfo = manager.getPackageInfo(context!!.getPackageName(), 0)
|
||||
return info.versionName
|
||||
}
|
||||
|
||||
private fun saveTokenPref(token: String){
|
||||
val prefs: SharedPreferences = activity!!.getSharedPreferences(PREFS_USER, 0)
|
||||
val editor = prefs.edit()
|
||||
|
@ -188,15 +238,16 @@ class LoginFragment : BaseFragment<FragmentLoginBinding, LoginViewModel>(LoginVi
|
|||
}
|
||||
|
||||
private fun getVersion(){
|
||||
val versionName = activity!!.packageManager.getPackageInfo(activity!!.packageName, 0).versionName
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
viewModel.checkVersion(
|
||||
viewModel.checkVersion(
|
||||
user = edittext_username.text.toString(),
|
||||
password = edittext_password.text.toString(),
|
||||
version = versionName
|
||||
)
|
||||
nameApp = "warehouse")
|
||||
// version = versionName)
|
||||
|
||||
}
|
||||
|
||||
|
||||
fun setDefaults(key: String?, value: String?, context: Context?) {
|
||||
val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
val editor = preferences.edit()
|
||||
|
@ -209,7 +260,8 @@ class LoginFragment : BaseFragment<FragmentLoginBinding, LoginViewModel>(LoginVi
|
|||
return preferences.getString(key, null)
|
||||
}
|
||||
|
||||
fun restartapp(){
|
||||
// sergio:creada restart en BaseFragment para AjustesFragment...
|
||||
fun restartapp(){
|
||||
val mStartActivity = Intent(context, LoginActivity::class.java)
|
||||
val mPendingIntentId = 123456
|
||||
val mPendingIntent = PendingIntent.getActivity(
|
||||
|
|
|
@ -7,6 +7,7 @@ import es.verdnatura.domain.GetLoginUserCase
|
|||
import es.verdnatura.presentation.base.BaseViewModel
|
||||
import es.verdnatura.presentation.view.feature.login.model.LoginItemVO
|
||||
import es.verdnatura.presentation.view.feature.login.model.LoginSalixVO
|
||||
import es.verdnatura.presentation.view.feature.login.model.versionApp
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
|
@ -29,6 +30,10 @@ class LoginViewModel(context: Context) : BaseViewModel() {
|
|||
val version : LiveData<Boolean>
|
||||
get() = _version
|
||||
|
||||
//sergio: nueva version para actualizar
|
||||
private val _versionappitem by lazy { MutableLiveData<versionApp> ()}
|
||||
val versionappitem : LiveData<versionApp>
|
||||
get() = _versionappitem
|
||||
|
||||
fun login(user:String,password:String){
|
||||
getLoginUserCase.login(user,password).enqueue(object : Callback<String>{
|
||||
|
@ -74,7 +79,7 @@ class LoginViewModel(context: Context) : BaseViewModel() {
|
|||
})
|
||||
}
|
||||
|
||||
fun checkVersion(user:String,password:String,version:String){
|
||||
/*fun checkVersion_old(user:String,password:String,version:String){
|
||||
getLoginUserCase.checkVersion(user,password,version).enqueue(object : Callback<Boolean>{
|
||||
override fun onResponse(call: Call<Boolean>, response: Response<Boolean>) {
|
||||
if (response.body() != null){
|
||||
|
@ -88,6 +93,27 @@ class LoginViewModel(context: Context) : BaseViewModel() {
|
|||
_version.value = true
|
||||
}
|
||||
})
|
||||
}
|
||||
}*/
|
||||
//sergio:checkVersion new
|
||||
fun checkVersion(user:String,password:String,nameApp:String){
|
||||
getLoginUserCase.checkVersion(user,password,nameApp).enqueue(object : Callback<versionApp>{
|
||||
override fun onResponse(call: Call<versionApp>, response: Response<versionApp>) {
|
||||
|
||||
var versionApp:versionApp?
|
||||
|
||||
if (response.body() != null){
|
||||
versionApp= response.body()?.version?.let { versionApp(nameApp,it,isError = false,errorMessage = "") }
|
||||
// Log.i("VERDNATURA","Recogemos ${versionApp?.version}")
|
||||
}else{
|
||||
versionApp = versionApp(user,password,isError = true,errorMessage = "Error al conectar.")
|
||||
}
|
||||
_versionappitem.value=versionApp
|
||||
}
|
||||
|
||||
override fun onFailure(call: Call<versionApp>, t: Throwable) {
|
||||
val versionApp=versionApp(nameApp,"",isError=true,errorMessage=t.message!!)
|
||||
_versionappitem.value = versionApp
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,3 +21,10 @@ class SalixMessageVO (
|
|||
var isError:Boolean = false,
|
||||
var errorMessage:String = ""
|
||||
)
|
||||
|
||||
class versionApp(
|
||||
val appname:String="",
|
||||
val version:String="",
|
||||
var isError:Boolean = false,
|
||||
val errorMessage:String=""
|
||||
)
|
|
@ -13,6 +13,7 @@ import es.verdnatura.presentation.common.*
|
|||
import es.verdnatura.presentation.view.component.CustomDialog
|
||||
import es.verdnatura.presentation.view.feature.ajustes.fragment.AjustesFragment
|
||||
import es.verdnatura.presentation.view.feature.articulo.fragment.ItemCardFragment
|
||||
import es.verdnatura.presentation.view.feature.buscaritem.fragment.BuscarItemAllFragment
|
||||
import es.verdnatura.presentation.view.feature.buscaritem.fragment.BuscarItemFragment
|
||||
import es.verdnatura.presentation.view.feature.calidad.fragment.BuyersFragment
|
||||
import es.verdnatura.presentation.view.feature.calidad.fragment.QaualityFragment
|
||||
|
@ -95,6 +96,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() , OnPasillerosItemClick
|
|||
applicationContext,R.drawable.ic_build_black_24dp),selectedImage = ContextCompat.getDrawable(
|
||||
applicationContext,R.drawable.ic_build_black_24dp_selected)))
|
||||
|
||||
|
||||
// Add al items to menu view
|
||||
bottomMenuItems.forEach {
|
||||
bottomMenu.menu.add(Menu.NONE, it.id, Menu.NONE, it.title).icon = it.defaultImage
|
||||
|
@ -128,8 +130,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>() , OnPasillerosItemClick
|
|||
|
||||
|
||||
when (selectedItemMenu?.title) {
|
||||
getString(R.string.Pasilleros) -> {
|
||||
getString(R.string.Pasilleros) -> {
|
||||
fm.popBackStack(null,FragmentManager.POP_BACK_STACK_INCLUSIVE)
|
||||
delete_Fragments()
|
||||
addFragment(PasilleroFragment.newInstance(),R.id.main_frame_layout, PasilleroFragment.TAG,false)
|
||||
true
|
||||
}
|
||||
|
@ -141,6 +144,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() , OnPasillerosItemClick
|
|||
getString(R.string.Controladores) -> {
|
||||
fm.popBackStack(null,FragmentManager.POP_BACK_STACK_INCLUSIVE)
|
||||
addFragment(ControladorFragment.newInstance(),R.id.main_frame_layout, ControladorFragment.TAG,false)
|
||||
|
||||
true
|
||||
}
|
||||
getString(R.string.Paletizadores) -> {
|
||||
|
@ -165,7 +169,20 @@ class MainActivity : BaseActivity<ActivityMainBinding>() , OnPasillerosItemClick
|
|||
}
|
||||
}
|
||||
|
||||
private fun delete_Fragments() {
|
||||
fm.getFragments().forEach {
|
||||
// Log.i("VERDNATURA", "si esta ${it.tag.toString()}")
|
||||
var fragment:Fragment?=supportFragmentManager.findFragmentByTag(it.tag.toString())
|
||||
if (fragment!= null) supportFragmentManager
|
||||
.beginTransaction().remove(fragment)
|
||||
.commit()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onPasillerosItemClickListener(item: PasillerosItemVO, entryPoint: String) {
|
||||
|
||||
|
||||
when (item.title){
|
||||
|
||||
"Pre Sacador" -> {
|
||||
|
@ -183,8 +200,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>() , OnPasillerosItemClick
|
|||
"Buscar item" -> {
|
||||
addFragmentOnTop(BuscarItemFragment.newInstance(entryPoint))
|
||||
}
|
||||
// "Buscar item full" -> {
|
||||
// addFragmentOnTop(BuscarItemAllFragment.newInstance(entryPoint))
|
||||
// }
|
||||
"Historico" -> {
|
||||
addFragmentOnTop(HistoricoFragment.newInstance(entryPoint))
|
||||
//addFragmentOnTop(HistoricoFragment.newInstance(entryPoint))
|
||||
}
|
||||
"Inventario" -> {
|
||||
addFragmentOnTop(InventaryFragment.newInstance())
|
||||
|
@ -208,7 +228,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>() , OnPasillerosItemClick
|
|||
Log.i("Item: ",item.title)
|
||||
}
|
||||
|
||||
|
||||
fun addFragmentOnTop(fragment: Fragment?) {
|
||||
|
||||
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
.replace(R.id.main_frame_layout, fragment!!)
|
||||
|
@ -219,13 +242,15 @@ class MainActivity : BaseActivity<ActivityMainBinding>() , OnPasillerosItemClick
|
|||
|
||||
|
||||
override fun onBackPressed() {
|
||||
try{
|
||||
fm.executePendingTransactions()
|
||||
|
||||
try{
|
||||
fm.executePendingTransactions()
|
||||
}catch (e:Exception){}
|
||||
|
||||
if (fm.backStackEntryCount > 0) {
|
||||
|
||||
fm.popBackStackImmediate()
|
||||
fm.popBackStackImmediate()
|
||||
|
||||
}else {
|
||||
customDialog.setTitle("Cerrar sesión").setDescription("¿Estás seguro de cerrar la sesión?").setOkButton("Salir"){
|
||||
customDialog.dismiss()
|
||||
|
@ -238,22 +263,32 @@ class MainActivity : BaseActivity<ActivityMainBinding>() , OnPasillerosItemClick
|
|||
}
|
||||
|
||||
override fun onTruckClickListener(item: ItemExpeditionTruckVO, entryPoint: String) {
|
||||
addFragmentOnTop(ExpeditionPalletFragment.newInstance(item))
|
||||
addFragmentOnTop(ExpeditionPalletFragment.newInstance(item))
|
||||
//Log.i("VERDNATURA","clickamos la expedicion y abrimos ExpeditionPalletFragment")
|
||||
|
||||
}
|
||||
|
||||
override fun onPalletClickListener(itemTruck: ItemExpeditionTruckVO,itemPallet: ItemPalletVO) {
|
||||
addFragmentOnTop(ExpeditionScanFragment.newInstance(itemTruck,itemPallet))
|
||||
|
||||
}
|
||||
|
||||
override fun onComprobarPalletViewClickListener(
|
||||
itemTruck: ItemExpeditionTruckVO,
|
||||
itemPallet: ItemPalletVO
|
||||
) {
|
||||
|
||||
addFragmentOnTop(ExpeditionPalletDetailFragment.newInstance(itemTruck,itemPallet))
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
override fun onCollectionSelected(collection: CollectionVO,type:String) {
|
||||
fm.popBackStack()
|
||||
// Log.i("VERDNATURA","el type es $type")
|
||||
addFragmentOnTop(CollectionFragment.newInstance(collection,type))
|
||||
|
||||
}
|
||||
|
||||
override fun onBuyerSelected(userFk: String) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package es.verdnatura.presentation.view.feature.paletizador.adapter
|
||||
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
@ -25,6 +26,7 @@ class ExpeditionListAdapter (
|
|||
holder.bind(items[position])
|
||||
holder.binding.root.setOnClickListener {
|
||||
onTruckClickListener.onTruckClickListener(items[position],"")
|
||||
//Log.i("VERDNATURA","3-ontruckClickListener")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.content.Context
|
|||
import android.content.SharedPreferences
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
|
@ -16,6 +17,7 @@ import es.verdnatura.presentation.common.OnPalletClickListener
|
|||
import es.verdnatura.presentation.view.component.CustomDialog
|
||||
import es.verdnatura.presentation.view.component.CustomDialogList
|
||||
import es.verdnatura.presentation.view.feature.inventario.adapter.ToolBarAdapter
|
||||
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
|
||||
import es.verdnatura.presentation.view.feature.paletizador.adapter.ExpeditionPalletViewAdapter
|
||||
import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionTruckVO
|
||||
import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO
|
||||
|
@ -63,6 +65,7 @@ class ExpeditionPalletDetailFragment(
|
|||
sectorFk = prefs.getInt(SECTORFK,1).toString()
|
||||
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString()
|
||||
|
||||
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
|
@ -86,8 +89,12 @@ class ExpeditionPalletDetailFragment(
|
|||
|
||||
button_ok.setOnClickListener {
|
||||
activity!!.onBackPressed()
|
||||
}
|
||||
// sergio: en caso de que hay problemas habrá que cambiar aquí la llamada
|
||||
// MainActivity.addFragmentOnTop(ExpeditionPalletDetailFragment.newInstance(itemTruck,itemPallet))
|
||||
// que llame diractamente al fragment para que no se repita la ultima accion
|
||||
//Log.i("VERDNATURA", "pulsamos boton OK en detail fragment")
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private fun setToolBar(){
|
||||
|
@ -111,7 +118,10 @@ class ExpeditionPalletDetailFragment(
|
|||
viewModel.expeditionPalletDel(user,password,itemPallet!!.Pallet)
|
||||
}else if(item == iconPrint){
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
viewModel.expeditionPalletPrintSet(user,password,itemPallet!!.Pallet)
|
||||
|
||||
viewModel.expeditionPalletPrintSet(user,password,itemPallet!!.Pallet,sectorFk)
|
||||
|
||||
////Log.i("VERDNATURA","imprimiento etiqueta pallet $itemPallet.Pallet y sector $sectorFk")
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
@ -65,8 +65,13 @@ class ExpeditionPalletDetailViewModel(context: Context): BaseViewModel() {
|
|||
})
|
||||
}
|
||||
|
||||
fun expeditionPalletPrintSet(usuario:String,password:String,vPalletFk:String){
|
||||
getPaletizadoresUserCase.expeditionPalletPrintSet(usuario,password,vPalletFk).enqueue(object : Callback<String>{
|
||||
fun expeditionPalletPrintSet(
|
||||
usuario: String,
|
||||
password: String,
|
||||
vPalletFk: String,
|
||||
vSectorFk: String
|
||||
){
|
||||
getPaletizadoresUserCase.expeditionPalletPrintSet(usuario,password,vPalletFk,vSectorFk).enqueue(object : Callback<String>{
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
_response.value = ResponseItemVO(isError = true,errorMessage = "Error al imprimir pallet "+vPalletFk+ " Respuesta:"+t.message!!)
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import android.content.SharedPreferences
|
|||
import android.graphics.drawable.Drawable
|
||||
import android.media.MediaPlayer
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.lifecycle.Observer
|
||||
|
@ -54,6 +55,7 @@ class ExpeditionPalletFragment(
|
|||
var mperror: MediaPlayer? = null
|
||||
var mpok: MediaPlayer? = null
|
||||
|
||||
|
||||
companion object {
|
||||
fun newInstance(item: ItemExpeditionTruckVO) =
|
||||
ExpeditionPalletFragment(item)
|
||||
|
@ -87,6 +89,7 @@ class ExpeditionPalletFragment(
|
|||
setToolBar()
|
||||
setEvents()
|
||||
viewModel.expeditionPallet_List(user,password,itemExpeditionTruckVO!!.truckFk)
|
||||
//Log.i("VERDNATURA","4-listamos listado de pallets para la expedicion")
|
||||
super.init()
|
||||
}
|
||||
|
||||
|
@ -141,7 +144,34 @@ class ExpeditionPalletFragment(
|
|||
}.show()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
responseCheckexpeditionScanPut.observe(viewLifecycleOwner, Observer {
|
||||
if (it.isError){
|
||||
customDialog.setTitle("Error").setDescription(it.errorMessage).setOkButton("Cerrar"){
|
||||
customDialog.dismiss()
|
||||
}.show()
|
||||
}else{
|
||||
//Log.i("VERDNATURA"," Resultado llamada es ${it.response.toString()}")
|
||||
|
||||
|
||||
if (it.response=="0") {
|
||||
|
||||
//"Rutas iguales ${it.response}".toast(activity!!)
|
||||
//Log.i("VERDNATURA","Rutas iguales")
|
||||
}
|
||||
if (it.response=="1"){
|
||||
mperror?.start()
|
||||
// "Resultado llamada $it.response".toast(activity!!)
|
||||
// customDialog.setTitle("Rutas distintas").setDescription(it.response).setOkButton("Cerrar"){
|
||||
// customDialog.dismiss()
|
||||
// }.show()
|
||||
}}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun printExpeditionList(it: ItemPalletListVO){
|
||||
|
@ -150,6 +180,7 @@ class ExpeditionPalletFragment(
|
|||
adapter = ExpeditionPalletAdapter(it.list,onPalletClickListener!!,onComprobarPalletViewClickListener!!,itemExpeditionTruckVO!!)
|
||||
expedition_pallet_recyclerview.adapter = adapter
|
||||
expedition_pallet_recyclerview.layoutManager = lm
|
||||
|
||||
}
|
||||
|
||||
private fun expeditionScanAdd(){
|
||||
|
@ -158,6 +189,8 @@ class ExpeditionPalletFragment(
|
|||
}
|
||||
|
||||
private fun showScanExpeditions(it:ItemScanList){
|
||||
|
||||
//Log.i("VERDNATURA","VA A ESCANEAR EN PALLETFRAGMENT")
|
||||
splash_progress.visibility = View.GONE
|
||||
|
||||
listExpeditions = ArrayList()
|
||||
|
@ -203,6 +236,8 @@ class ExpeditionPalletFragment(
|
|||
listExpeditions.add(0,BarcodeVO(code = customDialogList.getValue()))
|
||||
customDialogList.setDescription("Total: "+listExpeditions.size)
|
||||
viewModel.expeditionScanPut(user,password,it.list.get(0).palletFk,customDialogList.getValue())
|
||||
//Log.i("VERDNATURA"," palletizando ${it.list.get(0).palletFk} expedi: ${customDialogList.getValue()}")
|
||||
viewModel.checkRouteExpeditionScanPut(user,password,it.list.get(0).palletFk,customDialogList.getValue());
|
||||
}else{
|
||||
if (mperror != null) mperror!!.start()
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package es.verdnatura.presentation.view.feature.paletizador.fragment
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.Transformations
|
||||
|
@ -31,6 +32,14 @@ class ExpeditionPalletViewModel (context: Context) : BaseViewModel() {
|
|||
val response: LiveData<ResponseItemVO>
|
||||
get() = _response
|
||||
|
||||
//sergio: añadido para comprobar rutas escaneado desde PalletFragment
|
||||
private val _responseCheckexpeditionScanPut by lazy { MutableLiveData<ResponseItemVO>() }
|
||||
val responseCheckexpeditionScanPut: LiveData<ResponseItemVO>
|
||||
get() = _responseCheckexpeditionScanPut
|
||||
|
||||
|
||||
|
||||
|
||||
fun expeditionPallet_List(usuario:String,password:String,vTruckFk:String){
|
||||
getPaletizadoresUserCase.expeditionPallet_List(usuario,password,vTruckFk).enqueue(object :
|
||||
Callback<List<ItemPalletVO>> {
|
||||
|
@ -96,4 +105,21 @@ class ExpeditionPalletViewModel (context: Context) : BaseViewModel() {
|
|||
})
|
||||
}
|
||||
|
||||
fun checkRouteExpeditionScanPut(usuario:String,password:String,vPalletFk:String,vExpeditionFk:String){
|
||||
getPaletizadoresUserCase.checkRouteExpeditionScanPut(usuario,password,vPalletFk,vExpeditionFk).enqueue(object : Callback<String>{
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
_response.value = ResponseItemVO(isError = true,errorMessage = "Error al guardar expedition "+vExpeditionFk+ " Respuesta:"+t.message!!)
|
||||
}
|
||||
override fun onResponse(call: Call<String>, response: Response<String>) {
|
||||
if (response.body() == null){
|
||||
_responseCheckexpeditionScanPut.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada checkExpeditionScan_Put")
|
||||
}else{
|
||||
_responseCheckexpeditionScanPut.value = ResponseItemVO(isError = false,response = response.body()!!)
|
||||
//Log.i("VERDNATURA","Resultado checkExpeditionScan ${_responseCheckexpeditionScanPut.value}")
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -3,7 +3,9 @@ package es.verdnatura.presentation.view.feature.paletizador.fragment
|
|||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.media.MediaPlayer
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.lifecycle.Observer
|
||||
|
@ -11,6 +13,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
|||
import es.verdnatura.R
|
||||
import es.verdnatura.databinding.FragmentExpeditionScanBinding
|
||||
import es.verdnatura.domain.notNull
|
||||
import es.verdnatura.domain.toast
|
||||
import es.verdnatura.presentation.base.BaseFragment
|
||||
import es.verdnatura.presentation.common.*
|
||||
import es.verdnatura.presentation.view.component.CustomDialog
|
||||
|
@ -47,7 +50,8 @@ class ExpeditionScanFragment (
|
|||
private var listExpeditions:ArrayList<BarcodeVO> = ArrayList()
|
||||
private var expeditionAdapter : BarcodeAdapter? = null
|
||||
private lateinit var customDialog: CustomDialog
|
||||
|
||||
var mperror: MediaPlayer? = null
|
||||
var mpok: MediaPlayer? = null
|
||||
|
||||
companion object {
|
||||
fun newInstance(item: ItemExpeditionTruckVO,itemPalletVO: ItemPalletVO) =
|
||||
|
@ -68,6 +72,7 @@ class ExpeditionScanFragment (
|
|||
password = prefs.getString(PASSWORD,"").toString()
|
||||
sectorFk = prefs.getInt(SECTORFK,1).toString()
|
||||
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString()
|
||||
mperror = MediaPlayer.create((activity as MainActivity),R.raw.error)
|
||||
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
@ -138,6 +143,30 @@ class ExpeditionScanFragment (
|
|||
}
|
||||
})
|
||||
|
||||
responseCheckexpeditionScanPut.observe(viewLifecycleOwner, Observer {
|
||||
if (it.isError){
|
||||
customDialog.setTitle("Error").setDescription(it.errorMessage).setOkButton("Cerrar"){
|
||||
customDialog.dismiss()
|
||||
}.show()
|
||||
}else{
|
||||
//Log.i("VERDNATURA"," Resultado llamada es ${it.response.toString()}")
|
||||
|
||||
|
||||
if (it.response=="0") {
|
||||
|
||||
//"Rutas iguales ${it.response}".toast(activity!!)
|
||||
//Log.i("VERDNATURA","Rutas iguales")
|
||||
}
|
||||
if (it.response=="1"){
|
||||
mperror?.start()
|
||||
// "Resultado llamada $it.response".toast(activity!!)
|
||||
// customDialog.setTitle("Rutas distintas").setDescription(it.response).setOkButton("Cerrar"){
|
||||
// customDialog.dismiss()
|
||||
// }.show()
|
||||
}}
|
||||
})
|
||||
|
||||
|
||||
responseDeleteScan.observe(viewLifecycleOwner, Observer {
|
||||
if (it.isError){
|
||||
customDialog.setTitle("Error").setDescription(it.errorMessage).setOkButton("Cerrar"){
|
||||
|
@ -177,21 +206,27 @@ class ExpeditionScanFragment (
|
|||
private fun expeditionScanAdd(){
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
viewModel.expeditionScanAdd(usuario = user,password = password,vPalletFk = itemPalletVO!!.Pallet,vTruckFk = itemExpeditionTruckVO!!.truckFk)
|
||||
//Log.i("VERDNATURA","entramos a escanear ticket del pallet")
|
||||
|
||||
}
|
||||
|
||||
private fun showScanExpeditions(it: ItemScanList){
|
||||
//Log.i("VERDNATURA","muestra expediciones")
|
||||
listExpeditions = ArrayList()
|
||||
splash_progress.visibility = View.GONE
|
||||
it.list.forEach {
|
||||
if(it.expeditionFk != "0")
|
||||
listExpeditions.add(BarcodeVO(code = it.expeditionFk))
|
||||
}
|
||||
|
||||
//sergio:Comprueba si el numero es mayor>0
|
||||
customDialogList.setTitle("Pallet"+itemPalletVO!!.Pallet+" ("+toolbar_title.text+")").setOkButton("Comprobar"){
|
||||
//Log.i("VERDNATURA","Añadida etiqueta")
|
||||
|
||||
(activity as MainActivity).hideKeyboard(customDialogList.getEditText())
|
||||
|
||||
|
||||
if (listExpeditions.size > 0){
|
||||
//Log.i("VERDNATURA","boton comprobar . si las expediciones >0 muetra DetailFragment")
|
||||
onComprobarPalletViewClickListener!!.onComprobarPalletViewClickListener(itemExpeditionTruckVO!!,
|
||||
ItemPalletVO(Pallet = it.list.get(0).palletFk)
|
||||
)
|
||||
|
@ -213,13 +248,35 @@ class ExpeditionScanFragment (
|
|||
customDialogList.getEditText().requestFocus()
|
||||
(activity as MainActivity).hideKeyboard(customDialogList.getEditText())
|
||||
|
||||
|
||||
|
||||
//sergio: seguimos escaneando id=0 -> sin especificar id=5->next
|
||||
customDialogList.getEditText().setOnEditorActionListener { v, actionId, event ->
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
|
||||
if (!customDialogList.getValue().isNullOrEmpty()){
|
||||
listExpeditions.add(BarcodeVO(code = customDialogList.getValue()))
|
||||
viewModel.expeditionScanPut(user,password,it.list.get(0).palletFk,customDialogList.getValue())
|
||||
if (!customDialogList.getValue().isNullOrEmpty()) {
|
||||
|
||||
//Log.i("VERDNATURA", "scan put pallet ${it.list.get(0).palletFk}");
|
||||
//Log.i("VERDNATURA", "scan put list ${customDialogList.getValue()}");
|
||||
|
||||
listExpeditions.add(BarcodeVO(code = customDialogList.getValue()))
|
||||
viewModel.expeditionScanPut(
|
||||
user,
|
||||
password,
|
||||
it.list.get(0).palletFk,
|
||||
customDialogList.getValue()
|
||||
)
|
||||
//Log.i("VERDNATURA", "scan put pallet ${it.list.get(0).palletFk}");
|
||||
//Log.i("VERDNATURA", "scan put list ${customDialogList.getValue()}");
|
||||
|
||||
// //Log.i("VERDNATURA","misma ruta ?")
|
||||
//sergio:comprueba si es de la misma ruta. Check_route_expedition.
|
||||
checkRouteExpeditionScanPut(user, password,it.list.get(0).palletFk,customDialogList.getValue())
|
||||
|
||||
//Log.i("VERDNATURA", "scan put pallet ${it.list.get(0).palletFk}");
|
||||
//Log.i("VERDNATURA", "scan put list ${customDialogList.getValue()}");
|
||||
|
||||
expeditionAdapter!!.notifyDataSetChanged()
|
||||
|
||||
}
|
||||
customDialogList.setValue("")
|
||||
(activity as MainActivity).hideKeyboard(customDialogList.getEditText())
|
||||
|
@ -240,5 +297,30 @@ class ExpeditionScanFragment (
|
|||
|
||||
}
|
||||
|
||||
private fun checkRouteExpeditionScanPut(user: String, password: String, palletFk: String, expedition: String){
|
||||
|
||||
viewModel.checkRouteExpeditionScanPut(user,password,palletFk,expedition);
|
||||
// "Pallet $palletFk y expediti $expedition".toast(activity!!)
|
||||
// //Log.i("VERDNATURA", "ha entrado en checkexpedition");
|
||||
|
||||
|
||||
/* var addScanInput = false;
|
||||
|
||||
customDialogTwoButtons.setTitle("La etiqueta escaneada no pertenece a la misma ruta. \n¿Desea incluirla igualmente?")
|
||||
.setOkButton("Incluir") {
|
||||
addScanInput = true
|
||||
customDialogTwoButtons.dismiss()
|
||||
return@setOkButton
|
||||
|
||||
}
|
||||
.setKoButton("Eliminar") {
|
||||
addScanInput = false
|
||||
customDialogTwoButtons.dismiss()
|
||||
return@setKoButton
|
||||
|
||||
}.show()
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package es.verdnatura.presentation.view.feature.paletizador.fragment
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.Transformations
|
||||
|
@ -35,6 +36,12 @@ class ExpeditionScanViewModel(context: Context) : BaseViewModel() {
|
|||
val responseDeleteScan: LiveData<ResponseItemVO>
|
||||
get() = _responseDeleteScan
|
||||
|
||||
//sergio:añadido para llamada nueva checkexpeditionScan
|
||||
private val _responseCheckexpeditionScanPut by lazy { MutableLiveData<ResponseItemVO>() }
|
||||
val responseCheckexpeditionScanPut: LiveData<ResponseItemVO>
|
||||
get() = _responseCheckexpeditionScanPut
|
||||
|
||||
|
||||
fun expeditionScanList(usuario:String,password:String,vPalletFk:String){
|
||||
getPaletizadoresUserCase.expeditionScanList(usuario,password,vPalletFk).enqueue(object :
|
||||
Callback<List<ItemExpeditionScanVO>> {
|
||||
|
@ -94,11 +101,30 @@ class ExpeditionScanViewModel(context: Context) : BaseViewModel() {
|
|||
_response.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada expeditionScan_Put")
|
||||
}else{
|
||||
_response.value = ResponseItemVO(isError = false,response = response.body()!!)
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun checkRouteExpeditionScanPut(usuario:String,password:String,vPalletFk:String,vExpeditionFk:String){
|
||||
getPaletizadoresUserCase.checkRouteExpeditionScanPut(usuario,password,vPalletFk,vExpeditionFk).enqueue(object : Callback<String>{
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
_response.value = ResponseItemVO(isError = true,errorMessage = "Error al guardar expedition "+vExpeditionFk+ " Respuesta:"+t.message!!)
|
||||
}
|
||||
override fun onResponse(call: Call<String>, response: Response<String>) {
|
||||
if (response.body() == null){
|
||||
_responseCheckexpeditionScanPut.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada checkExpeditionScan_Put")
|
||||
}else{
|
||||
_responseCheckexpeditionScanPut.value = ResponseItemVO(isError = false,response = response.body()!!)
|
||||
// //Log.i("VERDNATURA","Resultado checkExpeditionScan ${_responseCheckexpeditionScanPut.value}")
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
fun expeditionScanDel(usuario:String,password:String,vScanFk:String){
|
||||
getPaletizadoresUserCase.expeditionScanDel(usuario,password,vScanFk).enqueue(object : Callback<String>{
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.content.Context
|
|||
import android.content.SharedPreferences
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.lifecycle.Observer
|
||||
|
@ -39,7 +40,7 @@ class ExpeditionTruckListFragment : BaseFragment<FragmentExpeditionTruckListBin
|
|||
private var onTruckClickListener: OnTruckClickListener? = null
|
||||
|
||||
|
||||
companion object {
|
||||
companion object {//similar a static en Java
|
||||
fun newInstance() = ExpeditionTruckListFragment()
|
||||
}
|
||||
|
||||
|
@ -65,6 +66,7 @@ class ExpeditionTruckListFragment : BaseFragment<FragmentExpeditionTruckListBin
|
|||
toolbar_title.text = "PScan: "+getCURDATE()
|
||||
backButton.visibility = View.GONE
|
||||
setToolBar()
|
||||
//Log.i("VERDNATURA","1-cargamos expediciones")
|
||||
viewModel.expeditionTruckList(user,password)
|
||||
super.init()
|
||||
}
|
||||
|
@ -111,6 +113,7 @@ class ExpeditionTruckListFragment : BaseFragment<FragmentExpeditionTruckListBin
|
|||
adapter = ExpeditionListAdapter(it.list,onTruckClickListener!!)
|
||||
expedition_truck_recyclerview.adapter = adapter
|
||||
expedition_truck_recyclerview.layoutManager = lm
|
||||
//Log.i("VERDNATURA","2-Rellenamos adapter")
|
||||
}
|
||||
|
||||
private fun addTruck(){
|
||||
|
|
|
@ -44,6 +44,13 @@ class PasilleroViewModel(context: Context) : BaseViewModel() {
|
|||
"Buscar item",R.string.BuscarItem)
|
||||
)
|
||||
|
||||
//sergio: pruebas cau item buscar
|
||||
/* _pasillerositem.add(
|
||||
PasillerosItemVO(9,
|
||||
R.drawable.ic_visibility_black_24dp,
|
||||
"Buscar item full",R.string.test)
|
||||
)*/
|
||||
|
||||
_pasillerositem.add(
|
||||
PasillerosItemVO(1,
|
||||
R.drawable.ic_dashboard_black_24dp,
|
||||
|
|
|
@ -8,6 +8,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
|||
import androidx.recyclerview.widget.RecyclerView
|
||||
import es.verdnatura.R
|
||||
import es.verdnatura.databinding.ItemArticleRowBinding
|
||||
import es.verdnatura.databinding.ItemArticleRowPresacadorBinding
|
||||
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
|
||||
import es.verdnatura.presentation.common.OnQuantityClickListener
|
||||
import es.verdnatura.presentation.common.OnSaleClickListener
|
||||
|
@ -27,8 +28,11 @@ class PreSacadorAdapter (
|
|||
var position:Int = 0
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AjustesItemHolder {
|
||||
this.context = parent.context
|
||||
|
||||
return AjustesItemHolder(
|
||||
ItemArticleRowBinding.inflate(LayoutInflater.from(parent.context),parent,false)
|
||||
ItemArticleRowPresacadorBinding.inflate(LayoutInflater.from(parent.context),parent,false)
|
||||
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -40,7 +44,7 @@ class PreSacadorAdapter (
|
|||
}
|
||||
|
||||
inner class AjustesItemHolder(
|
||||
val binding: ItemArticleRowBinding
|
||||
val binding: ItemArticleRowPresacadorBinding
|
||||
) : RecyclerView.ViewHolder(binding.root){
|
||||
fun bind(preSale: PreSacadorItemVO) {
|
||||
binding.apply {
|
||||
|
|
|
@ -5,6 +5,7 @@ import android.content.SharedPreferences
|
|||
import android.graphics.drawable.Drawable
|
||||
import android.media.MediaPlayer
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
|
@ -61,6 +62,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
|
|||
private lateinit var customDialogThreeButtons: CustomDialogThreeButtons
|
||||
private var token = ""
|
||||
private var ticketFk = ""
|
||||
//sergio: se añada para leer el articulo leido que era el buyFk
|
||||
private var originalItemScan: String = ""
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
if (context is OnPasillerosItemClickListener) pasillerosItemClickListener = context
|
||||
|
@ -87,21 +90,25 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
|
|||
customDialogThreeButtons = CustomDialogThreeButtons(requireContext())
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
splash_progress.visibility = View.GONE
|
||||
toolbar_title.text = "ticketToPrePrepare"
|
||||
toolbar_title.text = getString(R.string.getticketpre)
|
||||
setToolBar()
|
||||
setEvents()
|
||||
|
||||
|
||||
super.init()
|
||||
}
|
||||
|
||||
private fun setEvents(){
|
||||
backButton.setOnClickListener {
|
||||
activity!!.onBackPressed()
|
||||
|
||||
}
|
||||
//ESCANER =========
|
||||
hideKeyboards()
|
||||
scan_input.requestFocus()
|
||||
scan_input.setOnEditorActionListener { v, actionId, event ->
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
|
||||
|
||||
if (!scan_input.text.toString().isNullOrEmpty()){
|
||||
if (scan_input.text.contains("-")){
|
||||
//es parking
|
||||
|
@ -181,6 +188,7 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
|
|||
|
||||
//CREATE LIST
|
||||
private fun searchTicket(ticketFk:String){
|
||||
Log.i(TAG,"Escaneamos ticket en previa")
|
||||
ticket = ticketFk
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
viewModel.ticketToPrePrepare(
|
||||
|
@ -261,6 +269,7 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
|
|||
if (totalMark == sales.size) {
|
||||
"Ticket completo".toast(this.context, Toast.LENGTH_SHORT)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun setListPosition(position:Int){
|
||||
|
@ -352,8 +361,18 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
|
|||
saleFk = sales[position].idMovimiento,
|
||||
vIsChecked = if (sales[position].picked == sales[position].quantity) "1" else "0",
|
||||
vOriginalQuantity = sales[position].picked.toString(),
|
||||
vStateFk = PRESACADOR
|
||||
vStateFk = PRESACADOR,
|
||||
|
||||
//sergio: se añade originalItemScan para
|
||||
vBuyFk = originalItemScan
|
||||
|
||||
)
|
||||
|
||||
// //Log.i("VERDNATURA","El id movimiento es ${sales[position].idMovimiento}")
|
||||
// //Log.i("VERDNATURA","Checked is ${if (sales[position].picked == sales[position].quantity) "1" else "0"}")
|
||||
// //Log.i("VERDNATURA","Position is ${position}")
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun unMarkLine(position: Int){
|
||||
|
@ -418,8 +437,13 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
|
|||
listPlacementSupply.add(BarcodeVO(code = it.proposal))
|
||||
}
|
||||
|
||||
customDialogList.setTitle("$shelving($item) $total de $longName").setOkButton("Coger"){
|
||||
customDialogList.setTitle("$shelving($item) $total del $longName").setOkButton("Coger"){
|
||||
|
||||
|
||||
|
||||
if (customDialogList.getValueTwo().isNotEmpty()){
|
||||
|
||||
|
||||
if (checkItemScan(customDialogList.getValueTwo())){
|
||||
onQuantityOfShelvingSelected(itemShelvingFk)
|
||||
mpok?.start()
|
||||
|
@ -457,6 +481,11 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
|
|||
|
||||
customDialogList.getEditTextTwo().setOnEditorActionListener { v, actionId, event ->
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
|
||||
|
||||
|
||||
originalItemScan=customDialogList.getValueTwo()
|
||||
//Log.i("VERDNATURA","el item original es $originalItemScan")
|
||||
|
||||
if (customDialogList.getValueTwo().isNotEmpty()){
|
||||
if (checkItemScan(customDialogList.getValueTwo())){
|
||||
onQuantityOfShelvingSelected(itemShelvingFk)
|
||||
|
@ -536,6 +565,7 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
|
|||
}
|
||||
|
||||
private fun showScanner(index:Int, sale:PreSacadorItemVO){
|
||||
|
||||
customDialogInput.setTitle(""+sale.itemFk).setDescription("Escanea el carro para el item seleccionado").setOkButton("Aceptar"){
|
||||
if (!customDialogInput.getValue().isNullOrEmpty()) {
|
||||
findSale(customDialogInput.getValue(),index)
|
||||
|
@ -572,6 +602,7 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
|
|||
collectionFk = ticket,
|
||||
sectorFk = sectorFk
|
||||
)
|
||||
//Log.i("VERDNATURA","La collection es $ticket, sectorFk $sectorFk, user $user i pass $password")
|
||||
"Imprimiendo...".toast(requireContext())
|
||||
}
|
||||
|
||||
|
@ -617,7 +648,9 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
|
|||
password = password,
|
||||
ticketFk = ticket,
|
||||
parking = parking
|
||||
|
||||
)
|
||||
//Log.i("VERDNATURA","El usuario $user pass $password ticket $ticketFk y parking $parking")
|
||||
if (mpok != null) mpok!!.start()
|
||||
"Ticket aparcado".toast(requireContext())
|
||||
}
|
||||
|
|
|
@ -134,8 +134,11 @@ class PreSacadorViewModel (context: Context): BaseViewModel() {
|
|||
})
|
||||
}
|
||||
|
||||
fun saleTrackingReplace(usuario:String,password:String,saleFk:String,vOriginalQuantity:String,vStateFk:String,vIsChecked:String){
|
||||
getSacadorControladorUserCase.saleTrackingReplace(usuario,password,saleFk,vOriginalQuantity,vStateFk,vIsChecked,"0").enqueue(object : Callback<String>{
|
||||
fun saleTrackingReplace(usuario:String,password:String,saleFk:String,vOriginalQuantity:String,vStateFk:String,vIsChecked:String,vBuyFk:String){
|
||||
//Lo ultimo que se envia
|
||||
//sergio: se quita el 0 que habia por defecto para la previa se añada el buyFk que sera el item escaneado.
|
||||
//getSacadorControladorUserCase.saleTrackingReplace(usuario,password,saleFk,vOriginalQuantity,vStateFk,vIsChecked,"0").enqueue(object : Callback<String>{
|
||||
getSacadorControladorUserCase.saleTrackingReplace(usuario,password,saleFk,vOriginalQuantity,vStateFk,vIsChecked,vBuyFk).enqueue(object : Callback<String>{
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
_response.value = ResponseItemVO(isError = true,errorMessage = ""+t.message!!)
|
||||
}
|
||||
|
|
|
@ -18,7 +18,9 @@ fun PreSacadorItemVO.toSale() : SaleVO {
|
|||
workerFk = if (trabajador.isNullOrEmpty()) { "0" } else trabajador,
|
||||
originalQuantity = quantity.toString(),
|
||||
placements = carros,
|
||||
agencyName = if (trabajador.isNullOrEmpty()) { "" } else trabajador
|
||||
agencyName = if (trabajador.isNullOrEmpty()) { "" } else trabajador,
|
||||
packingType=packingType
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import es.verdnatura.presentation.view.feature.sacador.model.PlacementVO
|
|||
class PreSacadorItemVO (
|
||||
var id : String = "",
|
||||
var itemFk : String = "",
|
||||
var packingType: String="",
|
||||
var longName : String = "",
|
||||
var subName : String = "",
|
||||
var quantity : Int = 0,
|
||||
|
|
|
@ -83,7 +83,7 @@ class ReposicionFragment : BaseFragment<ReposicionFragmentBinding, ReposicionVie
|
|||
customDialogThreeButtons = CustomDialogThreeButtons(requireContext())
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
splash_progress.visibility = View.GONE
|
||||
toolbar_title.text = "itemPlacementSupplyGetOrder"
|
||||
toolbar_title.text = getString(R.string.itemPlacementSupplyGetOrder)
|
||||
setToolBar()
|
||||
setEvents()
|
||||
super.init()
|
||||
|
@ -530,6 +530,7 @@ class ReposicionFragment : BaseFragment<ReposicionFragmentBinding, ReposicionVie
|
|||
}
|
||||
|
||||
private fun showScanner(index:Int, sale:PreSacadorItemVO){
|
||||
////Log.i("VERDNATURA","CUSTOMDIALOG para enviar")
|
||||
customDialogInput.setTitle(""+sale.itemFk).setDescription("Escanea el carro para el item seleccionado").setOkButton("Aceptar"){
|
||||
if (!customDialogInput.getValue().isNullOrEmpty()) {
|
||||
findSale(customDialogInput.getValue(),index)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package es.verdnatura.presentation.view.feature.sacador.adapter
|
||||
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
@ -26,6 +27,7 @@ class CollectionAdapter (
|
|||
holder.bind(items[position])
|
||||
holder.binding.root.setOnClickListener {
|
||||
onCollectionSelected.onCollectionSelected(items[position],SACADOR)
|
||||
////Log.i("VERDNATURA","2-Click item ${items[position].collectionFk}")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.content.Context
|
|||
import android.content.SharedPreferences
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
|
@ -32,6 +33,7 @@ class SacadorFragment : BaseFragment<FragmentSacadorBinding,SacadorViewModel>(Sa
|
|||
private lateinit var customDialog: CustomDialog
|
||||
private var collectionsList:ArrayList<CollectionVO> = ArrayList()
|
||||
private var adapter: CollectionAdapter? = null
|
||||
private var carros=""
|
||||
|
||||
|
||||
companion object {
|
||||
|
@ -51,6 +53,8 @@ class SacadorFragment : BaseFragment<FragmentSacadorBinding,SacadorViewModel>(Sa
|
|||
password = prefs.getString(PASSWORD,"").toString()
|
||||
sectorFk = prefs.getInt(SECTORFK,1).toString()
|
||||
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString()
|
||||
//sergio: asignamos carros por defecto 2
|
||||
carros= prefs!!.getString(CARRO,"2").toString()
|
||||
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
@ -59,16 +63,19 @@ class SacadorFragment : BaseFragment<FragmentSacadorBinding,SacadorViewModel>(Sa
|
|||
customDialog = CustomDialog(requireContext())
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
splash_progress_two.visibility = View.GONE
|
||||
toolbar_title.text = "collection_get"
|
||||
//el texto de la toolbar
|
||||
toolbar_title.text =getString(R.string.getcollection)
|
||||
setToolBar()
|
||||
setEvents()
|
||||
viewModel.collectionGet(user,password)
|
||||
|
||||
|
||||
super.init()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
goBack = true
|
||||
goBack2 = true
|
||||
goBack2 = true
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
|
@ -80,8 +87,10 @@ class SacadorFragment : BaseFragment<FragmentSacadorBinding,SacadorViewModel>(Sa
|
|||
toolbar_icons.adapter = ToolBarAdapter(listIcons,object: OnOptionsSelectedListener {
|
||||
override fun onOptionsItemSelected(item: Drawable) {
|
||||
if(item == iconAdd){
|
||||
////Log.i("VERDNATURA","pulsando el +")
|
||||
|
||||
splash_progress_two.visibility = View.VISIBLE
|
||||
viewModel.collectionNew(user,password,sectorFk)
|
||||
viewModel.collectionNew(user,password,sectorFk,carros)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -91,7 +100,10 @@ class SacadorFragment : BaseFragment<FragmentSacadorBinding,SacadorViewModel>(Sa
|
|||
private fun setEvents(){
|
||||
sacador_swipe.setOnRefreshListener {
|
||||
splash_progress.visibility = View.VISIBLE
|
||||
|
||||
viewModel.collectionGet(user,password)
|
||||
Log.i("VERDNATURA","CollectionGet desde SacadorFragment SETEVENTS del swipe")
|
||||
//sergio: para mostrar que si se refresca o no
|
||||
sacador_swipe.isRefreshing = false
|
||||
}
|
||||
}
|
||||
|
@ -135,11 +147,13 @@ class SacadorFragment : BaseFragment<FragmentSacadorBinding,SacadorViewModel>(Sa
|
|||
}
|
||||
val lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
|
||||
adapter = CollectionAdapter(collectionsList,onCollectionSelectedListener!!)
|
||||
////Log.i("VERDNATURA","3-New fragment")
|
||||
fragment_sacador_collections.layoutManager = lm
|
||||
fragment_sacador_collections.adapter = adapter
|
||||
|
||||
}
|
||||
|
||||
|
||||
private fun addCollectionToList(collection:String){
|
||||
var isNew = true
|
||||
collectionsList.forEach {
|
||||
|
@ -160,6 +174,7 @@ class SacadorFragment : BaseFragment<FragmentSacadorBinding,SacadorViewModel>(Sa
|
|||
private fun navigateToCollectionList(collection:CollectionVO){
|
||||
collectionsList.add(collection)
|
||||
adapter?.notifyDataSetChanged()
|
||||
|
||||
onCollectionSelectedListener?.onCollectionSelected(collection, SACADOR)
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package es.verdnatura.presentation.view.feature.sacador.fragment
|
|||
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import es.verdnatura.domain.GetSacadorControladorUserCase
|
||||
|
@ -11,6 +12,7 @@ import es.verdnatura.presentation.view.feature.collection.mapper.map
|
|||
import es.verdnatura.presentation.view.feature.sacador.mapper.toDateFormat
|
||||
import es.verdnatura.presentation.view.feature.sacador.model.CollectionListVO
|
||||
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
|
||||
import org.json.JSONObject
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
|
@ -19,7 +21,9 @@ class SacadorViewModel(context: Context) : BaseViewModel() {
|
|||
|
||||
val emptyMessage = "No tienes colecciones pendientes. Presiona sobre el + para crear colección";
|
||||
|
||||
private val getSacadorControladorUserCase: GetSacadorControladorUserCase = GetSacadorControladorUserCase(context)
|
||||
private val getSacadorControladorUserCase: GetSacadorControladorUserCase = GetSacadorControladorUserCase(
|
||||
context
|
||||
)
|
||||
|
||||
private val _collectionList by lazy { MutableLiveData<CollectionListVO>() }
|
||||
val collectionList: LiveData<CollectionListVO>
|
||||
|
@ -34,62 +38,108 @@ class SacadorViewModel(context: Context) : BaseViewModel() {
|
|||
get() = _response
|
||||
|
||||
|
||||
fun collectionTicketGet(usuario:String,password:String,collectionFk:String,sectorFk:String,print:String){
|
||||
getSacadorControladorUserCase.collectionTicketGet(usuario,password,collectionFk,sectorFk,print).enqueue(object :
|
||||
fun collectionTicketGet(
|
||||
usuario: String,
|
||||
password: String,
|
||||
collectionFk: String,
|
||||
sectorFk: String,
|
||||
print: String
|
||||
){
|
||||
getSacadorControladorUserCase.collectionTicketGet(
|
||||
usuario,
|
||||
password,
|
||||
collectionFk,
|
||||
sectorFk,
|
||||
print
|
||||
).enqueue(object :
|
||||
Callback<CollectionVO> {
|
||||
override fun onFailure(call: Call<CollectionVO>, t: Throwable) {
|
||||
_collectionTicketList.value = CollectionVO(isError = true,errorMessage = t.message!!)
|
||||
_collectionTicketList.value = CollectionVO(
|
||||
isError = true,
|
||||
errorMessage = t.message!!
|
||||
)
|
||||
}
|
||||
|
||||
override fun onResponse(
|
||||
call: Call<CollectionVO>,
|
||||
response: Response<CollectionVO>
|
||||
) {
|
||||
if (response.body() != null){
|
||||
if (response.body() != null) {
|
||||
_collectionTicketList.value = response.body()?.let { it.map() }
|
||||
}else{
|
||||
_collectionTicketList.value = CollectionVO(isError = true,errorMessage = "No hay tickets para sacar")
|
||||
} else {
|
||||
_collectionTicketList.value = CollectionVO(
|
||||
isError = true,
|
||||
errorMessage = "No hay tickets para sacar"
|
||||
)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
// fun collectionNew(usuario:String,password:String,sectorFk:String){
|
||||
// getSacadorControladorUserCase.collectionNew(usuario,password,sectorFk).enqueue(object :
|
||||
fun collectionNew(usuario: String, password: String, sectorFk: String, carros: String){
|
||||
////Log.i("VERDNATURA", "El sector para CollectionNew es $sectorFk y los carros son $carros")
|
||||
|
||||
fun collectionNew(usuario:String,password:String,sectorFk:String){
|
||||
getSacadorControladorUserCase.collectionNew(usuario,password,sectorFk).enqueue(object :
|
||||
Callback<String> {
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
_response.value = ResponseItemVO(isError = true,errorMessage = ""+t.message!!)
|
||||
}
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.body() != null){
|
||||
_response.value = ResponseItemVO(isError = false,response = response.body()!!)
|
||||
}else{
|
||||
_response.value = ResponseItemVO(isError = true,errorMessage = "Error en la llamada collectionNew")
|
||||
}
|
||||
}
|
||||
})
|
||||
getSacadorControladorUserCase.collectionNew(usuario, password, sectorFk, carros).enqueue(
|
||||
object :
|
||||
Callback<String> {
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
_response.value =
|
||||
ResponseItemVO(isError = true, errorMessage = "" + t.message!!)
|
||||
////Log.i("VERDNATURA",t.message.toString())
|
||||
|
||||
}
|
||||
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.body() != null) {
|
||||
_response.value =
|
||||
ResponseItemVO(isError = false, response = response.body()!!)
|
||||
} else {
|
||||
val error=response.message()
|
||||
////Log.i("VERDNATURA",""+ error)
|
||||
_response.value = ResponseItemVO(
|
||||
isError = true,
|
||||
// errorMessage = "Error en la llamada collectionNew"
|
||||
errorMessage = "No hay tickets para sacar"
|
||||
)
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun collectionGet(usuario:String,password:String){
|
||||
getSacadorControladorUserCase.collectionGet(usuario,password).enqueue(object :
|
||||
|
||||
|
||||
|
||||
fun collectionGet(usuario: String, password: String){
|
||||
////Log.i("VERDNATURA","collectionGet para coger tickets")
|
||||
getSacadorControladorUserCase.collectionGet(usuario, password).enqueue(object :
|
||||
Callback<List<CollectionVO>> {
|
||||
override fun onFailure(call: Call<List<CollectionVO>>, t: Throwable) {
|
||||
val listError:ArrayList<CollectionVO> = ArrayList()
|
||||
listError.add(CollectionVO(isError = true,errorMessage = t.message!!))
|
||||
val listError: ArrayList<CollectionVO> = ArrayList()
|
||||
listError.add(CollectionVO(isError = true, errorMessage = t.message!!))
|
||||
_collectionList.value = CollectionListVO(listError)
|
||||
}
|
||||
|
||||
|
||||
override fun onResponse(
|
||||
call: Call<List<CollectionVO>>,
|
||||
response: Response<List<CollectionVO>>
|
||||
) {
|
||||
if (response.body() != null){
|
||||
_collectionList.value = response.body()?.let { CollectionListVO(it.toDateFormat()) }
|
||||
}else{
|
||||
val listError:ArrayList<CollectionVO> = ArrayList()
|
||||
listError.add(CollectionVO(isError = true,errorMessage = "Error en la llamada de collection_get"))
|
||||
if (response.body() != null) {
|
||||
_collectionList.value =
|
||||
response.body()?.let { CollectionListVO(it.toDateFormat()) }
|
||||
} else {
|
||||
val listError: ArrayList<CollectionVO> = ArrayList()
|
||||
listError.add(
|
||||
CollectionVO(
|
||||
isError = true,
|
||||
errorMessage = "Error en la llamada de collection_get"
|
||||
)
|
||||
)
|
||||
_collectionList.value = CollectionListVO(listError)
|
||||
|
||||
}
|
||||
|
|
|
@ -52,7 +52,8 @@ class SaleVO(
|
|||
var placements : List<PlacementVO> = listOf(),
|
||||
var Barcodes : List<String> = listOf(),
|
||||
var isNew : Boolean = false,
|
||||
var salePersonFk : String = ""
|
||||
var salePersonFk : String = "",
|
||||
var packingType:String =""
|
||||
)
|
||||
|
||||
class PlacementVO(
|
||||
|
|
|
@ -50,7 +50,7 @@ class ShelvingParkingFragment : BaseFragment<FragmentShelvingParkingBinding, She
|
|||
customDialog = CustomDialog(requireContext())
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
|
||||
toolbar_title.text = "shelvingParking_get"
|
||||
toolbar_title.text = getString(R.string.shelvingParking_get)
|
||||
setEvents()
|
||||
super.init()
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ class UbicadorFragment(
|
|||
customDialogUbicador = CustomDialogUbicador(requireContext())
|
||||
customDialogTwoButtons = CustomDialogTwoButtons(requireContext())
|
||||
activity!!.main_bottom_navigation.visibility = View.GONE
|
||||
toolbar_title.text = "itemShelvingList"
|
||||
toolbar_title.text = getString(R.string.locator)
|
||||
setEvents()
|
||||
setToolBar()
|
||||
if (!shelvingFk.isNullOrEmpty()){
|
||||
|
|
|
@ -0,0 +1,138 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="viewModel"
|
||||
type="es.verdnatura.presentation.view.feature.buscaritemall.model.ItemLocationAll" />
|
||||
</data>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:paddingTop="@dimen/toolbar_height">
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/textinputlayout_username"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColorHint="@android:color/darker_gray">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/edit_itemFk"
|
||||
style="@style/InputLineTextSearch"
|
||||
android:layout_width="match_parent"
|
||||
android:backgroundTint="@android:color/white"
|
||||
android:hint="@string/Escaneaetiqueta"
|
||||
android:inputType="text"
|
||||
android:lines="1"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textColorHint="@android:color/darker_gray" />
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="@dimen/layout_margin_min"
|
||||
android:layout_marginBottom="@dimen/layout_margin_1"
|
||||
android:paddingLeft="@dimen/layout_margin_min"
|
||||
android:paddingRight="@dimen/layout_margin_min">
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Parking"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/Matrícula"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/Visible"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/Fecha"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
</LinearLayout>
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/location_all_recyclerview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clipToPadding="false"
|
||||
tools:listitem="@layout/item_location_all_row"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<include
|
||||
android:id="@+id/main_toolbar"
|
||||
layout="@layout/toolbar"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/splash_progress"
|
||||
android:visibility="gone"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:background="@color/verdnatura_black_8_alpha_6"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:gravity="center">
|
||||
|
||||
<com.airbnb.lottie.LottieAnimationView
|
||||
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/verdnatura_logo_large_height"
|
||||
|
||||
app:lottie_autoPlay="true"
|
||||
app:lottie_loop="true"
|
||||
app:lottie_rawRes="@raw/orange_loading"
|
||||
app:lottie_speed="2" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
|
@ -30,17 +30,56 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:textColorHint="@android:color/darker_gray">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
||||
android:orientation="horizontal">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/filter_itemFk"
|
||||
style="@style/InputLineTextSearch"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_weight="1.5"
|
||||
android:backgroundTint="@android:color/white"
|
||||
android:hint="@string/Filtro"
|
||||
android:inputType="number"
|
||||
android:inputType="text"
|
||||
android:lines="1"
|
||||
android:maxLines="1"
|
||||
android:textAlignment="center"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textColorHint="@android:color/darker_gray" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/filter_buyer"
|
||||
style="@style/InputLineTextSearch"
|
||||
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/buscarcomprador"
|
||||
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" />
|
||||
|
||||
<ImageView
|
||||
|
||||
android:id="@+id/item_image"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/ic_chevron_right_black_24dp"
|
||||
android:visibility="gone" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
@ -51,30 +90,33 @@
|
|||
android:layout_marginBottom="@dimen/layout_margin_1"
|
||||
android:paddingLeft="@dimen/layout_margin_min"
|
||||
android:paddingRight="@dimen/layout_margin_min">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Downstairs"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
android:gravity="center"
|
||||
android:text="@string/ubicado"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/body2" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Upstairs"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
android:gravity="center"
|
||||
android:text="@string/altillo"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/body2" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/Nicho"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
android:gravity="center"
|
||||
android:text="@string/sinubicar"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/body2" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -0,0 +1,139 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="viewModel"
|
||||
type="es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO" />
|
||||
</data>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:paddingTop="@dimen/toolbar_height">
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/textinputlayout_username"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColorHint="@android:color/darker_gray">
|
||||
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/filter_itemFk"
|
||||
style="@style/InputLineTextSearch"
|
||||
android:layout_width="match_parent"
|
||||
android:backgroundTint="@android:color/white"
|
||||
android:layout_weight="1"
|
||||
android:hint="@string/Filtro"
|
||||
android:inputType="text"
|
||||
android:lines="1"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textColorHint="@android:color/darker_gray" />
|
||||
|
||||
|
||||
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="@dimen/layout_margin_min"
|
||||
android:layout_marginBottom="@dimen/layout_margin_1"
|
||||
android:paddingLeft="@dimen/layout_margin_min"
|
||||
android:paddingRight="@dimen/layout_margin_min">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/ubicado"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/body2" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/altillo"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/body2" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/sinubicar"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/body2" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/location_recyclerview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clipToPadding="false"
|
||||
tools:listitem="@layout/item_inventary_row"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
<include
|
||||
android:id="@+id/main_toolbar"
|
||||
layout="@layout/toolbar"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/splash_progress"
|
||||
android:visibility="visible"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:background="@color/verdnatura_black_8_alpha_6"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:gravity="center">
|
||||
|
||||
<com.airbnb.lottie.LottieAnimationView
|
||||
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/verdnatura_logo_large_height"
|
||||
|
||||
app:lottie_autoPlay="true"
|
||||
app:lottie_loop="true"
|
||||
app:lottie_rawRes="@raw/orange_loading"
|
||||
app:lottie_speed="2" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
|
@ -49,7 +49,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="8dp"
|
||||
tools:listitem="@layout/item_article_row" />
|
||||
tools:listitem="@layout/item_article_row_presacador" />
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,271 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tool="http://schemas.android.com/tools"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="sale"
|
||||
type="es.verdnatura.presentation.view.feature.sacador.model.SaleVO" />
|
||||
</data>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginBottom="@dimen/layout_margin_min">
|
||||
<!--CABECERA=================================================-->
|
||||
<LinearLayout
|
||||
android:id="@+id/item_row_layout"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/verdnatura_black_5">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/verdnatura_warm_grey"
|
||||
android:padding="@dimen/layout_margin_min"
|
||||
android:orientation="vertical">
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:text="@string/Nivel"
|
||||
android:textSize="@dimen/h8"
|
||||
android:layout_marginRight="@dimen/layout_margin_min"/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:text="@{sale.level}"
|
||||
tool:text="2"
|
||||
android:textStyle="bold"
|
||||
android:textSize="@dimen/h8"
|
||||
android:layout_marginRight="@dimen/layout_margin_min"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:text="@string/Ticket"
|
||||
android:textSize="@dimen/h8"
|
||||
android:layout_marginRight="@dimen/layout_margin_min"/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:text="@{sale.ticketFk}"
|
||||
tool:text="123456789"
|
||||
android:textStyle="bold"
|
||||
android:textSize="@dimen/h8"
|
||||
android:layout_marginRight="@dimen/layout_margin_min"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:text="@string/packingType"
|
||||
android:textSize="@dimen/h8"
|
||||
android:layout_marginRight="@dimen/layout_margin_min"/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:text="@{sale.packingType}"
|
||||
tool:text="123456789"
|
||||
android:textStyle="bold"
|
||||
android:textSize="@dimen/h8"
|
||||
android:layout_marginRight="@dimen/layout_margin_min"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:text="@{sale.agencyName}"
|
||||
tool:text="MRW"
|
||||
android:textStyle="bold"
|
||||
android:textSize="@dimen/h8"
|
||||
android:layout_marginRight="@dimen/layout_margin_min"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/content_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="@dimen/layout_margin_min"
|
||||
android:paddingBottom="@dimen/layout_margin_min"
|
||||
android:background="@color/verdnatura_black">
|
||||
<!--SEMAFORO=================================================-->
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout3"
|
||||
android:layout_width="@dimen/semaforo_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<View
|
||||
android:id="@+id/item_article_row_semaforo_pre"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/semaforo_height"
|
||||
android:background="@color/verdnatura_warm_grey"
|
||||
android:layout_marginBottom="1dp"/>
|
||||
|
||||
<View
|
||||
android:id="@+id/item_article_row_semaforo_sac"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/semaforo_height"
|
||||
android:background="@color/verdnatura_warm_grey"
|
||||
android:layout_marginBottom="1dp"/>
|
||||
|
||||
<View
|
||||
android:id="@+id/item_article_row_semaforo_con"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/semaforo_height"
|
||||
android:background="@color/verdnatura_warm_grey" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!--CONTENIDO=================================================-->
|
||||
<TextView
|
||||
android:id="@+id/item_article_itemFk"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/layout_margin_min"
|
||||
android:layout_marginEnd="@dimen/layout_margin_min"
|
||||
android:text="@{sale.itemFk}"
|
||||
tool:text="85478"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/h6"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintEnd_toStartOf="@+id/item_article_quantity_picked"
|
||||
app:layout_constraintStart_toEndOf="@+id/linearLayout3"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:maxLines="1"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_article_quantity_picked"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/layout_margin_min"
|
||||
android:text="@{sale.pickedQuantity}"
|
||||
tool:text="0"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/h6"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintEnd_toStartOf="@+id/txtde"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtde"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/layout_margin_min"
|
||||
android:text="@string/de"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/h6"
|
||||
app:layout_constraintEnd_toStartOf="@+id/item_article_quantity"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_article_quantity"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/layout_margin_min"
|
||||
android:text="@{sale.quantity}"
|
||||
tool:text="10"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/h6"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_article_quantity_line1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/layout_margin_min"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@{sale.line1}"
|
||||
tool:text="información de la linea 1"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/body2"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/linearLayout3"
|
||||
app:layout_constraintTop_toBottomOf="@+id/item_article_itemFk" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_article_quantity_line2"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/layout_margin_min"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@{sale.line2}"
|
||||
tool:text="información de la linea 2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/body2"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/linearLayout3"
|
||||
app:layout_constraintTop_toBottomOf="@+id/item_article_quantity_line1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_article_quantity_line3"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/layout_margin_min"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@{sale.line3}"
|
||||
tool:text="información de la linea 3"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:textSize="@dimen/body2"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/linearLayout3"
|
||||
app:layout_constraintTop_toBottomOf="@+id/item_article_quantity_line2" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/layout_error"
|
||||
android:visibility="gone"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<TextView
|
||||
android:id="@+id/txt_error"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:background="@color/verdnatura_red"
|
||||
tool:text="Cantidad original 100"/>
|
||||
</LinearLayout>
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/item_article_placements"
|
||||
android:clipToPadding="false"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
tools:listitem="@layout/item_placement_row"
|
||||
android:background="@color/verdnatura_black_3"
|
||||
tools:orientation="horizontal"/>
|
||||
</LinearLayout>
|
||||
</layout>
|
|
@ -29,7 +29,7 @@
|
|||
android:id="@+id/historico_date"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{item.date}"
|
||||
android:text="@{item.shipped}"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:gravity="center"
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tool="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="item"
|
||||
type="es.verdnatura.presentation.view.feature.buscaritemall.model.ItemLocationAll" />
|
||||
</data>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
style="@style/LayoutClickable">
|
||||
<LinearLayout
|
||||
android:id="@+id/item_row_layout"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/verdnatura_black_5"
|
||||
android:paddingLeft="@dimen/layout_margin_min"
|
||||
android:paddingRight="@dimen/layout_margin_min"
|
||||
android:paddingTop="@dimen/pasilleros_margin_main_menu"
|
||||
android:paddingBottom="@dimen/pasilleros_margin_main_menu">
|
||||
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{item.parking}"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{item.matricula}"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{item.visible}"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{item.created}"
|
||||
android:textSize="@dimen/body2"
|
||||
android:textColor="@color/verdnatura_white"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"/>
|
||||
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/verdnatura_black_9"/>
|
||||
</LinearLayout>
|
||||
</layout>
|
|
@ -61,9 +61,9 @@
|
|||
<string name="Inventario">Inventario</string>
|
||||
<string name="Disponible">Disponible</string>
|
||||
<string name="Ubicado">Ubicado</string>
|
||||
<string name="SINUBICAR">SIN UBICAR</string>
|
||||
<string name="BUSCARITEM">BUSCAR ITEM</string>
|
||||
<string name="MINIMO">MINIMO</string>
|
||||
<string name="SINUBICAR">Sin ubicar</string>
|
||||
<string name="BUSCARITEM">Buscar item</string>
|
||||
<string name="MINIMO">Mínimo</string>
|
||||
<string name="txtparking">Primero escanea tantos carros o tickets como quieras aparcar y finalmente escanea el parking para finalizar el proceso</string>
|
||||
<string name="Ticketaparcado">Ticket aparcado</string>
|
||||
<string name="Imprimiendo">Imprimiendo...</string>
|
||||
|
@ -88,8 +88,35 @@
|
|||
<string name="Actualizar">Actualizar</string>
|
||||
<string name="reposicion">Reposición</string>
|
||||
<string name="obtener">Obtener</string>
|
||||
<string name="CANTIDAD2">CANTIDAD</string>
|
||||
<string name="DARALTA">DAR DE ALTA</string>
|
||||
<string name="DARBAJA">DAR DE BAJA</string>
|
||||
<string name="CANTIDAD2">Cantidad</string>
|
||||
<string name="DARALTA">Dar de alta</string>
|
||||
<string name="DARBAJA">Dar de baja</string>
|
||||
<string name="Calidad">Calidad</string>
|
||||
<string name="enbreveDisponible">En breve disponible</string>
|
||||
<string name="ubicado">Ubicado</string>
|
||||
<string name="sinubicar">Sin ubicar</string>
|
||||
<string name="altillo">Altillo</string>
|
||||
<string name="packingType">Tipo embalaje</string>
|
||||
<string name="Seleccionauncarro">Selecciona un carro</string>
|
||||
<string name="itemShelvingRadar">Radar inventario</string>
|
||||
<string name="buscarcomprador">Buscar comprador</string>
|
||||
<string name="escribirparteNombre">Escribe aquí</string>
|
||||
<string name="compradores">Compradores</string>
|
||||
<string name="Grouping">Grouping</string>
|
||||
<string name="Packing">Packing</string>
|
||||
<string name="Barcode">Barcode</string>
|
||||
<string name="tipodeencajado">Tipo de encajado</string>
|
||||
<string name="total">Total</string>
|
||||
<string name="mensajeseleccionencajado">Selecciona zona encajado :</string>
|
||||
<string name="buscararticulo">Buscar artículo</string>
|
||||
<string name="itemdiary">Balance del artículo</string>
|
||||
<string name="getcollection">Obtener colección</string>
|
||||
<string name="getticketpre">Obtener ticket previa</string>
|
||||
<string name="locator">Ubicador</string>
|
||||
<string name="quality">Calidad</string>
|
||||
<string name="getubicaition">Buscar ítem</string>
|
||||
<string name="itemPlacementSupplyGetOrder">Reposiciones</string>
|
||||
<string name="faultsReview">Faltas</string>
|
||||
<string name="shelvingParking_get">Parking estanterías</string>
|
||||
<string name="test">Buscar item search</string>
|
||||
</resources>
|
|
@ -60,9 +60,9 @@
|
|||
<string name="Inventario">Inventory</string>
|
||||
<string name="Disponible">Available</string>
|
||||
<string name="Ubicado">Located</string>
|
||||
<string name="SINUBICAR">UNLOCATED</string>
|
||||
<string name="BUSCARITEM">SEARCH ITEM</string>
|
||||
<string name="MINIMO">MINIMUM</string>
|
||||
<string name="SINUBICAR">Unlocated</string>
|
||||
<string name="BUSCARITEM">Search item</string>
|
||||
<string name="MINIMO">Minimun</string>
|
||||
<string name="txtparking">First scan as many cars or tickets as you want to park and finally scan the parking to finish the process</string>
|
||||
<string name="Ticketaparcado">Parked ticket</string>
|
||||
<string name="Imprimiendo">Printing ...</string>
|
||||
|
@ -87,8 +87,36 @@
|
|||
<string name="Actualizar">Update</string>
|
||||
<string name="reposicion">Replacement</string>
|
||||
<string name="obtener">Get</string>
|
||||
<string name="CANTIDAD2">QUANTITY</string>
|
||||
<string name="DARALTA">ADD</string>
|
||||
<string name="DARBAJA">REMOVE</string>
|
||||
<string name="CANTIDAD2">Quantity</string>
|
||||
<string name="DARALTA">Add</string>
|
||||
<string name="DARBAJA">Remove</string>
|
||||
<string name="Calidad">Quality</string>
|
||||
<string name="enbreveDisponible">Available soon</string>
|
||||
<string name="ubicado">Visible</string>
|
||||
<string name="altillo">Upstairs</string>
|
||||
<string name="packingType">Packing type</string>
|
||||
<string name="sinubicar">Downstairs</string>
|
||||
<string name="Seleccionauncarro">Select a wagon</string>
|
||||
<string name="itemShelvingRadar">Shelving Radar</string>
|
||||
<string name="buscarcomprador">Search buyer</string>
|
||||
<string name="escribirparteNombre">Write here</string>
|
||||
<string name="compradores">Buyers</string>
|
||||
<string name="Grouping">Grouping</string>
|
||||
<string name="Packing">Packing</string>
|
||||
<string name="Barcode">Barcode</string>
|
||||
<string name="tipodeencajado">Tipo de encajado</string>
|
||||
<string name="total">Total</string>
|
||||
<string name="mensajeseleccionencajado">Select packing type zone :</string>
|
||||
<string name="buscararticulo">Search article</string>
|
||||
<string name="itemdiary">Item diary</string>
|
||||
<string name="getcollection">Get collection</string>
|
||||
<string name="getticketpre">Get previous ticket</string>
|
||||
<string name="locator">Locator</string>
|
||||
<string name="quality">Quality</string>
|
||||
<string name="getubicaition">Get ubication</string>
|
||||
<string name="itemPlacementSupplyGetOrder">Placement supply</string>
|
||||
<string name="faultsReview">Faults review</string>
|
||||
<string name="shelvingParking_get">Shelving parking</string>
|
||||
<string name="test">Search item test</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -20,7 +20,7 @@ buildscript {
|
|||
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:4.0.1'
|
||||
classpath 'com.android.tools.build:gradle:4.1.3'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
classpath 'com.google.gms:google-services:4.3.3'
|
||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.2.0'
|
||||
|
@ -34,7 +34,7 @@ allprojects {
|
|||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
|
||||
maven{url 'https://jitpack.io'}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#Thu Oct 01 06:19:26 CEST 2020
|
||||
#Mon Apr 19 11:48:11 CEST 2021
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
||||
|
|
Loading…
Reference in New Issue