diff --git a/.idea/misc.xml b/.idea/misc.xml
index 63d3027a..97b3f254 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -276,7 +276,7 @@
-
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 6d9ceddb..9157c1f8 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -83,12 +83,28 @@
-
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
-
+
+
+
+
@@ -187,7 +203,7 @@
@@ -233,28 +249,30 @@
- {
- "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",
- "cidr.known.project.marker": "true",
- "com.google.services.firebase.aqiPopupShown": "true",
- "last_opened_file_path": "C:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout",
- "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"
+
+}]]>
@@ -262,9 +280,9 @@
+
-
@@ -276,18 +294,18 @@
+
+
+
+
-
-
-
-
+
-
@@ -881,6 +899,11 @@
123
+
+ file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/LogExpeditionFragment.kt
+ 163
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1dc30ef7..4ab1c322 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -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"/>
(val context: Context) : Callback {
}
open fun onSuccess(response: Response) {
- (nameofFunction((this)) + context.getString(R.string.operationSuccessful)).toast(context)
+ // (nameofFunction((this)) + context.getString(R.string.operationSuccessful)).toast(context)
//(context as MobileApplication).playSoundIsOK(true)
}
diff --git a/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt b/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt
index 8e22f660..3825da42 100644
--- a/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt
+++ b/app/src/main/java/es/verdnatura/domain/VerdnaturaService.kt
@@ -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
+ Call>
+
+ @POST("delivery/expedition_getLog")//NO SALIX
+ fun expedition_getLog(
+ @Body vararg params: Any
+ ):
+ Call>
+
+ @POST("delivery/get_routesFromExpedition")//NO SALIX
+ fun get_routesFromExpedition(
+ @Body vararg params: Any
+ ):
+ Call>
+
+ @POST("delivery/expeditionState_add")//NO SALIX
+ fun expeditionState_add(
+ @Body vararg params: Any
+ ):
+ Call
+
+ @POST("delivery/getInfoFreelance")//NO SALIX
+ fun getInfoFreelance(
+ @Body vararg params: Any
+ ):
+ Call>
+
+
}
\ No newline at end of file
diff --git a/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt b/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt
index e4531375..b717fea4 100644
--- a/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt
+++ b/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt
@@ -227,6 +227,7 @@ abstract class BaseFragment(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 -> {
""
}
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoFragment.kt
deleted file mode 100644
index 2295ce68..00000000
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoFragment.kt
+++ /dev/null
@@ -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(InfoViewModel::class) {
-
- private lateinit var customDialog: CustomDialog
- private var sectorListVO: List = listOf()
- private var printersList: List = listOf()
- private var trainsList: List = listOf()
- private var prefs: SharedPreferences? = null
- private var ajustesAdapter: AjustesAdapter? = null
- private var isWorkerAllowed: Boolean = false
- private var itemPackingList: List = 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!!)
-
- }
-
-
- }
-
- }
-}
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoViewModel.kt
deleted file mode 100644
index ae8b41b9..00000000
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/InfoViewModel.kt
+++ /dev/null
@@ -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() }
- val companyInfo: LiveData
- get() = _companyInfo
-
- fun getInfoCompany(
- userId:Int
- ) {
-
- silex.getInfoCompany(userId)
- .enqueue(object : SilexCallback(context) {
-
- override fun onSuccess(response: Response) {
-
- _companyInfo.value =
- response.body()!!
-
- }
-
- override fun onError(t: Throwable) {
- _companyInfo.value =
- DeliveryInfo()
- super.onError(t)
- }
- })
- }
-
-
-}
-
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/adapters/ExpeditionLogAdapter.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/adapters/ExpeditionLogAdapter.kt
new file mode 100644
index 00000000..e14bfd46
--- /dev/null
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/adapters/ExpeditionLogAdapter.kt
@@ -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
+) : RecyclerView.Adapter() {
+
+
+ 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
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/InfoFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/InfoFragment.kt
new file mode 100644
index 00000000..092b1cd9
--- /dev/null
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/InfoFragment.kt
@@ -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(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
+ }
+ }
+ }
+
+ }
+}
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/LogExpeditionFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/LogExpeditionFragment.kt
new file mode 100644
index 00000000..5ee6f0c3
--- /dev/null
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/LogExpeditionFragment.kt
@@ -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(
+ 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 = 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) {
+ adapter = ExpeditionLogAdapter(list)
+ binding.itemexpeditionlogRecyclerview.adapter = adapter
+ binding.itemexpeditionlogRecyclerview.layoutManager =
+ LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/model/InfoCompany.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/model/InfoCompany.kt
index 76000e1d..ff629a17 100644
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/model/InfoCompany.kt
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/model/InfoCompany.kt
@@ -1,10 +1,41 @@
package es.verdnatura.presentation.view.feature.delivery.model
+class FreeLanceDeliveryInfoList(
+ var list: List = listOf()
+)
+class CompanyInfoList(
+ var list: List = listOf()
+)
class DeliveryInfo(
var name: String = "",
var street: String = "",
var city: String = "",
var nif: String = "",
- var postCode: String = ""
-)
\ No newline at end of file
+ var postCode: Int = 0
+)
+
+class ExpeditionInfoList(
+ var list: List = listOf()
+)
+
+class ExpeditionInfoLog(
+ var description: String = "",
+ var name: String = "",
+ var created: String = "",
+ var isError: Boolean = false,
+ var errorMessage: String = ""
+)
+class RouteDeliveryList(
+ var list: List = listOf()
+)
+class RouteDelivery(
+ var id: Int,
+ var created: String,
+ var name: String
+
+)
+
+class Expedition(
+ var id: Int
+)
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/viewmodels/DeliveryViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/viewmodels/DeliveryViewModel.kt
new file mode 100644
index 00000000..b72a735d
--- /dev/null
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/viewmodels/DeliveryViewModel.kt
@@ -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() }
+ val expeditionInfoList: LiveData = _expeditionInfoList
+
+ private val _routeInfoList by lazy { MutableLiveData() }
+ val routeInfoList: LiveData = _routeInfoList
+
+ private val _freelanceInfoList by lazy { MutableLiveData() }
+ val freelanceInfoList: LiveData = _freelanceInfoList
+
+ private val _companyInfoList by lazy { MutableLiveData() }
+ val companyInfoList: LiveData = _companyInfoList
+
+ private val _responseStateAdd by lazy { MutableLiveData() }
+ val responseStateAdd: LiveData
+ get() = _responseStateAdd
+
+
+ fun getInfoCompany(
+ userId: Int
+ ) {
+
+ silex.getInfoCompany(userId)
+ .enqueue(object : SilexCallback>(context) {
+ override fun onSuccess(response: Response>) {
+
+ 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>(context) {
+
+ override fun onSuccess(response: Response>) {
+
+ 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>(context) {
+
+ override fun onSuccess(response: Response>) {
+ 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, state: String) {
+
+ silex.expeditionState_add(expeditions, state)
+ .enqueue(object : SilexCallback(context) {
+ override fun onSuccess(response: Response) {
+ _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>(context) {
+
+ override fun onSuccess(response: Response>) {
+
+ 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)
+
+ }
+ })
+ }
+}
+
+
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt
index d8689414..cdab1505 100644
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt
@@ -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(), 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(), 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(), 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(), 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(), 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(), OnPasillerosItemClickL
}
+
+
}
diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt
index 6c4dabb0..d814ca2a 100644
--- a/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt
+++ b/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroViewModel.kt
@@ -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)
diff --git a/app/src/main/res/drawable/camion.png b/app/src/main/res/drawable/camion.png
new file mode 100644
index 00000000..517e628c
Binary files /dev/null and b/app/src/main/res/drawable/camion.png differ
diff --git a/app/src/main/res/drawable/camion_descarga.png b/app/src/main/res/drawable/camion_descarga.png
new file mode 100644
index 00000000..14a91384
Binary files /dev/null and b/app/src/main/res/drawable/camion_descarga.png differ
diff --git a/app/src/main/res/drawable/ic_delivery_truck.xml b/app/src/main/res/drawable/ic_delivery_truck.xml
new file mode 100644
index 00000000..c76ebf0c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_delivery_truck.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_expedition_log_delivery.xml b/app/src/main/res/layout/fragment_expedition_log_delivery.xml
new file mode 100644
index 00000000..6e45676c
--- /dev/null
+++ b/app/src/main/res/layout/fragment_expedition_log_delivery.xml
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+
+
+
+
+
+ '
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_info.xml b/app/src/main/res/layout/fragment_info_delivery.xml
similarity index 53%
rename from app/src/main/res/layout/fragment_info.xml
rename to app/src/main/res/layout/fragment_info_delivery.xml
index 0b696317..82a4256c 100644
--- a/app/src/main/res/layout/fragment_info.xml
+++ b/app/src/main/res/layout/fragment_info_delivery.xml
@@ -3,11 +3,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
-
-
-
@@ -41,12 +37,13 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
+
>
@@ -71,21 +69,23 @@
android:orientation="horizontal">
+ />
@@ -94,23 +94,130 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -149,7 +247,6 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/toolbar_fragment.xml b/app/src/main/res/layout/toolbar_fragment.xml
index 8d2f0533..a957b390 100644
--- a/app/src/main/res/layout/toolbar_fragment.xml
+++ b/app/src/main/res/layout/toolbar_fragment.xml
@@ -103,7 +103,6 @@
android:layout_height="match_parent"
android:text="Switch"
android:visibility="gone"
- android:tooltipText="@string/allowCheckingMode"
tool:visibility="visible"/>
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index f1ca27f8..8c8f0752 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -513,7 +513,7 @@
Siguiente paso: observaciones e imágenes
Siguiente paso: resumen entrada
Activado modo revisión
- Permite activar modo revisión. Escane primero una matrícula
+ Permite activar modo revisión. Escanee primero una matrícula
Código no existe. Avise para que reetiqueten producto
Urge el ticket que está revisando, la hora de la zona web del ticket ya se ha cerrado
Aviso urgente
@@ -538,5 +538,8 @@
NIF
Dirección
Empresa
+ Si activa este botón marca la expedición como Perdida
+ Si activa este botón marca la expedición como Encontrada
+ Porteador
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c37c2e01..cbcf343f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -510,6 +510,7 @@
Server Silex
Server Salix
Company
+ Freelance
Delete work form
¿Do you remove definitely?
Not assigned
@@ -521,6 +522,8 @@
Next step: observations and images
Next step: entry summary
Activated checking mode
+ If you activate this button, mark the expedition as Found
+ Este botón marca la expedición como Encontrada
Allow checking mode. Scan firstly the plate and after activate the mode
Item code not exists..Please send the label to Computing department
Ticket that you are checking is urgent , closure ticket zone web is closed