Version 7.3: añade parking de sales, número de baldas que ocupa un ticket, número items en balda, filtro si no funciona tecla ENTER y pinta colores del ticket

This commit is contained in:
Sergio De la torre 2021-12-23 09:00:32 +01:00
parent 7fb7825a6b
commit f36ab51499
69 changed files with 2803 additions and 887 deletions

View File

@ -29,6 +29,7 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/crane.xml" value="0.23802083333333332" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/crane.xml" value="0.23802083333333332" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/day_of_sale.xml" value="0.184375" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/day_of_sale.xml" value="0.184375" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/delete.xml" value="0.19166666666666668" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/delete.xml" value="0.19166666666666668" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/eraser.xml" value="0.26564102564102565" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/face_man_outline.xml" value="0.22708333333333333" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/face_man_outline.xml" value="0.22708333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/filter_outline.xml" value="0.22239583333333332" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/filter_outline.xml" value="0.22239583333333332" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/human_dolly.xml" value="0.2111111111111111" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/human_dolly.xml" value="0.2111111111111111" />
@ -71,6 +72,7 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/pallet_shipping_black.xml" value="0.1" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/pallet_shipping_black.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/pallet_shipping_selected.xml" value="0.1" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/pallet_shipping_selected.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/qrcode_scan.xml" value="0.17395833333333333" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/qrcode_scan.xml" value="0.17395833333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/rectangle.xml" value="0.31979166666666664" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/revision_icon.xml" value="0.1" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/revision_icon.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/round_av_timer_24.xml" value="0.15052083333333333" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/round_av_timer_24.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/round_outline.xml" value="0.11979166666666667" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/round_outline.xml" value="0.11979166666666667" />
@ -80,6 +82,7 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/activity_main.xml" value="0.17916666666666667" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/activity_main.xml" value="0.17916666666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/buyers_fragment.xml" value="0.18333333333333332" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/buyers_fragment.xml" value="0.18333333333333332" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_dialog.xml" value="0.1490036231884058" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_dialog.xml" value="0.1490036231884058" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_edit_dialog.xml" value="0.10208333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_list_dialog.xml" value="0.1490036231884058" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_list_dialog.xml" value="0.1490036231884058" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_three_dialog.xml" value="0.12817028985507245" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_three_dialog.xml" value="0.12817028985507245" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_ajustes.xml" value="0.3333333333333333" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_ajustes.xml" value="0.3333333333333333" />
@ -108,18 +111,20 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_paletizador_menu.xml" value="0.13829787234042554" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_paletizador_menu.xml" value="0.13829787234042554" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_parking.xml" value="0.5" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_parking.xml" value="0.5" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_pasillero.xml" value="0.13829787234042554" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_pasillero.xml" value="0.13829787234042554" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_pre_sacador.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_qr.xml" value="0.19882246376811594" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_qr.xml" value="0.19882246376811594" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_sacador.xml" value="0.12952898550724637" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_sacador.xml" value="0.12952898550724637" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_sacador_associatesmarttag.xml" value="0.22" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_sacador_associatesmarttag.xml" value="0.22" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_shelvinglog.xml" value="0.13269927536231885" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_shelvinglog.xml" value="0.13269927536231885" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_smarttag_register.xml" value="0.3118811881188119" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_smarttag_register.xml" value="0.3118811881188119" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_transferencia.xml" value="0.10666666666666667" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_transferencia.xml" value="0.10666666666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_ubicador.xml" value="0.15729166666666666" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_ubicador.xml" value="0.22" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_vehiclecontrol.xml" value="0.1546875" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_vehiclecontrol.xml" value="0.1546875" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_vehiclecontrol_user.xml" value="0.23052536231884058" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_vehiclecontrol_user.xml" value="0.23052536231884058" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_web.xml" value="0.2463768115942029" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_web.xml" value="0.2463768115942029" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_ajustes_row.xml" value="0.10009057971014493" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_ajustes_row.xml" value="0.10009057971014493" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row.xml" value="0.4466666666666667" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row.xml" value="0.4466666666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row_presacador.xml" value="0.4466666666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_card_row.xml" value="0.2269021739130435" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_card_row.xml" value="0.2269021739130435" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_expeditionstate_row.xml" value="0.23489583333333333" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_expeditionstate_row.xml" value="0.23489583333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_historicovehiculo_row.xml" value="0.18795289855072464" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_historicovehiculo_row.xml" value="0.18795289855072464" />

View File

@ -14,8 +14,15 @@ android {
applicationId "es.verdnatura" applicationId "es.verdnatura"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 29 targetSdkVersion 29
versionCode 84 versionCode 94
versionName "6.4" //VERSION CODE 84. Modificados menus buffer y añadido hsitorico carro por items y por carro. versionName "7.3" //VERSION CODE 94. Se ve productos en balda y posibilidad de modificarlo.
//versionName "7.2.1" //VERSION CODE 93. Si eliges sector en V no aparece insertar las baldas.
//versionName "7.2" //VERSION CODE 92. Ordena sales en presacador por pickingOrder, ya no llama siempre para poner numero de baldas.
//versionName "7" //VERSION CODE 88. Se añade llamadas a parkingsales,incorpora poner numero de baldas
//versionName "6.6" //VERSION CODE 87. Modificado parking presacador.faltaba ver el ticket y se añade carro al historico de shelving.
//versionName "6.5.1" //VERSION CODE 86. Modificado parking presacador.faltaba ver el ticket y se añade carro al historico de shelving.
//versionName "6.5" //VERSION CODE 85. Modificado parking presacador. Llama a saleParking.
//versionName "6.4" //VERSION CODE 84. Modificados menus buffer y añadido hsitorico carro por items y por carro.
//versionName "6.3" //VERSION CODE 83 Nueva funcionalidad Cargar expedición en buffer //versionName "6.3" //VERSION CODE 83 Nueva funcionalidad Cargar expedición en buffer
//versionName "6.2.1" // VERSION CODE 82 Aparece mensaje de error completo en "Error al construir la colección". //versionName "6.2.1" // VERSION CODE 82 Aparece mensaje de error completo en "Error al construir la colección".
//versionName "6.2" //VERSION CODE 81, arreglado el null de grouping en ubicador. //versionName "6.2" //VERSION CODE 81, arreglado el null de grouping en ubicador.

View File

@ -11,8 +11,8 @@
"type": "SINGLE", "type": "SINGLE",
"filters": [], "filters": [],
"attributes": [], "attributes": [],
"versionCode": 84, "versionCode": 94,
"versionName": "6.4", "versionName": "7.3",
"outputFile": "app-release.apk" "outputFile": "app-release.apk"
} }
], ],

Binary file not shown.

View File

@ -20,7 +20,7 @@ import es.verdnatura.presentation.view.feature.login.fragment.LoginViewModel
import es.verdnatura.presentation.view.feature.paletizador.fragment.* import es.verdnatura.presentation.view.feature.paletizador.fragment.*
import es.verdnatura.presentation.view.feature.parking.fragment.ParkingViewModel import es.verdnatura.presentation.view.feature.parking.fragment.ParkingViewModel
import es.verdnatura.presentation.view.feature.pasillero.fragment.PasilleroViewModel import es.verdnatura.presentation.view.feature.pasillero.fragment.PasilleroViewModel
import es.verdnatura.presentation.view.feature.precontrol.PreControladorViewModel import es.verdnatura.presentation.view.feature.precontrol.ShowTicketViewModel
import es.verdnatura.presentation.view.feature.presacador.fragment.PreSacadorViewModel import es.verdnatura.presentation.view.feature.presacador.fragment.PreSacadorViewModel
import es.verdnatura.presentation.view.feature.qr.QrFragmentViewModel import es.verdnatura.presentation.view.feature.qr.QrFragmentViewModel
import es.verdnatura.presentation.view.feature.reposicion.fragment.ReposicionViewModel import es.verdnatura.presentation.view.feature.reposicion.fragment.ReposicionViewModel
@ -66,7 +66,7 @@ val viewModelModule = module {
// Pasilleros / Buscar Item 2 // Pasilleros / Buscar Item 2
viewModel { viewModel {
PreControladorViewModel(androidContext()) ShowTicketViewModel(androidContext())
} }
// Pasilleros / Inventario // Pasilleros / Inventario

View File

@ -11,5 +11,8 @@ object ConstAndValues {
const val ON_CHECKING = "ON_CHECKING" const val ON_CHECKING = "ON_CHECKING"
const val PRECHECKER = "PRECHECKER" const val PRECHECKER = "PRECHECKER"
const val MAINACTIVITY = "MAIN" const val MAINACTIVITY = "MAIN"
const val VERTICKET = "SHOWTICKET"
const val SECTORFKDEFAULT=37
const val WAREHOUSEFKDEFAULT=1
} }

View File

@ -86,13 +86,14 @@ class GetLoginUserCase(context: Context) : RestClient(context)
params.add(version) params.add(version)
return restClient!!.version("json", "1", usuario, password, "application/json", params) return restClient!!.version("json", "1", usuario, password, "application/json", params)
//SALIX MENSAJE :SERGIO: PARA NO ENVIAR MENSAJES A COMERCIALES PONGO QUE LAS MODIFICACIONES SE ENVIAN AL CANAL CREADO.
*/ */
//SALIX SERGIO MENSAJE : PARA NO ENVIAR MENSAJES A COMERCIALES PONGO QUE LAS MODIFICACIONES SE ENVIAN AL CANAL CREADO.
fun sendChekingPresence(token:String,workerId:Int,message:String) : Call<Boolean>{ fun sendChekingPresence(token:String,workerId:Int,message:String) : Call<Boolean>{
return salixClient!!.sendChekingPresence(content_type = "application/json", authorization = token, params = SalixMessageVO(workerId = workerId,message = message)) return salixClient!!.sendChekingPresence(content_type = "application/json", authorization = token, params = SalixMessageVO(workerId = workerId,message = message))
} }
// SERGIO: PARA DESARROLLO Y PRUEBAS SE DESCOMENTA ESTAS LÍNEAS Y SE COMENTAN LAS DE ARRIBA // SERGIO: PARA DESARROLLO SE DESCOMENTA ESTAS LÍNEAS Y SE COMENTAN LAS DE ARRIBA
/* fun sendChekingPresence(token: String, workerId: Int, message: String): Call<Boolean> /* fun sendChekingPresence(token: String, workerId: Int, message: String): Call<Boolean>
{ {

View File

@ -29,4 +29,21 @@ class GetPreControladorUserCase(context: Context) : RestClient(context) {
) )
} }
fun ticket_get(
usuario: String,
password: String,
vParamFk: String
): Call<String> {
val params: ArrayList<String> = ArrayList()
params.add(vParamFk)
return restClient!!.ticket_get(
"json",
"1",
usuario,
password,
"application/json",
params
)
}
} }

View File

@ -1,7 +1,6 @@
package es.verdnatura.domain package es.verdnatura.domain
import android.content.Context import android.content.Context
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.CollectionVO
import es.verdnatura.presentation.view.feature.sacador.model.MistakeTypeVO import es.verdnatura.presentation.view.feature.sacador.model.MistakeTypeVO
import es.verdnatura.presentation.view.feature.sacador.model.PlacementSupplyVO import es.verdnatura.presentation.view.feature.sacador.model.PlacementSupplyVO
@ -214,6 +213,62 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
) )
} }
fun ticketCollection_setUsedShelves(
usuario: String,
password: String,
ticketFk: String,
usedShelves: String
): Call<Void> {
val params: ArrayList<String> = ArrayList()
params.add(ticketFk)
params.add(usedShelves)
return restClient!!.ticketCollection_setUsedShelves(
"json",
"1",
usuario,
password,
"application/json",
params
)
}
fun item_updatePackingShelve(
usuario: String,
password: String,
vSelf : String,
vPacking : String
): Call<Void> {
val params: ArrayList<String> = ArrayList()
params.add(vSelf)
params.add(vPacking)
return restClient!!.item_updatePackingShelve(
"json",
"1",
usuario,
password,
"application/json",
params
)
}
fun saleTracking_add(
usuario: String,
password: String,
saleGroupFk: String
): Call<Void> {
val params: ArrayList<String> = ArrayList()
params.add(saleGroupFk)
return restClient!!.saleTracking_add(
"json",
"1",
usuario,
password,
"application/json",
params
)
}
/* fun itemGetAvailable( /* fun itemGetAvailable(
usuario: String, usuario: String,
password: String, password: String,

View File

@ -144,6 +144,18 @@ class GetUbicadorUserCase(context: Context) : RestClient(context) {
return restClient!!.shelvingPark("json", "1", usuario, password, "application/json", params) return restClient!!.shelvingPark("json", "1", usuario, password, "application/json", params)
} }
fun saleParking_add(
usuario: String,
password: String,
sales:List<String>,
parking: String
): Call<String> {
val params: ArrayList<Any> = ArrayList()
params.add(sales)
params.add(parking)
return restClient!!.saleParking_add("json", "1", usuario, password, "application/json", params)
}
fun shelvingChange( fun shelvingChange(
usuario: String, usuario: String,
password: String, password: String,

View File

@ -202,6 +202,17 @@ interface VerdnaturaService {
): ):
Call<CollectionVO> Call<CollectionVO>
@POST("almacennew/ticket_get")//REVISADA
fun ticket_get(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@Header("user") user: String,
@Header("pass") pass: String,
@Header("Content-Type") content_type: String,
@Body params: List<String>
):
Call<String>
@POST("almacennew/saleTrackingReplace")//REVISADA @POST("almacennew/saleTrackingReplace")//REVISADA
fun saleTrackingReplace( fun saleTrackingReplace(
@Header("aplicacion") aplicacion: String, @Header("aplicacion") aplicacion: String,
@ -257,6 +268,40 @@ interface VerdnaturaService {
): ):
Call<String> Call<String>
@POST("almacennew/ticketCollection_setUsedShelves")//REVISADA
fun ticketCollection_setUsedShelves(
@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<Void>
@POST("almacennew/item_updatePackingShelve")//REVISADA
fun item_updatePackingShelve(
@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<Void>
@POST("almacennew/saleTracking_add")//REVISADA
fun saleTracking_add(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@Header("user") user: String,
@Header("pass") pass: String,
@Header("Content-Type") content_type: String,
@Body params: List<String>
):
Call<Void>
/*sergio:modificada en el caso de que quiera utilizarse por item_Card /*sergio:modificada en el caso de que quiera utilizarse por item_Card
@POST("almacennew/itemGetAvailable")//REVISADA @POST("almacennew/itemGetAvailable")//REVISADA
fun itemGetAvailable( fun itemGetAvailable(
@ -732,6 +777,18 @@ interface VerdnaturaService {
): ):
Call<String> Call<String>
@POST("almacennew/saleParking_add")//REVISADA
fun saleParking_add(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@Header("user") user: String,
@Header("pass") pass: String,
@Header("Content-Type") content_type: String,
@Body params: List<Any>
):
Call<String>
@POST("almacennew/shelvingPark")//REVISADA @POST("almacennew/shelvingPark")//REVISADA
fun shelvingPark( fun shelvingPark(
@Header("aplicacion") aplicacion: String, @Header("aplicacion") aplicacion: String,

View File

@ -107,6 +107,10 @@ interface OnQuantityClickListener {
fun onQuantityClick(sale: SaleVO) fun onQuantityClick(sale: SaleVO)
} }
interface onPackingClickListener {
fun onPackingClick(sale:SaleVO)
}
interface OnSaleClickListener { interface OnSaleClickListener {
fun onSaleClick(sale: SaleVO) fun onSaleClick(sale: SaleVO)
} }

View File

@ -7,12 +7,14 @@ import android.graphics.Bitmap
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.media.AudioManager import android.media.AudioManager
import android.os.Bundle import android.os.Bundle
import android.text.InputType
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.ViewTreeObserver import android.view.ViewTreeObserver
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import android.widget.ImageView import android.widget.ImageView
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
@ -139,12 +141,27 @@ fun Fragment.hideKeyboard() {
fun Activity.hideKeyboard() { fun Activity.hideKeyboard() {
hideKeyboard(currentFocus ?: View(this)) hideKeyboard(currentFocus ?: View(this))
} }
fun Activity.showKeyboardIn() {
showKeyboardIn(currentFocus ?: View(this))
}
fun Context.hideKeyboard(view: View) { fun Context.hideKeyboard(view: View) {
val inputMethodManager = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager val inputMethodManager = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0) inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)
} }
fun Context.showKeyboard(){
val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager?
imm!!.toggleSoftInput(InputType.TYPE_CLASS_NUMBER, 0)
}
fun Context.showKeyboardIn(view:View){
val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager?
imm!!.showSoftInput(view, 0)
}
// Extension function to change media volume programmatically // Extension function to change media volume programmatically
fun AudioManager.setMediaVolume(volumeIndex:Int) { fun AudioManager.setMediaVolume(volumeIndex:Int) {
// Set media volume level // Set media volume level

View File

@ -2,10 +2,13 @@ package es.verdnatura.presentation.view.component
import android.app.Dialog import android.app.Dialog
import android.content.Context import android.content.Context
import android.text.InputType
import android.view.View import android.view.View
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.ComponentCustomEditDialogBinding import es.verdnatura.databinding.ComponentCustomEditDialogBinding
import es.verdnatura.presentation.common.showKeyboard
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
class CustomDialogInput (context: Context) : Dialog(context, R.style.DialogTheme) { class CustomDialogInput (context: Context) : Dialog(context, R.style.DialogTheme) {
@ -86,4 +89,10 @@ class CustomDialogInput (context: Context) : Dialog(context, R.style.DialogTheme
return this return this
} }
fun setInputText(){
binding.customDialogValue.inputType= InputType.TYPE_CLASS_NUMBER
}
fun setFocusText(){
binding.customDialogValue.requestFocus()
}
} }

View File

@ -1,8 +1,5 @@
package es.verdnatura.presentation.view.feature.ajustes.fragment package es.verdnatura.presentation.view.feature.ajustes.fragment
//import android.preference.PreferenceManager
//import kotlinx.android.synthetic.main.activity_main.*
import android.app.AlertDialog import android.app.AlertDialog
import android.content.ClipData import android.content.ClipData
import android.content.ClipboardManager import android.content.ClipboardManager
@ -28,11 +25,9 @@ import es.verdnatura.presentation.view.feature.ajustes.model.AjustesItemVO
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
import es.verdnatura.presentation.view.feature.main.activity.MainActivity import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
//import kotlinx.android.synthetic.main.activity_main.view.*
//import kotlinx.android.synthetic.main.fragment_login.* class AjustesFragment :
BaseFragment<FragmentAjustesBinding, AjustesViewModel>(AjustesViewModel::class) {
class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(AjustesViewModel::class) {
private var user: String? = "" private var user: String? = ""
private var userFk: String? = "" private var userFk: String? = ""
@ -42,6 +37,7 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
private var vozList: List<String> = listOf() private var vozList: List<String> = listOf()
private var prefs: SharedPreferences? = null private var prefs: SharedPreferences? = null
private var ajustesAdapter: AjustesAdapter? = null private var ajustesAdapter: AjustesAdapter? = null
//añadido //añadido
private var wagonList: List<String> = listOf() private var wagonList: List<String> = listOf()
private var tagsList: List<String> = listOf() private var tagsList: List<String> = listOf()
@ -49,30 +45,24 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
companion object { companion object {
fun newInstance() = AjustesFragment() fun newInstance() = AjustesFragment()
} }
override fun getLayoutId(): Int = R.layout.fragment_ajustes override fun getLayoutId(): Int = R.layout.fragment_ajustes
/* override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// binding=FragmentAjustesBinding.inflate(inflater,container,false)
//val view=binding.root
//return view
return super.onCreateView(inflater, container, savedInstanceState)
}*/
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
prefs = requireActivity().getSharedPreferences(PREFS_USER, 0) prefs = requireActivity().getSharedPreferences(PREFS_USER, 0)
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
// binding = DataBindingUtil.setContentView(requireActivity(), R.layout.activity_main) viewModel.inititializeDefaultAjusts(
prefs!!.getString(
SECTORDESCRIP,
//modificat el InitilializeAjusts getString(R.string.Sinsector)
viewModel.inititializeDefaultAjusts(prefs!!.getString(SECTORDESCRIP,getString(R.string.Sinsector)).toString(),prefs!!.getInt(SECTORFK,0),prefs!!.getInt(WAREHOUSEFK,0),prefs!!.getString(VOZ,"NO").toString(),prefs!!.getInt(WAGON,2).toString(),prefs!!.getString(TAGSTYPE,"Stickers").toString()) ).toString(),
prefs!!.getInt(SECTORFK, 0),
prefs!!.getInt(WAREHOUSEFK, 0),
prefs!!.getString(VOZ, "NO").toString(),
prefs!!.getInt(WAGON, 2).toString(),
prefs!!.getString(TAGSTYPE, "Stickers").toString()
)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }
@ -80,40 +70,24 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
override fun init() { override fun init() {
//ActivityMainBinding.bind(main_bottom_navigation).mainBottomNavigation.visibility=View.VISIBLE
(activity as MainActivity).hideBottomNavigation(View.VISIBLE) (activity as MainActivity).hideBottomNavigation(View.VISIBLE)
//requireActivity().main_bottom_navigation.visibility = View.VISIBLE
binding.userText.setText(prefs!!.getString(USERFK, "")) binding.userText.setText(prefs!!.getString(USERFK, ""))
//user_text.setText(prefs!!.getString(USERFK,"")) val versionName = requireActivity().packageManager.getPackageInfo(
val versionName = requireActivity().packageManager.getPackageInfo(requireActivity().packageName,0).versionName!! requireActivity().packageName,
0
).versionName!!
binding.itemVersion.setText(versionName) binding.itemVersion.setText(versionName)
//item_version.setText(versionName)
user = prefs!!.getString(USER, "") user = prefs!!.getString(USER, "")
userFk = prefs!!.getString(USERFK, "") userFk = prefs!!.getString(USERFK, "")
password = prefs!!.getString(PASSWORD, "") password = prefs!!.getString(PASSWORD, "")
binding.androididText.setText(Settings.Secure.getString(context?.contentResolver, Settings.Secure.ANDROID_ID)) binding.androididText.setText(
//androidid_text.setText(Settings.Secure.getString(context?.contentResolver, Settings.Secure.ANDROID_ID)) Settings.Secure.getString(
context?.contentResolver,
Settings.Secure.ANDROID_ID
)
)
binding.txtserver.setText(this.getDefaults("base_url", this.requireContext())) binding.txtserver.setText(this.getDefaults("base_url", this.requireContext()))
//txtserver.setText(this.getDefaults("base_url",this.requireContext()))
binding.txtserver.setOnKeyListener(View.OnKeyListener { v, keyCode, event ->
//binding.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",binding.txtserver.toString(),this.requireContext())
// 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
})
super.init() super.init()
@ -124,8 +98,7 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
binding.androididText.setOnClickListener { copyanddrag(binding.androididText.text.toString()) } binding.androididText.setOnClickListener { copyanddrag(binding.androididText.text.toString()) }
binding.androididText.setOnLongClickListener { copyanddrag(binding.androididText.text.toString()) } binding.androididText.setOnLongClickListener { copyanddrag(binding.androididText.text.toString()) }
/*androidid_text.setOnClickListener { copyanddrag(androidid_text.text.toString()) }
androidid_text.setOnLongClickListener { copyanddrag(androidid_text.text.toString()) }*/
} }
@ -135,12 +108,10 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
override fun onAjustesItemClickListener(item: AjustesItemVO) { override fun onAjustesItemClickListener(item: AjustesItemVO) {
if (item.id == 0) { if (item.id == 0) {
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
//splash_progress.visibility = View.VISIBLE
viewModel.getSectors(user!!, password!!) viewModel.getSectors(user!!, password!!)
} else if (item.id == 5) { } else if (item.id == 5) {
requireActivity().onBackPressed() requireActivity().onBackPressed()
} else if (item.id == 1) { } else if (item.id == 1) {
// //////Log.i("VERDNATURA:","Carros pulsados")
val listCarros: ArrayList<String> = ArrayList() val listCarros: ArrayList<String> = ArrayList()
listCarros.add("1") listCarros.add("1")
listCarros.add("2") listCarros.add("2")
@ -171,22 +142,25 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
val array = arrayOfNulls<String>(listTagsType.size) val array = arrayOfNulls<String>(listTagsType.size)
showItemPickerType(array = listTagsType.toArray(array)) showItemPickerType(array = listTagsType.toArray(array))
} else if (item.id == 4) { } else if (item.id == 4) {
(activity as MainActivity).onPasillerosItemClickListener( PasillerosItemVO(title = "Control de usuario de vehículo"),userFk!!) (activity as MainActivity).onPasillerosItemClickListener(
PasillerosItemVO(
title = "Control de usuario de vehículo"
), userFk!!
)
} }
} }
}) })
binding.ajustessItems.adapter = ajustesAdapter binding.ajustessItems.adapter = ajustesAdapter
binding.ajustessItems.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) binding.ajustessItems.layoutManager =
//austess_items.adapter = ajustesAdapter LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
//ajustess_items.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
loadSectorList.observe(viewLifecycleOwner, { event -> loadSectorList.observe(viewLifecycleOwner, { event ->
event.getContentIfNotHandled().notNull { event.getContentIfNotHandled().notNull {
binding.splashProgress.visibility = View.INVISIBLE binding.splashProgress.visibility = View.INVISIBLE
//splash_progress.visibility = View.INVISIBLE
if (it.list.isNotEmpty() && it.list.get(0).isError) { if (it.list.isNotEmpty() && it.list.get(0).isError) {
customDialog.setTitle("Error").setDescription(it.list.get(0).errorMessage).setOkButton(getString(R.string.Close)){ customDialog.setTitle("Error").setDescription(it.list.get(0).errorMessage)
.setOkButton(getString(R.string.Close)) {
customDialog.dismiss() customDialog.dismiss()
}.show() }.show()
} else { } else {
@ -201,7 +175,9 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
showDialogSector(listSectores.toArray(array)) showDialogSector(listSectores.toArray(array))
} else { } else {
customDialog.setTitle("Sectores").setDescription(getString(R.string.Noexistessectores)).setOkButton(getString(R.string.Close)){ customDialog.setTitle("Sectores")
.setDescription(getString(R.string.Noexistessectores))
.setOkButton(getString(R.string.Close)) {
customDialog.dismiss() customDialog.dismiss()
}.show() }.show()
} }
@ -268,12 +244,8 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
dialog.show() dialog.show()
} }
//sergio : guardar datos
private fun showDialogCarros(array: Array<String>) { private fun showDialogCarros(array: Array<String>) {
val builder = AlertDialog.Builder(this.context) val builder = AlertDialog.Builder(this.context)
builder.setTitle(getString(R.string.Seleccionauncarro)) builder.setTitle(getString(R.string.Seleccionauncarro))
builder.setItems(array) { _, which -> builder.setItems(array) { _, which ->
val selected = array[which] val selected = array[which]
@ -325,7 +297,6 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
} }
fun setDefaults(key: String?, value: String?, context: Context?) { fun setDefaults(key: String?, value: String?, context: Context?) {
val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context) val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
val editor = preferences.edit() val editor = preferences.edit()
@ -333,19 +304,16 @@ class AjustesFragment : BaseFragment<FragmentAjustesBinding,AjustesViewModel>(Aj
editor.commit() editor.commit()
} }
fun getDefaults(key: String?, context: Context?): String? { private fun getDefaults(key: String?, context: Context?): String? {
val preferences = PreferenceManager.getDefaultSharedPreferences(context) val preferences = PreferenceManager.getDefaultSharedPreferences(context)
return preferences.getString(key, null) return preferences.getString(key, null)
} }
fun copyanddrag(string:String): Boolean { private fun copyanddrag(string: String): Boolean {
val clipboard = getActivity()?.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager val clipboard = getActivity()?.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clip: ClipData = ClipData.newPlainText("Android_id", string) val clip: ClipData = ClipData.newPlainText("Android_id", string)
clipboard.setPrimaryClip(clip) clipboard.setPrimaryClip(clip)
//androidid_text.performLongClick()
//Log.i(TD,"se copia $string")
//getString(R.string.copied).toast(requireContext())
setTooltipText(binding.androididText, getString(R.string.copied)) setTooltipText(binding.androididText, getString(R.string.copied))
return false return false

View File

@ -19,6 +19,7 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentItemCardBinding import es.verdnatura.databinding.FragmentItemCardBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnBarcodeRowClickListener import es.verdnatura.presentation.common.OnBarcodeRowClickListener
@ -163,7 +164,7 @@ class ItemCardFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
this.itemFk = itemFk this.itemFk = itemFk
binding.splashProgressTwo.visibility = View.VISIBLE binding.splashProgressTwo.visibility = View.VISIBLE

View File

@ -9,6 +9,8 @@ import androidx.lifecycle.Observer
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentBufferBinding import es.verdnatura.databinding.FragmentBufferBinding
import es.verdnatura.domain.ConstAndValues import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener import es.verdnatura.presentation.common.OnCollectionSelectedListener
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
@ -59,8 +61,8 @@ class BufferFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
type = ConstAndValues.PRECHECKER type = ConstAndValues.PRECHECKER
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }

View File

@ -10,6 +10,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentBufferLoadexpeditionBinding import es.verdnatura.databinding.FragmentBufferLoadexpeditionBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.* import es.verdnatura.presentation.common.*
@ -109,8 +111,8 @@ class BufferLoadFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
userFk = prefs.getString(USERFK, "0").toString() userFk = prefs.getString(USERFK, "0").toString()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)

View File

@ -9,6 +9,7 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentBuscarItemBinding import es.verdnatura.databinding.FragmentBuscarItemBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnPasillerosItemClickListener import es.verdnatura.presentation.common.OnPasillerosItemClickListener
@ -75,7 +76,7 @@ class BuscarItemFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
this.itemFk = itemFk this.itemFk = itemFk
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
viewModel.getLocations(user,password,itemFk,"getItemUbication") viewModel.getLocations(user,password,itemFk,"getItemUbication")

View File

@ -9,6 +9,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.BuyersFragmentBinding import es.verdnatura.databinding.BuyersFragmentBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnAjustesItemClickListener import es.verdnatura.presentation.common.OnAjustesItemClickListener
import es.verdnatura.presentation.common.OnBuyerSelectedListener import es.verdnatura.presentation.common.OnBuyerSelectedListener
@ -54,8 +56,8 @@ class BuyersFragment : BaseFragment<BuyersFragmentBinding,BuyersViewModel>(Buyer
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
viewModel.itemShelvingBuyerGet(user = user,password = password,"itemShelving_BuyerGet") viewModel.itemShelvingBuyerGet(user = user,password = password,"itemShelving_BuyerGet")
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }

View File

@ -10,6 +10,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.QaualityFragmentBinding import es.verdnatura.databinding.QaualityFragmentBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.* import es.verdnatura.presentation.common.*
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
@ -60,8 +62,8 @@ class QaualityFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
viewModel.itemShelvingBuyerTask(user = user,password = password,userFk = userFk,"itemShelving_BuyerTask") viewModel.itemShelvingBuyerTask(user = user,password = password,userFk = userFk,"itemShelving_BuyerTask")
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }

View File

@ -6,24 +6,25 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.getColor
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.ItemArticleRowBinding import es.verdnatura.databinding.ItemArticleRowBinding
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.common.OnMistakeClickListener
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
import es.verdnatura.presentation.common.OnQuantityClickListener
import es.verdnatura.presentation.common.OnSaleClickListener
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import es.verdnatura.presentation.view.feature.sacador.model.SaleVO import es.verdnatura.presentation.view.feature.sacador.model.SaleVO
import android.graphics.drawable.GradientDrawable
import es.verdnatura.presentation.common.*
class SaleAdapter( class SaleAdapter(
private val items: List<SaleVO>, private val items: List<SaleVO>,
private val onPasillerosItemClickListener: OnPasillerosItemClickListener, private val onPasillerosItemClickListener: OnPasillerosItemClickListener,
private val onQuantityClick: OnQuantityClickListener, private val onQuantityClick: OnQuantityClickListener,
private val onSaleClickListener: OnSaleClickListener, private val onSaleClickListener: OnSaleClickListener,
private val onMistakeClickListener: OnMistakeClickListener private val onMistakeClickListener: OnMistakeClickListener,
private val onPackingClick: onPackingClickListener,
): RecyclerView.Adapter<SaleAdapter.AjustesItemHolder> () { ): RecyclerView.Adapter<SaleAdapter.AjustesItemHolder> () {
var context:Context? = null var context:Context? = null
var position:Int = 0 var position:Int = 0
@ -65,6 +66,9 @@ class SaleAdapter (
onPasillerosItemClickListener.onPasillerosItemClickListener(PasillerosItemVO(title = "Consultar artículo"),sale.itemFk) onPasillerosItemClickListener.onPasillerosItemClickListener(PasillerosItemVO(title = "Consultar artículo"),sale.itemFk)
} }
itemPackingItemFk.setOnClickListener{
onPackingClick.onPackingClick(sale)
}
itemArticleQuantity.setOnClickListener { itemArticleQuantity.setOnClickListener {
onQuantityClick.onQuantityClick(sale) onQuantityClick.onQuantityClick(sale)
@ -108,11 +112,7 @@ class SaleAdapter (
} }
/*if (sale.level.equals("AMARILLO")){ paintTicketcolor(sale.level,itemTicketColor)
level.setTextColor(Color.YELLOW)
}else{
level.setTextColor(Color.GREEN)
}*/
if (!sale.isNew && sale.originalQuantity == sale.quantity){ if (!sale.isNew && sale.originalQuantity == sale.quantity){
@ -139,6 +139,7 @@ class SaleAdapter (
itemArticleRowSemaforoCon.setBackgroundColor(ContextCompat.getColor(context!!, R.color.verdnatura_warm_grey)) itemArticleRowSemaforoCon.setBackgroundColor(ContextCompat.getColor(context!!, R.color.verdnatura_warm_grey))
} }
if (sale.isControlled == "1"){ if (sale.isControlled == "1"){
contentLayout.setBackgroundColor(ContextCompat.getColor(context!!, R.color.verdnatura_dark_mint)) contentLayout.setBackgroundColor(ContextCompat.getColor(context!!, R.color.verdnatura_dark_mint))
}else if (sale.isPrepared == "1"){ }else if (sale.isPrepared == "1"){
@ -149,6 +150,8 @@ class SaleAdapter (
contentLayout.setBackgroundColor(ContextCompat.getColor(context!!, R.color.verdnatura_black)) contentLayout.setBackgroundColor(ContextCompat.getColor(context!!, R.color.verdnatura_black))
} }
//sergio: para de momento que pinten las lineas sin actualizar ni nada //sergio: para de momento que pinten las lineas sin actualizar ni nada
if (sale.isControlled == "2"){ if (sale.isControlled == "2"){
itemArticleRowSemaforoCon.setBackgroundColor(ContextCompat.getColor(context!!, R.color.verdnatura_white)) itemArticleRowSemaforoCon.setBackgroundColor(ContextCompat.getColor(context!!, R.color.verdnatura_white))
@ -162,4 +165,40 @@ class SaleAdapter (
} }
} }
} }
private fun paintTicketcolor(color: String, itemTicketColor: View) {
when (color){
"ROJO"-> itemTicketColor.setBackgroundColor(Color.RED)
"AMARILLO"->itemTicketColor.setBackgroundColor(Color.YELLOW)
"VERDE"->itemTicketColor.setBackgroundColor(Color.GREEN)
"AZUL"->itemTicketColor.setBackgroundColor(Color.BLUE)
"BLANCO"->itemTicketColor.setBackgroundColor(Color.WHITE)
// "NEGRO"-> itemTicketColor.setBackgroundResource((R.drawable.rectangle))
"NEGRO"-> {itemTicketColor.setBackgroundColor(Color.BLACK)
itemTicketColor.setBackgroundResource((R.drawable.border))}
"VIOLETA"-> itemTicketColor.setBackgroundColor(0xFF4c2882.toInt())
"GRIS"-> itemTicketColor.setBackgroundColor(Color.GRAY)
"ORANGE"-> itemTicketColor.setBackgroundColor(getColor(context!!,android.R.color.holo_orange_light))
"MORADO"-> itemTicketColor.setBackgroundColor(getColor(context!!,android.R.color.holo_purple))
"CELESTE"-> itemTicketColor.setBackgroundColor(0xFF5b85F5.toInt())
"ROSA"-> itemTicketColor.setBackgroundColor(0xFFfc0fc0.toInt())
"DORADO"-> itemTicketColor.setBackgroundColor(0xFFb8860b.toInt())
"MARRON"-> itemTicketColor.setBackgroundColor(0xFF663300.toInt())
"PERLA"-> itemTicketColor.setBackgroundColor(0xFFcdcecf.toInt())
"MARFIL"-> itemTicketColor.setBackgroundColor(0xFFf7eada.toInt())
"CIAN"-> itemTicketColor.setBackgroundColor(0xFF00ffff.toInt())
"BEIGE"-> itemTicketColor.setBackgroundColor(0xFFf2e7bf.toInt())
else->{
}
}
// itemTicketColor.setBackgroundResource((R.drawable.rectangle))
}
} }

View File

@ -1,5 +1,8 @@
package es.verdnatura.presentation.view.feature.collection.fragment package es.verdnatura.presentation.view.feature.collection.fragment
/*import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.fragment_collection.*
import kotlinx.android.synthetic.main.toolbar.**/
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
@ -24,6 +27,8 @@ import es.verdnatura.domain.ConstAndValues.ON_CHECKING
import es.verdnatura.domain.ConstAndValues.ON_PREPARATION import es.verdnatura.domain.ConstAndValues.ON_PREPARATION
import es.verdnatura.domain.ConstAndValues.PRECHECKER import es.verdnatura.domain.ConstAndValues.PRECHECKER
import es.verdnatura.domain.ConstAndValues.SACADOR import es.verdnatura.domain.ConstAndValues.SACADOR
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.* import es.verdnatura.presentation.common.*
@ -39,16 +44,15 @@ import es.verdnatura.presentation.view.feature.inventario.adapter.ToolBarAdapter
import es.verdnatura.presentation.view.feature.main.activity.MainActivity import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import es.verdnatura.presentation.view.feature.sacador.model.* import es.verdnatura.presentation.view.feature.sacador.model.*
/*import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.fragment_collection.*
import kotlinx.android.synthetic.main.toolbar.**/
import timber.log.Timber import timber.log.Timber
import timber.log.Timber.d import timber.log.Timber.d
class CollectionFragment( class CollectionFragment(
var collection: CollectionVO = CollectionVO(), var collection: CollectionVO = CollectionVO(),
var type: String = SACADOR var type: String = SACADOR
) : BaseFragment<FragmentCollectionBinding, CollectionViewModel>(CollectionViewModel::class) { ) : BaseFragment<FragmentCollectionBinding, CollectionViewModel>(CollectionViewModel::class) {
private lateinit var dataMessageSalix: DataMessageSalix private lateinit var dataMessageSalix: DataMessageSalix
private var user = "" private var user = ""
private var password = "" private var password = ""
@ -79,8 +83,9 @@ class CollectionFragment(
private var tickets: ArrayList<String> = ArrayList() private var tickets: ArrayList<String> = ArrayList()
private var mistakeSale: SaleVO? = null private var mistakeSale: SaleVO? = null
private var positionIncreaseQuantity = 0 private var positionIncreaseQuantity = 0
private var positionReject = 0
private var quantityIncrease = "" private var quantityIncrease = ""
private var isMarking = false
//private var myKM: KeyguardManager? = null //private var myKM: KeyguardManager? = null
private var state = 0 private var state = 0
@ -110,25 +115,37 @@ class CollectionFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
token = prefs.getString(TOKEN, "").toString() token = prefs.getString(TOKEN, "").toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
voz = prefs.getString(VOZ, "NO").toString() voz = prefs.getString(VOZ, "NO").toString()
mperror = MediaPlayer.create((activity as MainActivity), R.raw.error) mperror = MediaPlayer.create((activity as MainActivity), R.raw.error)
mpok = MediaPlayer.create((activity as MainActivity), R.raw.ok) mpok = MediaPlayer.create((activity as MainActivity), R.raw.ok)
SectorDescription = prefs.getString(SECTORDESCRIP, "Sin Sector").toString() SectorDescription = prefs.getString(SECTORDESCRIP, "Sin Sector").toString()
if ((collection.collectionFk != null) && type.equals(CONTROLADOR)) { if ((collection.collectionFk != null) && type.equals(CONTROLADOR)) {
//sergio: comprueba si viene de la pantalla de controlador //sergio: comprueba si viene de la pantalla de controlador
viewModel.ticketOrCollection_checkFullyControlled(user, password, collection.collectionFk,"ticketOrCollection_checkFullyControlled") viewModel.ticketOrCollection_checkFullyControlled(
user,
password,
collection.collectionFk,
"ticketOrCollection_checkFullyControlled"
)
workerFkFromTicket = collection.tickets.get(0).sales.get(0).workerFk workerFkFromTicket = collection.tickets.get(0).sales.get(0).workerFk
} }
if (collection.tickets.isEmpty()) { if (collection.tickets.isEmpty()) {
viewModel.collectionTicketGet(user, password, collection.collectionFk, sectorFk, type,"collection_getTickets") viewModel.collectionTicketGet(
user,
password,
collection.collectionFk,
sectorFk,
type,
"collection_getTickets"
)
} }
@ -184,6 +201,7 @@ class CollectionFragment(
} }
val listIcons: ArrayList<Drawable> = ArrayList() val listIcons: ArrayList<Drawable> = ArrayList()
val iconPrint: Drawable = val iconPrint: Drawable =
resources.getDrawable(R.drawable.ic_print_black_24dp, resources.newTheme()) resources.getDrawable(R.drawable.ic_print_black_24dp, resources.newTheme())
/*val iconSearch: Drawable = /*val iconSearch: Drawable =
@ -193,13 +211,18 @@ class CollectionFragment(
val iconFace: Drawable = val iconFace: Drawable =
resources.getDrawable(R.drawable.face_man_outline, resources.newTheme()) resources.getDrawable(R.drawable.face_man_outline, resources.newTheme())
/* val iconShelve:Drawable =
resources.getDrawable(R.drawable.alpha_b_circle_outline, resources.newTheme())*/
//listIcons.add(iconShelve)
listIcons.add(iconFace) listIcons.add(iconFace)
listIcons.add(iconPrint) listIcons.add(iconPrint)
// listIcons.add(iconSearch) // listIcons.add(iconSearch)
listIcons.add(iconAdd) listIcons.add(iconAdd)
binding.mainToolbar.toolbarIcons.adapter = ToolBarAdapter(listIcons, object : OnOptionsSelectedListener { binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapter(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) { override fun onOptionsItemSelected(item: Drawable) {
if (item == iconPrint) { if (item == iconPrint) {
print() print()
@ -209,7 +232,9 @@ class CollectionFragment(
addItem() addItem()
} else if (item == iconFace) { } else if (item == iconFace) {
showUser() showUser()
} }/*else if(item== iconShelve){
ticketCollection_setUsedShelves()
}*/
} }
}) })
binding.mainToolbar.toolbarIcons.layoutManager = binding.mainToolbar.toolbarIcons.layoutManager =
@ -225,13 +250,11 @@ class CollectionFragment(
private fun showUser() { private fun showUser() {
(activity as MainActivity).onPasillerosItemClickListener( (activity as MainActivity).onPasillerosItemClickListener(
PasillerosItemVO(title = "Control de usuario de vehículo"), PasillerosItemVO(title = "Control de usuario de vehículo"),
workerFkFromTicket workerFkFromTicket
) )
} }
private fun setEvents() { private fun setEvents() {
@ -248,9 +271,25 @@ class CollectionFragment(
binding.scanInput.setOnEditorActionListener { v, actionId, event -> binding.scanInput.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {//ID=0 ACTION_NEXT ID=5 ACTION_UNESPECEFIED) if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {//ID=0 ACTION_NEXT ID=5 ACTION_UNESPECEFIED)
if (!binding.scanInput.text.toString().isNullOrEmpty()) { if (!binding.scanInput.text.toString().isNullOrEmpty()) {
d("La tecla es "+actionId) // d("La tecla es " + actionId)
findSale(binding.scanInput.text.toString())
//sergio:para ver si ha marcado dos veces el mismo ticket
if (binding.scanInput.text!!.length > 13) {
var size = binding.scanInput.text!!.length
if (binding.scanInput.text!!.substring((size / 2), size)
.equals(binding.scanInput.text!!.substring(0, size / 2))
) {
binding.scanInput.setText(
binding.scanInput.text!!.substring(
0,
size / 2
)
)
}
}
findSale(binding.scanInput.text.toString())
} }
binding.scanInput.setText("") binding.scanInput.setText("")
@ -265,7 +304,7 @@ class CollectionFragment(
//LISTA ========= //LISTA =========
binding.collectionSwipe.setOnRefreshListener { binding.collectionSwipe.setOnRefreshListener {
isMarking = false
binding.collectionSwipe.isRefreshing = false binding.collectionSwipe.isRefreshing = false
if (type != PRECHECKER) { if (type != PRECHECKER) {
if (binding.splashProgress != null) binding.splashProgress.visibility = VISIBLE if (binding.splashProgress != null) binding.splashProgress.visibility = VISIBLE
@ -274,8 +313,8 @@ class CollectionFragment(
password, password,
collection.collectionFk, collection.collectionFk,
sectorFk, sectorFk,
type type, "collection_getTickets"
,"collection_getTickets") )
binding.collectionSwipe.isRefreshing = false binding.collectionSwipe.isRefreshing = false
} }
} }
@ -288,6 +327,20 @@ class CollectionFragment(
} }
} }
private fun showKeyboards() {
try {
requireActivity().showKeyboard()
} catch (e: Exception) {
}
}
private fun showKeyboardsIN() {
try {
requireActivity().showKeyboardIn()
} catch (e: Exception) {
}
}
override fun observeViewModel() { override fun observeViewModel() {
with(viewModel) { with(viewModel) {
binding.splashProgress.visibility = GONE binding.splashProgress.visibility = GONE
@ -298,11 +351,7 @@ class CollectionFragment(
collection = it collection = it
createCollectionList() createCollectionList()
workerFkFromTicket = it.tickets.get(0).sales.get(0).workerFk workerFkFromTicket = it.tickets.get(0).sales.get(0).workerFk
// Log.i("VERDNATURA:", "El primer ticket es : ${it.tickets.get(0).ticketFk}")
/* Log.i(
"VERDNATURA:",
"El primer workerfk es :${it.tickets.get(0).sales.get(0).workerFk}"
)*/
} else { } else {
binding.mainToolbar.toolbarSubtitle.text = "0/0" binding.mainToolbar.toolbarSubtitle.text = "0/0"
} }
@ -316,6 +365,52 @@ class CollectionFragment(
}) })
responseUsedShelves.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
(activity as MainActivity).messageWithSound(
if (it.isError) it.errorMessage else "Baldas guardadas",
it.isError
)
})
responseItem_updatePackingShelve.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
(activity as MainActivity).messageWithSound(
if (it.isError) it.errorMessage else "Packing guardado",
it.isError
)
if (!it.isError) {
viewModel.collectionTicketGet(
user,
password,
collection.collectionFk,
sectorFk,
type,
"collection_getTickets"
)
}
})
responseSaleGroup.observe(viewLifecycleOwner, Observer {
if (it.isError) {
(activity as MainActivity).messageWithSound(it.errorMessage, true)
} else {
(activity as MainActivity).messageWithSound("Previa recogida", false)
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
user,
password,
collection.collectionFk,
sectorFk,
type,
"collection_getTickets"
)
}
})
placementSuppleyList.observe(viewLifecycleOwner, Observer { placementSuppleyList.observe(viewLifecycleOwner, Observer {
if (binding.splashProgress != null) binding.splashProgress.visibility = View.GONE if (binding.splashProgress != null) binding.splashProgress.visibility = View.GONE
if (!goBack) printShelvingResult(it) if (!goBack) printShelvingResult(it)
@ -339,7 +434,8 @@ class CollectionFragment(
}.show() }.show()
} else { } else {
if (binding.splashProgress != null) binding.splashProgress.visibility = View.VISIBLE if (binding.splashProgress != null) binding.splashProgress.visibility =
View.VISIBLE
sendSalixMessage( sendSalixMessage(
item = dataMessageSalix.item, item = dataMessageSalix.item,
@ -352,8 +448,8 @@ class CollectionFragment(
password, password,
collection.collectionFk, collection.collectionFk,
sectorFk, sectorFk,
type type, "collection_getTickets"
,"collection_getTickets") )
// //Log.i("VERDNATURA:","La collection es ${collection.collectionFk}") // //Log.i("VERDNATURA:","La collection es ${collection.collectionFk}")
} }
@ -394,15 +490,17 @@ class CollectionFragment(
responseMissingTrash.observe(viewLifecycleOwner, Observer { responseMissingTrash.observe(viewLifecycleOwner, Observer {
if (it.isError) { if (it.isError) {
customDialog.setTitle("Error").setDescription(it.errorMessage) (activity as MainActivity).messageWithSound(it.errorMessage, isError = true)
/* customDialog.setTitle("Error").setDescription(it.errorMessage)
.setOkButton("Aceptar") { .setOkButton("Aceptar") {
customDialog.dismiss() customDialog.dismiss()
}.show() }.show()*/
}else } else {
{
//incresaseSuccesful() //incresaseSuccesful()
/*FALTA RELLENAR*/ /*FALTA RELLENAR*/
//TODO() TODO("FALTA ADAPTAR LA FUNCION MISSING()")
// missingTrashSuccesful()
} //sergio:esto ya estaba } //sergio:esto ya estaba
/* binding.splashProgress.visibility = View.VISIBLE /* binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(user,password,collection.collectionFk,sectorFk)*/ viewModel.collectionTicketGet(user,password,collection.collectionFk,sectorFk)*/
@ -412,12 +510,12 @@ class CollectionFragment(
responseIncQuantity.observe(viewLifecycleOwner, Observer { responseIncQuantity.observe(viewLifecycleOwner, Observer {
if (it.isError) { if (it.isError) {
customDialog.setTitle("Error").setDescription(it.errorMessage) (activity as MainActivity).messageWithSound(it.errorMessage, isError = true)
/*customDialog.setTitle("Error").setDescription(it.errorMessage)
.setOkButton("Aceptar") { .setOkButton("Aceptar") {
customDialog.dismiss() customDialog.dismiss()
}.show() }.show()*/
}else } else {
{
incresaseSuccesful() incresaseSuccesful()
} }
//sergio:esto ya estaba //sergio:esto ya estaba
@ -443,14 +541,22 @@ class CollectionFragment(
} else { } else {
//sergio: devuelve false si no hay para revisar y <> false. //sergio: devuelve false si no hay para revisar y <> false.
if (it.response != "false") { if (it.response != "false") {
customDialog.setTitle("Aviso").setDescription("Pendiente de revisar : "+it.response) customDialog.setTitle("Aviso")
.setDescription("Pendiente de revisar : " + it.response)
.setOkButton("Aceptar") { .setOkButton("Aceptar") {
customDialog.dismiss() customDialog.dismiss()
} }
.setKoButton("Revisar") { .setKoButton("Revisar") {
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(user, password, it.response, sectorFk, type,"collection_getTickets") viewModel.collectionTicketGet(
user,
password,
it.response,
sectorFk,
type,
"collection_getTickets"
)
customDialog.dismiss() customDialog.dismiss()
} }
customDialog.show() customDialog.show()
@ -473,14 +579,11 @@ class CollectionFragment(
} }
} }
private fun getSalePerson(ticketFk:String):String private fun getSalePerson(ticketFk: String): String {
{
var salePerson = "" var salePerson = ""
for (it in sales) for (it in sales) {
{ if (it.ticketFk.equals(ticketFk)) {
if (it.ticketFk.equals(ticketFk))
{
salePerson = it.salePersonFk salePerson = it.salePersonFk
break break
} }
@ -488,8 +591,12 @@ class CollectionFragment(
return salePerson return salePerson
} }
private fun sendSalixMessage(item:String,ticketFk:String,quantity:String,salePerson:String) private fun sendSalixMessage(
{ item: String,
ticketFk: String,
quantity: String,
salePerson: String
) {
val ticket = val ticket =
"[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)" "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)"
val message = val message =
@ -568,7 +675,6 @@ class CollectionFragment(
// SalesSorter() // SalesSorter()
saleAdapter = saleAdapter =
SaleAdapter(sales, pasillerosItemClickListener!!, object : OnQuantityClickListener { SaleAdapter(sales, pasillerosItemClickListener!!, object : OnQuantityClickListener {
@ -594,7 +700,9 @@ class CollectionFragment(
markLine(index, type) markLine(index, type)
//////Log.i("VERDNATURA:","marcamos linea") //////Log.i("VERDNATURA:","marcamos linea")
} else if (type == SACADOR) { } else if (type == SACADOR) {
if (sale.isPrepared == "0") { Log.d("VERDNATURA", "El tipo es sacador")
Log.d("VERDNATURA", "La sale es" + sale.isPrepared)
if (sale.isPrepared == "0" || sale.isPrepared.isNullOrEmpty()) {
showScanner(index, sale) showScanner(index, sale)
} else { } else {
unMarkLine(index, OK) unMarkLine(index, OK)
@ -609,12 +717,18 @@ class CollectionFragment(
}, object : OnMistakeClickListener { }, object : OnMistakeClickListener {
override fun onMistakeClickListener(sale: SaleVO) { override fun onMistakeClickListener(sale: SaleVO) {
if (type != "PRECHECKER") { if (type != "PRECHECKER") {
if (binding.splashProgress != null) binding.splashProgress.visibility = View.VISIBLE if (binding.splashProgress != null) binding.splashProgress.visibility =
View.VISIBLE
mistakeSale = sale mistakeSale = sale
viewModel.mistakeType(usuario = user, password = password) viewModel.mistakeType(usuario = user, password = password)
} }
} }
}) }, object : onPackingClickListener {
override fun onPackingClick(sale: SaleVO) {
item_updatePackingShelve(sale.itemFk)
}
}
)
lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
binding.fragmentSacadorCollections.adapter = saleAdapter binding.fragmentSacadorCollections.adapter = saleAdapter
@ -634,7 +748,8 @@ class CollectionFragment(
} }
private fun setScrollListener(lm: LinearLayoutManager) { private fun setScrollListener(lm: LinearLayoutManager) {
binding.fragmentSacadorCollections.addOnScrollListener(object : RecyclerView.OnScrollListener() { binding.fragmentSacadorCollections.addOnScrollListener(object :
RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
storedBackPosition = lm.findFirstVisibleItemPosition() storedBackPosition = lm.findFirstVisibleItemPosition()
super.onScrolled(recyclerView, dx, dy) super.onScrolled(recyclerView, dx, dy)
@ -663,13 +778,23 @@ class CollectionFragment(
if (type == SACADOR) { if (type == SACADOR) {
for (saleVO in sales) { for (saleVO in sales) {
//sergio: pita si encuentra ticket //sergio: pita si encuentra ticket o el saleGroupFk
//////Log.i("VERDNATURA:","SE busca en sales ${saleVO.ticketFk}") //Log.i("VERDNATURA:","SE busca en sales ${saleVO.ticketFk}")
//canviar el titcket per salegroup i enviar a pako saleTracking_add (saleGroupFk) i refrescar pantalla.
if (saleVO.ticketFk == txtscan) { d("El salegroup es " + saleVO.saleGroupFk)
if (saleVO.saleGroupFk == txtscan) {
// if (saleVO.ticketFk == txtscan ) {
isOk = true isOk = true
if ((isOk) && mpok != null) mpok!!.start() viewModel.saleTracking_add(
//Log.i("VERDNTURA","ENCONTRADO") usuario = user,
password = password,
txtscan,
"saleTracking_add"
)
if ((isOk) && mpok != null) {
mpok!!.start()
}
break break
} }
@ -771,15 +896,28 @@ class CollectionFragment(
if (mpok != null) mpok!!.start() if (mpok != null) mpok!!.start()
getString(R.string.Ticketaparcado).toast(requireContext()) getString(R.string.Ticketaparcado).toast(requireContext())
} else { } else {
if (binding.splashProgress != null) binding.splashProgress.visibility = View.VISIBLE if (binding.splashProgress != null) binding.splashProgress.visibility =
View.VISIBLE
storedPosition = 0 storedPosition = 0
storedBackPosition = 0 storedBackPosition = 0
if (type != PRECHECKER) { if (type != PRECHECKER) {
isMarking = false
viewModel.collectionTicketGet(user, password, txtscan, sectorFk, type,"collection_getTickets") viewModel.collectionTicketGet(
user,
password,
txtscan,
sectorFk,
type,
"collection_getTickets"
)
if (type.equals(CONTROLADOR)) { if (type.equals(CONTROLADOR)) {
viewModel.ticketOrCollection_checkFullyControlled(user, password, txtscan,"ticketOrCollection_checkFullyControlled") viewModel.ticketOrCollection_checkFullyControlled(
user,
password,
txtscan,
"ticketOrCollection_checkFullyControlled"
)
} }
} else { } else {
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
@ -853,7 +991,6 @@ class CollectionFragment(
} }
private fun markLine(position: Int, newType: String) { private fun markLine(position: Int, newType: String) {
state = 0 state = 0
//////Log.i("VERDNATURA:","Marcamos linea y enviamos saleTracking") //////Log.i("VERDNATURA:","Marcamos linea y enviamos saleTracking")
@ -876,6 +1013,7 @@ class CollectionFragment(
if (type != PRECHECKER) { if (type != PRECHECKER) {
saleTrackingReplace(position, newType) saleTrackingReplace(position, newType)
isMarking = true
} }
// sergio: a borrar. Solo para hacer pruebas // sergio: a borrar. Solo para hacer pruebas
@ -962,7 +1100,7 @@ class CollectionFragment(
(sales[position].quantity.toInt() - sales[position].pickedQuantity.toInt()).toString() (sales[position].quantity.toInt() - sales[position].pickedQuantity.toInt()).toString()
} catch (e: Exception) { } catch (e: Exception) {
} }
//////Log.i("VERDNATURA:","Aparece para enviar") //Log.i("VERDNATURA:","Aparece para enviar")
viewModel.itemPlacementSupplyAiming( viewModel.itemPlacementSupplyAiming(
usuario = user, usuario = user,
password = password, password = password,
@ -1014,14 +1152,18 @@ class CollectionFragment(
// Log.i("VERDATURA","Le pasamos el siguiente item $originalItemScan que es el escaneado") // Log.i("VERDATURA","Le pasamos el siguiente item $originalItemScan que es el escaneado")
if (checkItemScan(customDialogList.getValueTwo())) { if (checkItemScan(customDialogList.getValueTwo())) {
onQuantityOfShelvingSelected(itemShelvingFk) onQuantityOfShelvingSelected(itemShelvingFk)
//////Log.i("VERDNATURA:","Cantidad seleccionada") //Log.i("VERDNATURA:","Cantidad seleccionada")
mpok?.start() mpok?.start()
ReviewQuantityForRefreshingAndSorting(customDialogList.getValue().toInt(),sales[storedPosition].quantity.toInt(), ReviewQuantityForRefreshingAndSorting(
sales[storedPosition].pickedQuantity.toInt()) customDialogList.getValue().toInt(),
sales[storedPosition].quantity.toInt(),
sales[storedPosition].pickedQuantity.toInt()
)
customDialogList.dismiss() customDialogList.dismiss()
} else { } else {
itemShelvingFkStored = itemShelvingFk itemShelvingFkStored = itemShelvingFk
if (binding.splashProgress != null) binding.splashProgress.visibility = View.VISIBLE if (binding.splashProgress != null) binding.splashProgress.visibility =
View.VISIBLE
viewModel.getIdFromCode( viewModel.getIdFromCode(
usuario = user, usuario = user,
password = password, password = password,
@ -1072,18 +1214,20 @@ class CollectionFragment(
if (customDialogList.getValueTwo().isNotEmpty()) { if (customDialogList.getValueTwo().isNotEmpty()) {
try { try {
if (isNumber(customDialogList.getValue()) && customDialogList.getValue() if (isNumber(customDialogList.getValue()) && customDialogList.getValue()
.toInt() > total.toInt()) .toInt() > total.toInt()
{ ) {
"La cantidad supera a la disponible".toast(requireContext()) "La cantidad supera a la disponible".toast(requireContext())
} } else if (isNumber(customDialogList.getValue())) {
else if (isNumber(customDialogList.getValue())) {
originalItemScan = customDialogList.getValueTwo() originalItemScan = customDialogList.getValueTwo()
if (checkItemScan(customDialogList.getValueTwo())) { if (checkItemScan(customDialogList.getValueTwo())) {
onQuantityOfShelvingSelected(itemShelvingFk) onQuantityOfShelvingSelected(itemShelvingFk)
mpok?.start() mpok?.start()
ReviewQuantityForRefreshingAndSorting(customDialogList.getValue().toInt(),sales[storedPosition].quantity.toInt(), ReviewQuantityForRefreshingAndSorting(
sales[storedPosition].pickedQuantity.toInt()) customDialogList.getValue().toInt(),
sales[storedPosition].quantity.toInt(),
sales[storedPosition].pickedQuantity.toInt()
)
// SalesSorter(sales) // SalesSorter(sales)
customDialogList.dismiss() customDialogList.dismiss()
@ -1150,12 +1294,18 @@ class CollectionFragment(
Log.i("VERDNATURA::","Total"+quantityTotal) Log.i("VERDNATURA::","Total"+quantityTotal)
Log.i("VERDNATURA::","Now picked"+quantityPicked)*/ Log.i("VERDNATURA::","Now picked"+quantityPicked)*/
if (quantityPicked<quantityTotal) if (quantityPicked < quantityTotal) {
{
// SalesSorter() // SalesSorter()
// Log.i("VERDNATURA::","Lanzamos collection para que refresque adaptador y ordene") // Log.i("VERDNATURA::","Lanzamos collection para que refresque adaptador y ordene")
viewModel.collectionTicketGet(user, password, collection.collectionFk, sectorFk, type,"collection_getTickets") viewModel.collectionTicketGet(
user,
password,
collection.collectionFk,
sectorFk,
type,
"collection_getTickets"
)
} }
@ -1290,7 +1440,8 @@ class CollectionFragment(
) { ) {
getString(R.string.Todosloscampossonobligatorios).toast(requireContext()) getString(R.string.Todosloscampossonobligatorios).toast(requireContext())
} else { } else {
if (binding.splashProgress != null) binding.splashProgress.visibility = View.VISIBLE if (binding.splashProgress != null) binding.splashProgress.visibility =
View.VISIBLE
//sergio datos para mensaje salix //sergio datos para mensaje salix
@ -1346,7 +1497,8 @@ class CollectionFragment(
) { ) {
getString(R.string.Todosloscampossonobligatorios).toast(requireContext()) getString(R.string.Todosloscampossonobligatorios).toast(requireContext())
} else { } else {
if (binding.splashProgress != null) binding.splashProgress.visibility = View.VISIBLE if (binding.splashProgress != null) binding.splashProgress.visibility =
View.VISIBLE
dataMessageSalix = DataMessageSalix( dataMessageSalix = DataMessageSalix(
ticket = ticketSelected, ticket = ticketSelected,
@ -1460,6 +1612,7 @@ class CollectionFragment(
} }
private fun setTotalLines() { private fun setTotalLines() {
// Log.d("VERDNTURA::","el itempacking ggg es "+collection.tickets.get(0).itemPackingTypeFk)
var totalMark = 0 var totalMark = 0
sales.forEach { sales.forEach {
if (type == SACADOR) { if (type == SACADOR) {
@ -1471,6 +1624,7 @@ class CollectionFragment(
} else if (type == CONTROLADOR || type == PRECHECKER) { } else if (type == CONTROLADOR || type == PRECHECKER) {
if (it.isControlled == "1" || it.isControlled == "2") if (it.isControlled == "1" || it.isControlled == "2")
totalMark += 1 totalMark += 1
} }
} }
//toolbar_title.text = "" + totalMark + "/" + sales.size //toolbar_title.text = "" + totalMark + "/" + sales.size
@ -1480,14 +1634,149 @@ class CollectionFragment(
"" + totalMark + "/" + sales.size "" + totalMark + "/" + sales.size
if (totalMark == sales.size) { if (totalMark == sales.size) {
getString(R.string.Coleccióncompleta).toast(this.context, Toast.LENGTH_SHORT) getString(R.string.Coleccióncompleta).toast(this.context, Toast.LENGTH_SHORT)
showBottomNavigation(View.VISIBLE)
ticketCollection_setUsedShelves()
//showBottomNavigation(View.VISIBLE)
//sergio: se quita porque se realiza desde triggers //sergio: se quita porque se realiza desde triggers
//changeTicketState() //changeTicketState()
} }
} }
private fun showBottomNavigation(visibilitiy:Int) private fun ticketCollection_setUsedShelves() {
{
// Log.d("VERDNATURA::","la descrip es "+SectorDescription.first())
if (type.equals("CHECKER") && isMarking && !SectorDescription.first().uppercaseChar()
.equals('V')
) {
customDialogInput.setTitle("Número de baldas del ticket")
.setDescription("Indica el número de baldas que ocupa el ticket")
.setOkButton("Aceptar") {
if (!customDialogInput.getValue().isNullOrEmpty()) {
binding.splashProgress.visibility = VISIBLE
viewModel.ticketCollection_setUsedShelves(
usuario = user,
password = password,
ticketFk = collection.collectionFk,
usedShelves = customDialogInput.getValue(),
"ticketCollection_setUsedShelves"
)
hideKeyboards()
// showKeyboards()
}
customDialogInput.setValue("")
customDialogInput.dismiss()
showKeyboards()
//hideKeyboards()
//showKeyboards()
}.setKoButton("Cancelar") {
customDialogInput.dismiss()
// hideKeyboards()
showKeyboards()
}.setValue("").show()
customDialogInput.setInputText()
// customDialogInput.currentFocus
customDialogInput.setFocusText()
showKeyboards()
customDialogInput.getEditText().setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) {
if (!customDialogInput.getValue().isNullOrEmpty()) {
binding.splashProgress.visibility = VISIBLE
viewModel.ticketCollection_setUsedShelves(
usuario = user,
password = password,
ticketFk = collection.collectionFk,
usedShelves = customDialogInput.getValue(),
"ticketCollection_setUsedShelves"
)
hideKeyboards()
}
customDialogInput.setValue("")
scanRequest()
customDialogInput.dismiss()
hideKeyboards()
return@setOnEditorActionListener true
}
false
}
}
}
private fun item_updatePackingShelve(itemFk: String) {
isMarking = false
customDialogInput.setTitle("Número de paquetes en balda")
.setDescription("Indica el número de paquetes que caben en una balda")
.setOkButton("Aceptar") {
if (!customDialogInput.getValue().isNullOrEmpty()) {
binding.splashProgress.visibility = VISIBLE
viewModel.item_updatePackingShelve(
usuario = user,
password = password,
vSelf = itemFk,
vPacking = customDialogInput.getValue(),
"item_updatePackingShelve"
)
hideKeyboards()
//showKeyboards()
}
customDialogInput.setValue("")
customDialogInput.dismiss()
// hideKeyboards()
showKeyboards()
}.setKoButton("Cancelar") {
customDialogInput.dismiss()
//hideKeyboards()
showKeyboards()
}.setValue("").show()
customDialogInput.setInputText()
customDialogInput.currentFocus
customDialogInput.setFocusText()
showKeyboards()
customDialogInput.getEditText().setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) {
if (!customDialogInput.getValue().isNullOrEmpty()) {
binding.splashProgress.visibility = VISIBLE
viewModel.ticketCollection_setUsedShelves(
usuario = user,
password = password,
ticketFk = collection.collectionFk,
usedShelves = customDialogInput.getValue(),
"ticketCollection_setUsedShelves"
)
}
customDialogInput.setValue("")
scanRequest()
customDialogInput.dismiss()
hideKeyboards()
return@setOnEditorActionListener true
}
false
}
}
private fun showBottomNavigation(visibilitiy: Int) {
//requireActivity().main_bottom_navigation.visibility = visibilitiy //requireActivity().main_bottom_navigation.visibility = visibilitiy
} }
@ -1496,7 +1785,11 @@ class CollectionFragment(
// //Log.i("VERDNATURA:","Aparece CustomDialog") // //Log.i("VERDNATURA:","Aparece CustomDialog")
customDialogThreeButtons.setDescription(getString(R.string.txtnuevacantidad)).setValue("") customDialogThreeButtons.setDescription(getString(R.string.txtnuevacantidad)).setValue("")
.setOkButton(getString(R.string.Faltas)) { .setOkButton(getString(R.string.Faltas)) {
checkAndCall(position,customDialogThreeButtons.getValue(),getString(R.string.Faltas)) checkAndCall(
position,
customDialogThreeButtons.getValue(),
getString(R.string.Faltas)
)
/*if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { /*if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) {
getString(R.string.Indicanuevacantidad).toast(requireContext()) getString(R.string.Indicanuevacantidad).toast(requireContext())
} else { } else {
@ -1506,7 +1799,11 @@ class CollectionFragment(
}*/ }*/
}.setOkButtonTwo(getString(R.string.BasuraRechazar)) { }.setOkButtonTwo(getString(R.string.BasuraRechazar)) {
checkAndCall(position,customDialogThreeButtons.getValue(),getString(R.string.BasuraRechazar)) checkAndCall(
position,
customDialogThreeButtons.getValue(),
getString(R.string.BasuraRechazar)
)
/* if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { /* if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) {
getString(R.string.Indicanuevacantidad).toast(requireContext()) getString(R.string.Indicanuevacantidad).toast(requireContext())
} else { } else {
@ -1515,7 +1812,11 @@ class CollectionFragment(
customDialogThreeButtons.dismiss() customDialogThreeButtons.dismiss()
}*/ }*/
}.setOkButtonThree(getString(R.string.Reject)) { }.setOkButtonThree(getString(R.string.Reject)) {
checkAndCall(position,customDialogThreeButtons.getValue(),getString(R.string.Reject)) checkAndCall(
position,
customDialogThreeButtons.getValue(),
getString(R.string.Reject)
)
/* if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { /* if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) {
getString(R.string.Indicanuevacantidad).toast(requireContext()) getString(R.string.Indicanuevacantidad).toast(requireContext())
} else { } else {
@ -1525,7 +1826,11 @@ class CollectionFragment(
}*/ }*/
}.setOkButtonFour(getString(R.string.Split)) { }.setOkButtonFour(getString(R.string.Split)) {
checkAndCall(position,customDialogThreeButtons.getValue(),getString(R.string.Split)) checkAndCall(
position,
customDialogThreeButtons.getValue(),
getString(R.string.Split)
)
/*if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { /*if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) {
getString(R.string.Indicanuevacantidad).toast(requireContext()) getString(R.string.Indicanuevacantidad).toast(requireContext())
@ -1536,7 +1841,11 @@ class CollectionFragment(
}*/ }*/
}.setOkButtonAdd(getString(R.string.Agregar)) { }.setOkButtonAdd(getString(R.string.Agregar)) {
checkAndCall(position,customDialogThreeButtons.getValue(),getString(R.string.Agregar)) checkAndCall(
position,
customDialogThreeButtons.getValue(),
getString(R.string.Agregar)
)
/* if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) { /* if (customDialogThreeButtons.getValue().trim().isNullOrEmpty()) {
getString(R.string.Indicanuevacantidad).toast(requireContext()) getString(R.string.Indicanuevacantidad).toast(requireContext())
} else { } else {
@ -1568,6 +1877,7 @@ class CollectionFragment(
customDialogThreeButtons.dismiss() customDialogThreeButtons.dismiss()
} }
} }
private fun split(position: Int, quantity: String) { private fun split(position: Int, quantity: String) {
var totalQuantity: Int = 0 var totalQuantity: Int = 0
try { try {
@ -1675,6 +1985,7 @@ class CollectionFragment(
} }
private fun reject(position: Int, quantity: String) { private fun reject(position: Int, quantity: String) {
positionReject = position
var totalQuantity: Int = 0 var totalQuantity: Int = 0
try { try {
totalQuantity = sales[position].quantity.toInt() - quantity.toInt() totalQuantity = sales[position].quantity.toInt() - quantity.toInt()
@ -1687,16 +1998,18 @@ class CollectionFragment(
quantity = totalQuantity.toString(), quantity = totalQuantity.toString(),
warehouseFk = warehouseFk, warehouseFk = warehouseFk,
type = "reject", type = "reject",
originalQuantity = quantity originalQuantity = quantity, callFunction = "collectionMissingTrash"
,callFunction = "collectionMissingTrash") )
//sales[position].originalQuantity = quantity //sales[position].originalQuantity = quantity
sales[position].quantity = quantity sales[position].quantity = quantity
//sales[position].startQuantity = quantity //sales[position].startQuantity = quantity
saleAdapter!!.notifyDataSetChanged()
// saleAdapter!!.notifyDataSetChanged()
if (quantity == "0") if (quantity == "0")
markLine(position, type) markLine(position, type)
/*
//enviar mensaje a salix //enviar mensaje a salix
val ticket = val ticket =
"[" + sales[position].ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + sales[position].ticketFk + "/summary)" "[" + sales[position].ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + sales[position].ticketFk + "/summary)"
@ -1706,8 +2019,22 @@ class CollectionFragment(
token = token, token = token,
workerId = sales[position].salePersonFk, workerId = sales[position].salePersonFk,
message = message, "sendChekingPresence" message = message, "sendChekingPresence"
) )*/
} }
private fun missingTrashSuccesful() {
saleAdapter!!.notifyDataSetChanged()
val ticket =
"[" + sales[positionReject].ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionReject].ticketFk + "/summary)"
val message =
"Se ha modificado la cantidad original " + sales[positionReject].originalQuantity + " del artículo " + sales[positionReject].itemFk + " a nueva cantidad: " + sales[positionReject].quantity + " del ticket " + ticket
sendSalixMessageNew(ticket, message, sales[positionReject].salePersonFk)
}
private fun incresaseSuccesful() { private fun incresaseSuccesful() {
try { try {
//val quantityPicked = (quantity.toInt() - sales[position].quantity.toInt()).toString() //val quantityPicked = (quantity.toInt() - sales[position].quantity.toInt()).toString()
@ -1720,18 +2047,37 @@ class CollectionFragment(
} }
saleAdapter?.notifyDataSetChanged() saleAdapter?.notifyDataSetChanged()
//enviar mensaje a salix //enviar mensaje a salix
val ticket = val ticket =
"[" + sales[positionIncreaseQuantity].ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionIncreaseQuantity].ticketFk + "/summary)" "[" + sales[positionIncreaseQuantity].ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionIncreaseQuantity].ticketFk + "/summary)"
val message =
"Se ha modificado la cantidad original " + sales[positionIncreaseQuantity].originalQuantity + " del artículo " + sales[positionIncreaseQuantity].itemFk + " a nueva cantidad: " + sales[positionIncreaseQuantity].quantity + " del ticket " + ticket
sendSalixMessageNew(ticket, message, sales[positionIncreaseQuantity].salePersonFk)
/* val ticket =
"[" + sales[positionIncreaseQuantity].ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionIncreaseQuantity].ticketFk + "/summary)"
val message = val message =
"Se ha modificado la cantidad original " + sales[positionIncreaseQuantity].originalQuantity + " del artículo " + sales[positionIncreaseQuantity].itemFk + " a nueva cantidad: " + sales[positionIncreaseQuantity].quantity + " del ticket " + ticket "Se ha modificado la cantidad original " + sales[positionIncreaseQuantity].originalQuantity + " del artículo " + sales[positionIncreaseQuantity].itemFk + " a nueva cantidad: " + sales[positionIncreaseQuantity].quantity + " del ticket " + ticket
viewModel.sendChekingPresence( viewModel.sendChekingPresence(
token = token, token = token,
workerId = sales[positionIncreaseQuantity].salePersonFk, workerId = sales[positionIncreaseQuantity].salePersonFk,
message = message, "sendChekingPresence" message = message, "sendChekingPresence"
) )*/
} }
private fun sendSalixMessageNew(ticket: String, message: String, workerId: String) {
viewModel.sendChekingPresence(
token = token,
workerId = workerId,
message = message + ticket,
"sendChekingPresence"
)
}
private fun increaseQuantity(position: Int, quantity: String) { private fun increaseQuantity(position: Int, quantity: String) {
positionIncreaseQuantity = position positionIncreaseQuantity = position
quantityIncrease = quantity quantityIncrease = quantity
@ -1794,6 +2140,8 @@ class CollectionFragment(
//OTROS //OTROS
private fun showScanner(index: Int, sale: SaleVO) { private fun showScanner(index: Int, sale: SaleVO) {
Log.d("VERDNATURA", "Entrant en el show scanner al punxar sobre la sale")
customDialogInput.setTitle("" + sale.itemFk) customDialogInput.setTitle("" + sale.itemFk)
.setDescription(getString(R.string.Escaneaelcarroparaelitemseleccionado)) .setDescription(getString(R.string.Escaneaelcarroparaelitemseleccionado))
.setOkButton("Aceptar") { .setOkButton("Aceptar") {

View File

@ -40,6 +40,18 @@ class CollectionViewModel(context: Context) : BaseViewModel()
val response: LiveData<ResponseItemVO> val response: LiveData<ResponseItemVO>
get() = _response get() = _response
private val _responseUsedShelves by lazy { MutableLiveData<ResponseItemVO>() }
val responseUsedShelves: LiveData<ResponseItemVO>
get() = _responseUsedShelves
private val _responseItem_updatePackingShelve by lazy { MutableLiveData<ResponseItemVO>() }
val responseItem_updatePackingShelve: LiveData<ResponseItemVO>
get() = _responseItem_updatePackingShelve
private val _responseSaleGroup by lazy { MutableLiveData<ResponseItemVO>() }
val responseSaleGroup: LiveData<ResponseItemVO>
get() = _responseSaleGroup
private val _responsecheckfully by lazy { MutableLiveData<ResponseItemVO>() } private val _responsecheckfully by lazy { MutableLiveData<ResponseItemVO>() }
val responsecheckfully: LiveData<ResponseItemVO> val responsecheckfully: LiveData<ResponseItemVO>
get() = _responsecheckfully get() = _responsecheckfully
@ -115,6 +127,9 @@ class CollectionViewModel(context: Context) : BaseViewModel()
}) })
} }
fun saleTrackingReplace( fun saleTrackingReplace(
usuario: String, usuario: String,
password: String, password: String,
@ -283,6 +298,113 @@ class CollectionViewModel(context: Context) : BaseViewModel()
}) })
} }
fun ticketCollection_setUsedShelves(
usuario: String,
password: String,
ticketFk: String,
usedShelves: String,
callFunction:String)
{
getSacadorControladorUserCase.ticketCollection_setUsedShelves(
usuario,
password,
ticketFk,
usedShelves
).enqueue(object : Callback<Void>
{
override fun onFailure(call: Call<Void>, t: Throwable)
{
_responseUsedShelves.value = ResponseItemVO(isError = true, errorMessage = getMessageFromAllResponse(callFunction,t.message!!))
}
override fun onResponse(call: Call<Void>, response: Response<Void>)
{
if (!response.isSuccessful)
{
_responseUsedShelves.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(callFunction,response.message())
)
} else
{
_responseUsedShelves.value = ResponseItemVO(isError = false)
}
}
})
}
fun item_updatePackingShelve(
usuario: String,
password: String,
vSelf: String,
vPacking: String,
callFunction:String)
{
getSacadorControladorUserCase.item_updatePackingShelve(
usuario,
password,
vSelf,
vPacking
).enqueue(object : Callback<Void>
{
override fun onFailure(call: Call<Void>, t: Throwable)
{
_responseItem_updatePackingShelve.value = ResponseItemVO(isError = true, errorMessage = getMessageFromAllResponse(callFunction,t.message!!))
}
override fun onResponse(call: Call<Void>, response: Response<Void>)
{
if (!response.isSuccessful)
{
_responseItem_updatePackingShelve.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(callFunction,response.message())
)
} else
{
_responseItem_updatePackingShelve.value = ResponseItemVO(isError = false)
}
}
})
}
fun saleTracking_add(
usuario: String,
password: String,
saleGroupFk: String,
callFunction:String)
{
getSacadorControladorUserCase.saleTracking_add(
usuario,
password,
saleGroupFk
).enqueue(object : Callback<Void>
{
override fun onFailure(call: Call<Void>, t: Throwable)
{
_responseSaleGroup.value = ResponseItemVO(isError = true, errorMessage = getMessageFromAllResponse(callFunction,t.message!!))
}
override fun onResponse(call: Call<Void>, response: Response<Void>)
{
if (!response.isSuccessful)
{
_responseSaleGroup.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(callFunction,response.message())
)
} else
{
_responseSaleGroup.value = ResponseItemVO(isError = false)
}
}
})
}
/* fun itemGetAvailable(usuario: String, password: String, itemFk: String, warehouseFk: String,callFunction:String) /* fun itemGetAvailable(usuario: String, password: String, itemFk: String, warehouseFk: String,callFunction:String)
{ {
getSacadorControladorUserCase.itemGetAvailable(usuario, password, itemFk, warehouseFk) getSacadorControladorUserCase.itemGetAvailable(usuario, password, itemFk, warehouseFk)

View File

@ -0,0 +1,332 @@
package es.verdnatura.presentation.view.feature.collection.fragment
import android.content.Context
import android.content.SharedPreferences
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.view.View
import android.view.View.GONE
import android.view.View.VISIBLE
import android.view.inputmethod.EditorInfo
import android.widget.Toast
import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R
import es.verdnatura.databinding.FragmentCollectionBinding
import es.verdnatura.domain.ConstAndValues.CONTROLADOR
import es.verdnatura.domain.ConstAndValues.PRECHECKER
import es.verdnatura.domain.ConstAndValues.SACADOR
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.VERTICKET
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.*
import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.feature.collection.adapter.SaleAdapter
import es.verdnatura.presentation.view.feature.inventario.adapter.ToolBarAdapter
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
import es.verdnatura.presentation.view.feature.sacador.model.SaleVO
import timber.log.Timber.d
class CollectionShowTicketFragment(
var collection: CollectionVO = CollectionVO(),
var type: String = VERTICKET
) : BaseFragment<FragmentCollectionBinding, CollectionViewModel>(CollectionViewModel::class) {
private var user = ""
private var password = ""
private var sectorFk = ""
private var warehouseFk = ""
private var SectorDescription = ""
private var token = ""
private var voz = ""
private var sales: List<SaleVO> = listOf()
private var saleAdapter: SaleAdapter? = null
private var lm: LinearLayoutManager? = null
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
private lateinit var customDialog: CustomDialog
private var tickets: ArrayList<String> = ArrayList()
private var state = 0
companion object {
fun newInstance(collection: CollectionVO, type: String) =
CollectionShowTicketFragment(collection, type)
}
override fun onAttach(context: Context) {
if (context is OnPasillerosItemClickListener) pasillerosItemClickListener = context
super.onAttach(context)
}
override fun getLayoutId(): Int = R.layout.fragment_collection
override fun onCreate(savedInstanceState: Bundle?) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
token = prefs.getString(TOKEN, "").toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
voz = prefs.getString(VOZ, "NO").toString()
SectorDescription = prefs.getString(SECTORDESCRIP, "Sin Sector").toString()
if (collection.tickets.isEmpty()) {
viewModel.collectionTicketGet(
user,
password,
collection.collectionFk,
sectorFk,
type,
"collection_getTickets"
)
}
super.onCreate(savedInstanceState)
}
override fun init() {
customDialog = CustomDialog(requireContext())
(activity as MainActivity).hideBottomNavigation(GONE)
binding.splashProgress.visibility = VISIBLE
setEvents()
setToolBarIcon()
binding.mainToolbar.toolbarSubtitle.visibility = VISIBLE
if (collection.tickets.isNotEmpty()) {
createCollectionList()
}
super.init()
}
private fun setToolBarIcon() {
binding.mainToolbar.toolbarSubtitle.visibility = VISIBLE
val listIcons: ArrayList<Drawable> = ArrayList()
val iconPrint: Drawable =
resources.getDrawable(R.drawable.ic_print_black_24dp, resources.newTheme())
listIcons.add(iconPrint)
binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapter(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) {
if (item == iconPrint) {
print()
}
}
})
binding.mainToolbar.toolbarIcons.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
}
private fun print() {
viewModel.collectionStickerPrint(
usuario = user,
password = password,
collectionFk = collection.collectionFk,
sectorFk = sectorFk,
"collectionStickerPrint"
)
(getString(R.string.Imprimiendo) + " por " + SectorDescription).toast(requireContext())
}
private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
binding.scanInput.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {//ID=0 ACTION_NEXT ID=5 ACTION_UNESPECEFIED)
if (!binding.scanInput.text.toString().isNullOrEmpty()) {
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
user,
password,
binding.scanInput.text.toString(),
sectorFk,
type, "collection_getTickets"
)
}
binding.scanInput.setText("")
hideKeyboards()
return@setOnEditorActionListener true
}
true
}
hideKeyboards()
binding.collectionSwipe.setOnRefreshListener {
binding.collectionSwipe.isRefreshing = false
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
user,
password,
collection.collectionFk,
sectorFk,
type, "collection_getTickets"
)
binding.collectionSwipe.isRefreshing = false
}
}
private fun hideKeyboards() {
try {
requireActivity().hideKeyboard()
} catch (e: Exception) {
}
}
override fun observeViewModel() {
with(viewModel) {
binding.splashProgress.visibility = GONE
collectionTicketList.observe(viewLifecycleOwner, Observer {
if (!it.isError) {
if (it.tickets.isNotEmpty()) {
collection = it
createCollectionList()
} else {
binding.mainToolbar.toolbarSubtitle.text = "0/0"
}
} else {
customDialog.setTitle("Error").setDescription(it.errorMessage)
.setOkButton("Aceptar") {
customDialog.dismiss()
if (activity != null) requireActivity().onBackPressed()
}.show()
}
})
}
}
private fun createCollectionList() {
state = 0
binding.mainToolbar.toolbarTitle.text = collection.collectionFk
binding.splashProgress.visibility = View.GONE
var salesList: ArrayList<SaleVO> = ArrayList()
tickets = ArrayList()
var observations = ""
collection.tickets.forEach { ticket ->
ticket.sales.forEach { saleVO ->
if (type == SACADOR && saleVO.quantity != "0") {
salesList.add(saleVO)
if (tickets.firstOrNull { it == saleVO.ticketFk }.isNullOrEmpty())
tickets.add(saleVO.ticketFk)
} else if (type == CONTROLADOR || type == PRECHECKER || type == VERTICKET) {
salesList.add(saleVO)
if (tickets.firstOrNull { it == saleVO.ticketFk }.isNullOrEmpty())
tickets.add(saleVO.ticketFk)
}
}
observations = observations + " " + ticket.observations
}
sales = salesList.sortedWith(compareBy({ it.saleOrder }))
saleAdapter =
SaleAdapter(sales, pasillerosItemClickListener!!, object : OnQuantityClickListener {
override fun onQuantityClick(sale: SaleVO) {
}
}, object : OnSaleClickListener {
override fun onSaleClick(sale: SaleVO) {
}
}, object : OnMistakeClickListener {
override fun onMistakeClickListener(sale: SaleVO) {
}
},object : onPackingClickListener{
override fun onPackingClick(sale: SaleVO) {
}
}
)
lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
binding.fragmentSacadorCollections.adapter = saleAdapter
binding.fragmentSacadorCollections.layoutManager = lm
setTotalLines()
printObservations(observations)
binding.scanInput.requestFocus()
}
private fun printObservations(observations: String) {
if (observations.trim().isNotEmpty()) {
customDialog.setTitle("Observaciones").setDescription(observations)
.setOkButton("Aceptar") {
customDialog.hide()
customDialog.dismiss()
}.show()
}
}
/* private fun setListPosition(position: Int, isFromBack: Boolean) {
storedPosition = position
if (type == SACADOR) {
if (binding.fragmentSacadorCollections != null) {
binding.fragmentSacadorCollections.addViewObserver {
lm!!.scrollToPositionWithOffset(position, 0)
}
}
} else if (isFromBack) {
if (binding.fragmentSacadorCollections != null) {
binding.fragmentSacadorCollections.addViewObserver {
lm!!.scrollToPositionWithOffset(position, 0)
}
}
}
}*/
private fun setTotalLines() {
var totalMark = 0
sales.forEach {
if (type == SACADOR) {
if (it.isPrepared == "1" || it.isControlled == "1" || it.isPreviousPrepared == "1") {
totalMark += 1
} else if (it.quantity == "0") {
totalMark += 1
}
} else if (type == CONTROLADOR || type == PRECHECKER) {
if (it.isControlled == "1" || it.isControlled == "2")
totalMark += 1
}
}
binding.mainToolbar.toolbarTitle.text =
collection.collectionFk
if (sales != null) binding.mainToolbar.toolbarSubtitle.text =
"" + totalMark + "/" + sales.size
if (totalMark == sales.size) {
getString(R.string.Coleccióncompleta).toast(this.context, Toast.LENGTH_SHORT)
}
}
}

View File

@ -18,6 +18,7 @@ fun CollectionVO.map(): CollectionVO {
it.agencyName = ticket.agencyName it.agencyName = ticket.agencyName
it.isNew = it.isAdded == "1" it.isNew = it.isAdded == "1"
// sergio: OBLIGAR A ACTUALIZAR VERSIÓN PARA SUBIR DESPUÉS FICHEROS DEL BACK collection_getTickets al mismo tiempo") // sergio: OBLIGAR A ACTUALIZAR VERSIÓN PARA SUBIR DESPUÉS FICHEROS DEL BACK collection_getTickets al mismo tiempo")
//it.quantity = it.quantity.substring(0, it.quantity.indexOf(".")) //it.quantity = it.quantity.substring(0, it.quantity.indexOf("."))

View File

@ -3,19 +3,19 @@ package es.verdnatura.presentation.view.feature.controlador.fragment
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.View import android.view.View
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentControladorBinding import es.verdnatura.databinding.FragmentControladorBinding
import es.verdnatura.domain.ConstAndValues import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener import es.verdnatura.presentation.common.OnCollectionSelectedListener
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.feature.main.activity.MainActivity import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
import timber.log.Timber.d
import timber.log.Timber.i
/* /*
import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_main.*
@ -23,7 +23,8 @@ import kotlinx.android.synthetic.main.fragment_controlador.*
import kotlinx.android.synthetic.main.toolbar.* import kotlinx.android.synthetic.main.toolbar.*
*/ */
class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorViewModel>(ControladorViewModel::class) { class ControladorFragment :
BaseFragment<FragmentControladorBinding, ControladorViewModel>(ControladorViewModel::class) {
private var user = "" private var user = ""
private var password = "" private var password = ""
@ -50,7 +51,6 @@ class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorV
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
binding.mainToolbar.toolbarTitle.text = getString(R.string.controlticket) binding.mainToolbar.toolbarTitle.text = getString(R.string.controlticket)
setEvents() setEvents()
//requireActivity().main_bottom_navigation.visibility = View.VISIBLE
(activity as MainActivity).hideBottomNavigation(View.VISIBLE) (activity as MainActivity).hideBottomNavigation(View.VISIBLE)
super.init() super.init()
} }
@ -65,8 +65,8 @@ class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorV
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK, 60).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
type = ConstAndValues.CONTROLADOR type = ConstAndValues.CONTROLADOR
@ -74,7 +74,6 @@ class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorV
} }
private fun setEvents() { private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener { binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed() requireActivity().onBackPressed()
} }
@ -82,18 +81,28 @@ class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorV
binding.scanInput.requestFocus() binding.scanInput.requestFocus()
binding.scanInput.setOnEditorActionListener { v, actionId, event -> binding.scanInput.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) {
d("Action id "+actionId) // d("Action id "+actionId)
goBack = false goBack = false
if (!binding.scanInput.text.isNullOrEmpty()) { if (!binding.scanInput.text.isNullOrEmpty()) {
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
//sergio: para ver si ha marcado dos veces el mismo ticket
if (binding.scanInput.text!!.length > 13) {
var size = binding.scanInput.text!!.length
if (binding.scanInput.text!!.substring((size / 2), size).equals(binding.scanInput.text!!.substring( 0,size / 2))){
binding.scanInput.setText(binding.scanInput.text!!.substring(0, size / 2))
}
}
viewModel.collectionTicketGet( viewModel.collectionTicketGet(
usuario = user, usuario = user,
password = password, password = password,
sectorFk = sectorFk, sectorFk = sectorFk,
collectionFk = binding.scanInput.text.toString(), collectionFk = binding.scanInput.text.toString(),
type = type type = type, callFunction = "collection_getTickets"
,callFunction = "collection_getTickets") )
// viewModel.ticket_checkControlled(user,password,scan_input.text.toString()) // viewModel.ticket_checkControlled(user,password,scan_input.text.toString())
} }
binding.scanInput.setText("") binding.scanInput.setText("")
@ -109,7 +118,8 @@ class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorV
collectionTicketList.observe(viewLifecycleOwner, Observer { collectionTicketList.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
if (it.isError) { if (it.isError) {
customDialog.setTitle("Error").setDescription(it.errorMessage).setOkButton("Aceptar"){ customDialog.setTitle("Error").setDescription(it.errorMessage)
.setOkButton("Aceptar") {
customDialog.dismiss() customDialog.dismiss()
}.show() }.show()
} else { } else {
@ -129,6 +139,4 @@ class ControladorFragment : BaseFragment<FragmentControladorBinding,ControladorV
} }
} }

View File

@ -1,6 +1,7 @@
package es.verdnatura.presentation.view.feature.controlador.fragment package es.verdnatura.presentation.view.feature.controlador.fragment
import android.content.Context import android.content.Context
import android.util.Log
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import es.verdnatura.domain.GetSacadorControladorUserCase import es.verdnatura.domain.GetSacadorControladorUserCase
@ -38,8 +39,13 @@ class ControladorViewModel(context: Context) : BaseViewModel() {
response: Response<CollectionVO> response: Response<CollectionVO>
) { ) {
if (response.body() != null){ if (response.body() != null){
_collectionTicketList.value = response.body()?.let { it.map() _collectionTicketList.value = response.body()?.let { it.map()
} }
/* response.body()?.let {
Log.d("VERDNTURA::","el itempacking es "+it.tickets.get(0).itemPackingTypeFk)
}.also { }*/
}else{ }else{

View File

@ -10,6 +10,8 @@ import androidx.lifecycle.Observer
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentWebBinding import es.verdnatura.databinding.FragmentWebBinding
import es.verdnatura.domain.ConstAndValues import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
@ -96,8 +98,8 @@ class WebFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
type = ConstAndValues.PRECHECKER type = ConstAndValues.PRECHECKER
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }

View File

@ -12,6 +12,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentVehiclecontrolBinding import es.verdnatura.databinding.FragmentVehiclecontrolBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.* import es.verdnatura.presentation.common.*
@ -234,8 +236,8 @@ class ControlVehiculoFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
userFk = prefs.getString(USERFK, "0").toString() userFk = prefs.getString(USERFK, "0").toString()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }

View File

@ -6,6 +6,8 @@ import android.view.View.*
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentVehiclecontrolUserBinding import es.verdnatura.databinding.FragmentVehiclecontrolUserBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.loadUrl import es.verdnatura.presentation.common.loadUrl
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
@ -56,7 +58,7 @@ class ControlVehiculoUsuarioFragment(
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
token = prefs.getString(TOKEN, "").toString() token = prefs.getString(TOKEN, "").toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
android_id = getANDROIDID() android_id = getANDROIDID()
if (userFk.equals(vUserFK)) { if (userFk.equals(vUserFK)) {
@ -87,8 +89,8 @@ class ControlVehiculoUsuarioFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
userFk = prefs.getString(USERFK, "0").toString() userFk = prefs.getString(USERFK, "0").toString()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }

View File

@ -11,6 +11,7 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentItemdayofsaleCardBinding import es.verdnatura.databinding.FragmentItemdayofsaleCardBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnOptionsSelectedListener import es.verdnatura.presentation.common.OnOptionsSelectedListener
@ -118,7 +119,7 @@ class DayOfSaleFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
viewModel.itemShelving_getSaleDate(user, password,vShelvingFK,"itemShelving_getSaleDate") viewModel.itemShelving_getSaleDate(user, password,vShelvingFK,"itemShelving_getSaleDate")

View File

@ -10,6 +10,7 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentFaltasBinding import es.verdnatura.databinding.FragmentFaltasBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnFaltasNichoClickListener import es.verdnatura.presentation.common.OnFaltasNichoClickListener
import es.verdnatura.presentation.common.OnFaltasReviewClickListener import es.verdnatura.presentation.common.OnFaltasReviewClickListener
@ -55,8 +56,8 @@ class FaltasFragment : BaseFragment<FragmentFaltasBinding, FaltasViewModel>(Falt
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,60).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
viewModel.getFaltas(user,password,warehouseFk) viewModel.getFaltas(user,password,warehouseFk)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }

View File

@ -20,6 +20,8 @@ import es.verdnatura.R
import es.verdnatura.R.color.verdnatura_pumpkin_orange import es.verdnatura.R.color.verdnatura_pumpkin_orange
import es.verdnatura.R.color.verdnatura_white import es.verdnatura.R.color.verdnatura_white
import es.verdnatura.databinding.FragmentHistoricoBinding import es.verdnatura.databinding.FragmentHistoricoBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnOptionsSelectedListener import es.verdnatura.presentation.common.OnOptionsSelectedListener
@ -61,8 +63,8 @@ class HistoricoArticuloFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
customDialogInput = CustomDialogInput(requireContext()) customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
(activity as MainActivity).hideBottomNavigation(View.GONE) (activity as MainActivity).hideBottomNavigation(View.GONE)

View File

@ -7,6 +7,7 @@ package es.verdnatura.presentation.view.feature.historicoshelving.fragment
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentItemshelvinglogBinding import es.verdnatura.databinding.FragmentItemshelvinglogBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
@ -89,7 +90,7 @@ class itemShelvingLogFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
viewModel.itemShelvingLog_get(user, password,vShelvingFK,"itemShelvingLog_get") viewModel.itemShelvingLog_get(user, password,vShelvingFK,"itemShelvingLog_get")

View File

@ -7,6 +7,7 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentShelvinglogBinding import es.verdnatura.databinding.FragmentShelvinglogBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
@ -93,7 +94,7 @@ class shelvingLogFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
viewModel.shelvingLog_get(user, password,vShelvingFK,"shelvingLog_get") viewModel.shelvingLog_get(user, password,vShelvingFK,"shelvingLog_get")

View File

@ -7,6 +7,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentHistoricovehiculoBinding import es.verdnatura.databinding.FragmentHistoricovehiculoBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
@ -49,8 +51,8 @@ class HistoricoVehiculoFragment (
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
userFk=prefs.getString(USERFK,"").toString() userFk=prefs.getString(USERFK,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
customDialogInput = CustomDialogInput(requireContext()) customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
(activity as MainActivity).hideBottomNavigation(View.GONE) (activity as MainActivity).hideBottomNavigation(View.GONE)

View File

@ -3,6 +3,7 @@ package es.verdnatura.presentation.view.feature.main.activity
//import kotlinx.android.synthetic.main.activity_main.* //import kotlinx.android.synthetic.main.activity_main.*
import android.content.SharedPreferences import android.content.SharedPreferences
import android.media.MediaPlayer import android.media.MediaPlayer
import android.util.Log.d
import android.view.Menu import android.view.Menu
import android.widget.Toast import android.widget.Toast
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
@ -25,6 +26,7 @@ import es.verdnatura.presentation.view.feature.buscaritem.fragment.BuscarItemFra
import es.verdnatura.presentation.view.feature.calidad.fragment.BuyersFragment import es.verdnatura.presentation.view.feature.calidad.fragment.BuyersFragment
import es.verdnatura.presentation.view.feature.calidad.fragment.QaualityFragment import es.verdnatura.presentation.view.feature.calidad.fragment.QaualityFragment
import es.verdnatura.presentation.view.feature.collection.fragment.CollectionFragment import es.verdnatura.presentation.view.feature.collection.fragment.CollectionFragment
import es.verdnatura.presentation.view.feature.collection.fragment.CollectionShowTicketFragment
import es.verdnatura.presentation.view.feature.controlador.fragment.ControladorFragment import es.verdnatura.presentation.view.feature.controlador.fragment.ControladorFragment
import es.verdnatura.presentation.view.feature.controlador.fragment.WebFragment import es.verdnatura.presentation.view.feature.controlador.fragment.WebFragment
import es.verdnatura.presentation.view.feature.controlvehiculo.fragment.ControlVehiculoFragment import es.verdnatura.presentation.view.feature.controlvehiculo.fragment.ControlVehiculoFragment
@ -41,14 +43,17 @@ import es.verdnatura.presentation.view.feature.paletizador.fragment.*
import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionTruckVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionTruckVO
import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO
import es.verdnatura.presentation.view.feature.parking.fragment.ParkingFragment import es.verdnatura.presentation.view.feature.parking.fragment.ParkingFragment
import es.verdnatura.presentation.view.feature.parking.fragment.ParkingSaleFragment
import es.verdnatura.presentation.view.feature.pasillero.fragment.PasilleroFragment import es.verdnatura.presentation.view.feature.pasillero.fragment.PasilleroFragment
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import es.verdnatura.presentation.view.feature.precontrol.PreControladorFragment import es.verdnatura.presentation.view.feature.precontrol.PreControladorFragment
import es.verdnatura.presentation.view.feature.precontrol.ShowTicketFragment
import es.verdnatura.presentation.view.feature.presacador.fragment.PreSacadorFragment import es.verdnatura.presentation.view.feature.presacador.fragment.PreSacadorFragment
import es.verdnatura.presentation.view.feature.qr.QrFragment import es.verdnatura.presentation.view.feature.qr.QrFragment
import es.verdnatura.presentation.view.feature.reposicion.fragment.ReposicionFragment import es.verdnatura.presentation.view.feature.reposicion.fragment.ReposicionFragment
import es.verdnatura.presentation.view.feature.sacador.fragment.SacadorFragment import es.verdnatura.presentation.view.feature.sacador.fragment.SacadorFragment
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
import es.verdnatura.presentation.view.feature.sacador.model.SaleVO
import es.verdnatura.presentation.view.feature.shelvingparking.fragment.ShelvingParkingFragment import es.verdnatura.presentation.view.feature.shelvingparking.fragment.ShelvingParkingFragment
import es.verdnatura.presentation.view.feature.smarttag.register.RegisterSmartTagsFragment import es.verdnatura.presentation.view.feature.smarttag.register.RegisterSmartTagsFragment
import es.verdnatura.presentation.view.feature.smarttag.sacador.fragment.AssociateSmartTagsFragment import es.verdnatura.presentation.view.feature.smarttag.sacador.fragment.AssociateSmartTagsFragment
@ -99,7 +104,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
} }
} }
private fun haveSector(): Boolean { private fun haveSector(): Boolean {
@ -333,7 +337,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
} }
"Ver Ticket" -> { "Ver Ticket" -> {
addFragmentOnTop(PreControladorFragment.newInstance()) addFragmentOnTop(ShowTicketFragment.newInstance())
} }
"Historial del vehículo" -> { "Historial del vehículo" -> {
addFragmentOnTop(ControlVehiculoFragment.newInstance(HistoricoVehiculoFragment.TAG)) addFragmentOnTop(ControlVehiculoFragment.newInstance(HistoricoVehiculoFragment.TAG))
@ -354,12 +358,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
"Parking" -> { "Parking" -> {
addFragmentOnTop(ParkingFragment.newInstance()) addFragmentOnTop(ParkingFragment.newInstance())
} }
"Buscar item" -> { "Buscar item" -> {
addFragmentOnTop(BuscarItemFragment.newInstance(entryPoint)) addFragmentOnTop(BuscarItemFragment.newInstance(entryPoint))
} }
// "Buscar item full" -> {
// addFragmentOnTop(BuscarItemAllFragment.newInstance(entryPoint))
// }
"Historico" -> { "Historico" -> {
addFragmentOnTop(HistoricoArticuloFragment.newInstance(entryPoint)) addFragmentOnTop(HistoricoArticuloFragment.newInstance(entryPoint))
@ -424,6 +427,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
} }
"Histórico Shelving" -> { "Histórico Shelving" -> {
addFragmentOnTop(itemShelvingLogFragment.newInstance("Histórico Shelving")) addFragmentOnTop(itemShelvingLogFragment.newInstance("Histórico Shelving"))
d("VERDNATURA::", "es el historico ")
} }
"Log Shelving" -> { "Log Shelving" -> {
addFragmentOnTop(shelvingLogFragment.newInstance("Log Shelving")) addFragmentOnTop(shelvingLogFragment.newInstance("Log Shelving"))
@ -486,10 +490,20 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
} }
fun onParkingSaleSelected(sales: SaleVO) {
addFragmentOnTop(ParkingSaleFragment.newInstance(SaleVO = sales))
}
override fun onCollectionSelected(collection: CollectionVO, type: String) { override fun onCollectionSelected(collection: CollectionVO, type: String) {
// fm.popBackStack() // fm.popBackStack()
addFragmentOnTop(CollectionFragment.newInstance(collection, type))
if (type.equals("SHOWTICKET")) {
addFragmentOnTop(CollectionShowTicketFragment.newInstance(collection, type))
} else {
addFragmentOnTop(CollectionFragment.newInstance(collection, type))
}
} }
override fun onBuyerSelected(userFk: String) { override fun onBuyerSelected(userFk: String) {
@ -529,18 +543,18 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
addFragmentOnTop(ExpeditionStateFragment.newInstance("main")) addFragmentOnTop(ExpeditionStateFragment.newInstance("main"))
} }
fun hideBottomNavigation(visible: Int) { fun hideBottomNavigation(visible: Int) {
binding.mainBottomNavigation.visibility = visible binding.mainBottomNavigation.visibility = visible
} }
fun messageWithSound(message:String,isSuccess:Boolean){ fun messageWithSound(message: String, isError: Boolean) {
if (isSuccess){ if (!isError) {
mpok?.start() mpok?.start()
}
else{
mperror?.start()
message.toast(this, Toast.LENGTH_SHORT) message.toast(this, Toast.LENGTH_SHORT)
} else {
mperror?.start()
customDialog.setTitle("Error").setDescription(message) customDialog.setTitle("Error").setDescription(message)
.setOkButton("Aceptar") { .setOkButton("Aceptar") {
customDialog.dismiss() customDialog.dismiss()

View File

@ -12,6 +12,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentExpeditionPalletDetailBinding import es.verdnatura.databinding.FragmentExpeditionPalletDetailBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
@ -63,8 +65,8 @@ class ExpeditionPalletDetailFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
SectorDescription=prefs.getString(SECTORDESCRIP,"Sin Sector").toString() SectorDescription=prefs.getString(SECTORDESCRIP,"Sin Sector").toString()

View File

@ -14,6 +14,7 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentExpeditionPalletBinding import es.verdnatura.databinding.FragmentExpeditionPalletBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnBarcodeRowClickListener import es.verdnatura.presentation.common.OnBarcodeRowClickListener
@ -72,8 +73,8 @@ class ExpeditionPalletFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,60).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
mperror = MediaPlayer.create((activity as MainActivity),R.raw.error) mperror = MediaPlayer.create((activity as MainActivity),R.raw.error)
mpok = MediaPlayer.create((activity as MainActivity),R.raw.ok) mpok = MediaPlayer.create((activity as MainActivity),R.raw.ok)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)

View File

@ -14,6 +14,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentExpeditionScanBinding import es.verdnatura.databinding.FragmentExpeditionScanBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.* import es.verdnatura.presentation.common.*
@ -68,8 +70,8 @@ class ExpeditionScanFragment (
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
mperror = MediaPlayer.create((activity as MainActivity),R.raw.error) mperror = MediaPlayer.create((activity as MainActivity),R.raw.error)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)

View File

@ -18,6 +18,7 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentItemexpeditionstateCardBinding import es.verdnatura.databinding.FragmentItemexpeditionstateCardBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnItemExpeditionStateRowClickListener import es.verdnatura.presentation.common.OnItemExpeditionStateRowClickListener
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
@ -95,7 +96,7 @@ class ExpeditionStateFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
// this.itemFk = itemFk // this.itemFk = itemFk
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
viewModel.expedition_getStateJSON(expeditionFk, user, password,"expedition_getState") viewModel.expedition_getStateJSON(expeditionFk, user, password,"expedition_getState")

View File

@ -12,6 +12,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentExpeditionTruckListBinding import es.verdnatura.databinding.FragmentExpeditionTruckListBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnOptionsSelectedListener import es.verdnatura.presentation.common.OnOptionsSelectedListener
@ -54,8 +56,8 @@ class ExpeditionTruckListFragment : BaseFragment<FragmentExpeditionTruckListBin
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }

View File

@ -11,6 +11,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentParkingBinding import es.verdnatura.databinding.FragmentParkingBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnBarcodeRowClickListener import es.verdnatura.presentation.common.OnBarcodeRowClickListener
import es.verdnatura.presentation.common.hideKeyboard import es.verdnatura.presentation.common.hideKeyboard
@ -149,8 +151,8 @@ class ParkingFragment : BaseFragment<FragmentParkingBinding,ParkingViewModel>(Pa
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
mperror = MediaPlayer.create((activity as MainActivity),R.raw.error) mperror = MediaPlayer.create((activity as MainActivity),R.raw.error)
mpok = MediaPlayer.create((activity as MainActivity),R.raw.ok) mpok = MediaPlayer.create((activity as MainActivity),R.raw.ok)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)

View File

@ -0,0 +1,43 @@
/*package es.verdnatura.presentation.view.feature.parking.adapter
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.databinding.ItemBarcodeRowBinding
import es.verdnatura.presentation.common.OnBarcodeRowClickListener
import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO
/*
class ParkingAdapter (
private val items: List<BarcodeVO>,
private val onBarcodeRowClickListener: OnBarcodeRowClickListener
): RecyclerView.Adapter<ParkingAdapter.ItemHolder> () {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder {
return ItemHolder(
ItemBarcodeRowBinding.inflate(LayoutInflater.from(parent.context),parent,false)
)
}
override fun getItemCount() =items.size
override fun onBindViewHolder(holder: ItemHolder, position: Int) {
holder.bind(items[position])
holder.binding.root.setOnClickListener {
onBarcodeRowClickListener.onBarcodeRowClickListener(items[position])
}
}
inner class ItemHolder(
val binding: ItemBarcodeRowBinding
) : RecyclerView.ViewHolder(binding.root){
fun bind(item: BarcodeVO) {
binding.apply {
this.item = item
}
}
}
}
*/

View File

@ -0,0 +1,167 @@
package es.verdnatura.presentation.view.feature.parking.fragment
/*import kotlinx.android.synthetic.main.fragment_parking.*
import kotlinx.android.synthetic.main.toolbar.**/
import android.content.SharedPreferences
import android.media.MediaPlayer
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
import es.verdnatura.databinding.FragmentParkingBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnBarcodeRowClickListener
import es.verdnatura.presentation.common.hideKeyboard
import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import es.verdnatura.presentation.view.feature.parking.adapter.ParkingAdapter
class ParkingSaleFragment : BaseFragment<FragmentParkingBinding,ParkingSaleViewModel>(ParkingSaleViewModel::class) {
private var user = ""
private var password = ""
private var sectorFk = ""
private var warehouseFk = ""
private lateinit var customDialog: CustomDialog
private var scanerList:ArrayList<BarcodeVO> = ArrayList()
private var adapter : ParkingAdapter? = null
private var numParking : Int = 0
var mperror: MediaPlayer? = null
var mpok: MediaPlayer? = null
override fun getLayoutId(): Int = R.layout.fragment_parking
companion object {
fun newInstance(SaleVO: Any?) = ParkingFragment()
}
override fun init() {
setEvents()
binding.mainToolbar.toolbarTitle.text = getString(R.string.Parking)
//sergio: después de las últimas actualizaciones se queda activo. Se cambia opción visibilidad.
//viewModel.hideProgressLoading()
binding.splashProgress.visibility=View.GONE
setList()
customDialog = CustomDialog(requireContext())
super.init()
}
private fun setEvents(){
binding.scanInput.requestFocus()
binding.scanInput.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) {
if (!binding.scanInput.text.isNullOrEmpty()) {
checkScan(binding.scanInput.text.toString())
}
binding.scanInput.setText("")
requireActivity().hideKeyboard()
return@setOnEditorActionListener true
}
false
}
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
}
override fun observeViewModel() {
with(viewModel){
response.observe(viewLifecycleOwner, Observer {
if (it.isError){
mperror?.start()
// binding.splashProgress.visibility = View.GONE
customDialog.setTitle("Error").setDescription(it.errorMessage).setOkButton("Cerrar"){
customDialog.dismiss()
}.show()
}else{
numParking -= 1
if (numParking <= 0) {
// binding.splashProgress.visibility = View.GONE
//viewModel.hideProgressLoading()
mpok?.start()
setList()
}
}
})
isLoading.observe(viewLifecycleOwner, Observer {
if (it){
binding.splashProgress.visibility = View.VISIBLE
}else{
binding.splashProgress.visibility = View.GONE
}
})
isLoadingProgress.observe(viewLifecycleOwner, {
binding.splashProgress.visibility = it
})
}
}
private fun setList(){
scanerList = ArrayList()
adapter = ParkingAdapter(scanerList,object: OnBarcodeRowClickListener{
override fun onBarcodeRowClickListener(item: BarcodeVO) {
scanerList.removeAt(scanerList.indexOf(item))
adapter?.notifyDataSetChanged()
}
})
val lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
binding.fragmentParkingScanList.adapter = adapter
binding.fragmentParkingScanList.layoutManager = lm
}
private fun checkScan(txtScan:String){
var isParking:Boolean = false
if (txtScan.trim().length == 4 && isLetter(txtScan.substring(txtScan.length - 1)) || txtScan.contains("-")){
isParking = true
}
if (isParking){
numParking = scanerList.size
scanerList.forEach {
// binding.splashProgress.visibility = View.VSIIBLE
viewModel.parking(
usuario = user,
password = password,
parking = txtScan,
scanItem = it.code!!,callFunction = "shelvingPark"
)
}
}else{
scanerList.add(BarcodeVO(code = txtScan))
adapter?.notifyDataSetChanged()
}
}
override fun onCreate(savedInstanceState: Bundle?) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
mperror = MediaPlayer.create((activity as MainActivity),R.raw.error)
mpok = MediaPlayer.create((activity as MainActivity),R.raw.ok)
super.onCreate(savedInstanceState)
}
@Throws(NumberFormatException::class)
fun isLetter(text: String): Boolean {
return text.matches("[a-zA-Z ]+".toRegex())
}
}

View File

@ -0,0 +1,98 @@
package es.verdnatura.presentation.view.feature.parking.fragment
import android.content.Context
import android.view.View.GONE
import android.view.View.VISIBLE
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import es.verdnatura.domain.GetUbicadorUserCase
import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.base.getMessageError
import es.verdnatura.presentation.base.getMessageFromAllResponse
import es.verdnatura.presentation.common.ResponseItemVO
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
class ParkingSaleViewModel(context: Context) : BaseViewModel() {
private val getUbicadorUserCase: GetUbicadorUserCase = GetUbicadorUserCase(context)
private val _response by lazy { MutableLiveData<ResponseItemVO>() }
val response: LiveData<ResponseItemVO>
get() = _response
private val _isLoading by lazy { MutableLiveData<Boolean>() }
val isLoading: LiveData<Boolean> = _isLoading
private val _isLoadingProgress by lazy { MutableLiveData<Int>() }
val isLoadingProgress: LiveData<Int> = _isLoadingProgress
private val _responseParkingAdd by lazy { MutableLiveData<ResponseItemVO>() }
val responseParkingAdd: LiveData<ResponseItemVO>
get() = _responseParkingAdd
private fun showProgressLoading() {
_isLoading.value = true
}
fun hideProgressLoading() {
_isLoading.value = false
}
fun ProgressLoading(visibility:Int) {
_isLoadingProgress.value = visibility
}
fun parking(usuario: String,password: String,scanItem: String,parking:String,callFunction:String){
ProgressLoading(VISIBLE)
getUbicadorUserCase.shelvingPark(usuario,password,scanItem,parking).enqueue(object :
Callback<String> {
override fun onFailure(call: Call<String>, t: Throwable) {
_response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(callFunction,t.message!!))
}
override fun onResponse(call: Call<String>, response: Response<String>) {
ProgressLoading(GONE)
if (response.body() == null){
_response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(callFunction,response.message()))
}else{
if (response.body() == "Finish")
_response.value = ResponseItemVO(isError = false,response = response.body()!!)
else
_response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(callFunction,response.message()))
}
}
})
}
fun saleParking_add(usuario: String, password: String, sales:List<String>,parking: String,callFunction:String)
{
getUbicadorUserCase.saleParking_add(usuario, password, sales, parking)
.enqueue(object : Callback<String>
{
override fun onFailure(call: Call<String>, t: Throwable)
{
_responseParkingAdd.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(callFunction,t.message!!)
)
}
override fun onResponse(call: Call<String>, response: Response<String>)
{
if (response.body() == null)
{
_responseParkingAdd.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(callFunction,response.message())
)
} else
{
_responseParkingAdd.value =
ResponseItemVO(isError = false, response = response.body()!!)
}
}
})
}
}

View File

@ -30,12 +30,12 @@ class PasilleroViewModel(context: Context) : BaseViewModel() {
*/ */
_pasillerositem.add( /* _pasillerositem.add(
PasillerosItemVO(7, PasillerosItemVO(7,
R.drawable.ic_streetview_black_24dp, R.drawable.ic_streetview_black_24dp,
"Pre Control",R.string.precontrolprevious) "Pre Control",R.string.precontrolprevious)
) )
*/
//sergio para que aparezca el nuevo menu //sergio para que aparezca el nuevo menu

View File

@ -3,13 +3,14 @@ package es.verdnatura.presentation.view.feature.precontrol
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.View import android.view.View
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentControladorBinding import es.verdnatura.databinding.FragmentControladorBinding
import es.verdnatura.domain.ConstAndValues import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener import es.verdnatura.presentation.common.OnCollectionSelectedListener
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
@ -18,7 +19,7 @@ import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
/*import kotlinx.android.synthetic.main.fragment_controlador.* /*import kotlinx.android.synthetic.main.fragment_controlador.*
import kotlinx.android.synthetic.main.toolbar.**/ import kotlinx.android.synthetic.main.toolbar.**/
class PreControladorFragment: BaseFragment<FragmentControladorBinding,PreControladorViewModel>(PreControladorViewModel::class) { class PreControladorFragment: BaseFragment<FragmentControladorBinding,ShowTicketViewModel>(ShowTicketViewModel::class) {
private var user = "" private var user = ""
@ -46,7 +47,7 @@ class PreControladorFragment: BaseFragment<FragmentControladorBinding,PreControl
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
binding.mainToolbar.toolbarTitle.text = getString(R.string.verticket) binding.mainToolbar.toolbarTitle.text = getString(R.string.precontrolprevious)
setEvents() setEvents()
super.init() super.init()
} }
@ -60,8 +61,8 @@ class PreControladorFragment: BaseFragment<FragmentControladorBinding,PreControl
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
type=ConstAndValues.PRECHECKER type=ConstAndValues.PRECHECKER
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }
@ -74,7 +75,7 @@ class PreControladorFragment: BaseFragment<FragmentControladorBinding,PreControl
binding.scanInput.requestFocus() binding.scanInput.requestFocus()
binding.scanInput.setOnEditorActionListener { v, actionId, event -> binding.scanInput.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) { if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
goBack=false; goBack=false;
if (!binding.scanInput.text.isNullOrEmpty()) { if (!binding.scanInput.text.isNullOrEmpty()) {
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE

View File

@ -6,16 +6,21 @@ import android.graphics.drawable.Drawable
import android.media.MediaPlayer import android.media.MediaPlayer
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import android.util.Log.d
import android.view.View import android.view.View
import android.view.View.GONE
import android.view.View.VISIBLE
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import android.widget.Toast import android.widget.Toast
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.firebase.crashlytics.internal.common.CommonUtils.isNullOrEmpty
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentPreSacadorBinding import es.verdnatura.databinding.FragmentPreSacadorBinding
import es.verdnatura.domain.ConstAndValues.PRESACADOR import es.verdnatura.domain.ConstAndValues.PRESACADOR
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.* import es.verdnatura.presentation.common.*
@ -31,7 +36,9 @@ import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import es.verdnatura.presentation.view.feature.presacador.adapter.PreSacadorAdapter import es.verdnatura.presentation.view.feature.presacador.adapter.PreSacadorAdapter
import es.verdnatura.presentation.view.feature.presacador.model.PreSacadorItemVO import es.verdnatura.presentation.view.feature.presacador.model.PreSacadorItemVO
import es.verdnatura.presentation.view.feature.sacador.model.PlacementSupplyListVO import es.verdnatura.presentation.view.feature.sacador.model.PlacementSupplyListVO
import es.verdnatura.presentation.view.feature.sacador.model.PlacementVO
import es.verdnatura.presentation.view.feature.sacador.model.SaleVO import es.verdnatura.presentation.view.feature.sacador.model.SaleVO
/*import kotlinx.android.synthetic.main.activity_main.* /*import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.fragment_pre_sacador.* import kotlinx.android.synthetic.main.fragment_pre_sacador.*
import kotlinx.android.synthetic.main.fragment_pre_sacador.binding.fragmentSacadorCollections import kotlinx.android.synthetic.main.fragment_pre_sacador.binding.fragmentSacadorCollections
@ -39,7 +46,8 @@ import kotlinx.android.synthetic.main.fragment_pre_sacador.binding.splashProgres
import kotlinx.android.synthetic.main.fragment_sacador.* import kotlinx.android.synthetic.main.fragment_sacador.*
import kotlinx.android.synthetic.main.toolbar.**/ import kotlinx.android.synthetic.main.toolbar.**/
class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorViewModel>(PreSacadorViewModel::class) { class PreSacadorFragment :
BaseFragment<FragmentPreSacadorBinding, PreSacadorViewModel>(PreSacadorViewModel::class) {
private var user = "" private var user = ""
private var password = "" private var password = ""
private var sectorFk = "" private var sectorFk = ""
@ -48,6 +56,7 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
var mperror: MediaPlayer? = null var mperror: MediaPlayer? = null
var mpok: MediaPlayer? = null var mpok: MediaPlayer? = null
private var sales: ArrayList<PreSacadorItemVO> = ArrayList() private var sales: ArrayList<PreSacadorItemVO> = ArrayList()
private lateinit var customDialog: CustomDialog private lateinit var customDialog: CustomDialog
private lateinit var customDialogList: CustomDialogList private lateinit var customDialogList: CustomDialogList
private var saleAdapter: PreSacadorAdapter? = null private var saleAdapter: PreSacadorAdapter? = null
@ -62,10 +71,13 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
private var goBack2: Boolean = false private var goBack2: Boolean = false
private var listPlacementSupply: ArrayList<BarcodeVO> = ArrayList() private var listPlacementSupply: ArrayList<BarcodeVO> = ArrayList()
private var placementSupplyAdapter: BarcodeAdapter? = null private var placementSupplyAdapter: BarcodeAdapter? = null
private lateinit var customDialogInputParking: CustomDialogInput
private lateinit var customDialogInput: CustomDialogInput private lateinit var customDialogInput: CustomDialogInput
private lateinit var customDialogThreeButtons: CustomDialogThreeButtons private lateinit var customDialogThreeButtons: CustomDialogThreeButtons
private var token = "" private var token = ""
private var ticketFk = "" private var ticketFk = ""
private var originalScanned = ""
//sergio: se añada para leer el articulo leido que era el buyFk //sergio: se añada para leer el articulo leido que era el buyFk
private var originalItemScan: String = "" private var originalItemScan: String = ""
@ -78,9 +90,9 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK, 37).toString()
token = prefs.getString(TOKEN, "").toString() token = prefs.getString(TOKEN, "").toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
mperror = MediaPlayer.create((activity as MainActivity), R.raw.error) mperror = MediaPlayer.create((activity as MainActivity), R.raw.error)
mpok = MediaPlayer.create((activity as MainActivity), R.raw.ok) mpok = MediaPlayer.create((activity as MainActivity), R.raw.ok)
SectorDescription = prefs.getString(SECTORDESCRIP, "Sin Sector").toString() SectorDescription = prefs.getString(SECTORDESCRIP, "Sin Sector").toString()
@ -92,6 +104,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
customDialogList = CustomDialogList(requireContext()) customDialogList = CustomDialogList(requireContext())
customDialogInput = CustomDialogInput(requireContext()) customDialogInput = CustomDialogInput(requireContext())
customDialogInputParking = CustomDialogInput(requireContext())
customDialogThreeButtons = CustomDialogThreeButtons(requireContext()) customDialogThreeButtons = CustomDialogThreeButtons(requireContext())
//requireActivity().main_bottom_navigation.visibility = View.GONE //requireActivity().main_bottom_navigation.visibility = View.GONE
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
@ -115,11 +129,21 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
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) {
if (!binding.scanInput.text.toString().isNullOrEmpty()) { if (!binding.scanInput.text.toString().isNullOrEmpty()) {
// originalScanned=binding.scanInput.text
if (binding.scanInput.text.contains("-")) { if (binding.scanInput.text.contains("-")) {
//es parking //es parking
parkingTicket(binding.scanInput.text.toString()) pasillerosItemClickListener?.onPasillerosItemClickListener(
PasillerosItemVO(
title = "Parking"
), "")
// parkingTicket(binding.scanInput.text.toString())
} else { } else {
if (binding.scanInput.text.length > 6){ //if (binding.scanInput.text.length > 6){
// miramos si el primer digito es un numero de esta manera sabemos que no es una matrícula que sería el findsale
if (binding.scanInput.text.first().isDigit()) {
//es ticket //es ticket
ticketFk = binding.scanInput.text.toString() ticketFk = binding.scanInput.text.toString()
searchTicket(binding.scanInput.text.toString()) searchTicket(binding.scanInput.text.toString())
@ -170,11 +194,25 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
} }
}) })
responseParkingAdd.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
if (it.isError) {
customDialog.setTitle("Error").setDescription(it.errorMessage)
.setOkButton("Aceptar") {
customDialog.dismiss()
}.show()
} else {
if (mpok != null) mpok!!.start()
"Sale/s aparcada/s".toast(requireContext())
}
})
responseCode.observe(viewLifecycleOwner, Observer { responseCode.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
if (!goBack2) { if (!goBack2) {
if (it.isError) { if (it.isError) {
customDialog.setTitle("Error").setDescription(it.errorMessage).setKoButton("Cerrar"){ customDialog.setTitle("Error").setDescription(it.errorMessage)
.setKoButton("Cerrar") {
scanRequest() scanRequest()
customDialog.dismiss() customDialog.dismiss()
}.show() }.show()
@ -206,6 +244,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
Log.i(TAG, "Escaneamos ticket en previa") Log.i(TAG, "Escaneamos ticket en previa")
ticket = ticketFk ticket = ticketFk
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
d("VERDNATURA::", "ticket:" + ticket)
viewModel.ticketToPrePrepare( viewModel.ticketToPrePrepare(
usuario = user, usuario = user,
password = password, password = password,
@ -215,20 +255,59 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
} }
private fun createSaleList(salesList: List<PreSacadorItemVO>) { private fun createSaleList(salesList: List<PreSacadorItemVO>) {
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = GONE
if (salesList.isNullOrEmpty()) { if (salesList.isNullOrEmpty()) {
customDialog.setTitle("Pre Sacador").setDescription("No hemos podido obtener movimientos para el ticket escaneado").setKoButton("Cancelar"){ customDialog.setTitle("Pre Sacador")
.setDescription("No hemos podido obtener movimientos para el ticket escaneado")
.setKoButton("Cancelar") {
customDialog.dismiss() customDialog.dismiss()
}.show() }.show()
} else { } else {
binding.mainToolbar.toolbarTitle.text = ticket binding.mainToolbar.toolbarTitle.text = ticket
sales = ArrayList() sales = ArrayList()
salesList.forEach { salesList.forEach {
sales.add(it) sales.add(it)
} }
//sales.sortedByDescending{ it.carros.get(0).order }
/* for (s in sales){
Log.d("VERDNATURA::","item"+ s.itemFk +" pickingorder" + s.carros.get(0).pickingOrder)
}*/
//val sortedSales = sales.sortedByDescending { it.carros[0].pickingOrder }
//A provar el dilluns
// var sortedList=sales.sortedWith(compareBy<PreSacadorItemVO,Int?>(nullsLast(),{it.carros.get(0).pickingOrder}))
for (s in sales){
if (s.carros.isNullOrEmpty()){
}else{
s.pickingOrder=s.carros.get(0).pickingOrder
d("VERDNATURA::","item sin ordenar:"+ s.itemFk + " priority:"+s.carros.get(0).pickingOrder)
d("VERDNATURA::","item sin ordenar:"+ s.itemFk + " parking :"+s.carros.get(0).parking)
}
}
// var sortedSales=sales.sortedWith(nullsLast(compareByDescending { it.carros.get(0).priority }))
var sortedSales=sales.sortedBy{ it.pickingOrder }
/*for (s in sortedSales){
d("VERDNATURA::","item ordenado:"+ s.itemFk + " picking "+ s.pickingOrder)
}*/
lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
saleAdapter = PreSacadorAdapter(sales,pasillerosItemClickListener!!,object: OnQuantityClickListener{ saleAdapter = PreSacadorAdapter(
sortedSales,
pasillerosItemClickListener!!,
object : OnQuantityClickListener {
override fun onQuantityClick(sale: SaleVO) { override fun onQuantityClick(sale: SaleVO) {
sales.forEachIndexed { index, saleVO -> sales.forEachIndexed { index, saleVO ->
if (saleVO.idMovimiento == sale.saleFk) { if (saleVO.idMovimiento == sale.saleFk) {
@ -237,7 +316,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
} }
} }
},object : },
object :
OnSaleClickListener { OnSaleClickListener {
override fun onSaleClick(sale: SaleVO) { override fun onSaleClick(sale: SaleVO) {
sales.forEachIndexed { index, saleVO -> sales.forEachIndexed { index, saleVO ->
@ -265,7 +345,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
} }
private fun setScrollListener(lm: LinearLayoutManager) { private fun setScrollListener(lm: LinearLayoutManager) {
binding.fragmentSacadorCollections.addOnScrollListener(object : RecyclerView.OnScrollListener(){ binding.fragmentSacadorCollections.addOnScrollListener(object :
RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
storedBackPosition = lm.findFirstVisibleItemPosition() storedBackPosition = lm.findFirstVisibleItemPosition()
super.onScrolled(recyclerView, dx, dy) super.onScrolled(recyclerView, dx, dy)
@ -299,12 +380,14 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
var index = 0 var index = 0
var isBreak = false var isBreak = false
var isOk = false var isOk = false
d("VERDNATURA::", "Entramos a buscar")
for (saleVO in sales) { for (saleVO in sales) {
d("VERDNATURA::", "El item buscado es " + saleVO.itemFk)
if (saleVO.quantity != saleVO.picked) { if (saleVO.quantity != saleVO.picked) {
//1- Por carro //1- Por carro
var shelvingIndex = 0 var shelvingIndex = 0
for (placementVO in saleVO.carros) { for (placementVO in saleVO.carros) {
d("VERDNATURA::", "La matric " + placementVO.shelving)
if (txtscan.uppercase() == placementVO.shelving.uppercase()) { if (txtscan.uppercase() == placementVO.shelving.uppercase()) {
if (mpok != null) mpok!!.start() if (mpok != null) mpok!!.start()
isOk = true isOk = true
@ -393,7 +476,9 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
private fun unMarkLine(position: Int) { private fun unMarkLine(position: Int) {
if (sales[position].quantity == sales[position].picked) { if (sales[position].quantity == sales[position].picked) {
customDialog.setTitle("Desmarcar linea").setDescription("Vas a desmarcar la linea: "+sales[position].itemFk+ " ¿Estás seguro?").setOkButton("Desmarcar"){ customDialog.setTitle("Desmarcar linea")
.setDescription("Vas a desmarcar la linea: " + sales[position].itemFk + " ¿Estás seguro?")
.setOkButton("Desmarcar") {
sales[position].picked = 0 sales[position].picked = 0
saleAdapter!!.notifyDataSetChanged() saleAdapter!!.notifyDataSetChanged()
setListPosition(position) setListPosition(position)
@ -412,7 +497,6 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
} }
} }
//SHELVINGS //SHELVINGS
@ -423,7 +507,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
var quantityGet = "0" var quantityGet = "0"
try { try {
quantityGet = (sales[position].saldo - sales[position].picked).toString() quantityGet = (sales[position].saldo - sales[position].picked).toString()
}catch (e:Exception){} } catch (e: Exception) {
}
viewModel.itemPlacementSupplyAiming( viewModel.itemPlacementSupplyAiming(
usuario = user, usuario = user,
password = password, password = password,
@ -456,7 +541,6 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
customDialogList.setTitle("$shelving($item) $total del $longName").setOkButton("Coger") { customDialogList.setTitle("$shelving($item) $total del $longName").setOkButton("Coger") {
if (customDialogList.getValueTwo().isNotEmpty()) { if (customDialogList.getValueTwo().isNotEmpty()) {
@ -485,14 +569,18 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
scanRequest() scanRequest()
hideKeyboards() hideKeyboards()
customDialogList.dismiss() customDialogList.dismiss()
}.setHintValue("Cantidad que coges:").setValue(total).setHintValueTwo("Escanea item").setValueTwo("").show() }.setHintValue("Cantidad que coges:").setValue(total).setHintValueTwo("Escanea item")
.setValueTwo("").show()
customDialogList.getEditTextTwo().post(Runnable { customDialogList.getEditTextTwo().post(Runnable {
customDialogList.getEditTextTwo().requestFocusFromTouch() customDialogList.getEditTextTwo().requestFocusFromTouch()
val lManager: InputMethodManager = val lManager: InputMethodManager =
requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
lManager.hideSoftInputFromWindow(customDialogList.getEditTextTwo().windowToken, InputMethodManager.SHOW_FORCED) lManager.hideSoftInputFromWindow(
customDialogList.getEditTextTwo().windowToken,
InputMethodManager.SHOW_FORCED
)
}) })
customDialogList.getEditTextTwo().setOnEditorActionListener { v, actionId, event -> customDialogList.getEditTextTwo().setOnEditorActionListener { v, actionId, event ->
@ -528,7 +616,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
false false
} }
placementSupplyAdapter = BarcodeAdapter(listPlacementSupply,object: OnBarcodeRowClickListener { placementSupplyAdapter =
BarcodeAdapter(listPlacementSupply, object : OnBarcodeRowClickListener {
override fun onBarcodeRowClickListener(item: BarcodeVO) { override fun onBarcodeRowClickListener(item: BarcodeVO) {
placementSupplyListVO.list.forEach { placementSupplyListVO.list.forEach {
if (it.proposal == item.code) { if (it.proposal == item.code) {
@ -543,7 +632,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
customDialogList.getRecyclerView().adapter = placementSupplyAdapter customDialogList.getRecyclerView().adapter = placementSupplyAdapter
customDialogList.getRecyclerView().layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) customDialogList.getRecyclerView().layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
} }
@ -552,7 +642,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
try { try {
val shelvingVisible = sales[storedPosition].carros[storedShelvingPosition].stockTotal val shelvingVisible = sales[storedPosition].carros[storedShelvingPosition].stockTotal
sales[storedPosition].carros[storedShelvingPosition].stockTotal = (shelvingVisible.toInt() - customDialogList.getValue().toInt()).toString() sales[storedPosition].carros[storedShelvingPosition].stockTotal =
(shelvingVisible.toInt() - customDialogList.getValue().toInt()).toString()
viewModel.itemShelvingSaleSupplyAdd( viewModel.itemShelvingSaleSupplyAdd(
usuario = user, usuario = user,
@ -562,12 +653,15 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
quantity = customDialogList.getValue(), callFunction = "itemShelvingSaleSupplyAdd" quantity = customDialogList.getValue(), callFunction = "itemShelvingSaleSupplyAdd"
) )
}catch (e:Exception){} } catch (e: Exception) {
}
//2- MODIFICAR EL PICKED DEL SALE //2- MODIFICAR EL PICKED DEL SALE
try { try {
sales[storedPosition].picked = sales[storedPosition].picked + customDialogList.getValue().toInt() sales[storedPosition].picked =
}catch (e:Exception){} sales[storedPosition].picked + customDialogList.getValue().toInt()
} catch (e: Exception) {
}
//3- MARCAR LINEA //3- MARCAR LINEA
markLine(storedPosition) markLine(storedPosition)
@ -580,9 +674,76 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
return saleToCheck.itemFk == valueToCheck return saleToCheck.itemFk == valueToCheck
} }
/* private fun showScannerParking(ticket: String) {
customDialogInputParking.setTitle("Parking").setDescription("Escanea el parking")
.setOkButton("Aceptar") {
if (!customDialogInputParking.getValue().isNullOrEmpty()) {
//findSale(customDialogInput.getValue(),index)
parkingTicket(ticket, customDialogInputParking.getValue())
}
customDialogInputParking.setValue("")
scanRequest()
customDialogInputParking.dismiss()
hideKeyboards()
}.setKoButton("Cancelar") {
customDialogInputParking.dismiss()
}.setValue("").show()
customDialogInputParking.getEditText().requestFocus()
customDialogInputParking.getEditText().setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) {
if (!customDialogInputParking.getValue().isNullOrEmpty()) {
parkingTicket(ticket, customDialogInputParking.getValue())
}
customDialogInputParking.setValue("")
scanRequest()
customDialogInputParking.dismiss()
hideKeyboards()
return@setOnEditorActionListener true
}
false
}
}*/
/*private fun showScannerTicket() {
customDialogInput.setTitle("Ticket a aparcar").setDescription("Escanea el ticket a aparcar")
.setOkButton("Aceptar") {
if (!customDialogInput.getValue().isNullOrEmpty()) {
showScannerParking(customDialogInput.getValue())
}
customDialogInput.setValue("")
scanRequest()
customDialogInput.dismiss()
hideKeyboards()
}.setKoButton("Cancelar") {
customDialogInput.dismiss()
}.setValue("").show()
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()) {
// findSale(customDialogInput.getValue(),index)
showScannerParking(customDialogInput.getValue())
}
customDialogInput.setValue("")
scanRequest()
customDialogInput.dismiss()
hideKeyboards()
return@setOnEditorActionListener true
}
false
}
}*/
private fun showScanner(index: Int, sale: PreSacadorItemVO) { private fun showScanner(index: Int, sale: PreSacadorItemVO) {
customDialogInput.setTitle(""+sale.itemFk).setDescription("Escanea el carro para el item seleccionado").setOkButton("Aceptar"){ customDialogInput.setTitle("" + sale.itemFk)
.setDescription("Escanea el carro para el item seleccionado").setOkButton("Aceptar") {
if (!customDialogInput.getValue().isNullOrEmpty()) { if (!customDialogInput.getValue().isNullOrEmpty()) {
findSale(customDialogInput.getValue(), index) findSale(customDialogInput.getValue(), index)
} }
@ -612,14 +773,16 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
//OPTIONS //OPTIONS
private fun print() { private fun print() {
viewModel.collectionStickerPrint( /* viewModel.collectionStickerPrint(
usuario = user, usuario = user,
password = password, password = password,
collectionFk = ticket, collectionFk = ticket,
sectorFk = sectorFk,"collectionSticker_print" sectorFk = sectorFk,"collectionSticker_print"
) )
////Log.i("VERDNATURA:","La collection es $ticket, sectorFk $sectorFk, user $user i pass $password") ////Log.i("VERDNATURA:","La collection es $ticket, sectorFk $sectorFk, user $user i pass $password")
(getString(R.string.Imprimiendo) + " por " + SectorDescription).toast(requireContext()) (getString(R.string.Imprimiendo) + " por " + SectorDescription).toast(requireContext())*/
} }
//OTROS //OTROS
@ -627,28 +790,40 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
binding.mainToolbar.toolbarSubtitle.visibility = View.VISIBLE binding.mainToolbar.toolbarSubtitle.visibility = View.VISIBLE
val listIcons: ArrayList<Drawable> = ArrayList() val listIcons: ArrayList<Drawable> = ArrayList()
val iconPrint : Drawable = resources.getDrawable(R.drawable.ic_print_black_24dp,resources.newTheme()) val iconEraser: Drawable = resources.getDrawable(R.drawable.eraser, resources.newTheme())
val iconParking : Drawable = resources.getDrawable(R.drawable.ic_local_parking_black_24dp,resources.newTheme()) val iconParking: Drawable =
resources.getDrawable(R.drawable.ic_local_parking_black_24dp, resources.newTheme())
//sergio para hacer el presacador como sacador //sergio para hacer el presacador como sacador
//val iconAdd : Drawable = resources.getDrawable(R.drawable.ic_add_black_24dp,resources.newTheme()) //val iconAdd : Drawable = resources.getDrawable(R.drawable.ic_add_black_24dp,resources.newTheme())
//val iconTransferir : Drawable = resources.getDrawable(R.drawable.ic_swap_horiz_black_24dp,resources.newTheme()) //val iconTransferir : Drawable = resources.getDrawable(R.drawable.ic_swap_horiz_black_24dp,resources.newTheme())
listIcons.add(iconPrint) // listIcons.add(iconEraser)
listIcons.add(iconParking) listIcons.add(iconParking)
//listIcons.add(iconAdd) //listIcons.add(iconAdd)
//listIcons.add(iconTransferir) //listIcons.add(iconTransferir)
binding.mainToolbar.toolbarIcons.adapter = ToolBarAdapter(listIcons,object: OnOptionsSelectedListener { binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapter(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) { override fun onOptionsItemSelected(item: Drawable) {
if (item == iconPrint){ if (item == iconEraser) {
print() // saleTracking_update()
} else if (item == iconParking) { } else if (item == iconParking) {
pasillerosItemClickListener?.onPasillerosItemClickListener(PasillerosItemVO(title = "Parking"),"") // showScannerTicket()
pasillerosItemClickListener?.onPasillerosItemClickListener(
PasillerosItemVO(
title = "Parking"
), ""
)
} }
} }
}) })
binding.mainToolbar.toolbarIcons.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) binding.mainToolbar.toolbarIcons.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
}
private fun reviewSales() {
} }
private fun scanRequest() { private fun scanRequest() {
@ -662,19 +837,36 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
requireActivity().hideKeyboard() requireActivity().hideKeyboard()
} }
private fun parkingTicket(parking:String){ /* private fun parkingTicket(ticket: String, parking: String) {
viewModel.parking(
var saleParkingList: MutableList<String> = arrayListOf()
if (!sales.isNullOrEmpty())
sales.forEach {
Log.d("VERNATURA::", "el id es " + it.id + " y el idmovimiento" + it.idMovimiento)
if (it.id.equals(ticket)) {
if ((it.picked == it.quantity)) {
saleParkingList.add(it.idMovimiento)
}
}
}
if (!saleParkingList.isNullOrEmpty()) {
binding.splashProgress.visibility = VISIBLE
viewModel.saleParking_add(
usuario = user, usuario = user,
password = password, password = password,
ticketFk = ticket, sales = saleParkingList,
parking = parking,"shelvingPark" parking = parking,
"saleParking_add"
) )
////Log.i("VERDNATURA:","El usuario $user pass $password ticket $ticketFk y parking $parking") } else {
if (mpok != null) mpok!!.start() "No se han encontrado líneas de venta a aparcar para ese ticket".toast(requireContext())
"Ticket aparcado".toast(requireContext())
} }
}*/
companion object { companion object {
fun newInstance() = PreSacadorFragment() fun newInstance() = PreSacadorFragment()
} }
@ -688,7 +880,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
} }
private fun showErrorMessage(text: String) { private fun showErrorMessage(text: String) {
customDialog.setTitle("Error al marcar la linea").setDescription(text).setKoButton("Cerrar"){ customDialog.setTitle("Error al marcar la linea").setDescription(text)
.setKoButton("Cerrar") {
customDialog.dismiss() customDialog.dismiss()
}.show() }.show()
} }
@ -748,7 +941,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
var totalQuantity: Int = 0 var totalQuantity: Int = 0
try { try {
totalQuantity = sales[position].saldo.toInt() - quantity.toInt() totalQuantity = sales[position].saldo.toInt() - quantity.toInt()
}catch (e:Exception){} } catch (e: Exception) {
}
viewModel.saleMove( viewModel.saleMove(
usuario = user, usuario = user,
password = password, password = password,
@ -770,9 +964,16 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
//enviar mensaje a salix //enviar mensaje a salix
val ticket = "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)" val ticket =
val message = "Se ha enviado a Split el articulo "+sales[position].itemFk+" del ticket "+ticket "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)"
viewModel.sendChekingPresence(token = token,workerId = sales[position].trabajador,message = message, "sendChekingPresence") val message =
"Se ha enviado a Split el articulo " + sales[position].itemFk + " del ticket " + ticket
viewModel.sendChekingPresence(
token = token,
workerId = sales[position].trabajador,
message = message,
"sendChekingPresence"
)
} }
@ -781,7 +982,8 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
var totalQuantity: Int = 0 var totalQuantity: Int = 0
try { try {
totalQuantity = sales[position].saldo.toInt() - quantity.toInt() totalQuantity = sales[position].saldo.toInt() - quantity.toInt()
}catch (e:Exception){} } catch (e: Exception) {
}
viewModel.collectionMissingTrash( viewModel.collectionMissingTrash(
usuario = user, usuario = user,
password = password, password = password,
@ -804,16 +1006,24 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
//enviar mensaje a salix //enviar mensaje a salix
val ticket = "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)" val ticket =
val message = "Se ha enviado a Faltas la cantidad de "+ totalQuantity +" del articulo "+sales[position].itemFk+" ticket "+ticket "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)"
viewModel.sendChekingPresence(token = token,workerId = sales[position].trabajador,message = message,"sendChekingPresence") val message =
"Se ha enviado a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[position].itemFk + " ticket " + ticket
viewModel.sendChekingPresence(
token = token,
workerId = sales[position].trabajador,
message = message,
"sendChekingPresence"
)
} }
private fun missing(position: Int, quantity: String) { private fun missing(position: Int, quantity: String) {
var totalQuantity: Int = 0 var totalQuantity: Int = 0
try { try {
totalQuantity = sales[position].saldo.toInt() - quantity.toInt() totalQuantity = sales[position].saldo.toInt() - quantity.toInt()
}catch (e:Exception){} } catch (e: Exception) {
}
viewModel.collectionMissingTrash( viewModel.collectionMissingTrash(
usuario = user, usuario = user,
password = password, password = password,
@ -838,16 +1048,24 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
//enviar mensaje a salix //enviar mensaje a salix
val ticket = "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)" val ticket =
val message = "Se ha enviado a Basura "+ totalQuantity +" del articulo "+sales[position].itemFk+" ticket "+ticket "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)"
viewModel.sendChekingPresence(token = token,workerId = sales[position].trabajador,message = message,"sendChekingPresence") val message =
"Se ha enviado a Basura " + totalQuantity + " del articulo " + sales[position].itemFk + " ticket " + ticket
viewModel.sendChekingPresence(
token = token,
workerId = sales[position].trabajador,
message = message,
"sendChekingPresence"
)
} }
private fun reject(position: Int, quantity: String) { private fun reject(position: Int, quantity: String) {
var totalQuantity: Int = 0 var totalQuantity: Int = 0
try { try {
totalQuantity = sales[position].saldo.toInt() - quantity.toInt() totalQuantity = sales[position].saldo.toInt() - quantity.toInt()
}catch (e:Exception){} } catch (e: Exception) {
}
viewModel.collectionMissingTrash( viewModel.collectionMissingTrash(
usuario = user, usuario = user,
password = password, password = password,
@ -859,9 +1077,16 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
) )
//enviar mensaje a salix //enviar mensaje a salix
val ticket = "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)" val ticket =
val message = "Se ha modificado la cantidad original "+sales[position].saldo+" del artículo "+sales[position].itemFk+" a nueva cantidad: "+ quantity +" del ticket "+ticket "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)"
viewModel.sendChekingPresence(token = token,workerId = sales[position].trabajador,message = message,"sendChekingPresence") val message =
"Se ha modificado la cantidad original " + sales[position].saldo + " del artículo " + sales[position].itemFk + " a nueva cantidad: " + quantity + " del ticket " + ticket
viewModel.sendChekingPresence(
token = token,
workerId = sales[position].trabajador,
message = message,
"sendChekingPresence"
)
try { try {
sales[position].saldo = quantity.toInt() sales[position].saldo = quantity.toInt()
@ -874,7 +1099,6 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
markLine(position) markLine(position)
} }
private fun increaseQuantity(position: Int, quantity: String) { private fun increaseQuantity(position: Int, quantity: String) {
@ -888,20 +1112,27 @@ class PreSacadorFragment : BaseFragment<FragmentPreSacadorBinding,PreSacadorView
try { try {
//enviar mensaje a salix //enviar mensaje a salix
val ticket = "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)" val ticket =
val message = "Se ha modificado la cantidad original "+sales[position].saldo+" del artículo "+sales[position].itemFk+" a nueva cantidad: "+ quantity +" del ticket "+ticket "[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)"
viewModel.sendChekingPresence(token = token,workerId = sales[position].trabajador,message = message,"sendChekingPresence") val message =
"Se ha modificado la cantidad original " + sales[position].saldo + " del artículo " + sales[position].itemFk + " a nueva cantidad: " + quantity + " del ticket " + ticket
viewModel.sendChekingPresence(
token = token,
workerId = sales[position].trabajador,
message = message,
"sendChekingPresence"
)
try { try {
sales[position].saldo = quantity.toInt() sales[position].saldo = quantity.toInt()
} catch (e: Exception) { } catch (e: Exception) {
sales[position].saldo = 0 sales[position].saldo = 0
} }
}catch (e:Exception){} } catch (e: Exception) {
}
saleAdapter?.notifyDataSetChanged() saleAdapter?.notifyDataSetChanged()
} }
} }

View File

@ -2,6 +2,7 @@ package es.verdnatura.presentation.view.feature.presacador.fragment
import android.content.Context import android.content.Context
import android.util.Log import android.util.Log
import android.util.Log.d
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import es.verdnatura.domain.GetLoginUserCase import es.verdnatura.domain.GetLoginUserCase
@ -25,6 +26,7 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
private val getPreSacadorUseCase: GetPreSacadorUseCase = GetPreSacadorUseCase(context) private val getPreSacadorUseCase: GetPreSacadorUseCase = GetPreSacadorUseCase(context)
private val getSacadorControladorUserCase: GetSacadorControladorUserCase = private val getSacadorControladorUserCase: GetSacadorControladorUserCase =
GetSacadorControladorUserCase(context) GetSacadorControladorUserCase(context)
private val getUbicadorUserCase: GetUbicadorUserCase = GetUbicadorUserCase(context) private val getUbicadorUserCase: GetUbicadorUserCase = GetUbicadorUserCase(context)
private val getLoginUserCase: GetLoginUserCase = GetLoginUserCase(context) private val getLoginUserCase: GetLoginUserCase = GetLoginUserCase(context)
@ -36,6 +38,11 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
val response: LiveData<ResponseItemVO> val response: LiveData<ResponseItemVO>
get() = _response get() = _response
private val _responseParkingAdd by lazy { MutableLiveData<ResponseItemVO>() }
val responseParkingAdd: LiveData<ResponseItemVO>
get() = _responseParkingAdd
private val _placementSuppleyList by lazy { MutableLiveData<PlacementSupplyListVO>() } private val _placementSuppleyList by lazy { MutableLiveData<PlacementSupplyListVO>() }
val placementSuppleyList: LiveData<PlacementSupplyListVO> val placementSuppleyList: LiveData<PlacementSupplyListVO>
get() = _placementSuppleyList get() = _placementSuppleyList
@ -60,6 +67,7 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
{ {
override fun onFailure(call: Call<List<PreSacadorItemVO>>, t: Throwable) override fun onFailure(call: Call<List<PreSacadorItemVO>>, t: Throwable)
{ {
d("VERDNATURA::","ha fallado")
_salesList.value = listOf() _salesList.value = listOf()
} }
@ -70,9 +78,11 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
{ {
if (response.body() != null) if (response.body() != null)
{ {
d("VERDNATURA::","entra con lineas")
_salesList.value = response.body()?.let { it } _salesList.value = response.body()?.let { it }
} else } else
{ {
d("VERDNATURA::","ES NULO")
_salesList.value = listOf() _salesList.value = listOf()
} }
} }
@ -147,6 +157,37 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
}) })
} }
fun saleParking_add(usuario: String, password: String, sales:List<String>,parking: String,callFunction:String)
{
getUbicadorUserCase.saleParking_add(usuario, password, sales, parking)
.enqueue(object : Callback<String>
{
override fun onFailure(call: Call<String>, t: Throwable)
{
_responseParkingAdd.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(callFunction,t.message!!)
)
}
override fun onResponse(call: Call<String>, response: Response<String>)
{
if (response.body() == null)
{
_responseParkingAdd.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(callFunction,response.message())
)
} else
{
_responseParkingAdd.value =
ResponseItemVO(isError = false, response = response.body()!!)
}
}
})
}
fun itemPlacementSupplyAiming( fun itemPlacementSupplyAiming(
usuario: String, usuario: String,
password: String, password: String,

View File

@ -13,7 +13,9 @@ class PreSacadorItemVO (
var picked : Int = 45, var picked : Int = 45,
var idMovimiento : String = "", var idMovimiento : String = "",
var trabajador : String = "", var trabajador : String = "",
var carros : List<PlacementVO> = listOf() var carros : List<PlacementVO> = listOf(),
var priority:Int =0,
var pickingOrder:Int =0
) )

View File

@ -10,6 +10,8 @@ import androidx.lifecycle.Observer
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentQrBinding import es.verdnatura.databinding.FragmentQrBinding
import es.verdnatura.domain.ConstAndValues import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.feature.main.activity.MainActivity import es.verdnatura.presentation.view.feature.main.activity.MainActivity
@ -67,8 +69,8 @@ class QrFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
type = ConstAndValues.PRECHECKER type = ConstAndValues.PRECHECKER
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }

View File

@ -12,6 +12,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.ReposicionFragmentBinding import es.verdnatura.databinding.ReposicionFragmentBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.* import es.verdnatura.presentation.common.*
@ -94,8 +96,8 @@ class ReposicionFragment : BaseFragment<ReposicionFragmentBinding, ReposicionVie
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
mperror = MediaPlayer.create((activity as MainActivity),R.raw.error) mperror = MediaPlayer.create((activity as MainActivity),R.raw.error)
mpok = MediaPlayer.create((activity as MainActivity),R.raw.ok) mpok = MediaPlayer.create((activity as MainActivity),R.raw.ok)

View File

@ -10,6 +10,8 @@ import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentSacadorBinding import es.verdnatura.databinding.FragmentSacadorBinding
import es.verdnatura.domain.ConstAndValues.SACADOR import es.verdnatura.domain.ConstAndValues.SACADOR
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener import es.verdnatura.presentation.common.OnCollectionSelectedListener
import es.verdnatura.presentation.common.OnOptionsSelectedListener import es.verdnatura.presentation.common.OnOptionsSelectedListener
@ -58,8 +60,8 @@ class SacadorFragment :
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
wagons = prefs.getInt(WAGON, 2).toString() wagons = prefs.getInt(WAGON, 2).toString()
//sergio:listener para collectionnew //sergio:listener para collectionnew
/* setFragmentResultListener("requestKey") { key, bundle -> /* setFragmentResultListener("requestKey") { key, bundle ->

View File

@ -9,7 +9,8 @@ class CollectionVO(
var created: String = "", var created: String = "",
var tickets: List<TicketVO> = listOf(), var tickets: List<TicketVO> = listOf(),
var isError: Boolean = false, var isError: Boolean = false,
var errorMessage: String = "" var errorMessage: String = "",
var itemPackingTypeFk:String=""
) )
class TicketVO( class TicketVO(
@ -57,7 +58,10 @@ class SaleVO(
var packingType: String = "", var packingType: String = "",
var cel1: String = "", var cel1: String = "",
var cel2: String = "", var cel2: String = "",
var cel3: String = "" var cel3: String = "",
var saleGroupFk: String = "",
var packingShelve:String=""
) )
class PlacementVO( class PlacementVO(
@ -76,7 +80,8 @@ class PlacementVO(
var isPreviousPrepared: String = "", var isPreviousPrepared: String = "",
var itemShelvingSaleFk: String = "", var itemShelvingSaleFk: String = "",
var ticketFk: String = "", var ticketFk: String = "",
var id: String = "" var id: String = "",
var pickingOrder:Int=0
) )
class PlacementSupplyVO( class PlacementSupplyVO(

View File

@ -8,6 +8,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentShelvingParkingBinding import es.verdnatura.databinding.FragmentShelvingParkingBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
@ -44,8 +46,8 @@ class ShelvingParkingFragment : BaseFragment<FragmentShelvingParkingBinding, She
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
customDialogInput = CustomDialogInput(requireContext()) customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
(activity as MainActivity).hideBottomNavigation(View.GONE) (activity as MainActivity).hideBottomNavigation(View.GONE)

View File

@ -0,0 +1,127 @@
package es.verdnatura.presentation.view.feature.precontrol
import android.content.Context
import android.content.SharedPreferences
import android.os.Bundle
import android.view.View
import android.view.inputmethod.EditorInfo
import androidx.lifecycle.Observer
import es.verdnatura.R
import es.verdnatura.databinding.FragmentControladorBinding
import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener
import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
/*import kotlinx.android.synthetic.main.fragment_controlador.*
import kotlinx.android.synthetic.main.toolbar.**/
class ShowTicketFragment: BaseFragment<FragmentControladorBinding,ShowTicketViewModel>(ShowTicketViewModel::class) {
private var user = ""
private var password = ""
private var sectorFk = ""
private var warehouseFk = ""
private var goBack:Boolean = false
private var onCollectionSelectedListener : OnCollectionSelectedListener? = null
override fun getLayoutId(): Int = R.layout.fragment_controlador
private lateinit var customDialog: CustomDialog
private var type = ""
companion object {
fun newInstance() = ShowTicketFragment()
}
override fun onAttach(context: Context) {
super.onAttach(context)
if (context is OnCollectionSelectedListener) onCollectionSelectedListener = context
}
override fun init() {
binding.splashProgress.visibility = View.GONE
customDialog = CustomDialog(requireContext())
binding.mainToolbar.toolbarTitle.text = getString(R.string.verticket)
setEvents()
super.init()
}
override fun onPause() {
goBack = true
super.onPause()
}
override fun onCreate(savedInstanceState: Bundle?) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
type=ConstAndValues.VERTICKET
super.onCreate(savedInstanceState)
}
private fun setEvents(){
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
binding.scanInput.requestFocus()
binding.scanInput.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
goBack=false;
if (!binding.scanInput.text.isNullOrEmpty()) {
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
usuario = user,
password = password,
sectorFk = sectorFk,
collectionFk = binding.scanInput.text.toString(),
type = type,
callFunction = "collection_getTickets"
)
}
binding.scanInput.setText("")
(activity as MainActivity).hideKeyboard(binding.scanInput)
return@setOnEditorActionListener true
}
false
}
}
override fun observeViewModel() {
with(viewModel){
collectionTicketList.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE
if (it.isError){
customDialog.setTitle("Error").setDescription(it.errorMessage).setOkButton("Aceptar"){
customDialog.dismiss()
}.show()
}else{
if (!goBack)navigateToCollectionList(it)
goBack = false
}
})
}
}
private fun navigateToCollectionList(collection: CollectionVO){
onCollectionSelectedListener?.onCollectionSelected(collection, ConstAndValues.VERTICKET)
}
}

View File

@ -0,0 +1,47 @@
package es.verdnatura.presentation.view.feature.precontrol
import android.content.Context
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.domain.GetPreControladorUserCase
import es.verdnatura.presentation.base.getMessageFromAllResponse
import es.verdnatura.presentation.common.ResponseItemVO
import es.verdnatura.presentation.view.feature.collection.mapper.map
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
class ShowTicketViewModel(context: Context) : BaseViewModel() {
private val _collectionTicketList by lazy { MutableLiveData<CollectionVO>() }
private val getPreControladorUserCase: GetPreControladorUserCase = GetPreControladorUserCase(context)
val collectionTicketList: LiveData<CollectionVO>
get() = _collectionTicketList
private val _responseTicket by lazy { MutableLiveData<ResponseItemVO>() }
val responseTicket: LiveData<ResponseItemVO>
get() = _responseTicket
fun collectionTicketGet(usuario:String,password:String,collectionFk:String,sectorFk:String,type:String,callFunction:String){
getPreControladorUserCase.collectionTicketGet(usuario,password,collectionFk,sectorFk,"0",type).enqueue(object :
Callback<CollectionVO> {
override fun onFailure(call: Call<CollectionVO>, t: Throwable) {
_collectionTicketList.value = CollectionVO(isError = true,errorMessage =getMessageFromAllResponse(callFunction,t.message!!))
}
override fun onResponse(
call: Call<CollectionVO>,
response: Response<CollectionVO>
) {
if (response.body() != null){
_collectionTicketList.value = response.body()?.let { it.map() }
}else{
_collectionTicketList.value = CollectionVO(isError = true,errorMessage = getMessageFromAllResponse(callFunction,response.message()))
}
}
})
}
}

View File

@ -12,6 +12,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentSacadorAssociatesmarttagBinding import es.verdnatura.databinding.FragmentSacadorAssociatesmarttagBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.* import es.verdnatura.presentation.common.*
@ -167,8 +169,8 @@ class RegisterSmartTagsFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
userFk = prefs.getString(USERFK, "0").toString() userFk = prefs.getString(USERFK, "0").toString()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)

View File

@ -14,6 +14,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentVehiclecontrolBinding import es.verdnatura.databinding.FragmentVehiclecontrolBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.* import es.verdnatura.presentation.common.*
@ -164,8 +166,8 @@ class AssociateSmartTagsFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
user = prefs.getString(USER, "").toString() user = prefs.getString(USER, "").toString()
password = prefs.getString(PASSWORD, "").toString() password = prefs.getString(PASSWORD, "").toString()
sectorFk = prefs.getInt(SECTORFK, 1).toString() sectorFk = prefs.getInt(SECTORFK, SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK, 1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK, WAREHOUSEFKDEFAULT).toString()
userFk = prefs.getString(USERFK, "0").toString() userFk = prefs.getString(USERFK, "0").toString()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)

View File

@ -7,6 +7,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentAutomaticAddItemBinding import es.verdnatura.databinding.FragmentAutomaticAddItemBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnAutomaticItemClickListener import es.verdnatura.presentation.common.OnAutomaticItemClickListener
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
@ -46,8 +48,8 @@ class AutomaticAddItemFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
customDialogInput = CustomDialogInput(requireContext()) customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
customDialogUbicador = CustomDialogUbicador(requireContext()) customDialogUbicador = CustomDialogUbicador(requireContext())

View File

@ -13,6 +13,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentUbicadorBinding import es.verdnatura.databinding.FragmentUbicadorBinding
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
@ -72,8 +74,8 @@ class UbicadorFragment(
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0) val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER,0)
user = prefs.getString(USER,"").toString() user = prefs.getString(USER,"").toString()
password = prefs.getString(PASSWORD,"").toString() password = prefs.getString(PASSWORD,"").toString()
sectorFk = prefs.getInt(SECTORFK,1).toString() sectorFk = prefs.getInt(SECTORFK,SECTORFKDEFAULT).toString()
warehouseFk = prefs.getInt(WAREHOUSEFK,1).toString() warehouseFk = prefs.getInt(WAREHOUSEFK,WAREHOUSEFKDEFAULT).toString()
customDialogInput = CustomDialogInput(requireContext()) customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
customDialogUbicador = CustomDialogUbicador(requireContext()) customDialogUbicador = CustomDialogUbicador(requireContext())
@ -196,7 +198,7 @@ class UbicadorFragment(
} }
binding.editPrioridad.setOnClickListener { binding.editImg.setOnClickListener {
customDialogInput.setTitle("Cambiar matrícula").setValue("").setOkButton("Guardar"){ customDialogInput.setTitle("Cambiar matrícula").setValue("").setOkButton("Guardar"){
viewModel.shelvingChange(user,password,shelvingFk,customDialogInput.getValue(),"shelvingChange") viewModel.shelvingChange(user,password,shelvingFk,customDialogInput.getValue(),"shelvingChange")
shelvingFk = customDialogInput.getValue() shelvingFk = customDialogInput.getValue()

View File

@ -0,0 +1,6 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@android:color/black" />
<stroke android:width="1dip"
android:color="@color/verdnatura_warm_grey"/>
</shape>

View File

@ -0,0 +1,8 @@
<!-- drawable/eraser.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="#FFF" android:pathData="M16.24,3.56L21.19,8.5C21.97,9.29 21.97,10.55 21.19,11.34L12,20.53C10.44,22.09 7.91,22.09 6.34,20.53L2.81,17C2.03,16.21 2.03,14.95 2.81,14.16L13.41,3.56C14.2,2.78 15.46,2.78 16.24,3.56M4.22,15.58L7.76,19.11C8.54,19.9 9.8,19.9 10.59,19.11L14.12,15.58L9.17,10.63L4.22,15.58Z" />
</vector>

View File

@ -83,6 +83,15 @@
android:gravity="right" android:gravity="right"
android:visibility="gone"/> android:visibility="gone"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Carro"
android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white"
android:layout_weight="2"
android:gravity="center"/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -121,7 +121,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent"
>
<View <View
android:id="@+id/item_article_row_semaforo_pre" android:id="@+id/item_article_row_semaforo_pre"
@ -146,6 +147,8 @@
</LinearLayout> </LinearLayout>
<!--CONTENIDO=================================================--> <!--CONTENIDO=================================================-->
<!--app:layout_constraintEnd_toStartOf="@+id/item_article_quantity_picked"-->
<TextView <TextView
android:id="@+id/item_article_itemFk" android:id="@+id/item_article_itemFk"
android:layout_width="0dp" android:layout_width="0dp"
@ -157,11 +160,41 @@
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h6" android:textSize="@dimen/h6"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/item_article_quantity_picked"
app:layout_constraintStart_toEndOf="@+id/linearLayout3" app:layout_constraintStart_toEndOf="@+id/linearLayout3"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
android:maxLines="1"/> android:maxLines="1"/>
<TextView
android:id="@+id/item_packing_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginEnd="@dimen/layout_margin_min"
android:paddingTop="2dp"
android:text="En balda:"
tool:text="En balda:"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h7"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/item_packing_itemFk"
app:layout_constraintStart_toEndOf="@+id/item_article_itemFk"
app:layout_constraintTop_toTopOf="parent"
android:maxLines="1"/>
<TextView
android:id="@+id/item_packing_itemFk"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="1dp"
android:layout_marginEnd="@dimen/layout_margin_min"
android:text="@{sale.packingShelve}"
tool:text="Number"
android:paddingTop="2dp"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h7"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/item_article_quantity_picked"
app:layout_constraintStart_toEndOf="@+id/item_packing_text"
app:layout_constraintTop_toTopOf="parent"
android:maxLines="1"/>
<TextView <TextView
android:id="@+id/item_article_quantity_picked" android:id="@+id/item_article_quantity_picked"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -190,14 +223,15 @@
android:id="@+id/item_article_quantity" android:id="@+id/item_article_quantity"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_min" android:layout_marginEnd="@dimen/layout_margin_1"
android:text="@{sale.quantity}" android:text="@{sale.quantity}"
tool:text="10" tool:text="10"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h6" android:textSize="@dimen/h6"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent"
/>
<TextView <TextView
android:id="@+id/item_article_quantity_line1" android:id="@+id/item_article_quantity_line1"
@ -219,7 +253,7 @@
android:id="@+id/item_article_cel1" android:id="@+id/item_article_cel1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_min" android:layout_marginEnd="@dimen/layout_margin_1"
android:text="@{sale.cel1}" android:text="@{sale.cel1}"
tool:text="cel1" tool:text="cel1"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
@ -252,7 +286,7 @@
android:id="@+id/item_article_cel2" android:id="@+id/item_article_cel2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_min" android:layout_marginEnd="@dimen/layout_margin_1"
android:text="@{sale.cel2}" android:text="@{sale.cel2}"
tool:text="cel2" tool:text="cel2"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
@ -268,7 +302,7 @@
android:id="@+id/item_article_quantity_line3" android:id="@+id/item_article_quantity_line3"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/layout_margin_min" android:layout_marginStart="@dimen/layout_margin_1"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
android:text="@{sale.line3}" android:text="@{sale.line3}"
@ -284,7 +318,7 @@
android:id="@+id/item_article_cel3" android:id="@+id/item_article_cel3"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_min" android:layout_marginEnd="@dimen/layout_margin_1"
android:text="@{sale.cel3}" android:text="@{sale.cel3}"
tool:text="cel3" tool:text="cel3"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
@ -293,7 +327,25 @@
app:layout_constraintEnd_toEndOf="@+id/item_article_quantity_line3" app:layout_constraintEnd_toEndOf="@+id/item_article_quantity_line3"
app:layout_constraintTop_toTopOf="@+id/item_article_quantity_line3" /> app:layout_constraintTop_toTopOf="@+id/item_article_quantity_line3" />
<LinearLayout
android:id="@+id/linearLayoutColor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
>
<View
android:id="@+id/item_ticketColor"
android:layout_width="5dp"
android:layout_height="@dimen/ticketColor_height"
android:background="@drawable/border"
android:layout_marginBottom="1dp"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout <LinearLayout

View File

@ -49,7 +49,7 @@
android:layout_weight="1" android:layout_weight="1"
android:gravity="center"/> android:gravity="center"/>
<TextView <TextView
android:visibility="gone" android:visibility="visible"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@{item.shelvingFk}" android:text="@{item.shelvingFk}"

View File

@ -84,6 +84,10 @@
<dimen name="semaforo_width">20dp</dimen> <dimen name="semaforo_width">20dp</dimen>
<dimen name="semaforo_height">30dp</dimen> <dimen name="semaforo_height">30dp</dimen>
<!-- Pintar ticket -->
<dimen name="ticketColor_height">90dp</dimen>
<dimen name="ticketColor_width">10dp</dimen>
</resources> </resources>