Version 23.4Beta refs #4679

This commit is contained in:
Sergio De la torre 2023-03-03 10:31:56 +01:00
parent a781fe31c7
commit 02604def33
25 changed files with 1061 additions and 215 deletions

View File

@ -276,7 +276,7 @@
</option>
</component>
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -83,12 +83,28 @@
</select>
</component>
<component name="ChangeListManager">
<list default="true" id="fa688d1c-dbee-4864-9e33-4d84ef9afca8" name="Default Changelist" comment="Añadido QR a pantalla Ubicador-&gt;Añadir ítem (rayo y símbolo +)">
<list default="true" id="fa688d1c-dbee-4864-9e33-4d84ef9afca8" name="Default Changelist" comment="Version 23.6Beta">
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/adapters/ExpeditionLogAdapter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/LogExpeditionFragment.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/camion.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/camion_descarga.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_delivery_truck.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_expedition_log_delivery.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_expeditionlog_row.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/di/viewModelModule.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/di/viewModelModule.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/SilexCallback.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/SilexCallback.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/InfoFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/viewmodels/DeliveryViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/model/InfoCompany.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/model/InfoCompany.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_info.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_info.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_info.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_info_delivery.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/toolbar_fragment.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/toolbar_fragment.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values-es/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values-es/strings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" afterDir="false" />
</list>
@ -187,7 +203,7 @@
</option>
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="testBeta" />
<entry key="$PROJECT_DIR$" value="master" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@ -233,28 +249,30 @@
<option name="showLibraryContents" value="true" />
<option name="showMembers" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;ApkExportedModule&quot;: &quot;Gestor_Almacén.app&quot;,
&quot;ExportApk.ApkPathForGestor_Almacén.app&quot;: &quot;C:\\Users\\sergiodt\\AndroidStudioProjects\\vn-warehouseManager\\app&quot;,
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.cidr.known.project.marker&quot;: &quot;true&quot;,
&quot;cidr.known.project.marker&quot;: &quot;true&quot;,
&quot;com.google.services.firebase.aqiPopupShown&quot;: &quot;true&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout&quot;,
&quot;project.structure.last.edited&quot;: &quot;Modules&quot;,
&quot;project.structure.proportion&quot;: &quot;0.17&quot;,
&quot;project.structure.side.proportion&quot;: &quot;0.2&quot;,
&quot;run.code.analysis.last.selected.profile&quot;: &quot;pProject Default&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;reference.settingsdialog.project.gradle&quot;
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"ApkExportedModule": "Gestor_Almacén.app",
"ExportApk.ApkPathForGestor_Almacén.app": "C:\\Users\\sergiodt\\AndroidStudioProjects\\vn-warehouseManager\\app",
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.cidr.known.project.marker": "true",
"ScreenRecorder.SavePath": "C:\\Users\\sergiodt\\redmine_4679_reparto_picking.mp4",
"android-custom-viewC:/Users/sergiodt/.gradle/caches/modules-2/files-2.1/androidx.appcompat/appcompat/1.3.0/45a346a05e7ff27a01c59452379c5939cbb53c03/appcompat-1.3.0-sources.jar!/androidx/appcompat/widget/AppCompatEditText.java_SELECTED": "AppCompatEditText",
"cidr.known.project.marker": "true",
"com.google.services.firebase.aqiPopupShown": "true",
"last_opened_file_path": "C:/Users/sergiodt",
"project.structure.last.edited": "Modules",
"project.structure.proportion": "0.17",
"project.structure.side.proportion": "0.2",
"run.code.analysis.last.selected.profile": "pProject Default",
"settings.editor.selected.configurable": "reference.settingsdialog.project.gradle"
},
&quot;keyToStringList&quot;: {
&quot;ExportApk.BuildVariants&quot;: [
&quot;generalRelease&quot;
"keyToStringList": {
"ExportApk.BuildVariants": [
"generalRelease"
]
}
}</component>
}]]></component>
<component name="PsdUISettings">
<option name="MODULE_TAB" value="Default Config" />
<option name="LAST_EDITED_SIGNING_CONFIG" value="debug" />
@ -262,9 +280,9 @@
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\drawable" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\layout" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\java\es\verdnatura\presentation\view\feature\delivery" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\drawable" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\drawable-v24" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\raw" />
</key>
@ -276,18 +294,18 @@
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\font" />
</key>
<key name="MoveKotlinTopLevelDeclarationsDialog.RECENTS_KEY">
<recent name="es.verdnatura.presentation.view.feature.delivery.fragments" />
<recent name="es.verdnatura.presentation.view.feature.delivery.viewmodels" />
<recent name="es.verdnatura.presentation.view.feature.delivery.fragment.info" />
<recent name="es.verdnatura.presentation.view.feature.delivery.fragment" />
<recent name="es.verdnatura.presentation.view.feature.packaging.fragment.SupplierViewModel" />
<recent name="es.verdnatura.presentation.view.feature.workermistake.fragment" />
<recent name="es.verdnatura.presentation.view.feature.historicoshelving.fragment" />
<recent name="es.verdnatura.presentation.view.feature.buffer.fragment" />
<recent name="es.verdnatura.presentation.view.feature.smarttag.register" />
</key>
<key name="CopyKotlinDeclarationDialog.RECENTS_KEY">
<recent name="es.verdnatura.presentation.view.feature.delivery.adapters" />
<recent name="es.verdnatura.presentation.view.feature.delivery" />
<recent name="es.verdnatura.domain" />
<recent name="es.verdnatura.presentation.view.feature.packaging.fragment" />
<recent name="es.verdnatura.presentation.view.component" />
<recent name="es.verdnatura.presentation.view.feature.inventario.adapter" />
</key>
</component>
<component name="RunManager" selected="Android App.app">
@ -881,6 +899,11 @@
<line>123</line>
<option name="timeStamp" value="4" />
</line-breakpoint>
<line-breakpoint enabled="true" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/LogExpeditionFragment.kt</url>
<line>163</line>
<option name="timeStamp" value="18" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<pin-to-top-manager>

View File

@ -36,7 +36,8 @@
android:name=".presentation.view.feature.main.activity.MainActivity"
android:windowSoftInputMode="stateHidden|adjustResize"
android:configChanges="orientation"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait"
android:exported="true"/>
<activity
android:name=".presentation.view.feature.login.activity.LoginActivity"
android:configChanges="orientation"

View File

@ -10,7 +10,7 @@ import es.verdnatura.presentation.view.feature.claim.fragment.ClaimViewModel
import es.verdnatura.presentation.view.feature.collection.fragment.CollectionViewModel
import es.verdnatura.presentation.view.feature.controlador.fragment.ControladorViewModel
import es.verdnatura.presentation.view.feature.controlvehiculo.fragment.ControlVehiculoViewModel
import es.verdnatura.presentation.view.feature.delivery.InfoViewModel
import es.verdnatura.presentation.view.feature.delivery.viewmodels.DeliveryViewModel
import es.verdnatura.presentation.view.feature.diadeventa.fragment.DayOfSaleViewModel
import es.verdnatura.presentation.view.feature.faltas.fragment.FaltasViewModel
import es.verdnatura.presentation.view.feature.historicoarticulo.fragment.HistoricoArticuloViewModel
@ -202,6 +202,6 @@ val viewModelModule = module {
PackagingViewModel(androidContext())
}
viewModel {
InfoViewModel(androidContext())
DeliveryViewModel(androidContext())
}
}

View File

@ -54,7 +54,7 @@ abstract class SilexCallback<T>(val context: Context) : Callback<T> {
}
open fun onSuccess(response: Response<T>) {
(nameofFunction((this)) + context.getString(R.string.operationSuccessful)).toast(context)
// (nameofFunction((this)) + context.getString(R.string.operationSuccessful)).toast(context)
//(context as MobileApplication).playSoundIsOK(true)
}

View File

@ -13,6 +13,8 @@ import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO
import es.verdnatura.presentation.view.feature.calidad.model.ItemBuyerVO
import es.verdnatura.presentation.view.feature.collection.SalesModified
import es.verdnatura.presentation.view.feature.delivery.model.DeliveryInfo
import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLog
import es.verdnatura.presentation.view.feature.delivery.model.RouteDelivery
import es.verdnatura.presentation.view.feature.diadeventa.model.ItemShelvingSaleDate
import es.verdnatura.presentation.view.feature.faltas.model.ItemFaltasVO
import es.verdnatura.presentation.view.feature.historicoarticulo.model.ItemHistoricoVO
@ -881,5 +883,31 @@ interface VerdnaturaService {
fun getInfoCompany(
@Body vararg params: Any
):
Call<DeliveryInfo>
Call<List<DeliveryInfo>>
@POST("delivery/expedition_getLog")//NO SALIX
fun expedition_getLog(
@Body vararg params: Any
):
Call<List<ExpeditionInfoLog>>
@POST("delivery/get_routesFromExpedition")//NO SALIX
fun get_routesFromExpedition(
@Body vararg params: Any
):
Call<List<RouteDelivery>>
@POST("delivery/expeditionState_add")//NO SALIX
fun expeditionState_add(
@Body vararg params: Any
):
Call<Void>
@POST("delivery/getInfoFreelance")//NO SALIX
fun getInfoFreelance(
@Body vararg params: Any
):
Call<List<DeliveryInfo>>
}

View File

@ -227,6 +227,7 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelCla
R.drawable.ic_eye_ui -> getString(R.string.icViewCollection)
R.drawable.ic_collection -> getString(R.string.icViewCollection)
R.drawable.ic_ubicator_check -> getString(R.string.checkerUbication)
R.drawable.ic_delivery ->"Abre la app de Reparto para escanear carga"
else -> {
""
}

View File

@ -1,65 +0,0 @@
package es.verdnatura.presentation.view.feature.delivery
import android.content.SharedPreferences
import android.util.Log.d
import android.view.View
import es.verdnatura.R
import es.verdnatura.databinding.FragmentInfoBinding
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.feature.ajustes.adapter.AjustesAdapter
import es.verdnatura.presentation.view.feature.ajustes.model.Printers
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
import es.verdnatura.presentation.view.feature.ajustes.model.Train
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
import es.verdnatura.presentation.view.feature.delivery.model.DeliveryInfo
class InfoFragment(var title: String) :
BaseFragment<FragmentInfoBinding, InfoViewModel>(InfoViewModel::class) {
private lateinit var customDialog: CustomDialog
private var sectorListVO: List<SectorItemVO> = listOf()
private var printersList: List<Printers> = listOf()
private var trainsList: List<Train> = listOf()
private var prefs: SharedPreferences? = null
private var ajustesAdapter: AjustesAdapter? = null
private var isWorkerAllowed: Boolean = false
private var itemPackingList: List<ItemPackingType> = listOf()
private var messagePrinter: String? = null
companion object {
fun newInstance(title: String) = InfoFragment(title)
}
override fun getLayoutId(): Int = R.layout.fragment_info
override fun init() {
super.init()
binding.mainToolbar.toolbarTitle.text = title
binding.splashProgress.visibility = View.VISIBLE
viewModel.getInfoCompany(getDataInt(USER))
}
override fun observeViewModel() {
with(viewModel) {
companyInfo.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
d("VERDNATURA::", "" + it.name)
//saveDataInt(NUMBEROFWAGONS, it.response!!)
}
}
}
}

View File

@ -1,44 +0,0 @@
package es.verdnatura.presentation.view.feature.delivery
import android.content.Context
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import es.verdnatura.domain.SilexCallback
import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.view.feature.delivery.model.DeliveryInfo
import retrofit2.Response
class InfoViewModel(val context: Context) : BaseViewModel(context) {
private val _companyInfo by lazy { MutableLiveData<DeliveryInfo>() }
val companyInfo: LiveData<DeliveryInfo>
get() = _companyInfo
fun getInfoCompany(
userId:Int
) {
silex.getInfoCompany(userId)
.enqueue(object : SilexCallback<DeliveryInfo?>(context) {
override fun onSuccess(response: Response<DeliveryInfo?>) {
_companyInfo.value =
response.body()!!
}
override fun onError(t: Throwable) {
_companyInfo.value =
DeliveryInfo()
super.onError(t)
}
})
}
}

View File

@ -0,0 +1,41 @@
package es.verdnatura.presentation.view.feature.delivery.adapters
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.databinding.ItemExpeditionlogRowBinding
import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLog
class ExpeditionLogAdapter(
private val items: List<ExpeditionInfoLog>
) : RecyclerView.Adapter<ExpeditionLogAdapter.ItemHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder {
return ItemHolder(
ItemExpeditionlogRowBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
)
}
override fun getItemCount() = items.size
override fun onBindViewHolder(holder: ItemHolder, position: Int) {
holder.bind(items[position])
}
inner class ItemHolder(
val binding: ItemExpeditionlogRowBinding
) : RecyclerView.ViewHolder(binding.root) {
private val res = binding.root.context.resources
fun bind(item: ExpeditionInfoLog) {
binding.apply {
this.item = item
}
}
}
}

View File

@ -0,0 +1,57 @@
package es.verdnatura.presentation.view.feature.delivery.fragments
import android.view.View
import es.verdnatura.R
import es.verdnatura.databinding.FragmentInfoDeliveryBinding
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.view.feature.delivery.viewmodels.DeliveryViewModel
class InfoFragment(var title: String) :
BaseFragment<FragmentInfoDeliveryBinding, DeliveryViewModel>(DeliveryViewModel::class) {
companion object {
fun newInstance(title: String) = InfoFragment(title)
}
override fun getLayoutId(): Int = R.layout.fragment_info_delivery
override fun init() {
super.init()
binding.mainToolbar.toolbarTitle.text = title
ma.hideBottomNavigation(View.GONE)
binding.splashProgress.visibility = View.VISIBLE
viewModel.getInfoCompany(getDataInt(USERFK))
viewModel.getInfoFreelance(getDataInt(USERFK))
setEvents()
}
private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
}
override fun observeViewModel() {
with(viewModel) {
companyInfoList.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
if (it.list.isNotEmpty()) {
binding.itemName.text = it.list[0].name
binding.itemNif.text = it.list[0].nif
binding.itemAdress.text = it.list[0].street + "-" + it.list[0].city
}
}
freelanceInfoList.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
if (it.list.isNotEmpty()) {
binding.linearInfoFreelance.visibility=View.VISIBLE
binding.freelanceName.text = it.list[0].name
binding.freelanceNif.text = it.list[0].nif
binding.freelanceAddress.text = it.list[0].street + "-" + it.list[0].city
}
}
}
}
}

View File

@ -0,0 +1,191 @@
package es.verdnatura.presentation.view.feature.delivery.fragments
import android.content.Intent
import android.graphics.drawable.Drawable
import android.os.Build
import android.view.View
import android.view.inputmethod.EditorInfo
import android.widget.ImageView
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentExpeditionLogDeliveryBinding
import es.verdnatura.domain.toInt
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnOptionsSelectedListener
import es.verdnatura.presentation.common.ToolBarAdapterTooltip
import es.verdnatura.presentation.view.feature.delivery.adapters.ExpeditionLogAdapter
import es.verdnatura.presentation.view.feature.delivery.model.Expedition
import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLog
import es.verdnatura.presentation.view.feature.delivery.model.RouteDelivery
import es.verdnatura.presentation.view.feature.delivery.viewmodels.DeliveryViewModel
class LogExpeditionFragment(
var title: String = ""
) : BaseFragment<FragmentExpeditionLogDeliveryBinding, DeliveryViewModel>(
DeliveryViewModel::class
) {
private var adapter: ExpeditionLogAdapter? = null
private var originalItem: Int = 0
companion object {
fun newInstance(title: String) = LogExpeditionFragment(title)
}
override fun getLayoutId(): Int = R.layout.fragment_expedition_log_delivery
@RequiresApi(Build.VERSION_CODES.O)
override fun init() {
ma.hideBottomNavigation(View.GONE)
binding.mainToolbar.toolbarTitle.text = title
binding.scanInput.requestFocus()
setEvents()
setToolBar()
super.init()
}
@RequiresApi(Build.VERSION_CODES.O)
private fun setToolBar() {
binding.mainToolbar.switchButton.tooltipText =
getString(R.string.expeditionMarkFound)
val listIcons: ArrayList<ImageView> = ArrayList()
val iconDelivery = ImageView(context)
iconDelivery.setImageResource(R.drawable.ic_delivery)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
iconDelivery.tooltipText = getTooltip(R.drawable.ic_delivery)
}
listIcons.add(iconDelivery)
binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) {
when (item) {
iconDelivery.drawable -> {
openAppDelivery()
requireActivity().finish()
}
}
}
})
binding.mainToolbar.toolbarIcons.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
binding.mainToolbar.toolbarIcons.visibility = View.GONE
}
private fun openAppDelivery() {
val i = Intent()
i.setClassName(
"verdnatura.es.repartoverdnatura",
"verdnatura.es.repartoverdnatura.ExpeditionSummaryActivity"
)
/* i.putExtra("token", getData(TOKEN))
i.putExtra("user", getData(USER))
i.putExtra("userId", getDataInt(USER))
i.putExtra("password", getData(PASSWORD))*/
i.putExtra("routeId", binding.route.text)
i.putExtra("app", "picking")
startActivity(i)
}
private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
binding.scanInput.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) {
if (!binding.scanInput.text.isNullOrEmpty()) {
binding.splashProgress.visibility = View.VISIBLE
try {
viewModel.expedition_getLog(binding.scanInput.toInt())
originalItem = binding.scanInput.toInt()
binding.mainToolbar.toolbarTitle.text =
getString(R.string.expedition) + binding.scanInput.text
} catch (ex: Exception) {
"Error al escanear expedición".toast(context, Toast.LENGTH_SHORT)
}
}
return@setOnEditorActionListener true
}
false
}
}
@RequiresApi(Build.VERSION_CODES.O)
override fun observeViewModel() {
with(viewModel) {
expeditionInfoList.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
createList(it.list)
setSwitchButon()
viewModel.get_routesFromExpedition(originalItem)
}
routeInfoList.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
if (it.list.isNotEmpty()) {
binding.mainToolbar.toolbarIcons.visibility = View.VISIBLE
binding.mainToolbar.switchButton.visibility = View.VISIBLE
setInfoText(it.list[0])
} else {
binding.scanInput.setText("")
binding.routeLayout.visibility = View.GONE
binding.mainToolbar.toolbarIcons.visibility = View.GONE
binding.mainToolbar.switchButton.visibility = View.GONE
}
}
responseStateAdd.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
viewModel.expedition_getLog(originalItem)
}
}
}
@RequiresApi(Build.VERSION_CODES.O)
private fun setSwitchButon() {
binding.mainToolbar.switchButton.setOnCheckedChangeListener { buttonView, isChecked ->
binding.mainToolbar.switchButton.tooltipText = if (isChecked)
getString(R.string.expeditionMarkLost) else
getString(R.string.expeditionMarkFound)
binding.splashProgress.visibility = View.VISIBLE
if (isChecked) {
viewModel.expeditionState_add(arrayListOf(Expedition(originalItem)), "FOUND")
} else {
viewModel.expeditionState_add(arrayListOf(Expedition(originalItem)), "LOST")
}
}
}
private fun setInfoText(routeDelivery: RouteDelivery) {
binding.routeLayout.visibility = View.VISIBLE
binding.mainToolbar.toolbarIcons.visibility = View.VISIBLE
binding.route.text = routeDelivery.id.toString()
binding.date.text = routeDelivery.created
binding.agency.text = routeDelivery.name
binding.scanInput.setText("")
}
private fun createList(list: List<ExpeditionInfoLog>) {
adapter = ExpeditionLogAdapter(list)
binding.itemexpeditionlogRecyclerview.adapter = adapter
binding.itemexpeditionlogRecyclerview.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
}
}

View File

@ -1,10 +1,41 @@
package es.verdnatura.presentation.view.feature.delivery.model
class FreeLanceDeliveryInfoList(
var list: List<DeliveryInfo> = listOf()
)
class CompanyInfoList(
var list: List<DeliveryInfo> = listOf()
)
class DeliveryInfo(
var name: String = "",
var street: String = "",
var city: String = "",
var nif: String = "",
var postCode: String = ""
var postCode: Int = 0
)
class ExpeditionInfoList(
var list: List<ExpeditionInfoLog> = listOf()
)
class ExpeditionInfoLog(
var description: String = "",
var name: String = "",
var created: String = "",
var isError: Boolean = false,
var errorMessage: String = ""
)
class RouteDeliveryList(
var list: List<RouteDelivery> = listOf()
)
class RouteDelivery(
var id: Int,
var created: String,
var name: String
)
class Expedition(
var id: Int
)

View File

@ -0,0 +1,146 @@
package es.verdnatura.presentation.view.feature.delivery.viewmodels
import android.content.Context
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import es.verdnatura.domain.SilexCallback
import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.common.ResponseItemVO
import es.verdnatura.presentation.view.feature.delivery.model.*
import retrofit2.Response
import retrofit2.http.POST
class DeliveryViewModel(val context: Context) : BaseViewModel(context) {
private val _expeditionInfoList by lazy { MutableLiveData<ExpeditionInfoList>() }
val expeditionInfoList: LiveData<ExpeditionInfoList> = _expeditionInfoList
private val _routeInfoList by lazy { MutableLiveData<RouteDeliveryList>() }
val routeInfoList: LiveData<RouteDeliveryList> = _routeInfoList
private val _freelanceInfoList by lazy { MutableLiveData<FreeLanceDeliveryInfoList>() }
val freelanceInfoList: LiveData<FreeLanceDeliveryInfoList> = _freelanceInfoList
private val _companyInfoList by lazy { MutableLiveData<FreeLanceDeliveryInfoList>() }
val companyInfoList: LiveData<FreeLanceDeliveryInfoList> = _companyInfoList
private val _responseStateAdd by lazy { MutableLiveData<ResponseItemVO>() }
val responseStateAdd: LiveData<ResponseItemVO>
get() = _responseStateAdd
fun getInfoCompany(
userId: Int
) {
silex.getInfoCompany(userId)
.enqueue(object : SilexCallback<List<DeliveryInfo>>(context) {
override fun onSuccess(response: Response<List<DeliveryInfo>>) {
if (response.body() != null) {
_companyInfoList.value =
response.body()?.let { FreeLanceDeliveryInfoList(it) }
} else {
_companyInfoList.value = FreeLanceDeliveryInfoList()
}
}
override fun onError(t: Throwable) {
_companyInfoList.value = FreeLanceDeliveryInfoList()
super.onError(t)
}
})
}
fun expedition_getLog(
expedition: Int
) {
silex.expedition_getLog(expedition)
.enqueue(object : SilexCallback<List<ExpeditionInfoLog>>(context) {
override fun onSuccess(response: Response<List<ExpeditionInfoLog>>) {
if (response.body() != null) {
_expeditionInfoList.value =
response.body()?.let { ExpeditionInfoList(it) }
} else {
_expeditionInfoList.value = ExpeditionInfoList()
}
}
override fun onError(t: Throwable) {
_expeditionInfoList.value = ExpeditionInfoList()
super.onError(t)
}
})
}
fun get_routesFromExpedition(
expedition: Int
) {
silex.get_routesFromExpedition(expedition)
.enqueue(object : SilexCallback<List<RouteDelivery>>(context) {
override fun onSuccess(response: Response<List<RouteDelivery>>) {
if (response.body() != null) {
_routeInfoList.value =
response.body()?.let { RouteDeliveryList(it) }
}
}
override fun onError(t: Throwable) {
_routeInfoList.value = RouteDeliveryList()
super.onError(t)
}
})
}
fun expeditionState_add(expeditions: List<Expedition>, state: String) {
silex.expeditionState_add(expeditions, state)
.enqueue(object : SilexCallback<Void>(context) {
override fun onSuccess(response: Response<Void>) {
_responseStateAdd.value = ResponseItemVO()
}
override fun onError(t: Throwable) {
super.onError(t)
_responseStateAdd.value = ResponseItemVO()
}
})
}
@POST("/delivery/getInfoFreelance")
fun getInfoFreelance(
userId: Int
) {
silex.getInfoFreelance(userId)
.enqueue(object : SilexCallback<List<DeliveryInfo>>(context) {
override fun onSuccess(response: Response<List<DeliveryInfo>>) {
if (response.body() != null) {
_freelanceInfoList.value =
response.body()?.let { FreeLanceDeliveryInfoList(it) }
} else {
_freelanceInfoList.value = FreeLanceDeliveryInfoList()
}
}
override fun onError(t: Throwable) {
_freelanceInfoList.value = FreeLanceDeliveryInfoList()
super.onError(t)
}
})
}
}

View File

@ -3,6 +3,7 @@ package es.verdnatura.presentation.view.feature.main.activity
import android.content.SharedPreferences
import android.media.MediaPlayer
import android.util.Log
import android.view.Menu
import android.widget.Toast
import androidx.core.content.ContextCompat
@ -10,6 +11,7 @@ import androidx.databinding.ktx.BuildConfig
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import com.google.android.material.bottomnavigation.LabelVisibilityMode.LABEL_VISIBILITY_UNLABELED
import es.verdnatura.MobileApplication
import es.verdnatura.R
import es.verdnatura.databinding.ActivityMainBinding
import es.verdnatura.domain.ConstAndValues.MAINACTIVITY
@ -34,7 +36,8 @@ import es.verdnatura.presentation.view.feature.controlador.fragment.ControladorF
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.ControlVehiculoUsuarioFragment
import es.verdnatura.presentation.view.feature.delivery.InfoFragment
import es.verdnatura.presentation.view.feature.delivery.fragments.InfoFragment
import es.verdnatura.presentation.view.feature.delivery.fragments.LogExpeditionFragment
import es.verdnatura.presentation.view.feature.diadeventa.fragment.DayOfSaleFragment
import es.verdnatura.presentation.view.feature.faltas.fragment.FaltasFragment
import es.verdnatura.presentation.view.feature.historicoarticulo.fragment.HistoricoArticuloFragment
@ -86,35 +89,73 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
var fm = supportFragmentManager
var mperror: MediaPlayer? = null
var mpok: MediaPlayer? = null
private var comeFromDelivery: Boolean? = null
override fun getLayoutId(): Int = R.layout.activity_main
override fun init() {
mperror = MediaPlayer.create((this), R.raw.error)
mpok = MediaPlayer.create((this), R.raw.ok)
customDialog = CustomDialogMainActivity(this)
setFragments()
setBottomMenuFragment()
}
if (haveSector() && havePrinter()) addFragment(
PasilleroFragment.newInstance(getString(R.string.main), true),
R.id.main_frame_layout,
PasilleroFragment.TAG,
false
)
else addFragment(
AjustesFragment.newInstance(),
R.id.main_frame_layout,
AjustesFragment.TAG,
false
)
private fun setFragments() {
try {
val extras = intent.extras
if (extras != null && extras.containsKey("menu")) {
comeFromDelivery = true
val option = extras.getString("menu")
val prefs = (applicationContext as MobileApplication).getPrefs()
prefs.putString("USER", extras.getString("user"))
prefs.putString("PASSWORD", extras.getString("password"))
when (option) {
"log" -> onPasillerosItemClickListener(
PasillerosItemVO(
30,
R.drawable.expedition_find,
getString(R.string.titleLog),
R.string.titleLog,
getString(
R.string.titleLogDescrip
)
// sergio: de esta manera se eliminan los logs de lanzamiento
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
), getString(R.string.titleLog)
)
"info" -> onPasillerosItemClickListener(
PasillerosItemVO(
30,
R.drawable.expedition_find,
getString(R.string.titleInfo),
R.string.titleInfo,
getString(
R.string.titleInfoDescription
)
), getString(R.string.titleInfo)
)
}
} else {
if (haveSector() && havePrinter()) addFragment(
PasilleroFragment.newInstance(getString(R.string.main), true),
R.id.main_frame_layout,
PasilleroFragment.TAG,
false
)
else addFragment(
AjustesFragment.newInstance(),
R.id.main_frame_layout,
AjustesFragment.TAG,
false
)
}
} catch (exception: Exception) {
getString(R.string.error).toast(this)
}
}
fun haveSector(): Boolean {
@ -411,11 +452,15 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
getString(R.string.titleItemSearch) -> {
addFragmentOnTop(BuscarItemFragment.newInstance(if (entryPoint == "") {
null
} else {
entryPoint.toInt()
}))
addFragmentOnTop(
BuscarItemFragment.newInstance(
if (entryPoint == "") {
null
} else {
entryPoint.toInt()
}
)
)
}
getString(R.string.titleHistorical) -> {
@ -543,24 +588,43 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
getString(R.string.titleInfo) -> {
addFragmentOnTop(
InfoFragment.newInstance(item.title))
InfoFragment.newInstance(item.title),
if (comeFromDelivery == true) {
getString(R.string.titleInfo)
} else {
null
}
)
}
getString(R.string.titleLog) -> {
addFragmentOnTop(
LogExpeditionFragment.newInstance(item.title),
if (comeFromDelivery == true) {
getString(R.string.titleLog)
} else {
null
}
)
}
getString(R.string.testing) -> {
getString(R.string.testing) -> {
addFragmentOnTop(testPrint.newInstance(item.title))
}
}
}
fun addFragmentOnTop(fragment: Fragment?) {
fun addFragmentOnTop(fragment: Fragment?, name: String? = null) {
supportFragmentManager
.beginTransaction()
.replace(R.id.main_frame_layout, fragment!!)
.addToBackStack(null)
.addToBackStack(name)
.commitAllowingStateLoss()
}
@ -570,11 +634,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
var backEntry = ""
if (index >= 0) {
backEntry = supportFragmentManager.getBackStackEntryAt(index).name.toString()
//Log.d("VERDNATURA::", "El fragment es " + backEntry)
}
try {
fm.executePendingTransactions()
} catch (e: Exception) {
@ -585,9 +647,18 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
fm.popBackStackImmediate()
if (!backEntry.isNullOrBlank())
if (backEntry!!.contains("fragment.ExpeditionPalletDetailFragment.Companion")) {
addFragmentOnTop(ExpeditionTruckListFragment.newInstance())
}
if (backEntry!!.contains(getString(R.string.titleLog)) || backEntry!!.contains(
getString(
R.string.titleInfo
)
)
) {
finish()
}
} else {
customDialog.setTitle(getString(R.string.closeSession))
.setDescription(getString(R.string.sureCloseSession))
@ -750,4 +821,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
}

View File

@ -514,7 +514,7 @@ class PasilleroViewModel(context: Context) : BaseViewModel(context) {
_pasillerositem.add(
PasillerosItemVO(
6,
R.drawable.ic_delivery,
R.drawable.ic_delivery_truck,
contextApp.getString(R.string.titleDelivery),
R.string.titleDelivery,
contextApp.getString(R.string.titleDeliveryDescrip)

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -0,0 +1,16 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="32dp"
android:viewportWidth="32"
android:viewportHeight="32"
>
<path
android:fillColor="#FFF"
android:pathData="M24.667,21.733c-1.733,0 -3.2,1.467 -3.2,3.2s1.467,3.2 3.2,3.2 3.2,-1.467 3.2,-3.2c0,-1.867 -1.467,-3.2 -3.2,-3.2zM24.667,26.533c-0.933,0 -1.6,-0.667 -1.6,-1.6s0.667,-1.6 1.6,-1.6 1.6,0.667 1.6,1.6c0,0.8 -0.8,1.6 -1.6,1.6z"/>
<path
android:fillColor="#FFf"
android:pathData="M7.867,21.733c-1.733,0 -3.2,1.467 -3.2,3.2s1.467,3.2 3.2,3.2c1.733,0 3.2,-1.467 3.2,-3.2 0,-1.867 -1.467,-3.2 -3.2,-3.2zM7.867,26.533c-0.933,0 -1.6,-0.667 -1.6,-1.6s0.667,-1.6 1.6,-1.6c0.933,0 1.6,0.667 1.6,1.6 0,0.8 -0.8,1.6 -1.6,1.6z"/>
<path
android:fillColor="#FFf"
android:pathData="M31.467,13.2l-6.133,-6c-0.4,-0.4 -0.933,-0.533 -1.467,-0.533h-3.067v-1.2c0,-0.8 -0.667,-1.6 -1.6,-1.6h-17.6c-0.933,0 -1.6,0.667 -1.6,1.6v17.333c0,0.933 0.8,1.6 1.6,1.6h2.133c0.267,-2 2,-3.6 4.133,-3.6 2,0 3.867,1.6 4.133,3.6h8.4c0.267,-2 2,-3.6 4.133,-3.6s4,1.6 4.267,3.6h1.6c0.933,0 1.6,-0.8 1.6,-1.6v-8.133c0,-0.533 -0.267,-1.067 -0.533,-1.467zM22.667,8.667c0,-0.133 0.133,-0.267 0.267,-0.267h1.067c0,0 0.133,0 0.133,0.133l4.8,4.533c0.133,0 0,0.4 -0.133,0.4h-5.867c-0.267,0 -0.267,-0.133 -0.267,-0.267v-4.533zM9.733,11.333c0,-1.467 0.933,-2.667 1.867,-2.933 0.133,0 0.133,0 0.267,0l3.067,-0.4v1.6c0,1.467 -0.933,2.667 -1.867,2.933 -0.133,0 -0.133,0 -0.267,0l-3.067,0.533v-1.733zM9.733,13.867l1.467,-0.267c0.533,-0.133 0.933,0.533 0.933,1.2l0.133,0.933 -1.6,0.133c-0.533,0.133 -0.933,-0.4 -0.933,-1.2v-0.8zM4.667,11.333v-1.6l2.667,-0.4c1.067,-0.133 1.733,0.8 1.733,2.267v1.6l-2.667,0.4c-1.067,0 -1.867,-0.933 -1.733,-2.267zM8.933,14v1.2c0,1.067 -0.667,2 -1.333,2.133h-0.133l-2.267,0.267v-1.2c0,-1.067 0.667,-2 1.333,-2.133h0.133l2.267,-0.267z"/>
</vector>

View File

@ -0,0 +1,181 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/scroll_view"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/scan_input"
style="@style/ScanLineTextSearch"
android:layout_width="match_parent"
android:hint="@string/titleExpeditionScan"
android:inputType="text"
android:lines="1"
android:maxLines="1"
/>
<LinearLayout
android:id="@+id/route_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:paddingLeft="@dimen/layout_margin_1"
android:visibility ="gone"
android:paddingRight="@dimen/layout_margin_1"
android:background="@color/verdnatura_pumpkin_orange"
tools:visibility="visible">
<TextView
android:id="@+id/route"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Ruta"
android:textSize="@dimen/body1"
android:textColor="@color/verdnatura_white"
android:paddingLeft="@dimen/layout_margin_min"
android:layout_weight="1.25"
android:gravity="left" />
<TextView
android:id="@+id/agency"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Zona"
android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white"
android:layout_weight="1.25"
android:gravity="left"/>
<TextView
android:id="@+id/date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="fecha"
android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white"
android:layout_weight="1.25"
android:gravity="right"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:paddingLeft="@dimen/layout_margin_1"
android:paddingRight="@dimen/layout_margin_1">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Fecha"
android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white"
android:paddingLeft="@dimen/layout_margin_min"
android:layout_weight="1"
android:gravity="left" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Trabajador"
android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white"
android:layout_weight="1.25"
android:gravity="left"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Estado"
android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white"
android:layout_weight="1.25"
android:gravity="right"/>
</LinearLayout>
<LinearLayout
android:id="@+id/itemcard_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:orientation="vertical"
tools:ignore="ExtraText">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants">
<!--android:id="@+id/itemexpeditionstate_recyclerview"-->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/itemexpeditionlog_recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:visibility="visible"
tools:listitem="@layout/item_expeditionlog_row" />
</RelativeLayout>>
</LinearLayout>
</LinearLayout>
</ScrollView>
' <include
android:id="@+id/main_toolbar"
layout="@layout/toolbar_fragment"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:id="@+id/splash_progress"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/verdnatura_black_8_alpha_6"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:gravity="center">
<com.airbnb.lottie.LottieAnimationView
android:layout_width="wrap_content"
android:layout_height="@dimen/verdnatura_logo_large_height"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/orange_loading"
app:lottie_speed="2" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@ -3,11 +3,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<data>
<variable
name="item"
type="es.verdnatura.presentation.view.feature.delivery.model.DeliveryInfo" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
@ -32,6 +27,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/divider"
android:layout_marginLeft="@dimen/pasilleros_margin_main_menu"
android:layout_marginRight="@dimen/pasilleros_margin_main_menu"
android:padding="@dimen/navigation_row_limit_padding"
>
@ -41,12 +37,13 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="100dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/default_layout_margin"
android:layout_weight="1"
android:text="@string/company"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"
@ -54,12 +51,13 @@
<TextView
android:id="@+id/item_name"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{item.name}"
android:layout_marginLeft="@dimen/layout_margin_6"
android:textColor="@color/verdnatura_white"
android:layout_weight="1"
android:text="@string/company"
android:textColor="@color/verdnatura_pumpkin_orange"
android:textSize="@dimen/body1"
android:gravity="center"
tools:text="@string/company"
/>
@ -71,21 +69,23 @@
android:orientation="horizontal">
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@string/nif"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"
android:textStyle="bold"
android:layout_marginRight="@dimen/default_layout_margin"/>
/>
<TextView
android:id="@+id/item_nif"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{item.nif}"
android:layout_marginLeft="@dimen/layout_margin_6"
android:textColor="@color/verdnatura_white"
android:text="@string/nif"
android:gravity="center"
android:textColor="@color/verdnatura_pumpkin_orange"
android:textSize="@dimen/body1"
tools:text="@string/nif"/>
@ -94,23 +94,130 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="100dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/adress"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"
android:textStyle="bold"
android:layout_marginRight="@dimen/default_layout_margin"/>
/>
<TextView
android:id="@+id/item_adress"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@{item.street}"
android:layout_marginLeft="@dimen/layout_margin_6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/adress"
android:tooltipText="@string/copied"
android:gravity="center"
android:textColor="@color/verdnatura_pumpkin_orange"
android:textSize="@dimen/body1"
tools:text="@string/adress"/>
</LinearLayout>
</LinearLayout>
<View
android:id="@+id/dividertwo"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_white"
android:layout_marginBottom="@dimen/item_list_separation"
android:layout_marginTop="@dimen/item_list_separation"
app:layout_constraintBottom_toBottomOf="@+id/linearLayout"/>
<LinearLayout
android:id="@+id/linearInfoFreelance"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@id/dividertwo"
android:layout_marginLeft="@dimen/pasilleros_margin_main_menu"
android:layout_marginRight="@dimen/pasilleros_margin_main_menu"
android:padding="@dimen/navigation_row_limit_padding"
android:visibility="gone"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/freelance"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"
android:textStyle="bold" />
<TextView
android:id="@+id/freelance_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/verdnatura_pumpkin_orange"
android:textSize="@dimen/body1"
android:gravity="center"
tools:text="@string/freelance"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@string/nif"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"
android:textStyle="bold"
/>
<TextView
android:id="@+id/freelance_nif"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@color/verdnatura_pumpkin_orange"
android:textSize="@dimen/body1"
tools:text="@string/nif"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/adress"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"
android:textStyle="bold"
/>
<TextView
android:id="@+id/freelance_address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/verdnatura_pumpkin_orange"
android:textSize="@dimen/body1"
tools:text="@string/adress"/>
</LinearLayout>
<LinearLayout
@ -132,16 +239,7 @@
android:textStyle="bold"
android:layout_marginRight="@dimen/default_layout_margin"/>
<EditText
android:id="@+id/txtserver"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/verdnatura_white"
android:padding="5dp"
android:ems="10"
android:inputType="text"
android:layout_marginTop="4dp"/>
</LinearLayout>
@ -149,7 +247,6 @@
</LinearLayout>
<include
android:id="@+id/main_toolbar"
layout="@layout/toolbar_fragment"

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
>
<data>
<variable
name="item"
type="es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLog" />
</data>
<LinearLayout
android:id="@+id/item_row_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/verdnatura_black_5"
android:padding="@dimen/layout_margin_1"
android:layout_gravity="center_horizontal"
>
<TextView
android:id="@+id/itemFk"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@{item.created}"
android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white"
android:layout_weight="1"
android:gravity="left"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{item.name}"
android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white"
android:singleLine="true"
android:layout_weight="1.25"
android:gravity="left"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@{item.description}"
android:textSize="@dimen/body2"
android:textColor="@color/verdnatura_white"
android:layout_weight="1.25"
android:gravity="right"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_black_9"/>
</LinearLayout>
</layout>

View File

@ -103,7 +103,6 @@
android:layout_height="match_parent"
android:text="Switch"
android:visibility="gone"
android:tooltipText="@string/allowCheckingMode"
tool:visibility="visible"/>
</LinearLayout>

View File

@ -513,7 +513,7 @@
<string name="entryNextObsers">Siguiente paso: observaciones e imágenes</string>
<string name="nextEntrySummary">Siguiente paso: resumen entrada</string>
<string name="activateModoChecking">Activado modo revisión</string>
<string name="allowCheckingMode">Permite activar modo revisión. Escane primero una matrícula</string>
<string name="allowCheckingMode">Permite activar modo revisión. Escanee primero una matrícula</string>
<string name="codeNotExist">Código no existe. Avise para que reetiqueten producto</string>
<string name="ticketWarning">Urge el ticket que está revisando, la hora de la zona web del ticket ya se ha cerrado</string>
<string name="urgentWarning">Aviso urgente</string>
@ -538,5 +538,8 @@
<string name="nif">NIF</string>
<string name="adress">Dirección</string>
<string name="company">Empresa</string>
<string name="expeditionMarkLost">Si activa este botón marca la expedición como Perdida</string>
<string name="expeditionMarkFound">Si activa este botón marca la expedición como Encontrada</string>
<string name="freelance">Porteador</string>
</resources>

View File

@ -510,6 +510,7 @@
<string name="silexServer">Server Silex</string>
<string name="salixServer">Server Salix</string>
<string name="company">Company</string>
<string name="freelance">Freelance</string>
<string name="deleteWorkForm">Delete work form</string>
<string name="deleteWorkFormConfirmation">¿Do you remove definitely?</string>
<string name="noAssigned">Not assigned</string>
@ -521,6 +522,8 @@
<string name="entryNextObsers">Next step: observations and images</string>
<string name="nextEntrySummary">Next step: entry summary</string>
<string name="activateModoChecking">Activated checking mode</string>
<string name="expeditionMarkLost">If you activate this button, mark the expedition as Found</string>
<string name="expeditionMarkFound">Este botón marca la expedición como Encontrada</string>
<string name="allowCheckingMode">Allow checking mode. Scan firstly the plate and after activate the mode</string>
<string name="codeNotExist">Item code not exists..Please send the label to Computing department</string>
<string name="ticketWarning">Ticket that you are checking is urgent , closure ticket zone web is closed</string>