Versión 6.1.9 estable

This commit is contained in:
Sergio De la torre 2021-11-11 06:38:26 +01:00
parent e458f8a174
commit 7edeb2037c
27 changed files with 223 additions and 54 deletions

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="20211523021031" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2021-11-04T15:22:29.596255200Z" />
</component>
</project>

View File

@ -26,6 +26,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/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/emoticon_error.xml" value="0.23229166666666667" />
<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/human_dolly.xml" value="0.2111111111111111" />
@ -73,7 +74,6 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/activity_login.xml" value="0.134375" />
<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/component_custom_ubicador_dialog.xml" value="0.2857142857142857" />
<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_automatic_add_item.xml" value="0.20625" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_buffer.xml" value="0.1408514492753623" />
@ -99,11 +99,11 @@
<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_associatesmarttag.xml" value="0.22" />
<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.1" />
<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_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_web.xml" value="0.2463768115942029" />
<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.40375586854460094" />
<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_historicovehiculo_row.xml" value="0.18795289855072464" />

View File

@ -15,7 +15,8 @@ android {
minSdkVersion 21
targetSdkVersion 29
versionCode 76
versionName "6.1.9" //Sin subir, Modificado y añadido mensajes de error, añadido opcion Dia de venta y su parking, teclado numerico para controlador
versionName "6.1.9" //VERSION CODE 76, añadido grouping, reference, prioridad, controladores vs scadores, boton mensaje error,rocket salix y error al añadir elemento a colección.
// Sin subir, Modificado y añadido mensajes de error, añadido opcion Dia de venta y su parking, teclado numerico para controlador
// versionName "6.1.8.5" VERSION CODE 75 // 23-10-2021//VERSION CODE 74-75 .Pantalla "Dia de venta y parking" Modificado itemtrash, deprecated preferenceManager, quitados ;,puesto menu general al controlador
//versionName "6.1.8.4.1" //VERSION CODE 73 . Modificar itemtrash
//versionName "6.1.8.4" //VERSION CODE 72 . Se añade ExpedtionScan para el Sorter, y modificion llamadas itemtrash y collectionGetTicket.

Binary file not shown.

Binary file not shown.

View File

@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 75,
"versionName": "6.1.8.5",
"versionCode": 76,
"versionName": "6.1.9",
"outputFile": "app-release.apk"
}
],

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -214,6 +214,26 @@ class GetItemCardUserCase(context: Context) : RestClient(context) {
)
}
fun item_saveReference(
usuario: String,
password: String,
itemFk: String,
value: String
): Call<Unit> {
val params: ArrayList<String> = ArrayList()
params.add(itemFk)
params.add(value)
return restClient!!.item_saveReference(
"json",
"1",
usuario,
password,
"application/json",
params = params
)
}
fun barcodes_edit(
usuario: String,
password: String,

View File

@ -89,24 +89,24 @@ class GetLoginUserCase(context: Context) : RestClient(context)
//SALIX MENSAJE :SERGIO: 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>{
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*/
fun sendChekingPresence(token: String, workerId: Int, message: String): Call<Boolean>
{
return salixClient!!.sendGroup(
content_type = "application/json",
authorization = token,
params = SalixGrupo(to = "#android-test", message = message)
)
}
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))
}
/* // SERGIO: PARA DESARROLLO Y PRUEBAS SE DESCOMENTA ESTAS LÍNEAS Y SE COMENTAN LAS DE ARRIBA
fun sendChekingPresence(token: String, workerId: Int, message: String): Call<Boolean>
{
return salixClient!!.sendGroup(
content_type = "application/json",
authorization = token,
params = SalixGrupo(to = "#android-test", message = message)
)
}*/
fun checkVersion(usuario: String, password: String, nameApp: String): Call<versionApp>
{
val params: ArrayList<String> = ArrayList()
params.add(nameApp)
return restClient!!.getVersion("json", "1", usuario, password, "application/json", params)
val params: ArrayList<String> = ArrayList()
params.add(nameApp)
return restClient!!.getVersion("json", "1", usuario, password, "application/json", params)
}
}

View File

@ -490,6 +490,17 @@ interface VerdnaturaService {
):
Call<String>
@POST("almacennew/item_saveReference")//REVISADA
fun item_saveReference(
@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<Unit>
@POST("almacennew/barcodes_edit")//REVISADA
fun barcodes_edit(
@Header("aplicacion") aplicacion: String,

View File

@ -10,6 +10,9 @@ abstract class BaseViewModel : ViewModel(), LifecycleObserver
fun nameofFunction(function: Any): String
{
// return Thread.currentThread().stackTrace[1].methodName
return function.javaClass.enclosingMethod!!.name
}

View File

@ -1,16 +1,22 @@
package es.verdnatura.presentation.common
class ResponseItemVO (
var response:String = "",
class ResponseItemVO(
var response: String = "",
var isError: Boolean = false,
var errorMessage: String = ""
)
)
class ResponseItemMachineControl (
var response:String = "",
class ResponseItemMachineControl(
var response: String = "",
var isError: Boolean = false,
var errorMessage: String = "",
var type: String
)
)
class DataMessageSalix(
var ticket: String = "",
var item: String = "",
var quantity: String = "",
var personSale: String = ""
)

View File

@ -205,6 +205,7 @@ class ItemCardFragment(
}else{
getItemCard(itemFk)
}
})
}
}
@ -251,11 +252,14 @@ class ItemCardFragment(
listItemsRow.add(ItemCardRowVO(title = getString(R.string.Grouping),value = itemInfo.grouping,isEditable = true, action = "updateGrouping"))
listItemsRow.add(ItemCardRowVO(title = getString(R.string.Packing),value = itemInfo.packing,isEditable = true, action = "updatePacking"))
listItemsRow.add(ItemCardRowVO(title = getString(R.string.MINIMO),value = itemInfo.min,isEditable = true, action = "itemSaveMin"))
listItemsRow.add(ItemCardRowVO(title = getString(R.string.Referencia),value = itemInfo.referencia,isEditable = true, action = "item_saveReference"))
listItemsRow.add(ItemCardRowVO(title = getString(R.string.Barcode),barcodes = itemInfo.barcodes,isEditable = true, action = "toBarcode"))
//sergio para itemTypePacking
listItemsRow.add(ItemCardRowVO(title = getString(R.string.tipodeencajado),value = itemInfo.itemPackingTypeFk,isEditable = true, action = "updateSector"))
// listItemsRow.add(ItemCardRowVO(title = "Artículos similares",value = itemInfo.itemPackingTypeFk,isEditable = true, action = "itemProposal"))
listBarcodes = itemInfo.barcodes as ArrayList<BarcodeVO>
adapter = ItemCardAdapter(listItemsRow,object: OnItemCardRowClickListener{
@ -387,6 +391,8 @@ class ItemCardFragment(
"updateGrouping" -> viewModel.updateGrouping(itemFk = itemFk, user = user, password = password, value = value,warehouseFk = warehouseFk,"buy_updateGrouping")
"updatePacking" -> viewModel.updatePacking(itemFk = itemFk, user = user, password = password, value = value,warehouseFk = warehouseFk,"buy_updateGrouping")
"itemSaveMin" -> viewModel.itemSaveMin(itemFk = itemFk, user = user, password = password, value = value,"itemSaveMin")
"item_saveReference"->viewModel.item_saveReference(itemFk = itemFk, user = user, password = password, value = value,"item_saveReference")
}
if(item.action != "itemStockUpdate")
@ -534,7 +540,8 @@ class ItemCardFragment(
}else{
listBarcodes.add(BarcodeVO(code))
}
viewModel.barcodesEdit(itemFk = itemFk, user = user, password = password, value = code, delete = delete,"itemBarcode_update")
viewModel.barcodesEdit(itemFk = itemInfoG!!.id, user = user, password = password, value = code, delete = delete,"itemBarcode_update")
// viewModel.barcodesEdit(itemFk = itemFk, user = user, password = password, value = code, delete = delete,"itemBarcode_update")
barcodeAdapter!!.notifyDataSetChanged()
//changeOfflineValue(item,"", listBarcodes)
showProgress()

View File

@ -9,11 +9,13 @@ import es.verdnatura.domain.GetItemCardUserCase
import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.base.getMessageError
import es.verdnatura.presentation.base.getMessageFromAllResponse
import es.verdnatura.presentation.base.nameofFunction
import es.verdnatura.presentation.common.ResponseItemVO
import es.verdnatura.presentation.view.feature.articulo.model.*
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import timber.log.Timber
import java.util.*
import kotlin.collections.ArrayList
@ -45,9 +47,14 @@ class ItemCardViewModel(context: Context) : BaseViewModel() {
getItemCardUserCase.getItemCard(user,password,itemFk,warehouseFk).enqueue(object :Callback<ItemCardVO>{
override fun onFailure(call: Call<ItemCardVO>, t: Throwable) {
_itemcard.value = ItemCardVO(isError = true,errorMessage = getMessageFromAllResponse(callFunction,t.message!!))
}
override fun onResponse(call: Call<ItemCardVO>, response: Response<ItemCardVO>) {
// Timber.d("el nombre de la funcion es : "+nameofFunction({ } ))-->devuelve onResponse
Timber.d("el nombre de la funcion es : "+nameofFunction(this))//-->devuelve getItemCard
if (response.body() != null){
_itemcard.value = response.body()!!
}else{
@ -237,6 +244,25 @@ class ItemCardViewModel(context: Context) : BaseViewModel() {
})
}
fun item_saveReference(itemFk:String,user:String,password:String,value:String,callFunction:String){
getItemCardUserCase.item_saveReference(user,password,itemFk,value).enqueue(object : Callback<Unit>{
override fun onFailure(call: Call<Unit>, t: Throwable) {
_response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(callFunction,t.message!!))
}
override fun onResponse(call: Call<Unit>, response: Response<Unit>) {
if (!response.isSuccessful){
_response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(callFunction,response.message()))
}else{
_response.value = ResponseItemVO(isError = false)
}
}
})
}
fun barcodesEdit(itemFk:String,user:String,password:String,value:String,delete:String,callFunction:String){
getItemCardUserCase.barcodes_edit(user,password,itemFk,value,delete).enqueue(object : Callback<String>{
override fun onFailure(call: Call<String>, t: Throwable) {

View File

@ -30,7 +30,8 @@ class ItemCardVO (
var errorMessage:String = "",
var urlImage200:String = "",
var urlImage:String = "",
var itemPackingTypeFk:String =" "
var itemPackingTypeFk:String =" ",
var referencia:String=""
)
class ItemCardRowVO (

View File

@ -37,6 +37,7 @@ class PlacementAdapter (
if (placement.visible.isNullOrEmpty())
placement.visible = "("+placement.stockTotal+")"
this.item = placement
itemRootLayout.setOnClickListener {
onPasillerosItemClickListener.onPasillerosItemClickListener(PasillerosItemVO(title = "Ubicador"),placement.shelving)
}

View File

@ -9,6 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R
import es.verdnatura.databinding.ItemArticleRowBinding
import es.verdnatura.domain.toast
import es.verdnatura.presentation.common.OnMistakeClickListener
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
import es.verdnatura.presentation.common.OnQuantityClickListener
@ -77,10 +78,21 @@ class SaleAdapter (
}
contentLayout.setOnLongClickListener {
onMistakeClickListener.onMistakeClickListener(sale)
"Nueva funcionalidad en el icono de la derecha".toast(context!!)
//onMistakeClickListener.onMistakeClickListener(sale)
false
}
/*itemRowLayout.setOnLongClickListener{
onMistakeClickListener.onMistakeClickListener(sale)
false
}*/
imageErrorMessage.setOnClickListener{
onMistakeClickListener.onMistakeClickListener(sale)
false
}
//ERROR
if (sale.originalQuantity != sale.quantity){
layoutError.visibility = View.VISIBLE

View File

@ -49,6 +49,7 @@ class CollectionFragment(
var collection: CollectionVO = CollectionVO(),
var type: String = SACADOR
) : BaseFragment<FragmentCollectionBinding, CollectionViewModel>(CollectionViewModel::class) {
private lateinit var dataMessageSalix:DataMessageSalix
private var user = ""
private var password = ""
private var sectorFk = ""
@ -246,6 +247,8 @@ class CollectionFragment(
if (!scan_input.text.toString().isNullOrEmpty()) {
//////Log.i("VERDNATURA:","Pita o no pita si encuentra. Diferencia si es matricula o no")
findSale(scan_input.text.toString())
}
scan_input.setText("")
hideKeyboards()
@ -331,7 +334,15 @@ class CollectionFragment(
customDialog.dismiss()
}.show()
} else {
if (splash_progress != null) splash_progress.visibility = View.VISIBLE
sendSalixMessage(
item=dataMessageSalix.item,
ticketFk=dataMessageSalix.ticket,
quantity=dataMessageSalix.quantity,
salePerson=dataMessageSalix.personSale
)
viewModel.collectionTicketGet(
user,
password,
@ -427,6 +438,41 @@ class CollectionFragment(
}
}
private fun getSalePerson(ticketFk:String):String
{
var salePerson =""
for (it in sales)
{
if (it.ticketFk.equals(ticketFk))
{
salePerson= it.salePersonFk
break
}
}
return salePerson
}
private fun sendSalixMessage(item:String,ticketFk:String,quantity:String,salePerson:String)
{
val ticket =
"[" + ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + ticketFk + "/summary)"
val message =
"Se ha añadido el articulo " + item + " con " +quantity+ " unidad/es al ticket " + ticket
/* d("VERDNATURA:","el comercial es " + salePerson)
d("VERDNATURA:","el item es " + item)
d("VERDNATURA:","el ticket es es " + ticketFk)
d("VERDNATURA:","la cantidad es " + quantity)*/
viewModel.sendChekingPresence(
token = token,
workerId = salePerson,
message = message,"sendChekingPresence"
)
}
//CREATE LIST
private fun createCollectionList() {
state = 0
@ -459,8 +505,9 @@ class CollectionFragment(
observations = observations + " " + ticket.observations
}
//sales = salesList.sortedWith(compareBy({it.placements.get(0).placement}))
sales = salesList.sortedWith(compareBy({it.saleOrder}))
//sales=salesList
/* for (s in sales)
{
Log.i("VERDNATURA:","La sale del ticket ${s.ticketFk} es ${s.saleOrder}")
@ -760,6 +807,7 @@ class CollectionFragment(
}
if (mpok != null) mpok!!.start()
"Ticket aparcado".toast(requireContext())
} else {
if (mperror != null) mperror!!.start()
}
@ -769,6 +817,8 @@ class CollectionFragment(
}
private fun markLine(position: Int, newType: String) {
state = 0
//////Log.i("VERDNATURA:","Marcamos linea y enviamos saleTracking")
@ -985,7 +1035,7 @@ class CollectionFragment(
customDialogList.getEditTextTwo().setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
Log.i("VERDNATURA:","Comprobando COGER-1")
// Log.i("VERDNATURA:","Comprobando COGER-1")
if (customDialogList.getValueTwo().isNotEmpty()) {
try {
if (isNumber(customDialogList.getValue()) && customDialogList.getValue()
@ -1208,6 +1258,16 @@ class CollectionFragment(
getString(R.string.Todosloscampossonobligatorios).toast(requireContext())
} else {
if (splash_progress != null) splash_progress.visibility = View.VISIBLE
//sergio datos para mensaje salix
dataMessageSalix= DataMessageSalix(
ticket=ticketSelected,
item = customDialogList.getValue(),
quantity=customDialogList.getValueTwo(),
personSale=getSalePerson(ticketSelected)
)
viewModel.collectionAddItem(
usuario = user,
password = password,
@ -1217,6 +1277,8 @@ class CollectionFragment(
warehouseFk = warehouseFk,
callFunction="collection_addItem"
)
scanRequest()
customDialogList.dismiss()
}
@ -1252,6 +1314,14 @@ class CollectionFragment(
getString(R.string.Todosloscampossonobligatorios).toast(requireContext())
} else {
if (splash_progress != null) splash_progress.visibility = View.VISIBLE
dataMessageSalix= DataMessageSalix(
ticket=ticketSelected,
item = customDialogList.getValue(),
quantity=customDialogList.getValueTwo(),
personSale=getSalePerson(ticketSelected)
)
viewModel.collectionAddItem(
usuario = user,
password = password,
@ -1377,11 +1447,17 @@ class CollectionFragment(
"" + totalMark + "/" + sales.size
if (totalMark == sales.size) {
getString(R.string.Coleccióncompleta).toast(this.context, Toast.LENGTH_SHORT)
showBottomNavigation(View.VISIBLE)
//sergio: se quita porque se realiza desde triggers
//changeTicketState()
}
}
private fun showBottomNavigation(visibilitiy:Int)
{
//requireActivity().main_bottom_navigation.visibility = visibilitiy
}
//FALTAS / BASURA / SPLIT
private fun showQuantityDialog(position: Int) {
// //Log.i("VERDNATURA:","Aparece CustomDialog")

View File

@ -226,7 +226,7 @@ class SacadorFragment :
adapter?.notifyDataSetChanged()
} else {
customDialog.setTitle("Atención")
.setDescription("La colección " + collection + " sigue pendiente de preparar")
.setDescription("La colección " + collection + " sigue pendiente de prepararr")
.setOkButton("Aceptar") {
customDialog.dismiss()
}.show()

View File

@ -0,0 +1,8 @@
<!-- drawable/emoticon_confused_outline.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="M20 12A8 8 0 1 0 12 20A8 8 0 0 0 20 12M22 12A10 10 0 1 1 12 2A10 10 0 0 1 22 12M15.5 8A1.5 1.5 0 1 1 14 9.5A1.54 1.54 0 0 1 15.5 8M10 9.5A1.5 1.5 0 1 1 8.5 8A1.54 1.54 0 0 1 10 9.5M17 15H13A4 4 0 0 0 9.53 17L7.8 16A6 6 0 0 1 13 13H17Z" />
</vector>

View File

@ -29,6 +29,7 @@
android:background="@color/verdnatura_warm_grey"
android:padding="@dimen/layout_margin_min"
android:orientation="vertical">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
@ -64,7 +65,17 @@
android:text="@{sale.ticketFk}"
tool:text="123456789"
android:textStyle="bold"
android:textSize="@dimen/h8"/>
android:textSize="@dimen/h8"
/>
<ImageView
android:id="@+id/imageErrorMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="80dp"
app:srcCompat="@drawable/emoticon_error" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
@ -78,7 +89,8 @@
tool:text="MRW"
android:textStyle="bold"
android:textSize="@dimen/h8"
android:layout_marginRight="@dimen/layout_margin_min"/>
android:layout_marginRight="@dimen/layout_margin_min"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>

View File

@ -149,4 +149,5 @@
<string name="ExpeditionScan">Escanear expedición</string>
<string name="dayofSale">Día de venta</string>
<string name="wagon">Carro</string>
<string name="Referencia">Referencia</string>
</resources>

View File

@ -147,5 +147,6 @@
<string name="ExpeditionScan">Scan expedition</string>
<string name="dayofSale">Day of sale</string>
<string name="wagon">Wagon</string>
<string name="Referencia">Reference</string>
</resources>