From 20539a1c0963320737001b664b605234a6d91037 Mon Sep 17 00:00:00 2001 From: Sergio De la torre Date: Tue, 5 Dec 2023 09:57:16 +0100 Subject: [PATCH] refs #6275 modify call --- .../java/es/verdnatura/domain/Extensions.kt | 22 +++- .../java/es/verdnatura/domain/SalixService.kt | 26 ++++- .../delivery/adapters/ExpeditionLogAdapter.kt | 2 + .../fragments/LogExpeditionFragment.kt | 11 +- .../delivery/fragments/TicketsFragment.kt | 31 ++++- .../feature/delivery/model/InfoCompany.kt | 35 ++++-- .../delivery/viewmodels/DeliveryViewModel.kt | 109 ++++++++++++++---- .../fragment/HistoricoArticuloFragment.kt | 4 +- .../fragment/ExpeditionTruckListFragment.kt | 6 +- .../res/layout/item_expeditionlog_row.xml | 2 +- 10 files changed, 198 insertions(+), 50 deletions(-) diff --git a/app/src/main/java/es/verdnatura/domain/Extensions.kt b/app/src/main/java/es/verdnatura/domain/Extensions.kt index 91a8ac72..78ac09ea 100644 --- a/app/src/main/java/es/verdnatura/domain/Extensions.kt +++ b/app/src/main/java/es/verdnatura/domain/Extensions.kt @@ -11,10 +11,10 @@ import java.text.SimpleDateFormat import java.util.Date import java.util.Locale - fun List.formatWithQuotes(): String { return "[" + joinToString(", ") { if (it is String) "\"$it\"" else it.toString() } + "]" } + @RequiresApi(Build.VERSION_CODES.N) fun Any.toast( context: Context?, @@ -38,10 +38,22 @@ fun T?.notNull(f: (it: T) -> Unit) { fun EditText.toInt(): Int { return this.text.toString().toInt() } + fun EditText.toLong(): Long { return this.text.toString().toLong() } -fun toDateString(date: Date):String{ - val format = SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()) - return format.format(date) -} \ No newline at end of file + +fun toDateString(date: Date): String { + val format = SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()) + return format.format(date) +} + +fun String?.isoToString(): String { + return if (!this.isNullOrEmpty() && this!!.contains("T")) { + this.replace("T", " ").substring(0, 10) + } else if (!this.isNullOrEmpty() && !this!!.contains("T")) { + this + } else { + "" + } +} diff --git a/app/src/main/java/es/verdnatura/domain/SalixService.kt b/app/src/main/java/es/verdnatura/domain/SalixService.kt index ae521a8e..8d1fef96 100644 --- a/app/src/main/java/es/verdnatura/domain/SalixService.kt +++ b/app/src/main/java/es/verdnatura/domain/SalixService.kt @@ -13,9 +13,12 @@ import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO import es.verdnatura.presentation.view.feature.collection.SalixSaleQuantity import es.verdnatura.presentation.view.feature.collection.listSaleSalix import es.verdnatura.presentation.view.feature.controlvehiculo.fragment.model.DeviceId +import es.verdnatura.presentation.view.feature.delivery.model.ClientTicket import es.verdnatura.presentation.view.feature.delivery.model.DeliveryInfo -import es.verdnatura.presentation.view.feature.delivery.model.Expedition import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLoadUnload +import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLog +import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoSummary +import es.verdnatura.presentation.view.feature.delivery.model.RouteDelivery import es.verdnatura.presentation.view.feature.delivery.model.RouteInfo import es.verdnatura.presentation.view.feature.diadeventa.model.ItemShelvingSaleDate import es.verdnatura.presentation.view.feature.historicoarticulo.model.ItemHistoricoVO @@ -106,6 +109,22 @@ interface SalixService { @Query("schema") schema: String = "vn" ): Call + @GET("ExpeditionStates/filter") + fun getExpeditionStates( + @Query("filter") filter: Any, + ): Call> + + @GET("Expeditions") + fun getRoutesFromExpedition( + @Query("filter") filter: Any, + ): Call> + + @GET("Routes/getTickets") + fun getTickets( + @Query("filter") filter: Any, + ): Call> + + @POST("Applications/{routine}/execute-proc") fun executeProc( @Path("routine") routine: String, @@ -113,6 +132,11 @@ interface SalixService { @Query("params") params: Any? = null ): Call + @GET("Routes/getExpeditionSummary") + fun routeGetExpeditionSummary( + @Query("routeFk") params: Int, + ): Call> + @POST("Applications/addNoteFromDelivery/execute-proc") fun addNote( @Query("params") params: Any? = null, 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 index e14bfd46..86e090c6 100644 --- 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 @@ -4,6 +4,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import es.verdnatura.databinding.ItemExpeditionlogRowBinding +import es.verdnatura.domain.isoToString import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLog @@ -34,6 +35,7 @@ class ExpeditionLogAdapter( private val res = binding.root.context.resources fun bind(item: ExpeditionInfoLog) { binding.apply { + item.created = item.created.isoToString() this.item = item } } 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 index 5d91ed80..50c79867 100644 --- 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 @@ -13,6 +13,7 @@ import androidx.annotation.RequiresApi import androidx.recyclerview.widget.LinearLayoutManager import es.verdnatura.R import es.verdnatura.databinding.FragmentExpeditionLogDeliveryBinding +import es.verdnatura.domain.isoToString import es.verdnatura.domain.toInt import es.verdnatura.domain.toast import es.verdnatura.presentation.base.BaseFragment @@ -120,7 +121,7 @@ class LogExpeditionFragment( binding.splashProgress.visibility = View.VISIBLE try { - viewModel.expedition_getLog(binding.scanInput.toInt()) + viewModel.expeditionGetLog(binding.scanInput.toInt()) originalItem = binding.scanInput.toInt() binding.mainToolbar.toolbarTitle.text = """${getString(R.string.expedition)} ${binding.scanInput.text}""" @@ -159,7 +160,7 @@ class LogExpeditionFragment( } responseStateAdd.observe(viewLifecycleOwner) { binding.splashProgress.visibility = View.GONE - viewModel.expedition_getLog(originalItem) + viewModel.expeditionGetLog(originalItem) } } } @@ -198,9 +199,9 @@ class LogExpeditionFragment( 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.route.text = routeDelivery.ticket.routeFk.toString() + binding.date.text = routeDelivery.ticket.route.created.isoToString() + binding.agency.text = routeDelivery.ticket.route.agencyMode.agency.name ?: "" binding.scanInput.setText("") } diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/TicketsFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/TicketsFragment.kt index fd6fa0f8..945da8c6 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/TicketsFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/TicketsFragment.kt @@ -547,8 +547,37 @@ class TicketsFragment( } fun showPhones(clientClicked: ClientTicket) { - val phones: MutableList = mutableListOf() + //Tarea 6275 + /*if (clientClicked.clientPhone!=null){ + phones.add( + GeneralItem( + text = "${getString(R.string.Cliente)}:$clientClicked.clientPhone", + code =clientClicked.clientMobile + )) + } + if (clientClicked.addressMobile!=null){ + phones.add( + GeneralItem( + text = "${getString(R.string.Cliente)}:$clientClicked.addressPhone", + code =clientClicked.addressMobile + )) + } + if (clientClicked.addressPhone!=null){ + phones.add( + GeneralItem( + text = "${getString(R.string.Cliente)}:$clientClicked.addressPhone", + code =clientClicked.addressPhone + )) + } + if (!clientClicked.salePersonPhone.isNullOrEmpty()) + phones.add( + GeneralItem( + text = "${getString(R.string.comercial)}:${clientClicked.salePersonPhone}", + code = + clientClicked.salePersonPhone.toString() + ) + )*/ if (clientClicked.Phones != null && clientClicked.Phones!!.isNotEmpty()) { for (t in clientClicked.Phones!!) { 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 fe8991ee..9969af60 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 @@ -38,26 +38,44 @@ class ExpeditionInfoList( var list: List = listOf() ) - - data class ExpeditionInfoLog( - var description: String, + var state: String, var name: String, - var created: String + var created: String, + var routeSalix: RouteSalix ) - - class RouteDeliveryList( var list: List = listOf() ) +data class RouteSalix( + var agencyMode: AgencyModeSalix, + var created: String? +) + +data class AgencyModeSalix( + val agency: Agency +) + +data class Agency( + var name: String? +) + +class TicketSalix( + var id: Int, + var routeFk: Int?, + var route: RouteSalix, + + ) + class RouteDelivery( var id: Int, var created: String, - var name: String + var name: String?, + var ticket: TicketSalix, -) + ) class Expedition( @@ -97,7 +115,6 @@ class ExpeditionInfoPending( ) : Serializable - class ExpeditionSummaryList( var list: List = listOf() ) 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 index 951aa402..c0a3627b 100644 --- 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 @@ -102,11 +102,33 @@ class DeliveryViewModel(val context: Context) : BaseViewModel(context) { }) } - fun expedition_getLog( + fun expeditionGetLog( expedition: Int ) { - - silex.expedition_getLog(expedition) + salix.getExpeditionStates( + """{ + "where": { + "expeditionFk": $expedition + }, + "include": [ + { + "relation": "expeditionStateType", + "scope": { + "fields": [ + "id", + "description" + ] + } + } + ], + "fields": { + "id": true, + "created": true, + "typeFk": true + } + }""".trim() + ) + // silex.expedition_getLog(expedition) .enqueue(object : SilexCallback>(context) { override fun onSuccess(response: Response>) { @@ -147,10 +169,59 @@ class DeliveryViewModel(val context: Context) : BaseViewModel(context) { fun get_routesFromExpedition( expedition: Int ) { - - silex.get_routesFromExpedition(expedition) - .enqueue(object : SilexCallback>(context) { - + salix.getRoutesFromExpedition( + filter = """{ + "where": { + "id": $expedition + }, + "fields": [ + "id", + "ticketFk" + ], + "include": [ + { + "relation": "ticket", + "scope": { + "include": { + "relation": "route", + "scope": { + "fields": [ + "id", + "created", + "agencyModeFk", + "routeFk" + ], + "include": { + "relation": "agencyMode", + "scope": { + "include": { + "relation": "agency", + "scope": { + "fields": [ + "name" + ] + } + }, + "fields": [ + "id", + "agencyFk" + ] + } + } + } + }, + "fields": [ + "id", + "nickname", + "routeFk" + ] + } + } + ] + }""".trim() + ) + // silex.get_routesFromExpedition(expedition) + .enqueue(object : SalixCallback>(context) { override fun onSuccess(response: Response>) { if (response.body() != null) { _routeInfoList.value = @@ -231,8 +302,10 @@ class DeliveryViewModel(val context: Context) : BaseViewModel(context) { fun route_getExpeditionSummary( route: Int ) { - silex.route_getExpeditionSummary(route) - .enqueue(object : SilexCallback>(context) { + //Tarea 6275 + //salix.routeGetExpeditionSummary(route) + silex.route_getExpeditionSummary(route) + .enqueue(object : SalixCallback>(context) { override fun onSuccess(response: Response>) { @@ -280,23 +353,17 @@ class DeliveryViewModel(val context: Context) : BaseViewModel(context) { fun getTickets( routeId: Long ) { + //Tarea 6275 + // salix.getTickets("""{"id":$routeId}""") silex.getTickets(routeId) - .enqueue(object : SilexCallback>(context) { - + .enqueue(object : SalixCallback>(context) { override fun onSuccess(response: Response>) { - - if (response.body() != null) { - _clientTicketList.value = - response.body()?.let { ClientTicketList(it) } - } else { - _clientTicketList.value = ClientTicketList() - } + _clientTicketList.value = + response.body()?.let { ClientTicketList(it) } } override fun onError(t: Throwable) { - // _clientTicketList.value = ClientTicketList() _responseLoadList.value = ResponseItemVO("", true, t.message.toString(), 0) - // super.onError(t) } }) @@ -308,12 +375,10 @@ class DeliveryViewModel(val context: Context) : BaseViewModel(context) { ) { salix.driverRouteEmail(id = routeId, hashMapOf("recipient" to email)) .enqueue(object : SilexCallback(context) { - override fun onSuccess(response: Response) { _response.value = ResponseItemVO(context.getString(R.string.sendRouteOk)) } - override fun onError(t: Throwable) { _response.value = ResponseItemVO() super.onError(t) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/historicoarticulo/fragment/HistoricoArticuloFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/historicoarticulo/fragment/HistoricoArticuloFragment.kt index 608e7f59..3b4f0228 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/historicoarticulo/fragment/HistoricoArticuloFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/historicoarticulo/fragment/HistoricoArticuloFragment.kt @@ -11,6 +11,7 @@ import es.verdnatura.R import es.verdnatura.R.color.verdnatura_pumpkin_orange import es.verdnatura.R.color.verdnatura_white import es.verdnatura.databinding.FragmentHistoricoBinding +import es.verdnatura.domain.isoToString import es.verdnatura.domain.notNull import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.common.OnOptionsSelectedListener @@ -169,8 +170,7 @@ class HistoricoArticuloFragment( listHistoryAux.clear() lista.forEach { if (it.shipped != null) { - it.shipped = - it.shipped!!.replace("T", " ").substring(0, it.shipped!!.length - 5) + it.shipped = it.shipped!!.isoToString() } if (filter.equals("all")) { listHistoric.add(it) diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionTruckListFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionTruckListFragment.kt index a6a4f038..b14e454d 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionTruckListFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionTruckListFragment.kt @@ -11,6 +11,7 @@ import androidx.lifecycle.Observer import androidx.recyclerview.widget.LinearLayoutManager import es.verdnatura.R import es.verdnatura.databinding.FragmentExpeditionTruckListBinding +import es.verdnatura.domain.isoToString import es.verdnatura.domain.notNull import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.common.OnOptionsSelectedListener @@ -115,10 +116,8 @@ class ExpeditionTruckListFragment : private fun printExpeditionList(it: ItemExpeditionTruckList) { binding.splashProgress.visibility = View.GONE val lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false) - // Tarea#4125 Refactor Destino por description - it.list.filter { it.eta != null } - .map { it.eta = it.eta.replace("T", " ").substring(0, it.eta.length - 5) } + .map { it.eta = it.eta.isoToString()} adapter = ExpeditionListAdapter(it.list, onTruckClickListener!!) binding.expeditionTruckRecyclerview.adapter = adapter binding.expeditionTruckRecyclerview.layoutManager = lm @@ -133,7 +132,6 @@ class ExpeditionTruckListFragment : .isNotEmpty() ) { customDialogActionTruck() - } ma.hideKeyboard(customDialogHor.getDestinoEditText()) customDialogHor.dismiss() diff --git a/app/src/main/res/layout/item_expeditionlog_row.xml b/app/src/main/res/layout/item_expeditionlog_row.xml index 1c3c0f78..0723e58f 100644 --- a/app/src/main/res/layout/item_expeditionlog_row.xml +++ b/app/src/main/res/layout/item_expeditionlog_row.xml @@ -47,7 +47,7 @@