refs #4677 delivery→picking

This commit is contained in:
Sergio De la torre 2023-07-27 16:18:34 +02:00
parent c014dbfd2d
commit 0c65053b4f
29 changed files with 2261 additions and 111 deletions

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="21114523025303" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2023-07-20T08:53:09.136304500Z" />
</component>
</project>

View File

@ -82,22 +82,39 @@
</select> </select>
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="fa688d1c-dbee-4864-9e33-4d84ef9afca8" name="Default Changelist" comment="refs #4676 delivery-&gt;picking"> <list default="true" id="fa688d1c-dbee-4864-9e33-4d84ef9afca8" name="Default Changelist" comment="refs #5891 inventoryParking">
<change afterPath="$PROJECT_DIR$/.idea/deploymentTargetDropDown.xml" afterDir="false" /> <change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInputNotes.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/adapters/TicketAdapter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/TicketsFragment.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/model/ClientTicket.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/adapter/AutomaticAdapterTEST.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemFragmentTEST.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_location.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_note.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_note_add.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_phone.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/component_custom_edit_dialog_notes.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_route_config.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_tickets.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_ticket_row.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_ticket_sub_row.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/deploymentTargetDropDown.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.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/beta/release/output-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/app/beta/release/output-metadata.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/beta/release/output-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/app/beta/release/output-metadata.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/app/build.gradle" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/app/build.gradle" 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/SalixService.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/SalixService.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/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/common/NetworkUtils.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/common/NetworkUtils.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/common/UICallbacks.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/common/UICallbacks.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/adapters/ExpeditionSummaryAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/adapters/ExpeditionSummaryAdapter.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/common/UIExtensions.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/common/UIExtensions.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/adapters/RouteAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/adapters/RouteAdapter.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/RoutesFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/RoutesFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/LoadUnloadFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/LoadUnloadFragment.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/viewmodels/DeliveryViewModel.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/login/fragment/LoginFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt" 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/ubicador/fragment/AutomaticAddItemFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemFragment.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_expedition_summary.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_expedition_summary.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/res/layout/item_escaner_row.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_escaner_row.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_route.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_route.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/layout/item_route_row.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_route_row.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/res/values-fr/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values-fr/strings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values-pt/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values-pt/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> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -108,7 +125,7 @@
<component name="CodeInsightWorkspaceSettings"> <component name="CodeInsightWorkspaceSettings">
<option name="optimizeImportsOnTheFly" value="true" /> <option name="optimizeImportsOnTheFly" value="true" />
</component> </component>
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[21114523025303]" /> <component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[C:\Users\sergiodt\.android\avd\Pixel_6_API_30.avd]" />
<component name="ExportToHTMLSettings"> <component name="ExportToHTMLSettings">
<option name="OPEN_IN_BROWSER" value="true" /> <option name="OPEN_IN_BROWSER" value="true" />
<option name="OUTPUT_DIRECTORY" value="C:\Program Files\Android\Android Studio\inspections" /> <option name="OUTPUT_DIRECTORY" value="C:\Program Files\Android\Android Studio\inspections" />
@ -253,41 +270,41 @@
<option name="showLibraryContents" value="true" /> <option name="showLibraryContents" value="true" />
<option name="showMembers" value="true" /> <option name="showMembers" value="true" />
</component> </component>
<component name="PropertiesComponent"><![CDATA[{ <component name="PropertiesComponent">{
"keyToString": { &quot;keyToString&quot;: {
"ApkExportedModule": "Gestor_Almacén.app", &quot;ApkExportedModule&quot;: &quot;Gestor_Almacén.app&quot;,
"ExportApk.ApkPathForGestor_Almacén.app": "C:\\Users\\sergiodt\\AndroidStudioProjects\\vn-warehouseManager\\app", &quot;ExportApk.ApkPathForGestor_Almacén.app&quot;: &quot;C:\\Users\\sergiodt\\AndroidStudioProjects\\vn-warehouseManager\\app&quot;,
"PROJECT_TRUSTED_KEY": "true", &quot;PROJECT_TRUSTED_KEY&quot;: &quot;true&quot;,
"RunOnceActivity.OpenProjectViewOnStart": "true", &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
"RunOnceActivity.ShowReadmeOnStart": "true", &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
"RunOnceActivity.cidr.known.project.marker": "true", &quot;RunOnceActivity.cidr.known.project.marker&quot;: &quot;true&quot;,
"SHARE_PROJECT_CONFIGURATION_FILES": "true", &quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
"ScreenRecorder.SavePath": "C:\\Users\\sergiodt\\device-2023-03-17-114045.mp4", &quot;ScreenRecorder.SavePath&quot;: &quot;C:\\Users\\sergiodt\\device-2023-03-17-114045.mp4&quot;,
"android-custom-viewC:/Users/sergiodt/.gradle/caches/modules-2/files-2.1/androidx.recyclerview/recyclerview/1.2.1/f0f93e67af3f7417bdd560d5142f6dec4fe629c3/recyclerview-1.2.1-sources.jar!/androidx/recyclerview/widget/RecyclerView.java_SELECTED": "RecyclerView", &quot;android-custom-viewC:/Users/sergiodt/.gradle/caches/modules-2/files-2.1/androidx.recyclerview/recyclerview/1.2.1/f0f93e67af3f7417bdd560d5142f6dec4fe629c3/recyclerview-1.2.1-sources.jar!/androidx/recyclerview/widget/RecyclerView.java_SELECTED&quot;: &quot;RecyclerView&quot;,
"cidr.known.project.marker": "true", &quot;cidr.known.project.marker&quot;: &quot;true&quot;,
"com.developerphil.adbidea.selecteddevices": "21114523025303", &quot;com.developerphil.adbidea.selecteddevices&quot;: &quot;21114523025303&quot;,
"com.google.services.firebase.aqiPopupShown": "true", &quot;com.google.services.firebase.aqiPopupShown&quot;: &quot;true&quot;,
"last_directory_selection": "C:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable", &quot;last_directory_selection&quot;: &quot;C:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable&quot;,
"last_opened_file_path": "C:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable", &quot;last_opened_file_path&quot;: &quot;C:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout&quot;,
"project.structure.last.edited": "Project", &quot;project.structure.last.edited&quot;: &quot;Project&quot;,
"project.structure.proportion": "0.17", &quot;project.structure.proportion&quot;: &quot;0.17&quot;,
"project.structure.side.proportion": "0.2", &quot;project.structure.side.proportion&quot;: &quot;0.2&quot;,
"run.code.analysis.last.selected.profile": "pProject Default", &quot;run.code.analysis.last.selected.profile&quot;: &quot;pProject Default&quot;,
"settings.editor.selected.configurable": "reference.settingsdialog.project.gradle" &quot;settings.editor.selected.configurable&quot;: &quot;reference.settingsdialog.project.gradle&quot;
}, },
"keyToStringList": { &quot;keyToStringList&quot;: {
"ExportApk.BuildVariants": [ &quot;ExportApk.BuildVariants&quot;: [
"generalRelease" &quot;betaRelease&quot;
], ],
"com.android.tools.idea.sqlite.queryhistory": [ &quot;com.android.tools.idea.sqlite.queryhistory&quot;: [
"select * from expedition e where e.addressFk= 34915", &quot;select * from expedition e where e.addressFk= 34915&quot;,
"select * from expedition e where e.id= 6872921", &quot;select * from expedition e where e.id= 6872921&quot;,
"select count(*) from expeditionPending\n", &quot;select count(*) from expeditionPending\n&quot;,
"select count(*) from expedition\n", &quot;select count(*) from expedition\n&quot;,
"select count(*) from expedition" &quot;select count(*) from expedition&quot;
] ]
} }
}]]></component> }</component>
<component name="PsdUISettings"> <component name="PsdUISettings">
<option name="MODULE_TAB" value="Properties" /> <option name="MODULE_TAB" value="Properties" />
<option name="LAST_EDITED_SIGNING_CONFIG" value="debug" /> <option name="LAST_EDITED_SIGNING_CONFIG" value="debug" />
@ -295,8 +312,8 @@
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS"> <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\res\layout" />
<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\xml" /> <recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\xml" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\raw" /> <recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\raw" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\java\es\verdnatura\presentation\view\feature" /> <recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\java\es\verdnatura\presentation\view\feature" />
@ -316,11 +333,11 @@
<recent name="es.verdnatura.presentation.view.feature.buffer.fragment" /> <recent name="es.verdnatura.presentation.view.feature.buffer.fragment" />
</key> </key>
<key name="CopyKotlinDeclarationDialog.RECENTS_KEY"> <key name="CopyKotlinDeclarationDialog.RECENTS_KEY">
<recent name="es.verdnatura.presentation.view.component" />
<recent name="es.verdnatura.presentation.view.feature.ubicador.adapter" />
<recent name="es.verdnatura.presentation.view.feature.ubicador.fragment" />
<recent name="es.verdnatura.presentation.view.feature.delivery.adapters" /> <recent name="es.verdnatura.presentation.view.feature.delivery.adapters" />
<recent name="es.verdnatura.presentation.view.feature.delivery.fragments" /> <recent name="es.verdnatura.presentation.view.feature.delivery.fragments" />
<recent name="es.verdnatura.presentation.view.feature.inventario.fragment" />
<recent name="es.verdnatura.presentation.view.feature.packingHolland" />
<recent name="es.verdnatura.domain" />
</key> </key>
</component> </component>
<component name="RunManager" selected="Android App.app"> <component name="RunManager" selected="Android App.app">
@ -430,34 +447,6 @@
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1618825571576</updated> <updated>1618825571576</updated>
</task> </task>
<task id="LOCAL-00122" summary="refs #4940 packingHolland">
<created>1679984799909</created>
<option name="number" value="00122" />
<option name="presentableId" value="LOCAL-00122" />
<option name="project" value="LOCAL" />
<updated>1679984799909</updated>
</task>
<task id="LOCAL-00123" summary="version 23.10 General">
<created>1679984837368</created>
<option name="number" value="00123" />
<option name="presentableId" value="LOCAL-00123" />
<option name="project" value="LOCAL" />
<updated>1679984837368</updated>
</task>
<task id="LOCAL-00124" summary="refs #4765 Refactor">
<created>1681201009353</created>
<option name="number" value="00124" />
<option name="presentableId" value="LOCAL-00124" />
<option name="project" value="LOCAL" />
<updated>1681201009354</updated>
</task>
<task id="LOCAL-00125" summary="refs #4830">
<created>1681292397190</created>
<option name="number" value="00125" />
<option name="presentableId" value="LOCAL-00125" />
<option name="project" value="LOCAL" />
<updated>1681292397191</updated>
</task>
<task id="LOCAL-00126" summary="refs varios"> <task id="LOCAL-00126" summary="refs varios">
<created>1681967763126</created> <created>1681967763126</created>
<option name="number" value="00126" /> <option name="number" value="00126" />
@ -773,7 +762,35 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1689657014312</updated> <updated>1689657014312</updated>
</task> </task>
<option name="localTasksCounter" value="171" /> <task id="LOCAL-00171" summary="refs #4676 delivery-&gt;picking">
<created>1689846753642</created>
<option name="number" value="00171" />
<option name="presentableId" value="LOCAL-00171" />
<option name="project" value="LOCAL" />
<updated>1689846753642</updated>
</task>
<task id="LOCAL-00172" summary="refs ##5613 login">
<created>1689846825769</created>
<option name="number" value="00172" />
<option name="presentableId" value="LOCAL-00172" />
<option name="project" value="LOCAL" />
<updated>1689846825769</updated>
</task>
<task id="LOCAL-00173" summary="version 23.28 general y beta">
<created>1689846845251</created>
<option name="number" value="00173" />
<option name="presentableId" value="LOCAL-00173" />
<option name="project" value="LOCAL" />
<updated>1689846845251</updated>
</task>
<task id="LOCAL-00174" summary="refs #5891 inventoryParking">
<created>1690456054648</created>
<option name="number" value="00174" />
<option name="presentableId" value="LOCAL-00174" />
<option name="project" value="LOCAL" />
<updated>1690456054648</updated>
</task>
<option name="localTasksCounter" value="175" />
<servers /> <servers />
</component> </component>
<component name="Vcs.Log.History.Properties"> <component name="Vcs.Log.History.Properties">
@ -874,9 +891,6 @@
</component> </component>
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" /> <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
<MESSAGE value="refs #4940" />
<MESSAGE value="refs #5513 testBack" />
<MESSAGE value="refs #5618 traducción" />
<MESSAGE value="refs lentitud al leer codigos y fallo al volver atrás" /> <MESSAGE value="refs lentitud al leer codigos y fallo al volver atrás" />
<MESSAGE value="refs #4678 preparar fallo conexión" /> <MESSAGE value="refs #4678 preparar fallo conexión" />
<MESSAGE value="version alfa" /> <MESSAGE value="version alfa" />
@ -899,7 +913,10 @@
<MESSAGE value="refs #5891" /> <MESSAGE value="refs #5891" />
<MESSAGE value="versionBeta 23.28 renovarToken" /> <MESSAGE value="versionBeta 23.28 renovarToken" />
<MESSAGE value="refs #4676 delivery-&gt;picking" /> <MESSAGE value="refs #4676 delivery-&gt;picking" />
<option name="LAST_COMMIT_MESSAGE" value="refs #4676 delivery-&gt;picking" /> <MESSAGE value="refs ##5613 login" />
<MESSAGE value="version 23.28 general y beta" />
<MESSAGE value="refs #5891 inventoryParking" />
<option name="LAST_COMMIT_MESSAGE" value="refs #5891 inventoryParking" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>

View File

@ -11,8 +11,8 @@
"type": "SINGLE", "type": "SINGLE",
"filters": [], "filters": [],
"attributes": [], "attributes": [],
"versionCode": 216, "versionCode": 220,
"versionName": "23.28Beta", "versionName": "23.30Beta",
"outputFile": "app-beta-release.apk" "outputFile": "app-beta-release.apk"
} }
], ],

View File

@ -8,7 +8,9 @@ import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
import es.verdnatura.presentation.view.feature.collection.SalixSaleQuantity import es.verdnatura.presentation.view.feature.collection.SalixSaleQuantity
import es.verdnatura.presentation.view.feature.collection.listSaleSalix import es.verdnatura.presentation.view.feature.collection.listSaleSalix
import es.verdnatura.presentation.view.feature.delivery.model.RouteInfo
import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.ShelvingLogSalix import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.ShelvingLogSalix
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventoryParking
import es.verdnatura.presentation.view.feature.login.model.DataUserSalix import es.verdnatura.presentation.view.feature.login.model.DataUserSalix
import es.verdnatura.presentation.view.feature.login.model.LoginSalixVO import es.verdnatura.presentation.view.feature.login.model.LoginSalixVO
import es.verdnatura.presentation.view.feature.login.model.OperatorSalix import es.verdnatura.presentation.view.feature.login.model.OperatorSalix
@ -240,6 +242,23 @@ interface SalixService {
): ):
Call<Any> Call<Any>
@POST("ItemShelvings/getInventory")
fun getInventoryParking(
@Query("parkingFrom") parkingFrom: String,
@Query("parkingTo") parkingTo: String
):
Call<List<ItemInventoryParking>>
@POST("Routes/{id}")
fun routeUpdate(
@Path("id") id: Number,
@Body route: RouteInfo,
):
Call<Any>
} }
interface SalixServiceSend { interface SalixServiceSend {

View File

@ -877,4 +877,14 @@ interface VerdnaturaService {
fun getRoutes( fun getRoutes(
@Body vararg params: Any @Body vararg params: Any
): Call<MutableList<RouteInfo>> ): Call<MutableList<RouteInfo>>
@POST("/delivery/addNote")
fun addNotes(
@Body vararg params: Any
): Call<Any>
@POST("/delivery/get_tickets")
fun getTickets(
@Body vararg params: Any
): Call<MutableList<ClientTicket>>
} }

View File

@ -6,6 +6,7 @@ import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO
import es.verdnatura.presentation.view.feature.articulo.model.ItemCardRowVO import es.verdnatura.presentation.view.feature.articulo.model.ItemCardRowVO
import es.verdnatura.presentation.view.feature.articulo.model.ItemProposal import es.verdnatura.presentation.view.feature.articulo.model.ItemProposal
import es.verdnatura.presentation.view.feature.buscaritem.model.ItemLocationVO import es.verdnatura.presentation.view.feature.buscaritem.model.ItemLocationVO
import es.verdnatura.presentation.view.feature.delivery.model.ClientTicket
import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoSummary import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoSummary
import es.verdnatura.presentation.view.feature.delivery.model.RouteInfo import es.verdnatura.presentation.view.feature.delivery.model.RouteInfo
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
@ -57,6 +58,10 @@ interface OnItemImageRouteRowClickListener {
fun onItemImageRouteRowClickListener(item: RouteInfo, action: String) fun onItemImageRouteRowClickListener(item: RouteInfo, action: String)
} }
interface OnItemButtonTicketRowClickListener {
fun onItemButtonTicketRowClickListener(item: ClientTicket, action: String)
}
interface OnAddressRowClickListener { interface OnAddressRowClickListener {
fun onAddressRowClickListener(item: ExpeditionInfoSummary) fun onAddressRowClickListener(item: ExpeditionInfoSummary)
} }

View File

@ -3,9 +3,12 @@ package es.verdnatura.presentation.common
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.media.AudioManager import android.media.AudioManager
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.text.InputType import android.text.InputType
import android.view.View import android.view.View
@ -179,3 +182,10 @@ val AudioManager.mediaMaxVolume: Int
// Extension property to get media/music current volume index // Extension property to get media/music current volume index
val AudioManager.mediaCurrentVolume: Int val AudioManager.mediaCurrentVolume: Int
get() = this.getStreamVolume(AudioManager.STREAM_MUSIC) get() = this.getStreamVolume(AudioManager.STREAM_MUSIC)
fun PackageManager.getPackageInfoCompat(packageName: String, flags: Int = 0): PackageInfo =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
getPackageInfo(packageName, PackageManager.PackageInfoFlags.of(flags.toLong()))
} else {
@Suppress("DEPRECATION") getPackageInfo(packageName, flags)
}

View File

@ -0,0 +1,88 @@
package es.verdnatura.presentation.view.component
import android.app.Dialog
import android.content.Context
import android.text.InputType
import android.view.View
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.textfield.TextInputEditText
import es.verdnatura.R
import es.verdnatura.databinding.ComponentCustomEditDialogBinding
import es.verdnatura.databinding.ComponentCustomEditDialogNotesBinding
class CustomDialogInputNotes(context: Context) : Dialog(context, R.style.DialogTheme) {
private var binding: ComponentCustomEditDialogNotesBinding =
ComponentCustomEditDialogNotesBinding.inflate(layoutInflater)
init {
setContentView(binding.root)
}
fun getEditText(): TextInputEditText {
return binding.customDialogValue
}
fun getValue(): String {
return binding.customDialogValue.text.toString()
}
fun setValue(value: String): CustomDialogInputNotes {
binding.customDialogValue.setText(value)
binding.customDialogValue.visibility = View.VISIBLE
return this
}
fun setTitle(title: String): CustomDialogInputNotes {
binding.customDialogTitle.visibility = View.VISIBLE
binding.customDialogTitle.text = title
return this
}
fun setDescription(description: String): CustomDialogInputNotes {
binding.customDialogDescription.visibility = View.VISIBLE
binding.customDialogDescription.text = description
return this
}
fun setOkButton(text: String, onButtonClicked: () -> Unit): CustomDialogInputNotes {
binding.customDialogButtonOk.visibility = View.VISIBLE
binding.customDialogButtonOk.text = text
binding.customDialogButtonOk.setOnClickListener { onButtonClicked() }
return this
}
fun setKoButton(text: String, onButtonClicked: () -> Unit): CustomDialogInputNotes {
binding.customDialogButtonKo.visibility = View.VISIBLE
binding.customDialogButtonKo.text = text
binding.customDialogButtonKo.setOnClickListener { onButtonClicked() }
return this
}
fun setInputText(typeClassNumber: Int = InputType.TYPE_CLASS_NUMBER) {
binding.customDialogValue.inputType = typeClassNumber
}
fun setFocusText() {
binding.customDialogValue.requestFocus()
}
fun getRecyclerView() : RecyclerView {
return binding.recyclerItems
}
}

View File

@ -0,0 +1,159 @@
package es.verdnatura.presentation.view.feature.delivery.adapters
import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R
import es.verdnatura.databinding.ItemTicketRowBinding
import es.verdnatura.presentation.common.OnItemButtonTicketRowClickListener
import es.verdnatura.presentation.view.feature.delivery.model.ClientTicket
class TicketAdapter(
private var items: MutableList<ClientTicket>,
private val onItemButtonTicketRowClickListener: OnItemButtonTicketRowClickListener,
) : RecyclerView.Adapter<TicketAdapter.ItemHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder {
// items = setHeaders(items)
return ItemHolder(
ItemTicketRowBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
)
}
fun setHeaders(list: MutableList<ClientTicket>): MutableList<ClientTicket> {
/* var prevCreated = ""
for (route in list) {
if (route.created.toString() != prevCreated) {
route.header = true
prevCreated = route.created.toString()
}
}*/
return list
}
fun updateList(newList: MutableList<ClientTicket>) {
// items = setHeaders(newList)
notifyDataSetChanged()
}
override fun getItemCount() = items.size
override fun onBindViewHolder(holder: ItemHolder, position: Int) {
// items = setHeaders(items)
holder.bind(items[position])
/* holder.binding.root.setOnClickListener {
//onAddressRowClickListener.onAddressRowClickListener(items[position])
}*/
val viewTickets = holder.itemView.findViewById<LinearLayout>(R.id.layoutTickets)
viewTickets.removeAllViews()
// Inflate and add views for each ticket
val inflater = LayoutInflater.from(holder.itemView.context)
items[position].tickets.forEach { ticket ->
val v = inflater.inflate(R.layout.item_ticket_sub_row, null)
val txtTicket = v.findViewById<TextView>(R.id.txtTicket)
val txtPackage = v.findViewById<TextView>(R.id.packages)
val txtPackingType = v.findViewById<TextView>(R.id.packingType)
// Bind the ticket data to the views
txtTicket.text = ticket.Id.toString()
txtPackage.text = ticket.Packages.toString()
txtPackingType.text = ticket.PackingType
viewTickets.addView(v)
}
}
inner class ItemHolder(
val binding: ItemTicketRowBinding
) : RecyclerView.ViewHolder(binding.root) {
private val res = binding.root.context.resources
fun bind(item: ClientTicket) {
binding.apply {
/* showTickets.setOnClickListener {
OnItemImageRouteRowClickListener.onItemImageRouteRowClickListener(item,"showTickets")
}
imageLoadVan.setOnClickListener {
OnItemImageRouteRowClickListener.onItemImageRouteRowClickListener(item,"loadVan")
}
linearLayoutShowTickets.setOnClickListener {
OnItemImageRouteRowClickListener.onItemImageRouteRowClickListener(item,"showTickets")
}
linearLayoutLoadVan.setOnClickListener {
OnItemImageRouteRowClickListener.onItemImageRouteRowClickListener(item,"loadVan")
}
if (item.header){
headerRouteLayout.visibility = View.VISIBLE
headerRoute.text = toDateString(item.created)
}else{
headerRouteLayout.visibility = View.GONE
}*/
if (!item.Note.isNullOrEmpty()) {
note.setColorFilter(
ContextCompat.getColor(
note.context,
R.color.verdnatura_dark_sky_blue
)
)
} else {
note.setColorFilter(
ContextCompat.getColor(
note.context,
R.color.verdnatura_white
)
)
}
note.setOnClickListener {
onItemButtonTicketRowClickListener.onItemButtonTicketRowClickListener(
item,
"note"
)
}
addNote.setOnClickListener {
onItemButtonTicketRowClickListener.onItemButtonTicketRowClickListener(
item,
"addNote"
)
}
phone.setOnClickListener {
onItemButtonTicketRowClickListener.onItemButtonTicketRowClickListener(
item,
"call"
)
}
map.setOnClickListener {
onItemButtonTicketRowClickListener.onItemButtonTicketRowClickListener(
item,
"map"
)
}
unload.setOnClickListener {
onItemButtonTicketRowClickListener.onItemButtonTicketRowClickListener(
item,
"unload"
)
}
this.item = item
}
}
}
}

View File

@ -11,6 +11,7 @@ import android.view.View
import android.widget.ImageView import android.widget.ImageView
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.google.gson.Gson
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentRouteBinding import es.verdnatura.databinding.FragmentRouteBinding
import es.verdnatura.domain.notNull import es.verdnatura.domain.notNull
@ -226,7 +227,11 @@ class RoutesFragment(
"showTickets" -> { "showTickets" -> {
//println("La ruta de los tickets es: " + item.id) //println("La ruta de los tickets es: " + item.id)
openAppDelivery(item) //openAppDelivery(item)
ma.onPasillerosItemClickListener(
PasillerosItemVO(title = getString(R.string.tickets)),
Gson().toJson(item)
)
} }
} }

View File

@ -0,0 +1,509 @@
package es.verdnatura.presentation.view.feature.delivery.fragments
import android.Manifest
import android.app.Activity
import android.app.AlertDialog
import android.app.TimePickerDialog
import android.content.Intent
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.graphics.drawable.Drawable
import android.net.Uri
import android.os.Build
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.annotation.RequiresApi
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.gson.Gson
import es.verdnatura.R
import es.verdnatura.databinding.FragmentTicketsBinding
import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.*
import es.verdnatura.presentation.view.component.CustomDialogInputNotes
import es.verdnatura.presentation.view.feature.delivery.adapters.TicketAdapter
import es.verdnatura.presentation.view.feature.delivery.model.ClientTicket
import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLoadUnload
import es.verdnatura.presentation.view.feature.delivery.model.RouteInfo
import es.verdnatura.presentation.view.feature.delivery.model.Ticket
import es.verdnatura.presentation.view.feature.delivery.viewmodels.DeliveryViewModel
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import java.util.Calendar
class TicketsFragment(
var title: String = "",
var route: RouteInfo
) : BaseFragment<FragmentTicketsBinding, DeliveryViewModel>(
DeliveryViewModel::class
) {
private var adapter: TicketAdapter? = null
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
private lateinit var myListClientTicket: MutableList<ClientTicket>
companion object {
fun newInstance(title: String, entryPoint: String) =
TicketsFragment(title, Gson().fromJson(entryPoint, RouteInfo::class.java))
private const val REQUEST_CALL_PERMISSION = 1
}
override fun getLayoutId(): Int = R.layout.fragment_tickets
@RequiresApi(Build.VERSION_CODES.O)
override fun init() {
super.init()
setEvents()
setToolBar()
binding.mainToolbar.toolbarTitle.text = route.name
println("La ruta es: " + route.toString())
callBack(viewModel.getTickets(route.id))
}
private fun setTitle() {
binding.mainToolbar.toolbarSubtitle.text =
if (::myListClientTicket.isInitialized) {
myListClientTicket.filter { it.Signed == 1 }.size.toString() + "/" + myListClientTicket.size
} else {
"0/0"
}
}
private fun callBack(callBackEndPoint: Unit) {
binding.splashProgress.visibility = View.VISIBLE
return callBackEndPoint
}
@RequiresApi(Build.VERSION_CODES.O)
private fun setToolBar() {
ma.hideBottomNavigation(View.GONE)
binding.mainToolbar.toolbarSubtitle.setTextColor(requireContext().getColor((R.color.verdnatura_pumpkin_orange)))
binding.mainToolbar.toolbarTitle.visibility = View.VISIBLE
binding.mainToolbar.toolbarSubtitle.visibility = View.VISIBLE
binding.mainToolbar.toolbarIcons.visibility = View.VISIBLE
val listIcons: ArrayList<ImageView> = ArrayList()
val iconSettings = ImageView(context)
iconSettings.setImageResource(R.drawable.ic_setting_ui)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
iconSettings.tooltipText = getTooltip(R.drawable.ic_setting_ui)
}
listIcons.add(iconSettings)
binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) {
when (item) {
iconSettings.drawable -> {
/* //binding.itemcardLayout.visibility = View.GONE
binding.itemcardLayout.visibility = View.GONE
binding.ticketsRecyclerview.visibility = View.GONE
binding.layoutKmHour.visibility = View.VISIBLE
binding.kmStart.setText(binding.kmStart.toString())
binding.kmEnd.setText(binding.kmEnd.toString())
*/
}
}
}
})
binding.mainToolbar.toolbarIcons.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
binding.mainToolbar.toolbarIcons.visibility = View.VISIBLE
}
private fun openAppDelivery(item: RouteInfo) {
val i = Intent()
val manager: PackageManager = requireContext().packageManager
val info: PackageInfo = manager.getPackageInfo(requireContext().packageName, 0)
val version = info.versionName
try {
if (version.contains("Beta")) {
i.setClassName(
"verdnatura.es.repartoverdnatura.sfusion",
"verdnatura.es.repartoverdnatura.Tickets"
)
} else {
i.setClassName(
"verdnatura.es.repartoverdnatura",
"verdnatura.es.repartoverdnatura.Tickets"
)
}
i.putExtra("plate", item.numberPlate)
i.putExtra("id", item.id.toString())
i.putExtra("agency", item.name)
i.putExtra("hour", item.hour)
i.putExtra("date", item.created.toString())
i.putExtra("m3", item.m3.toString())
i.putExtra("driver", item.driver)
i.putExtra("kmStart", item.kmStart.toString())
i.putExtra("kmEnd", item.kmEnd.toString())
i.putExtra("dEnd", item.finished)
i.putExtra("dStart", item.started)
i.putExtra("app", "picking")
startActivity(i)
} catch (e: Exception) {
getString(R.string.deliveryApp).toast(context)
}
}
private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener {
if (binding.layoutKmHour.visibility == View.VISIBLE) {
binding.ticketsRecyclerview.visibility = View.VISIBLE
binding.itemcardLayout.visibility = View.VISIBLE
binding.layoutKmHour.visibility = View.GONE
} else {
requireActivity().onBackPressed()
}
binding.saveButton.setOnClickListener {
binding.splashProgress.visibility = View.VISIBLE
route.kmStart = binding.kmStart.text.toString().toLong()
route.kmEnd = binding.kmEnd.text.toString().toLong()
viewModel.routeUpdate(route)
}
binding.hourInit.setOnFocusChangeListener { view, b ->
if (b) {
showTimePicker(binding.hourInit)
}
}
binding.hourInit.setText("asdfasdf")
binding.buttonPicker.setOnClickListener {
println("hour start")
// showTimePicker(binding.hourEnd)
println("hour start")
}
binding.hourEnd.setOnClickListener {
println("hour end")
// showTimePicker(binding.hourEnd)
}
}
/* binding.scanInput.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
val searchText = s.toString().lowercase()
val filteredList = myListClientTicket.filter { route ->
route.toString().lowercase().contains(searchText)
}.toMutableList()
adapter!!.updateList(filteredList)
}
override fun afterTextChanged(s: Editable?) {
}
})
*/
}
@RequiresApi(Build.VERSION_CODES.O)
override fun observeViewModel() {
with(viewModel) {
loadRouteList.observe(viewLifecycleOwner) { event ->
event.getContentIfNotHandled().notNull {
binding.splashProgress.visibility = View.GONE
// createListRoutes(it.list)
}
}
clientTicketList.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
if (it.list.isNotEmpty()) {
createLisTickets(it.list)
setTitle()
}
}
responseStateAdd.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
}
response.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
}
}
}
private fun createLisTickets(list: MutableList<ClientTicket>) {
var myListClientTicketAux = list.distinctBy { it.Address }
for (clientTicket in myListClientTicketAux) {
val addressId = clientTicket.Address
val ticketsForClient = list.filter { it.Address == addressId }
val mappedTickets = ticketsForClient.map { ticket ->
Ticket(ticket.Id, ticket.Packages, ticket.PackingType, ticket.Note)
}
clientTicket.tickets = mappedTickets as MutableList<Ticket>
}
myListClientTicket = myListClientTicketAux as MutableList<ClientTicket>
for (m in myListClientTicket) {
println("address" + m.Address)
for (mt in m.tickets) {
println("address ${m.Address}tickets" + mt.Id)
}
}
adapter = TicketAdapter(
myListClientTicket,
object : OnItemButtonTicketRowClickListener {
override fun onItemButtonTicketRowClickListener(
item: ClientTicket,
action: String
) {
when (action) {
"unload" -> {
ma.onPasillerosItemClickListener(
PasillerosItemVO(title = getString(R.string.titleDeliverySummary)),
route.id.toString()
)
}
"map" -> {
goMaps(item)
}
"note" -> {
showNotes(item)
}
"addNote" -> {
addNotes(item)
}
"call" -> {
showPhones(item)
}
}
}
},
)
binding.ticketsRecyclerview.addItemDecoration(
ItemDescorationCustomized(
resources.getDimensionPixelSize(
R.dimen.vertical_spacing
)
)
)
binding.ticketsRecyclerview.adapter = adapter
binding.ticketsRecyclerview.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
adapter!!.notifyDataSetChanged()
}
private fun addNotes(itemClient: ClientTicket) {
var customDialogInput = CustomDialogInputNotes(requireContext())
customDialogInput.setTitle("Notas")
var adapter: GeneralAdapter
var itemsNotes: List<GeneralItem> = listOf(
GeneralItem(code = "", text = getString(R.string.clientNot)),
GeneralItem(code = "", text = getString(R.string.clientAuthorization)),
GeneralItem(code = "", text = getString(R.string.clientReject)),
GeneralItem(code = "", text = getString(R.string.packagesMissing)),
GeneralItem(code = "", text = getString(R.string.clientDevolution)),
)
adapter = GeneralAdapter(itemsNotes, object : OnGeneralItemRowClickListener {
override fun OnGeneralItemRowClickListener(item: GeneralItem) {
itemClient.tickets.forEach { listClient ->
listClient.Note = customDialogInput.getValue()
}
customDialogInput.setValue(item.text.toString())
}
})
customDialogInput.getRecyclerView().adapter = adapter
customDialogInput.getRecyclerView().layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
customDialogInput.setOkButton(getString(R.string.save)) {
viewModel.addNotes(itemClient.tickets, customDialogInput.getValue())
}
.setKoButton(getString(R.string.cancel)) {
customDialogInput.cancel()
customDialogInput.dismiss()
}
customDialogInput.show()
/* val alertDialogBuilder = AlertDialog.Builder(context)
alertDialogBuilder.setTitle("Ingrese su texto")
val editText = EditText(context)
alertDialogBuilder.setView(editText)
alertDialogBuilder.setPositiveButton("Aceptar") { _, _ ->
val userInputText = editText.text.toString()
// Aquí puedes hacer lo que desees con el texto ingresado por el usuario
// Por ejemplo, mostrarlo en un Toast, guardarlo en una base de datos, etc.
}
alertDialogBuilder.setNegativeButton("Cancelar") { dialog, _ ->
dialog.cancel()
}
val alertDialog = alertDialogBuilder.create()
alertDialog.show()*/
}
private fun showNotes(item: ClientTicket) {
val alertDialog = AlertDialog.Builder(requireContext()).create()
alertDialog.setTitle(getString(R.string.info))
alertDialog.setMessage(item.Note)
alertDialog.setButton(
AlertDialog.BUTTON_NEUTRAL, getString(R.string.close)
) { dialog, _ -> dialog.dismiss() }
alertDialog.show()
}
private fun setListPosition(list: MutableList<ExpeditionInfoLoadUnload>) {
for (i in list.indices) {
binding.ticketsRecyclerview.scrollToPosition(i)
break
}
}
fun showPhones(clientClicked: ClientTicket) {
val phones = mutableListOf<String>().apply {
addAll(clientClicked.Phones)
add(clientClicked.SalePersonPhone)
}
val builder = AlertDialog.Builder(context)
builder.setTitle(getString(R.string.phones))
val listPhones = phones.toTypedArray()
builder.setItems(listPhones) { dialog, which ->
if (ContextCompat.checkSelfPermission(
requireContext(),
Manifest.permission.CALL_PHONE
) == PackageManager.PERMISSION_GRANTED
) {
val callIntent = Intent(Intent.ACTION_CALL)
callIntent.data = Uri.parse("tel:$which]")
startActivity(callIntent)
} else {
ActivityCompat.requestPermissions(
context as Activity,
arrayOf(Manifest.permission.CALL_PHONE),
REQUEST_CALL_PERMISSION
)
}
}
val dialog = builder.create()
dialog.show()
}
fun goMaps(item: ClientTicket) {
if (isGoogleMapsInstalled()) {
var uri: String
if (item.Latitude != null) {
uri = "geo:${item.Latitude},${item.Longitude}?q=" + item.ClientName +
" " + item.AddressName +
" " + item.City +
" " + item.PostalCode
} else {
uri = "geo:0,0?q=" + item.ClientName +
" " + item.AddressName +
" " + item.City +
" " + item.PostalCode
}
val locationIntent = Intent(Intent.ACTION_VIEW, Uri.parse(uri))
startActivity(locationIntent)
} else {
val builder = AlertDialog.Builder(requireContext())
builder.setMessage("Instalar Maps de Google")
builder.setCancelable(false)
builder.setPositiveButton(
"Install"
) { _, _ ->
val intent = Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=com.google.android.apps.maps")
)
startActivity(intent)
}
val dialog = builder.create()
dialog.show()
}
}
private fun isGoogleMapsInstalled(): Boolean {
return try {
val packageName = "com.google.android.apps.maps"
val packageManager = context?.packageManager
packageManager?.getPackageInfoCompat(packageName)
true
} catch (e: Exception) {
false
}
}
private fun showTimePicker(textV: TextView) {
var mcurrentTime = Calendar.getInstance()
var hour = mcurrentTime[Calendar.HOUR_OF_DAY]
var minute = mcurrentTime[Calendar.MINUTE]
var mTimePicker = TimePickerDialog(
requireContext(),
{ _, selectedHour, selectedMinute -> textV.text = "$selectedHour:$selectedMinute" },
hour,
minute,
true
)
mTimePicker.setTitle(getString(R.string.selectTime))
mTimePicker.show()
}
}

View File

@ -0,0 +1,42 @@
package es.verdnatura.presentation.view.feature.delivery.model
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
class ClientTicketList(
var list: MutableList<ClientTicket> = mutableListOf()
)
data class ClientTicket(
var Id: Int,
var Client: Int,
var ClientName: String,
var Address: Int,
var Packages: Int,
var AddressName: String,
var PostalCode: String,
var City: String,
var Warehouse: String?,
var SalePersonPhone: String,
var Note: String?,
var Phones: List<String>,
var Location: Location,
var Signed: Int,
var Latitude: String,
var Longitude: String,
var Polizon: Any?,
var PackingType: String,
var tickets: MutableList<Ticket>
)
data class Location(
var Longitude: String,
var Latitude: String
)
data class Ticket(
var Id: Int,
var Packages: Int,
var PackingType: String?,
var Note:String?
)

View File

@ -9,6 +9,8 @@ import es.verdnatura.domain.SilexCallback
import es.verdnatura.presentation.base.BaseViewModel import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.common.Event import es.verdnatura.presentation.common.Event
import es.verdnatura.presentation.common.ResponseItemVO import es.verdnatura.presentation.common.ResponseItemVO
import es.verdnatura.presentation.view.feature.delivery.model.ClientTicket
import es.verdnatura.presentation.view.feature.delivery.model.ClientTicketList
import es.verdnatura.presentation.view.feature.delivery.model.DeliveryInfo import es.verdnatura.presentation.view.feature.delivery.model.DeliveryInfo
import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoList import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoList
import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLoadUnload import es.verdnatura.presentation.view.feature.delivery.model.ExpeditionInfoLoadUnload
@ -21,6 +23,9 @@ import es.verdnatura.presentation.view.feature.delivery.model.RouteDelivery
import es.verdnatura.presentation.view.feature.delivery.model.RouteDeliveryList import es.verdnatura.presentation.view.feature.delivery.model.RouteDeliveryList
import es.verdnatura.presentation.view.feature.delivery.model.RouteInfo import es.verdnatura.presentation.view.feature.delivery.model.RouteInfo
import es.verdnatura.presentation.view.feature.delivery.model.RouteList import es.verdnatura.presentation.view.feature.delivery.model.RouteList
import es.verdnatura.presentation.view.feature.delivery.model.Ticket
import org.json.JSONArray
import org.json.JSONObject
import retrofit2.Response import retrofit2.Response
class DeliveryViewModel(val context: Context) : BaseViewModel(context) { class DeliveryViewModel(val context: Context) : BaseViewModel(context) {
@ -37,6 +42,9 @@ class DeliveryViewModel(val context: Context) : BaseViewModel(context) {
private val _routeList by lazy { MutableLiveData<RouteList>() } private val _routeList by lazy { MutableLiveData<RouteList>() }
val routeList: LiveData<RouteList> = _routeList val routeList: LiveData<RouteList> = _routeList
private val _clientTicketList by lazy { MutableLiveData<ClientTicketList>() }
val clientTicketList: LiveData<ClientTicketList> = _clientTicketList
private val _routeInfoList by lazy { MutableLiveData<RouteDeliveryList>() } private val _routeInfoList by lazy { MutableLiveData<RouteDeliveryList>() }
val routeInfoList: LiveData<RouteDeliveryList> = _routeInfoList val routeInfoList: LiveData<RouteDeliveryList> = _routeInfoList
@ -50,6 +58,11 @@ class DeliveryViewModel(val context: Context) : BaseViewModel(context) {
val responseStateAdd: LiveData<ResponseItemVO> val responseStateAdd: LiveData<ResponseItemVO>
get() = _responseStateAdd get() = _responseStateAdd
private val _response by lazy { MutableLiveData<ResponseItemVO>() }
val response: LiveData<ResponseItemVO> = _response
private val _expeditionList by lazy { MutableLiveData<ExpeditionList>() } private val _expeditionList by lazy { MutableLiveData<ExpeditionList>() }
val expeditionList: LiveData<ExpeditionList> = _expeditionList val expeditionList: LiveData<ExpeditionList> = _expeditionList
@ -241,6 +254,106 @@ class DeliveryViewModel(val context: Context) : BaseViewModel(context) {
}) })
} }
fun getTickets(
routeId: Long
) {
silex.getTickets(routeId)
.enqueue(object : SilexCallback<MutableList<ClientTicket>>(context) {
override fun onSuccess(response: Response<MutableList<ClientTicket>>) {
if (response.body() != null) {
_clientTicketList.value =
response.body()?.let { ClientTicketList(it) }
} else {
_clientTicketList.value = ClientTicketList()
}
}
override fun onError(t: Throwable) {
_clientTicketList.value = ClientTicketList()
super.onError(t)
}
})
}
fun addNote(
ticketFk: Int
) {
silex.addNotes(ticketFk)
.enqueue(object : SilexCallback<Any>(context) {
override fun onSuccess(response: Response<Any>) {
_responseStateAdd.value = ResponseItemVO()
}
override fun onError(t: Throwable) {
_responseStateAdd.value = ResponseItemVO()
super.onError(t)
}
})
}
fun routeUpdate(
route: RouteInfo
) {
salix.routeUpdate(route.id, route)
.enqueue(object : SilexCallback<Any>(context) {
override fun onSuccess(response: Response<Any>) {
_response.value = ResponseItemVO()
}
override fun onError(t: Throwable) {
_response.value = ResponseItemVO()
super.onError(t)
}
})
}
fun addNotes(
listTickets: MutableList<Ticket>,
note: String
) {
silex.addNotes( mapOf(
"Tickets" to listTickets.map { it.Id },
"note" to note))
.enqueue(object : SilexCallback<Any>(context) {
override fun onSuccess(response: Response<Any>) {
_response.value = ResponseItemVO()
}
override fun onError(t: Throwable) {
_response.value = ResponseItemVO()
super.onError(t)
}
})
}
fun createJSONObject(listTickets: MutableList<Ticket>, note: String): String {
// Supongamos que tienes la lista de tickets y el valor como los siguientes:
// val listTickets: List<String> = listOf("4255452", "5454515")
// val note: String = "Mi nota"
// Crear el objeto JSON
val jsonObject = JSONObject()
val jsonArrayTickets = JSONArray(listTickets)
jsonObject.put("tickets", jsonArrayTickets)
jsonObject.put("note", note)
// Convertir el objeto JSON a un String
return jsonObject.toString()
}
} }

View File

@ -6,6 +6,7 @@ package es.verdnatura.presentation.view.feature.main.activity
import NetworkUtils import NetworkUtils
import PhotosFragment import PhotosFragment
import android.content.SharedPreferences import android.content.SharedPreferences
import android.graphics.Color
import android.media.MediaPlayer import android.media.MediaPlayer
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
@ -47,6 +48,7 @@ import es.verdnatura.presentation.view.feature.delivery.fragments.LoadUnloadFrag
import es.verdnatura.presentation.view.feature.delivery.fragments.LogExpeditionFragment import es.verdnatura.presentation.view.feature.delivery.fragments.LogExpeditionFragment
import es.verdnatura.presentation.view.feature.delivery.fragments.RoutesFragment import es.verdnatura.presentation.view.feature.delivery.fragments.RoutesFragment
import es.verdnatura.presentation.view.feature.delivery.fragments.SummaryFragment import es.verdnatura.presentation.view.feature.delivery.fragments.SummaryFragment
import es.verdnatura.presentation.view.feature.delivery.fragments.TicketsFragment
import es.verdnatura.presentation.view.feature.diadeventa.fragment.DayOfSaleFragment import es.verdnatura.presentation.view.feature.diadeventa.fragment.DayOfSaleFragment
import es.verdnatura.presentation.view.feature.historicoarticulo.fragment.HistoricoArticuloFragment import es.verdnatura.presentation.view.feature.historicoarticulo.fragment.HistoricoArticuloFragment
import es.verdnatura.presentation.view.feature.historicoshelving.fragment.itemShelvingLogFragment import es.verdnatura.presentation.view.feature.historicoshelving.fragment.itemShelvingLogFragment
@ -80,6 +82,7 @@ import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
import es.verdnatura.presentation.view.feature.shelvingparking.fragment.ShelvingParkingFragment import es.verdnatura.presentation.view.feature.shelvingparking.fragment.ShelvingParkingFragment
import es.verdnatura.presentation.view.feature.ticket.fragment.TicketAdvanceFragment import es.verdnatura.presentation.view.feature.ticket.fragment.TicketAdvanceFragment
import es.verdnatura.presentation.view.feature.ubicador.fragment.AutomaticAddItemFragment import es.verdnatura.presentation.view.feature.ubicador.fragment.AutomaticAddItemFragment
import es.verdnatura.presentation.view.feature.ubicador.fragment.AutomaticAddItemFragmentTEST
import es.verdnatura.presentation.view.feature.ubicador.fragment.UbicadorFragment import es.verdnatura.presentation.view.feature.ubicador.fragment.UbicadorFragment
import es.verdnatura.presentation.view.feature.workermistake.adapter.WorkermistakeFragment import es.verdnatura.presentation.view.feature.workermistake.adapter.WorkermistakeFragment
import es.verdnatura.presentation.view.feature.workermistake.fragment.PackingMistakeFragment import es.verdnatura.presentation.view.feature.workermistake.fragment.PackingMistakeFragment
@ -653,7 +656,12 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
} }
getString(R.string.titleAuto) -> { getString(R.string.titleAuto) -> {
/* if ( (application as MobileApplication).userId== 19591){
"Testeo rayo".toast(this, Color.RED)*/
addFragmentOnTop(AutomaticAddItemFragmentTEST.newInstance(entryPoint, item.title))
/* }else{
addFragmentOnTop(AutomaticAddItemFragment.newInstance(entryPoint, item.title)) addFragmentOnTop(AutomaticAddItemFragment.newInstance(entryPoint, item.title))
}*/
} }
getString(R.string.titleChecker) -> { getString(R.string.titleChecker) -> {
@ -880,6 +888,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
getString(R.string.titleInventoryParking) -> { getString(R.string.titleInventoryParking) -> {
addFragmentOnTop(InventaryParkingFragment.newInstance(item.title)) addFragmentOnTop(InventaryParkingFragment.newInstance(item.title))
} }
getString(R.string.tickets) -> {
addFragmentOnTop(TicketsFragment.newInstance(item.title,entryPoint))
}
} }
} }

View File

@ -170,7 +170,7 @@ class PasilleroViewModel(context: Context) : BaseViewModel(context) {
) )
) )
//Tarea 5891 //Tarea 5891
/* _pasillerositem.add( _pasillerositem.add(
PasillerosItemVO( PasillerosItemVO(
3, 3,
R.drawable.ic_inventory_parking, R.drawable.ic_inventory_parking,
@ -180,7 +180,7 @@ class PasilleroViewModel(context: Context) : BaseViewModel(context) {
R.string.titleInventoryParkingDescrip R.string.titleInventoryParkingDescrip
) )
) )
)*/ )
_pasillerositem.add( _pasillerositem.add(
PasillerosItemVO( PasillerosItemVO(
@ -633,5 +633,6 @@ class PasilleroViewModel(context: Context) : BaseViewModel(context) {
contextApp.getString(R.string.titleDeliveryRoute) contextApp.getString(R.string.titleDeliveryRoute)
) )
) )
} }
} }

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="960"
android:viewportHeight="960"
>
<path
android:fillColor="@android:color/white"
android:pathData="M480.09,470Q509,470 529.5,449.41Q550,428.82 550,399.91Q550,371 529.41,350.5Q508.82,330 479.91,330Q451,330 430.5,350.59Q410,371.18 410,400.09Q410,429 430.59,449.5Q451.18,470 480.09,470ZM480,801Q613,680 676.5,581.5Q740,483 740,408Q740,290.21 664.71,215.1Q589.42,140 480,140Q370.58,140 295.29,215.1Q220,290.21 220,408Q220,483 285,581.5Q350,680 480,801ZM480,880Q319,743 239.5,625.5Q160,508 160,408Q160,258 256.5,169Q353,80 480,80Q607,80 703.5,169Q800,258 800,408Q800,508 720.5,625.5Q641,743 480,880ZM480,400Q480,400 480,400Q480,400 480,400Q480,400 480,400Q480,400 480,400Q480,400 480,400Q480,400 480,400Q480,400 480,400Q480,400 480,400Z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M319,710L641,710L641,650L319,650L319,710ZM319,540L641,540L641,480L319,480L319,540ZM220,880Q196,880 178,862Q160,844 160,820L160,140Q160,116 178,98Q196,80 220,80L581,80L800,299L800,820Q800,844 782,862Q764,880 740,880L220,880ZM551,326L551,140L220,140Q220,140 220,140Q220,140 220,140L220,820Q220,820 220,820Q220,820 220,820L740,820Q740,820 740,820Q740,820 740,820L740,326L551,326ZM220,140L220,140L220,326L220,326L220,140L220,326L220,326L220,820Q220,820 220,820Q220,820 220,820L220,820Q220,820 220,820Q220,820 220,820L220,140Q220,140 220,140Q220,140 220,140Z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:autoMirrored="true">
<path
android:fillColor="@android:color/white"
android:pathData="M450,726L510,726L510,597L640,597L640,537L510,537L510,407L450,407L450,537L320,537L320,597L450,597L450,726ZM220,880Q196,880 178,862Q160,844 160,820L160,140Q160,116 178,98Q196,80 220,80L581,80L800,299L800,820Q800,844 782,862Q764,880 740,880L220,880ZM551,326L551,140L220,140Q220,140 220,140Q220,140 220,140L220,820Q220,820 220,820Q220,820 220,820L740,820Q740,820 740,820Q740,820 740,820L740,326L551,326ZM220,140L220,140L220,326L220,326L220,140L220,326L220,326L220,820Q220,820 220,820Q220,820 220,820L220,820Q220,820 220,820Q220,820 220,820L220,140Q220,140 220,140Q220,140 220,140Z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M776,473Q771,352 687,268Q603,184 482,179L482,119Q554,121 617.5,149.5Q681,178 729,226Q777,274 805.5,337.5Q834,401 836,473L776,473ZM607,473Q602,423 567,388.5Q532,354 482,349L482,289Q557,294 609.5,346Q662,398 667,473L607,473ZM795,840Q679,840 558.5,784Q438,728 335,625Q232,522 176,401.5Q120,281 120,165Q120,145.71 132.86,132.86Q145.71,120 165,120L305,120Q319,120 329,130Q339,140 343,155L369.93,280.64Q372,295 369.5,306.5Q367,318 358.77,326.23L259,427Q285,471 314,509Q343,547 378,581Q415,619 456,650.5Q497,682 542,706L637,608Q647,597 660.15,593Q673.3,589 686,591L805,617Q820,621 830,633.04Q840,645.09 840,660L840,795Q840,814.29 827.14,827.14Q814.29,840 795,840ZM229,372L310,290Q310,290 310,290Q310,290 310,290L287,180Q287,180 287,180Q287,180 287,180L180,180Q180,180 180,180Q180,180 180,180Q182,222 193.5,268.5Q205,315 229,372ZM598,735Q639,754 687,766Q735,778 780,780Q780,780 780,780Q780,780 780,780L780,673Q780,673 780,673Q780,673 780,673L677,652Q677,652 677,652Q677,652 677,652L598,735ZM229,372Q229,372 229,372Q229,372 229,372Q229,372 229,372Q229,372 229,372L229,372Q229,372 229,372Q229,372 229,372L229,372Q229,372 229,372Q229,372 229,372L229,372ZM598,735L598,735Q598,735 598,735Q598,735 598,735L598,735Q598,735 598,735Q598,735 598,735L598,735Q598,735 598,735Q598,735 598,735Q598,735 598,735Q598,735 598,735Z"/>
</vector>

View File

@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
style="@style/DialogTheme"
android:layout_height="match_parent"
android:layout_margin="@dimen/layout_margin_1"
app:cardBackgroundColor="@color/verdnatura_black_8"
app:cardCornerRadius="@dimen/dialog_radius">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/layout_margin_1">
<TextView
android:id="@+id/custom_dialog_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/layout_margin_1"
android:textAlignment="center"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h6"
android:textStyle="bold"
android:visibility="gone"
tools:text="¿Estás seguro de que deseas eliminar el dispositivo de celia?"
tools:visibility="visible" />
<TextView
android:id="@+id/custom_dialog_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/layout_margin_1"
android:textAlignment="center"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"
android:visibility="gone"
tools:text="Este cambio no podrá deshacerse a no ser que vuelvas a vincular el dispositivo"
tools:visibility="gone" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textinputlayout_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColorHint="@android:color/darker_gray">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/custom_dialog_value"
style="@style/DefaultButton.NormalButton"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@drawable/background_round"
android:inputType="text"
android:lines="5"
android:maxLines="10"
android:textColor="@color/verdnatura_white"
android:textColorHint="@android:color/darker_gray"
android:imeOptions="actionDone"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clipToPadding="false"
tools:listitem="@layout/item_general_row" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textinputlayout_two"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/default_layout_margin"
android:textColorHint="@android:color/darker_gray"
android:visibility="gone">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/custom_dialog_value_two"
style="@style/DefaultButton.NormalButton"
android:layout_width="match_parent"
android:background="@drawable/background_round"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:textColor="@color/verdnatura_white"
android:textColorHint="@android:color/darker_gray" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/custom_dialog_button_ok"
style="@style/DefaultButton.NormalButton"
android:layout_width="match_parent"
android:layout_marginTop="@dimen/layout_margin_1"
android:visibility="gone"
tools:text="@string/delete"
tools:visibility="visible" />
<Button
android:id="@+id/custom_dialog_button_ko"
style="@style/DefaultButton.TransparentButton"
android:layout_width="match_parent"
android:layout_marginTop="@dimen/layout_margin_1"
android:layout_marginBottom="@dimen/layout_margin_1"
android:visibility="gone"
tools:text="@string/cancel"
tools:visibility="visible" />
</LinearLayout>
</androidx.cardview.widget.CardView>

View File

@ -0,0 +1,229 @@
<?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:id="@+id/layout_km_hour"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView20"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:text="@string/km"
android:textAllCaps="true"
android:textColor="@color/verdnatura_white"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView28"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="8dp"
android:text="@string/hours"
android:textAllCaps="true"
android:textColor="@color/verdnatura_white"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout7" />
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:background="@color/colorPrimary"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView20" />
<LinearLayout
android:id="@+id/linearLayout6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout2">
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/km_init"
android:textColor="@color/verdnatura_white"
android:textSize="18sp" />
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/verdnatura_white"
android:ems="10"
android:inputType="number"
android:padding="5dp"
android:text="0"
android:imeOptions="actionDone"
android:maxLines="1"/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout7"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout6">
<TextView
android:id="@+id/textView21"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/km_end"
android:textColor="@color/verdnatura_white"
android:textSize="18sp" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/verdnatura_white"
android:ems="10"
android:inputType="number"
android:padding="5dp"
android:text="0"
android:imeOptions="actionDone"
android:maxLines="1"/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout8"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:background="@color/colorPrimary"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView28" />
<LinearLayout
android:id="@+id/linearLayout9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout8">
<TextView
android:id="@+id/textView212"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/hour_start"
android:textColor="@color/verdnatura_white"
android:textSize="18sp" />
<EditText
android:id="@+id/editText12"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/verdnatura_white"
android:ems="10"
android:padding="5dp"
android:text="00:00"
android:imeOptions="actionDone"
android:maxLines="1"
android:focusable="false"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout9">
<TextView
android:id="@+id/textView2123"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/hour_end"
android:textColor="@color/verdnatura_white"
android:textSize="18sp" />
<EditText
android:id="@+id/editText123"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/verdnatura_white"
android:ems="10"
android:padding="5dp"
android:text="00:00"
android:imeOptions="actionDone"
android:maxLines="1"
android:focusable="false"/>
</LinearLayout>
<TextView
android:id="@+id/textView37"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="17dp"
android:text="@string/save"
android:textAlignment="center"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@ -0,0 +1,336 @@
<?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">
<LinearLayout
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_pumpkin_orange"
android:orientation="horizontal"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main_toolbar">
</LinearLayout>
<LinearLayout
android:id="@+id/layout_km_hour"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/divider"
app:layout_constraintTop_toBottomOf="@+id/main_toolbar"
tools:visibility="visible">
<TextView
android:id="@+id/textView20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:text="@string/km"
android:textAllCaps="true"
android:textColor="@color/verdnatura_white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/layout_km_hour" />
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:background="@color/colorPrimary"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView20" />
<LinearLayout
android:id="@+id/linearLayout6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout2">
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/km_init"
android:textColor="@color/verdnatura_white" />
<EditText
android:id="@+id/km_start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/verdnatura_white"
android:ems="10"
android:inputType="number"
android:padding="5dp"
android:text="0"
android:imeOptions="actionDone"
android:maxLines="1"/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout6">
<TextView
android:id="@+id/textView21"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/km_end"
android:textColor="@color/verdnatura_white" />
<EditText
android:id="@+id/km_end"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/verdnatura_white"
android:ems="10"
android:inputType="number"
android:padding="5dp"
android:text="0"
android:imeOptions="actionDone"
android:maxLines="1"/>
</LinearLayout>
<TextView
android:id="@+id/textView28"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="8dp"
android:text="@string/hours"
android:textAllCaps="true"
android:textColor="@color/verdnatura_white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout7" />
<LinearLayout
android:id="@+id/linearLayout8"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:background="@color/colorPrimary"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView28" />
<LinearLayout
android:id="@+id/linearLayout9"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout8">
<TextView
android:id="@+id/textView212"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/hour_start"
android:textColor="@color/verdnatura_white"
/>
<EditText
android:id="@+id/hourInit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/verdnatura_white"
android:ems="10"
android:padding="5dp"
android:text="00:00"
android:imeOptions="actionDone"
android:maxLines="1"
/>
<ImageButton
android:id="@+id/buttonPicker"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout9">
<TextView
android:id="@+id/textView2123"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/hour_end"
android:textColor="@color/verdnatura_white"
/>
<EditText
android:id="@+id/hourEnd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/verdnatura_white"
android:ems="10"
android:padding="5dp"
android:text="00:00"
android:imeOptions="actionDone"
android:maxLines="1"
android:focusable="true"/>
</LinearLayout>
<TextView
android:id="@+id/saveButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_gravity="center"
android:text="@string/save"
android:textAlignment="center"
android:textSize="@dimen/h7"
android:textColor="@color/verdnatura_pumpkin_orange"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/hour_end"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/itemcard_layout"
android:layout_width="0dp"
android:layout_height="0dp"
android:padding="5dp"
android:orientation="vertical"
tools:ignore="ExtraText"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/divider"
android:visibility="visible"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/tickets_recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:visibility="visible"
tools:listitem="@layout/item_ticket_row" />
<TextClock
android:id="@+id/textClock"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
</LinearLayout>
<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">
</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

@ -39,7 +39,6 @@
android:layout_weight="1" android:layout_weight="1"
android:textSize="@dimen/h5" android:textSize="@dimen/h5"
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:text="@{Long.toString(item.item)}"
tool:text="45532" tool:text="45532"
android:textStyle="bold" android:textStyle="bold"
android:gravity="center_vertical"/> android:gravity="center_vertical"/>

View File

@ -0,0 +1,275 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="item"
type="es.verdnatura.presentation.view.feature.delivery.model.ClientTicket" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="5dp"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:orientation="vertical" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/verdnatura_black_1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingStart="@dimen/ef_padding_small"
android:paddingTop="5dp"
android:paddingEnd="1dp"
android:gravity="center_vertical">
<TextView
android:id="@+id/textView23"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/ef_padding_small"
android:text="@string/Cliente"
android:textColor="@color/verdnatura_warm_grey" />
<TextView
android:id="@+id/textView21"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{String.valueOf(item.id)}"
app:autoSizeMaxTextSize="18sp"
android:textSize="18sp"
android:textColor="@color/verdnatura_white"
tools:text="Cliente1"/>
<TextView
android:id="@+id/textView18"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:textAlignment="viewEnd"
android:text="@string/consignatario"
android:textColor="@color/verdnatura_warm_grey"
/>
<TextView
android:id="@+id/textView17"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@{String.valueOf(item.address)}"
android:textAlignment="center"
android:maxLines="1"
android:textColor="@color/verdnatura_white"
android:textSize="28sp"
android:textStyle="bold"
tools:text="28058"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingBottom="5dp">
<TextView
android:id="@+id/textView25"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{item.clientName}"
android:textColor="@color/verdnatura_white"
android:textSize="18sp"
tools:text="LA FLOR VALENCIA"/>
<TextView
android:id="@+id/textView24"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{item.addressName}"
android:textAllCaps="true"
android:textColor="@color/colorPrimary"
tools:text="C/ Les flors,1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textView27"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_weight="0"
android:text="@{String.valueOf(item.postalCode)}"
android:textColor="@color/colorPrimary"
tools:text="46450"/>
<TextView
android:id="@+id/textView26"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:text="@{item.city}"
android:textAllCaps="true"
android:textColor="@color/colorPrimary"
tools:text="valencia"
/>
</LinearLayout>
<TextView
android:id="@+id/txtNote"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="0"
android:text=""
android:textAllCaps="true"
android:textColor="@color/verdnatura_white"
android:visibility="gone"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutTickets"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@color/verdnatura_black_1"
android:orientation="horizontal"
android:baselineAligned="false"
android:padding="@dimen/ef_padding_small">
<LinearLayout
android:id="@+id/btnNote"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/note"
android:layout_width="wrap_content"
android:layout_height="32dp"
app:srcCompat="@drawable/ic_note" />
</LinearLayout>
<LinearLayout
android:id="@+id/btnAddNote"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/addNote"
android:layout_width="wrap_content"
android:layout_height="32dp"
app:srcCompat="@drawable/ic_note_add" />
</LinearLayout>
<LinearLayout
android:id="@+id/btnPhone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/phone"
android:layout_width="wrap_content"
android:layout_height="32dp"
app:srcCompat="@drawable/ic_phone" />
</LinearLayout>
<LinearLayout
android:id="@+id/btnMap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/map"
android:layout_width="wrap_content"
android:layout_height="32dp"
app:srcCompat="@drawable/ic_location" />
</LinearLayout>
<LinearLayout
android:id="@+id/btnUnload"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/unload"
android:layout_width="wrap_content"
android:layout_height="32dp"
app:srcCompat="@drawable/camion_descarga" />
</LinearLayout>
<LinearLayout
android:id="@+id/btnSign"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
android:visibility="gone"
android:padding="8dp">
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/linearLayout5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/verdnatura_black"
android:orientation="vertical"
android:padding="5dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textView30"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:layout_weight="0"
android:text="@string/ticket"
android:textColor="@color/verdnatura_black_8"
android:textSize="18sp" />
<TextView
android:id="@+id/txtTicket"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2041368"
android:textColor="@color/verdnatura_white"
android:textSize="18sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/textView32"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:layout_weight="0"
android:text="@string/packages"
android:textColor="@color/verdnatura_black_8"
android:textSize="20sp"
/>
<TextView
android:id="@+id/packages"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="2"
android:textSize="20sp"
android:textColor="@color/verdnatura_white"
/>
<TextView
android:id="@+id/packingType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="H o V"
android:visibility="visible"
android:textSize="20sp"
android:textColor="@color/verdnatura_white"
android:layout_marginLeft="5dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="right"
android:textAlignment="gravity">
<TextView
android:id="@+id/textView33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="0dp"
android:layout_weight="0"
android:text="Silla FV"
android:textColor="@color/verdnatura_white"
android:visibility="gone"
tools:visibility="gone" />
<TextView
android:id="@+id/packintypedescrp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:layout_weight="0"
android:text="@string/packingType"
android:visibility="gone"
android:textColor="@color/verdnatura_black_8"
android:textSize="18sp"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -605,8 +605,8 @@
<string name="quantityVisible">Indica la nueva cantidad visible</string> <string name="quantityVisible">Indica la nueva cantidad visible</string>
<string name="checkItemShelvingSelect">Ecscanea o escribe la matrícula a resetear revisión</string> <string name="checkItemShelvingSelect">Ecscanea o escribe la matrícula a resetear revisión</string>
<string name="selectParkingsCheckin">Indica parkings a revisar</string> <string name="selectParkingsCheckin">Indica parkings a revisar</string>
<string name="selectParkingsFrom">Indica desde dónde hasta cual quieres revisar</string> <string name="selectParkingsFrom">Indica desde qué parking quieres revisar</string>
<string name="selectParkingsTo">Indica el parking hasta donde quieres revisar</string> <string name="selectParkingsTo">Indica hasta qué parking quieres revisar</string>
<string name="shelvingNotFound">Matrícula del carro no encontrada</string> <string name="shelvingNotFound">Matrícula del carro no encontrada</string>
<string name="scanItemForChecking">Escanea artículo a verificar</string> <string name="scanItemForChecking">Escanea artículo a verificar</string>
<string name="itemNotFoundScanAgain">Artículo no encontrado. Escanea de nuevo el carro</string> <string name="itemNotFoundScanAgain">Artículo no encontrado. Escanea de nuevo el carro</string>
@ -623,5 +623,22 @@
<string name="namePallet">Número palet</string> <string name="namePallet">Número palet</string>
<string name="sin_internet">NO INTERNET</string> <string name="sin_internet">NO INTERNET</string>
<string name="deliveryApp">Asegúrate de tener la app de reparto instalada</string> <string name="deliveryApp">Asegúrate de tener la app de reparto instalada</string>
<string name="phones">Teléfonos</string>
<string name="km">Kilómetros</string>
<string name="hours">Horas</string>
<string name="km_init">Km de inicio</string>
<string name="km_end">Km de fin</string>
<string name="hour_start">Hora de inicio</string>
<string name="hour_end">Hora de fin</string>
<string name="selectTime">Selecciona la hora</string>
<string name="packages">Bultos</string>
<string name="filterNoReview">Muestra los ítems no revisados</string>
<string name="resetReviewItems">Resetea los items revisados de un carro</string>
<string name="inventoryShowParking">Opción que selecciona los parkings a revisar</string>
<string name="clientNot">CLIENTE AUSENTE</string>
<string name="clientAuthorization">CLIENTE AUTORIZA DESCARGA A REPARTIDOR</string>
<string name="clientReject">CLIENTE RECHAZA PEDIDO</string>
<string name="packagesMissing">FALTAN BULTOS:</string>
<string name="clientDevolution">RECOGER DEVOLUCIÓN, NÚMERO DE RECLAMACIÓN:</string>
</resources> </resources>

View File

@ -208,7 +208,7 @@
<string name="parkingShelving">Aparcar carro</string> <string name="parkingShelving">Aparcar carro</string>
<string name="parking">Parking</string> <string name="parking">Parking</string>
<string name="addItemShelving">Añade item al carro</string> <string name="addItemShelving">Añade item al carro</string>
<string name="save">ENREGISTRER</string> <string name="save">Enregistrer</string>
<string name="allowChangeShelving">Permite cambiar la matrícula a un carro</string> <string name="allowChangeShelving">Permite cambiar la matrícula a un carro</string>
<string name="deleteAllitems">Borra todos los items del carro</string> <string name="deleteAllitems">Borra todos los items del carro</string>
<string name="changePriority">Cambia la prioridad de los items del carro. Cuanto más alta antes cogerán los sacadores.</string> <string name="changePriority">Cambia la prioridad de los items del carro. Cuanto más alta antes cogerán los sacadores.</string>
@ -623,5 +623,22 @@
<string name="namePallet">Numéro de palette</string> <string name="namePallet">Numéro de palette</string>
<string name="sin_internet">NO INTERNET</string> <string name="sin_internet">NO INTERNET</string>
<string name="deliveryApp">Assurez-vous que l\'application de livraison est installée</string> <string name="deliveryApp">Assurez-vous que l\'application de livraison est installée</string>
<string name="phones">Téléphone</string>
<string name="km">Kilomètres</string>
<string name="hours">Heures</string>
<string name="km_init">Kilométrage de départ</string>
<string name="km_end">Kilométrage de fin</string>
<string name="hour_start">Heure de départ</string>
<string name="hour_end">Heure de fin</string>
<string name="selectTime">Sélectionnez l\'heure</string>
<string name="packages">Colis</string>
<string name="filterNoReview">Muestra los ítems no revisados</string>
<string name="resetReviewItems">Resetea los items revisados de un carro</string>
<string name="inventoryShowParking">Opción que selecciona los parkings a revisar</string>
<string name="clientNot">CLIENT ABSENT</string>
<string name="clientAuthorization">CLIENT AUTORISE LA LIVRAISON AU LIVREUR</string>
<string name="clientReject">CLIENT REFUSE LA COMMANDE</string>
<string name="packagesMissing">COLIS MANQUANTS :</string>
<string name="clientDevolution">RECUEILLIR UN RETOUR, NUMÉRO DE RÉCLAMATION :</string>
</resources> </resources>

View File

@ -623,5 +623,22 @@
<string name="namePallet">Numero palet</string> <string name="namePallet">Numero palet</string>
<string name="sin_internet">NO INTERNET</string> <string name="sin_internet">NO INTERNET</string>
<string name="deliveryApp">Certifique-se de ter o aplicativo de entrega instalado</string> <string name="deliveryApp">Certifique-se de ter o aplicativo de entrega instalado</string>
<string name="phones">Telefone</string>
<string name="km">Kilometros</string>
<string name="hours">Horas</string>
<string name="km_init">Km de inicio</string>
<string name="km_end">Km fim</string>
<string name="hour_start">Hora de inicio</string>
<string name="hour_end">Hora fim</string>
<string name="selectTime">Seleccione Hora</string>
<string name="packages">Volumes</string>
<string name="filterNoReview">Muestra los ítems no revisados</string>
<string name="resetReviewItems">Resetea los items revisados de un carro</string>
<string name="inventoryShowParking">Opción que selecciona los parkings a revisar</string>
<string name="clientNot">CLIENTE AUSENTE</string>
<string name="clientAuthorization">CLIENTE AUTORIZA DESCARGA AO ESTAFETA</string>
<string name="clientReject">CLIENTE REJEITA PEDIDO</string>
<string name="packagesMissing">FALTAM VOLUMES:</string>
<string name="clientDevolution">\"LEVANTAR DEVOLUÇÃO, NUMERO DE RECLAMAÇÃO: \"</string>
</resources> </resources>

View File

@ -610,10 +610,10 @@
<string name="titleInventoryParking">Inventory by parking</string> <string name="titleInventoryParking">Inventory by parking</string>
<string name="titleInventoryParkingDescrip">Inventory by parking, you can select ubications</string> <string name="titleInventoryParkingDescrip">Inventory by parking, you can select ubications</string>
<string name="quantityVisible">Indica la nueva cantidad visible</string> <string name="quantityVisible">Indica la nueva cantidad visible</string>
<string name="checkItemShelvingSelect">Ecscanea o escribe la matrícula a resetear revisión</string> <string name="checkItemShelvingSelect">Escanea o escribe la matrícula a resetear revisión</string>
<string name="selectParkingsCheckin">Indica parkings a revisar</string> <string name="selectParkingsCheckin">Indica parkings a revisar</string>
<string name="selectParkingsFrom">Indica desde dónde hasta cual quieres revisar</string> <string name="selectParkingsFrom">Indica desde qué parking quieres revisar</string>
<string name="selectParkingsTo">Indica el parking hasta donde quieres revisar</string> <string name="selectParkingsTo">Indica hasta qué parking quieres revisar</string>
<string name="shelvingNotFound">Matrícula del carro no encontrada</string> <string name="shelvingNotFound">Matrícula del carro no encontrada</string>
<string name="scanItemForChecking">Escanea artículo a verificar</string> <string name="scanItemForChecking">Escanea artículo a verificar</string>
<string name="itemNotFoundScanAgain">Artículo no encontrado. Escanea de nuevo el carro</string> <string name="itemNotFoundScanAgain">Artículo no encontrado. Escanea de nuevo el carro</string>
@ -622,4 +622,21 @@
<string name="scannerDelivery">Scan</string> <string name="scannerDelivery">Scan</string>
<string name="sin_internet">NO INTERNET</string> <string name="sin_internet">NO INTERNET</string>
<string name="deliveryApp">Make sure you have the delivery app installed</string> <string name="deliveryApp">Make sure you have the delivery app installed</string>
<string name="phones">Phones</string>
<string name="km">Kilometers</string>
<string name="hours">Hours</string>
<string name="km_init">Start km</string>
<string name="km_end">Finish km</string>
<string name="hour_start">Start hour</string>
<string name="hour_end">Finish hour</string>
<string name="selectTime">Select Time</string>
<string name="packages">Packages</string>
<string name="filterNoReview">Muestra los ítems no revisados</string>
<string name="resetReviewItems">Resetea los items revisados de un carro</string>
<string name="inventoryShowParking">Opción que selecciona los parkings a revisar</string>
<string name="clientNot">CLIENTE AUSENTE</string>
<string name="clientAuthorization">CLIENTE AUTORIZA DESCARGA A REPARTIDOR</string>
<string name="clientReject">CLIENTE RECHAZA PEDIDO</string>
<string name="packagesMissing">FALTAN BULTOS:</string>
<string name="clientDevolution">RECOGER DEVOLUCIÓN, NÚMERO DE RECLAMACIÓN:</string>
</resources> </resources>