Version 9.4Beta Cmr, Control ubicación, volver atrás de Controlador, botón llamadas, volver pantalla anterior parking,

This commit is contained in:
Sergio De la torre 2022-11-02 11:37:55 +01:00
parent d371048d3b
commit e4750fc92a
73 changed files with 4026 additions and 529 deletions

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="WizardSettings">
<option name="children">
<map>
<entry key="imageWizard">
<value>
<PersistentState />
</value>
</entry>
<entry key="vectorWizard">
<value>
<PersistentState>
<option name="children">
<map>
<entry key="vectorAssetStep">
<value>
<PersistentState>
<option name="values">
<map>
<entry key="assetSourceType" value="FILE" />
<entry key="outputName" value="ic_item" />
<entry key="sourceFile" value="Z:\DISEÑO-APP\GENERAL\icomoon\SVG\item.svg" />
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
</component>
</project>

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<targetSelectedWithDropDown>
<Target>
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\sergiodt\.android\avd\Pixel_3a_API_30_x86.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2022-10-18T14:11:38.332474100Z" />
</component>
</project>

View File

@ -44,6 +44,7 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/car.xml" value="0.30052083333333335" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/car.xml" value="0.30052083333333335" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/car_control.xml" value="0.22407407407407406" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/car_control.xml" value="0.22407407407407406" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/car_info.xml" value="0.2916666666666667" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/car_info.xml" value="0.2916666666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/check.xml" value="0.1305" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/circleshape.xml" value="0.11979166666666667" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/circleshape.xml" value="0.11979166666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/component_progress.xml" value="0.11979166666666667" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/component_progress.xml" value="0.11979166666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/crane.xml" value="0.23802083333333332" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/crane.xml" value="0.23802083333333332" />
@ -103,6 +104,7 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_mode_edit_black_24dp.xml" value="0.15052083333333333" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_mode_edit_black_24dp.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_more_vert_black_24dp.xml" value="0.26" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_more_vert_black_24dp.xml" value="0.26" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_move_to_inbox_black_24dp.xml" value="0.15052083333333333" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_move_to_inbox_black_24dp.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_packaging.xml" value="0.258" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_packing_mistake.xml" value="0.1315" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_packing_mistake.xml" value="0.1315" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_pallet_scan_expedition.xml" value="0.1005" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_pallet_scan_expedition.xml" value="0.1005" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_pallet_ui.xml" value="0.212" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_pallet_ui.xml" value="0.212" />
@ -196,6 +198,11 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_itemshelvingdayofsale.xml" value="0.3333333333333333" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_itemshelvingdayofsale.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_itemshelvinglog.xml" value="0.28169014084507044" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_itemshelvinglog.xml" value="0.28169014084507044" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_login.xml" value="0.22" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_login.xml" value="0.22" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_packaging.xml" value="0.1956140350877193" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_packaging_count.xml" value="0.23229166666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_packaging_obs.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_packaging_summary.xml" value="0.2" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_packaging_supplier.xml" value="0.2515625" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_paletizador_menu.xml" value="0.13829787234042554" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_paletizador_menu.xml" value="0.13829787234042554" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_parking.xml" value="0.16666666666666666" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_parking.xml" value="0.16666666666666666" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_pasillero.xml" value="0.21" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_pasillero.xml" value="0.21" />
@ -217,7 +224,7 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/ic_packing_mistake.xml" value="0.1" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/ic_packing_mistake.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_ajustes_row.xml" value="0.16666666666666666" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_ajustes_row.xml" value="0.16666666666666666" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row.xml" value="0.3333333333333333" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row_fragment.xml" value="0.4466666666666667" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row_fragment.xml" value="0.3275862068965517" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row_presacador.xml" value="0.4" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row_presacador.xml" value="0.4" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row_reubication_fragment.xml" value="0.36614583333333334" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row_reubication_fragment.xml" value="0.36614583333333334" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_barcode_row.xml" value="0.15579710144927536" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_barcode_row.xml" value="0.15579710144927536" />
@ -232,10 +239,13 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_expeditiontruck_row.xml" value="0.1793478260869565" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_expeditiontruck_row.xml" value="0.1793478260869565" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_faltas_row.xml" value="0.1793478260869565" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_faltas_row.xml" value="0.1793478260869565" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_general_row.xml" value="0.13360507246376813" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_general_row.xml" value="0.13360507246376813" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_general_row_image.xml" value="0.2131578947368421" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_historico_row.xml" value="0.15353260869565216" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_historico_row.xml" value="0.15353260869565216" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_historicovehiculo_row.xml" value="0.18795289855072464" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_historicovehiculo_row.xml" value="0.18795289855072464" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_image_row.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_inventary_row.xml" value="0.15163934426229508" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_inventary_row.xml" value="0.15163934426229508" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_itemshelvingdayofsale_row.xml" value="0.18206521739130435" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_itemshelvingdayofsale_row.xml" value="0.18206521739130435" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_itemsupplier_row.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_location_all_row.xml" value="0.12259371833839919" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_location_all_row.xml" value="0.12259371833839919" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_location_row.xml" value="0.16875" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_location_row.xml" value="0.16875" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_main_menu.xml" value="0.3333333333333333" /> <entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_main_menu.xml" value="0.3333333333333333" />

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$/../.." />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

43
.idea/navEditor.xml Normal file
View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="navEditor-manualLayoutAlgorithm2">
<option name="myPositions">
<map>
<entry key="nav_graph.xml">
<value>
<LayoutPositions>
<option name="myPositions">
<map>
<entry key="ajustesFragment">
<value>
<LayoutPositions>
<option name="myPosition">
<Point>
<option name="x" value="-226" />
<option name="y" value="103" />
</Point>
</option>
</LayoutPositions>
</value>
</entry>
<entry key="showTicketFragment">
<value>
<LayoutPositions>
<option name="myPosition">
<Point>
<option name="x" value="-512" />
<option name="y" value="86" />
</Point>
</option>
</LayoutPositions>
</value>
</entry>
</map>
</option>
</LayoutPositions>
</value>
</entry>
</map>
</option>
</component>
</project>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

982
.idea/workspace.xml Normal file
View File

@ -0,0 +1,982 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AnalysisUIOptions">
<option name="SPLITTER_PROPORTION" value="0.5641026" />
<option name="GROUP_BY_SEVERITY" value="true" />
<option name="SCOPE_TYPE" value="8" />
<option name="CUSTOM_SCOPE_NAME" value="All Places" />
<option name="SHOW_STRUCTURE" value="true" />
</component>
<component name="AndroidConfiguredLogFilters">
<filters>
<filter>
<option name="logLevel" value="debug" />
<option name="logMessageIsRegex" value="false" />
<option name="logMessagePattern" value="" />
<option name="logTagIsRegex" value="false" />
<option name="logTagPattern" value="verdnatura::" />
<option name="name" value="VERDNATURA::" />
<option name="packageNameIsRegex" value="false" />
<option name="packageNamePattern" value="es.verdnatura" />
</filter>
<filter>
<option name="logLevel" value="verbose" />
<option name="logMessagePattern" value="" />
<option name="logTagPattern" value="" />
<option name="name" value="verdnatura" />
<option name="packageNamePattern" value="" />
</filter>
</filters>
</component>
<component name="AndroidGradleBuildConfiguration">
<option name="COMMAND_LINE_OPTIONS" value="--warning-mode all --stacktrace" />
</component>
<component name="AndroidLayouts">
<shared>
<config>
<device id="pixel_4" />
<device id="pixel_5" />
<device id="_device_class_phone" />
<locale>es</locale>
<option name="nonWearDeviceLastStateName" value="Portrait" />
<target>android-28</target>
</config>
</shared>
</component>
<component name="AndroidLogFilters">
<option name="TOOL_WINDOW_LOG_LEVEL" value="debug" />
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="VERDNATURA::" />
<option name="TOOL_WINDOW_REGEXP_FILTER" value="false" />
</component>
<component name="AutoImportSettings">
<option name="autoReloadType" value="NONE" />
</component>
<component name="BranchesTreeState">
<expand>
<path>
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
</path>
<path>
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
</path>
<path>
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="GROUP_NODE:appverdnatura" type="e8cecc67:BranchNodeDescriptor" />
</path>
<path>
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
</path>
</expand>
<select>
<path>
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="GROUP_NODE:appverdnatura" type="e8cecc67:BranchNodeDescriptor" />
<item name="BRANCH:appverdnatura/test" type="e8cecc67:BranchNodeDescriptor" />
</path>
</select>
</component>
<component name="ChangeListManager">
<list default="true" id="fa688d1c-dbee-4864-9e33-4d84ef9afca8" name="Default Changelist" comment="Version 9.4Beta Cmr, Control ubicación, volver atrás de Controlador, botón llamadas, volver pantalla anterior parking,">
<change afterPath="$PROJECT_DIR$/.idea/assetWizardSettings.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/modules/app/Gestor_Almacén.app.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/modules/vn-warehouseManager.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/navEditor.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/vn-warehouseManager.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/release/vn-pickingBeta.apk" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/GetPackagingUserCase.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/adapter/ItemSupplierAdapter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/adapter/ListImageAdapter.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/ObservFragment.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingCountFragment.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingSummaryFragment.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingViewModel/SupplierViewModel.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/SupplierFragment.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/model/EntrySalix.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/model/Supplier.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/.idea/drawable.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/check.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_packaging.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging_count.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging_obs.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging_summary.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_general_row_image.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_image_row.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_itemsupplier_row.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/local.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/deploymentTargetDropDown.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/app/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/release/output-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/app/release/output-metadata.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/release/vn-picking.apk" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/di/viewModelModule.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/di/viewModelModule.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/GetLoginUserCase.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/GetLoginUserCase.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/GetPaletizadoresUserCase.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/GetPaletizadoresUserCase.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/GetSacadorControladorUserCase.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/GetSacadorControladorUserCase.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/GetUbicadorUserCase.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/GetUbicadorUserCase.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/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/domain/itemShelvingLogUSerCase.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/itemShelvingLogUSerCase.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/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/common/itemScanned.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/common/itemScanned.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInputTwoValues.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/component/CustomDialogInputTwoValues.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/adapter/SaleAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/adapter/SaleAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlvehiculo/fragment/ControlVehiculoUsuarioFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlvehiculo/fragment/ControlVehiculoUsuarioFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelving/adapter/ItemShelvingLogAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelving/adapter/ItemShelvingLogAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelving/fragment/ItemShelvingLogFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelving/fragment/ItemShelvingLogFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/SearchBuyerModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/SearchBuyerModel.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/paletizador/fragment/CmrExpeditionPalletFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/CmrExpeditionPalletFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/CmrExpeditionPalletViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/CmrExpeditionPalletViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/PalletScanFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/PalletScanFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/parking/fragment/ParkingFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/parking/fragment/ParkingFragment.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/java/es/verdnatura/presentation/view/feature/presacador/fragment/EndSacadorFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/EndSacadorFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/adapter/UbicadorAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/adapter/UbicadorAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/model/ItemUbicadorVO.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/model/ItemUbicadorVO.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/workermistake/fragment/WorkermistakeFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/workermistake/fragment/WorkermistakeFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/component_custom_edit_dialog_two_values.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/component_custom_edit_dialog_two_values.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_workermistake.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_workermistake.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/item_ubication_row.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/item_ubication_row.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/toolbar_fragment.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/toolbar_fragment.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values-es/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values-es/strings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/colors.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/colors.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/dimens.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/dimens.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" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/styles.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/styles.xml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ChangesViewManager" show_ignored="true" />
<component name="CodeInsightWorkspaceSettings">
<option name="optimizeImportsOnTheFly" value="true" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[21114523025303]" />
<component name="ExportToHTMLSettings">
<option name="OPEN_IN_BROWSER" value="true" />
<option name="OUTPUT_DIRECTORY" value="C:\Program Files\Android\Android Studio\inspections" />
</component>
<component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$">
<ProjectState />
</projectState>
</component>
<component name="ExternalProjectsManager">
<system id="GRADLE">
<state>
<projects_view>
<tree_state>
<expand />
<select />
</tree_state>
</projects_view>
</state>
</system>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="navigationResourceFile" />
<option value="resourceFile" />
<option value="layoutResourceFile" />
<option value="Class" />
<option value="Kotlin Class" />
</list>
</option>
</component>
<component name="GenerateSignedApkSettings">
<option name="KEY_STORE_PATH" value="C:\Users\sergiodt\proyectos\androidkeys_quique\keystore.jks" />
<option name="KEY_ALIAS" value="keystore" />
<option name="REMEMBER_PASSWORDS" value="true" />
<option name="BUILD_TARGET_KEY" value="apk" />
</component>
<component name="Git.Merge.Settings">
<option name="BRANCH" value="master" />
</component>
<component name="Git.Settings">
<excluded-from-favorite>
<branch-storage>
<map>
<entry type="REMOTE">
<value>
<list>
<branch-info repo="$PROJECT_DIR$" source="origin/master" />
</list>
</value>
</entry>
</map>
</branch-storage>
</excluded-from-favorite>
<favorite-branches>
<branch-storage>
<map>
<entry type="REMOTE">
<value>
<list>
<branch-info repo="$PROJECT_DIR$" source="appverdnatura/test" />
</list>
</value>
</entry>
</map>
</branch-storage>
</favorite-branches>
<option name="PREVIOUS_COMMIT_AUTHORS">
<list>
<option value="sergiodt@verdnatura.es" />
<option value="Sergio dt" />
</list>
</option>
<option name="PUSH_TAGS">
<GitPushTagMode>
<option name="argument" value="--tags" />
<option name="title" value="All" />
</GitPushTagMode>
</option>
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="Tarea3420-quantity_y_originalQuantity" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="RESET_MODE" value="MIXED" />
</component>
<component name="GitSEFilterConfiguration">
<file-type-list>
<filtered-out-file-type name="LOCAL_BRANCH" />
<filtered-out-file-type name="REMOTE_BRANCH" />
<filtered-out-file-type name="TAG" />
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
</file-type-list>
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$PROJECT_DIR$/app/src/main/res/values-es/strings.xml" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/res/layout/toolbar_fragment.xml" root0="FORCE_HIGHLIGHTING" />
</component>
<component name="ProblemsViewState">
<option name="proportion" value="0.50190353" />
<option name="sortByName" value="true" />
</component>
<component name="ProjectId" id="1rNnmCWH3aNvnQwcp2vPrEIlvP2" />
<component name="ProjectLevelVcsManager">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
<option name="showMembers" value="true" />
</component>
<component name="PropertiesComponent">
<property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
<property name="ApkExportedModule" value="Gestor_Almacén.app" />
<property name="BundleExportedModule" value="Gestor_Almacén.app" />
<property name="ChangesTree.GroupingKeys" value="module" />
<property name="DEBUGGABLE_DEVICE" value="wiko-w_p611_eea-HUHESK79F6NFBAPF" />
<property name="DEBUGGABLE_PROCESS" value="es.verdnatura" />
<property name="DEBUGGER_ID" value="Auto" />
<property name="DeviceAndSnapshotComboBoxAction.selectedDevice" value="SerialNumber@20211523021031" />
<property name="DeviceAndSnapshotComboBoxAction.selectionTime" value="2021-08-12T14:29:19.760785500Z" />
<property name="ExportApk.ApkPath" value="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app" />
<property name="ExportApk.BuildVariants" value="release" />
<property name="ExportApk.SignV1" value="true" />
<property name="ExportApk.SignV2" value="true" />
<property name="I18N_FIX_LAST_USED_CONTEXT" value="Gestor_Almacén.app.main" />
<property name="ResourceManagerPrefKey.ResourceType" value="DRAWABLE" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="RunOnceActivity.cidr.known.project.marker" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="SHOW_ALL_PROCESSES" value="false" />
<property name="ScreenRecorderTask.SavePath" value="C:\Users\sergiodt\device-2021-11-25-073850.mp4" />
<property name="TODO_SCOPE" value="All Places" />
<property name="android-custom-viewC:/Users/sergiodt/.gradle/caches/modules-2/files-2.1/androidx.appcompat/appcompat/1.1.0/9865019bbd2d95e41dede3d8ebf964aa93f97766/appcompat-1.1.0-sources.jar!/androidx/appcompat/widget/AppCompatImageView.java_SELECTED" value="AppCompatImageView" />
<property name="android-custom-viewC:/Users/sergiodt/.gradle/caches/modules-2/files-2.1/androidx.recyclerview/recyclerview/1.0.0/2151d26c3b241f0a887f2dadb9ab091649fcf020/recyclerview-1.0.0-sources.jar!/androidx/recyclerview/widget/RecyclerView.java_RecyclerView_DIMENSIONS" value="1080&#10;1920" />
<property name="android-custom-viewC:/Users/sergiodt/.gradle/caches/modules-2/files-2.1/androidx.recyclerview/recyclerview/1.0.0/2151d26c3b241f0a887f2dadb9ab091649fcf020/recyclerview-1.0.0-sources.jar!/androidx/recyclerview/widget/RecyclerView.java_SELECTED" value="RecyclerView" />
<property name="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" value="RecyclerView" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-29/android/view/View.java_SELECTED" value="View" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-29/android/widget/EditText.java_SELECTED" value="EditText" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-29/android/widget/ImageView.java_SELECTED" value="ImageView" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-29/android/widget/TextView.java_SELECTED" value="TextView" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-29/android/widget/TextView.java_TextView_DIMENSIONS" value="1080&#10;1920" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-30/android/view/View.java_SELECTED" value="View" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-30/android/widget/ImageView.java_SELECTED" value="ImageView" />
<property name="android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-30/android/widget/TextView.java_SELECTED" value="TextView" />
<property name="android.recentlyUsedThemes" value="Base.Theme.AppCompat" />
<property name="cidr.known.project.marker" value="true" />
<property name="com.developerphil.adbidea.selecteddevices" value="19192521400686" />
<property name="last_directory_selection" value="$PROJECT_DIR$/app/src/main/res/drawable" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/app/src/main/res/drawable" />
<property name="multi-representation-previewC:/Users/sergiodt/.gradle/caches/modules-2/files-2.1/androidx.recyclerview/recyclerview/1.0.0/2151d26c3b241f0a887f2dadb9ab091649fcf020/recyclerview-1.0.0-sources.jar!/androidx/recyclerview/widget/RecyclerView.java_selected" value="Custom views" />
<property name="multi-representation-previewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-29/android/view/View.java_selected" value="Custom views" />
<property name="multi-representation-previewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-29/android/widget/TextView.java_selected" value="Custom views" />
<property name="project.structure.last.edited" value="Dependencies" />
<property name="project.structure.proportion" value="0.17" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="recommended.upgrade.last.time.stamp" value="1641190974236" />
<property name="run.code.analysis.last.selected.profile" value="pProject Default" />
<property name="settings.editor.selected.configurable" value="reference.settingsdialog.project.gradle" />
</component>
<component name="PsdUISettings">
<option name="MODULE_TAB" value="Default Config" />
<option name="LAST_EDITED_SIGNING_CONFIG" value="debug" />
<option name="LAST_EDITED_BUILD_TYPE" value="release" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\drawable" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\layout" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\drawable-v24" />
<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" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\drawable-v24" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\raw" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\assets" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\font" />
<recent name="C:\Users\sergiodt\AndroidStudioProjects\vn-warehouseManager\app\src\main\res\drawable" />
</key>
<key name="MoveKotlinTopLevelDeclarationsDialog.RECENTS_KEY">
<recent name="es.verdnatura.presentation.view.feature.packaging.fragment.SupplierViewModel" />
<recent name="es.verdnatura.presentation.view.feature.workermistake.fragment" />
<recent name="es.verdnatura.presentation.view.feature.historicoshelving.fragment" />
<recent name="es.verdnatura.presentation.view.feature.buffer.fragment" />
<recent name="es.verdnatura.presentation.view.feature.smarttag.register" />
</key>
<key name="CopyKotlinDeclarationDialog.RECENTS_KEY">
<recent name="es.verdnatura.domain" />
<recent name="es.verdnatura.presentation.view.feature.packaging.fragment" />
<recent name="es.verdnatura.presentation.view.component" />
<recent name="es.verdnatura.presentation.view.feature.inventario.adapter" />
</key>
</component>
<component name="RunManager" selected="Android App.app">
<configuration default="true" type="AndroidJUnit" factoryName="Android JUnit">
<option name="TEST_OBJECT" value="class" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<method v="2">
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
</method>
</configuration>
<configuration name="app" type="AndroidRunConfigurationType" factoryName="Android App" activateToolWindowBeforeRun="false">
<module name="Gestor_Almacén.app" />
<option name="DEPLOY" value="true" />
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
<option name="DEPLOY_AS_INSTANT" value="false" />
<option name="ARTIFACT_NAME" value="" />
<option name="PM_INSTALL_OPTIONS" value="" />
<option name="ALL_USERS" value="false" />
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="" />
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
<option name="MODE" value="default_activity" />
<option name="CLEAR_LOGCAT" value="false" />
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
<option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
<option name="TARGET_SELECTION_MODE" value="DEVICE_AND_SNAPSHOT_COMBO_BOX" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEBUGGER_TYPE" value="Auto" />
<Auto>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
</Auto>
<Hybrid>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
</Hybrid>
<Java />
<Native>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
</Native>
<Profilers>
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
<option name="STARTUP_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Sample Java Methods" />
<option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" />
<option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" />
</Profilers>
<option name="DEEP_LINK" value="" />
<option name="ACTIVITY_CLASS" value="" />
<option name="SEARCH_ACTIVITY_IN_GLOBAL_SCOPE" value="false" />
<option name="SKIP_ACTIVITY_VALIDATION" value="false" />
<method v="2">
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
</method>
</configuration>
<configuration name="vn-warehouseManager" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list />
</option>
<option name="vmOptions" value="" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<method v="2" />
</configuration>
<recent_temporary>
<list>
<item itemvalue="Gradle.vn-warehouseManager" />
<item itemvalue="Gradle.vn-warehouseManager" />
<item itemvalue="Gradle.vn-warehouseManager" />
<item itemvalue="Gradle.vn-warehouseManager" />
<item itemvalue="Gradle.vn-warehouseManager" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration">
<configuration>C:\Users\sergiodt\AppData\Roaming\Subversion</configuration>
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="fa688d1c-dbee-4864-9e33-4d84ef9afca8" name="Default Changelist" comment="" />
<created>1618825571576</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1618825571576</updated>
</task>
<task id="LOCAL-00043" summary="Modifico control vehiculo para que no vuelva a pedir escanear cuando se vuelve atrás, modificado historico de vehiculos ahora informa en el caso que esté vacía la lista y añadido fallo de trabajador. En test. No subida">
<created>1644472909011</created>
<option name="number" value="00043" />
<option name="presentableId" value="LOCAL-00043" />
<option name="project" value="LOCAL" />
<updated>1644472909011</updated>
</task>
<task id="LOCAL-00044" summary="Añadida funcionalidad de recuperar/guardar sector. Refactor Login. Cambiado icono que cerraba app en móviles viejos. Se añade campo prioridad. Pantalla de allo trabajador.">
<created>1644911413401</created>
<option name="number" value="00044" />
<option name="presentableId" value="LOCAL-00044" />
<option name="project" value="LOCAL" />
<updated>1644911413401</updated>
</task>
<task id="LOCAL-00045" summary="Añadido funcionalidad nueva de PreSacador y solucionado tema de la referencia en ItemCard. Cambiado forma de coger vehículo y arreglado volver atrás en controaldor">
<created>1646409278855</created>
<option name="number" value="00045" />
<option name="presentableId" value="LOCAL-00045" />
<option name="project" value="LOCAL" />
<updated>1646409278855</updated>
</task>
<task id="LOCAL-00046" summary="Version 7.9, seleccionar impresora y movimiento recyclerViewer para el sacador. Llamadas smarttags al servidor ok">
<created>1648617906228</created>
<option name="number" value="00046" />
<option name="presentableId" value="LOCAL-00046" />
<option name="project" value="LOCAL" />
<updated>1648617906228</updated>
</task>
<task id="LOCAL-00047" summary="Version 8, impresora obligatoria, controlador se desplaza al pulsar, Ubicar Reclamación y líneas controlador = orden saca el sacador">
<created>1649233788632</created>
<option name="number" value="00047" />
<option name="presentableId" value="LOCAL-00047" />
<option name="project" value="LOCAL" />
<updated>1649233788632</updated>
</task>
<task id="LOCAL-00048" summary="Version 8, impresora obligatoria, controlador se desplaza al pulsar, Ubicar Reclamación y líneas controlador = orden saca el sacador">
<created>1649234340659</created>
<option name="number" value="00048" />
<option name="presentableId" value="LOCAL-00048" />
<option name="project" value="LOCAL" />
<updated>1649234340659</updated>
</task>
<task id="LOCAL-00049" summary="Version 8, impresora obligatoria, controlador se desplaza al pulsar, Ubicar Reclamación y líneas controlador = orden saca el sacador">
<created>1649235060928</created>
<option name="number" value="00049" />
<option name="presentableId" value="LOCAL-00049" />
<option name="project" value="LOCAL" />
<updated>1649235060928</updated>
</task>
<task id="LOCAL-00050" summary="Version 8.2 obligatorio sector para imprimir, Desmarcar sacador ok. Cambiado texto DiadeVenta.Añadido icono Parking previa. Actualiza datos en Previa. Nuevo diseño INVISIBLE">
<created>1651646872970</created>
<option name="number" value="00050" />
<option name="presentableId" value="LOCAL-00050" />
<option name="project" value="LOCAL" />
<updated>1651646872971</updated>
</task>
<task id="LOCAL-00051" summary="Version 8.2 obligatorio sector para imprimir, Desmarcar sacador ok. Cambiado texto DiadeVenta.Añadido icono Parking previa. Actualiza datos en Previa. Nuevo diseño INVISIBLE">
<created>1651647030034</created>
<option name="number" value="00051" />
<option name="presentableId" value="LOCAL-00051" />
<option name="project" value="LOCAL" />
<updated>1651647030035</updated>
</task>
<task id="LOCAL-00052" summary="Version 8.2 Subida de ficheros que no estaban versionados">
<created>1651647188750</created>
<option name="number" value="00052" />
<option name="presentableId" value="LOCAL-00052" />
<option name="project" value="LOCAL" />
<updated>1651647188751</updated>
</task>
<task id="LOCAL-00053" summary="Version 8.2 Subida de ficheros que no estaban versionados">
<created>1651647225421</created>
<option name="number" value="00053" />
<option name="presentableId" value="LOCAL-00053" />
<option name="project" value="LOCAL" />
<updated>1651647225421</updated>
</task>
<task id="LOCAL-00054" summary="Revert &quot;Version 8.2 Subida de ficheros que no estaban versionados&quot;&#10;&#10;This reverts commit 3c0f949e">
<created>1651647601790</created>
<option name="number" value="00054" />
<option name="presentableId" value="LOCAL-00054" />
<option name="project" value="LOCAL" />
<updated>1651647601790</updated>
</task>
<task id="LOCAL-00055" summary="Revert &quot;Revert &quot;Version 8.2 Subida de ficheros que no estaban versionados&quot;&quot;&#10;&#10;This reverts commit 9b8d092d">
<created>1651648056868</created>
<option name="number" value="00055" />
<option name="presentableId" value="LOCAL-00055" />
<option name="project" value="LOCAL" />
<updated>1651648056868</updated>
</task>
<task id="LOCAL-00056" summary="Version 8.2 Subida de ficheros que no estaban versionados">
<created>1651648467597</created>
<option name="number" value="00056" />
<option name="presentableId" value="LOCAL-00056" />
<option name="project" value="LOCAL" />
<updated>1651648467597</updated>
</task>
<task id="LOCAL-00057" summary="Version 8.3 Diseño grafico, llamadas a Salix y return &quot;Finish&quot;">
<created>1652788345754</created>
<option name="number" value="00057" />
<option name="presentableId" value="LOCAL-00057" />
<option name="project" value="LOCAL" />
<updated>1652788345755</updated>
</task>
<task id="LOCAL-00058" summary="Version 8.4Beta, return &quot;finish&quot; y apptesters">
<created>1653400494828</created>
<option name="number" value="00058" />
<option name="presentableId" value="LOCAL-00058" />
<option name="project" value="LOCAL" />
<updated>1653400494829</updated>
</task>
<task id="LOCAL-00059" summary="Version 8.4.1Beta, return &quot;finish&quot;, strings y quitado test rocket">
<created>1653577349342</created>
<option name="number" value="00059" />
<option name="presentableId" value="LOCAL-00059" />
<option name="project" value="LOCAL" />
<updated>1653577349343</updated>
</task>
<task id="LOCAL-00060" summary="Version 8.4.1Beta, strings y return finish">
<created>1653644047502</created>
<option name="number" value="00060" />
<option name="presentableId" value="LOCAL-00060" />
<option name="project" value="LOCAL" />
<updated>1653644047502</updated>
</task>
<task id="LOCAL-00061" summary="Version 8.4.1Beta,Tarea #3958">
<created>1653663791334</created>
<option name="number" value="00061" />
<option name="presentableId" value="LOCAL-00061" />
<option name="project" value="LOCAL" />
<updated>1653663791335</updated>
</task>
<task id="LOCAL-00062" summary="Version 8.4.1Beta=8.4 Master,sin envio rockets de sacador/controlador y quitar strings.">
<created>1654145430078</created>
<option name="number" value="00062" />
<option name="presentableId" value="LOCAL-00062" />
<option name="project" value="LOCAL" />
<updated>1654145430079</updated>
</task>
<task id="LOCAL-00063" summary="Version 8.5Beta, strings, body =null y muestra coger vehículo">
<created>1654670479261</created>
<option name="number" value="00063" />
<option name="presentableId" value="LOCAL-00063" />
<option name="project" value="LOCAL" />
<updated>1654670479262</updated>
</task>
<task id="LOCAL-00064" summary="Version 8.5.1Beta, strings, muestra previa y comentar smarttads">
<created>1654772518409</created>
<option name="number" value="00064" />
<option name="presentableId" value="LOCAL-00064" />
<option name="project" value="LOCAL" />
<updated>1654772518410</updated>
</task>
<task id="LOCAL-00065" summary="Version 8.5.1Beta acceso a control vehiculo ok">
<created>1654781827179</created>
<option name="number" value="00065" />
<option name="presentableId" value="LOCAL-00065" />
<option name="project" value="LOCAL" />
<updated>1654781827179</updated>
</task>
<task id="LOCAL-00066" summary="Version 8.5.2Beta, quitado color del item, quitado back de revisor y control de previa solo sus líneas">
<created>1655369652090</created>
<option name="number" value="00066" />
<option name="presentableId" value="LOCAL-00066" />
<option name="project" value="LOCAL" />
<updated>1655369652090</updated>
</task>
<task id="LOCAL-00067" summary="Version 8.6.1Beta, añadido ticketColor más grande, quitados colores items y permutado quantity por cel2. Quitados warnings">
<created>1655960861634</created>
<option name="number" value="00067" />
<option name="presentableId" value="LOCAL-00067" />
<option name="project" value="LOCAL" />
<updated>1655960861634</updated>
</task>
<task id="LOCAL-00068" summary="Version 8.6.1Beta tareas #3601 refactor ivnentario.Tarea #3959(warnings deprecated,typedate,neverused)">
<created>1656322885999</created>
<option name="number" value="00068" />
<option name="presentableId" value="LOCAL-00068" />
<option name="project" value="LOCAL" />
<updated>1656322886000</updated>
</task>
<task id="LOCAL-00069" summary="Version 8.7 Reubicación, sector = SACADOR V, controlador no puede hacer parking si no están revisados todos los tickets,">
<created>1656930096719</created>
<option name="number" value="00069" />
<option name="presentableId" value="LOCAL-00069" />
<option name="project" value="LOCAL" />
<updated>1656930096719</updated>
</task>
<task id="LOCAL-00070" summary="Version 8.8Beta precio coste artículo, modificar tallos, mensajes error para items sin buyFk y ticket eliminado o viejo">
<created>1659005042067</created>
<option name="number" value="00070" />
<option name="presentableId" value="LOCAL-00070" />
<option name="project" value="LOCAL" />
<updated>1659005042068</updated>
</task>
<task id="LOCAL-00071" summary="Version 9Beta, dos opciones a Paletizadores y carros de operator">
<created>1662699501924</created>
<option name="number" value="00071" />
<option name="presentableId" value="LOCAL-00071" />
<option name="project" value="LOCAL" />
<updated>1662699501924</updated>
</task>
<task id="LOCAL-00072" summary="Version 9Beta-Tarea3420">
<created>1662982877783</created>
<option name="number" value="00072" />
<option name="presentableId" value="LOCAL-00072" />
<option name="project" value="LOCAL" />
<updated>1662982877783</updated>
</task>
<task id="LOCAL-00073" summary="Version 9Beta-Borrados comentarios">
<created>1663050116723</created>
<option name="number" value="00073" />
<option name="presentableId" value="LOCAL-00073" />
<option name="project" value="LOCAL" />
<updated>1663050116723</updated>
</task>
<task id="LOCAL-00074" summary="Version 9.1Beta- Rgb,trasaccion marcar lineas, new collection,shelvingLog, y ajustes">
<created>1663770280710</created>
<option name="number" value="00074" />
<option name="presentableId" value="LOCAL-00074" />
<option name="project" value="LOCAL" />
<updated>1663770280712</updated>
</task>
<task id="LOCAL-00075" summary="Version 9.1Beta- Rgb,trasaccion marcar lineas, new collection,shelvingLog, y ajustes">
<created>1663770314650</created>
<option name="number" value="00075" />
<option name="presentableId" value="LOCAL-00075" />
<option name="project" value="LOCAL" />
<updated>1663770314650</updated>
</task>
<task id="LOCAL-00076" summary="Version 9.1Beta- Filtro inventario">
<created>1663835246994</created>
<option name="number" value="00076" />
<option name="presentableId" value="LOCAL-00076" />
<option name="project" value="LOCAL" />
<updated>1663835246994</updated>
</task>
<task id="LOCAL-00077" summary="Version 9.1Beta- Modificar original y originalQuantity">
<created>1663849445751</created>
<option name="number" value="00077" />
<option name="presentableId" value="LOCAL-00077" />
<option name="project" value="LOCAL" />
<updated>1663849445751</updated>
</task>
<task id="LOCAL-00078" summary="Version 9.1Beta-CMR quitado, rgb quitado">
<created>1663850881923</created>
<option name="number" value="00078" />
<option name="presentableId" value="LOCAL-00078" />
<option name="project" value="LOCAL" />
<updated>1663850881923</updated>
</task>
<task id="LOCAL-00079" summary="Version 9.1Beta-Compilada versión y formateado Ajustes">
<created>1663930085261</created>
<option name="number" value="00079" />
<option name="presentableId" value="LOCAL-00079" />
<option name="project" value="LOCAL" />
<updated>1663930085262</updated>
</task>
<task id="LOCAL-00080" summary="Version 9.1Beta-Quantity_y_originalQuantity_view_to_Integer.toString">
<created>1663943604196</created>
<option name="number" value="00080" />
<option name="presentableId" value="LOCAL-00080" />
<option name="project" value="LOCAL" />
<updated>1663943604196</updated>
</task>
<task id="LOCAL-00081" summary="Version 9.2Beta-Controlador sin animacion y vuelve al sitio">
<created>1664276655283</created>
<option name="number" value="00081" />
<option name="presentableId" value="LOCAL-00081" />
<option name="project" value="LOCAL" />
<updated>1664276655284</updated>
</task>
<task id="LOCAL-00082" summary="Version 9 Arreglado vuelta atrás controlador">
<created>1664430359823</created>
<option name="number" value="00082" />
<option name="presentableId" value="LOCAL-00082" />
<option name="project" value="LOCAL" />
<updated>1664430359824</updated>
</task>
<task id="LOCAL-00083" summary="Version 9.2.1 Refactor Inicio">
<created>1664790614473</created>
<option name="number" value="00083" />
<option name="presentableId" value="LOCAL-00083" />
<option name="project" value="LOCAL" />
<updated>1664790614473</updated>
</task>
<task id="LOCAL-00084" summary="Version 9.2.1 Refactor Inicio, pintar a través del rgb, modificado diseño,se añade shelvingLog y muestra colección a través de ticket">
<created>1665032465280</created>
<option name="number" value="00084" />
<option name="presentableId" value="LOCAL-00084" />
<option name="project" value="LOCAL" />
<updated>1665032465281</updated>
</task>
<task id="LOCAL-00085" summary="Version 9.2.1 Modificado fragment">
<created>1665037437997</created>
<option name="number" value="00085" />
<option name="presentableId" value="LOCAL-00085" />
<option name="project" value="LOCAL" />
<updated>1665037437997</updated>
</task>
<task id="LOCAL-00086" summary="Version 9.2.1 Modificado fragment a fragment_general">
<created>1665038575752</created>
<option name="number" value="00086" />
<option name="presentableId" value="LOCAL-00086" />
<option name="project" value="LOCAL" />
<updated>1665038575752</updated>
</task>
<task id="LOCAL-00087" summary="Version 9.2.1 añadido error encajado y modificado marcaje">
<created>1665118245168</created>
<option name="number" value="00087" />
<option name="presentableId" value="LOCAL-00087" />
<option name="project" value="LOCAL" />
<updated>1665118245169</updated>
</task>
<task id="LOCAL-00088" summary="Version 9.2.1 en producción">
<created>1665123288355</created>
<option name="number" value="00088" />
<option name="presentableId" value="LOCAL-00088" />
<option name="project" value="LOCAL" />
<updated>1665123288355</updated>
</task>
<task id="LOCAL-00089" summary="Version 9.2.1 en producción. Borrada Voz y Ajustes impresora">
<created>1665470010499</created>
<option name="number" value="00089" />
<option name="presentableId" value="LOCAL-00089" />
<option name="project" value="LOCAL" />
<updated>1665470010500</updated>
</task>
<task id="LOCAL-00090" summary="Version 9.2.1 en producción. Borrada Voz y Ajustes impresora">
<created>1665470036509</created>
<option name="number" value="00090" />
<option name="presentableId" value="LOCAL-00090" />
<option name="project" value="LOCAL" />
<updated>1665470036509</updated>
</task>
<task id="LOCAL-00091" summary="Version 9.2 Error encajado y en ver Ticket aparece ver la colección">
<created>1666276993765</created>
<option name="number" value="00091" />
<option name="presentableId" value="LOCAL-00091" />
<option name="project" value="LOCAL" />
<updated>1666276993765</updated>
</task>
<option name="localTasksCounter" value="92" />
<servers />
</component>
<component name="Vcs.Log.History.Properties">
<option name="COLUMN_ID_ORDER">
<list>
<option value="Default.Root" />
<option value="Default.Author" />
<option value="Default.Date" />
<option value="Default.Subject" />
</list>
</option>
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="1">
<value>
<State>
<option name="FILTERS">
<map>
<entry key="branch">
<value>
<list>
<option value="test" />
</list>
</value>
</entry>
</map>
</option>
</State>
</value>
</entry>
<entry key="MAIN">
<value>
<State>
<option name="BEK_SORT_TYPE" value="1" />
<option name="FILTERS">
<map>
<entry key="branch">
<value>
<list>
<option value="testWith3420" />
</list>
</value>
</entry>
</map>
</option>
<option name="COLUMN_ID_WIDTH">
<map>
<entry key="Table.Default.Author.ColumnIdWidth" value="18" />
<entry key="Table.Default.Date.ColumnIdWidth" value="18" />
</map>
</option>
</State>
</value>
</entry>
<entry key="a7a6ac7c-1e79-4c0b-bbb7-6f3f2203baeb">
<value>
<State>
<option name="FILTERS">
<map>
<entry key="range">
<value>
<list>
<option value="master..test" />
</list>
</value>
</entry>
<entry key="roots">
<value>
<list>
<option value="$PROJECT_DIR$" />
</list>
</value>
</entry>
</map>
</option>
</State>
</value>
</entry>
</map>
</option>
<option name="RECENT_FILTERS">
<map>
<entry key="Branch">
<value>
<list>
<RecentGroup>
<option name="FILTER_VALUES">
<option value="appverdnatura/master" />
</option>
</RecentGroup>
</list>
</value>
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="VcsManagerConfiguration">
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
<MESSAGE value="Version 8.6.1Beta, añadido ticketColor más grande, quitados colores items y permutado quantity por cel2. Quitados warnings" />
<MESSAGE value="Version 8.6.1Beta tareas #3601 refactor ivnentario.Tarea #3959(warnings deprecated,typedate,neverused)" />
<MESSAGE value="Version 8.7 Reubicación, sector = SACADOR V, controlador no puede hacer parking si no están revisados todos los tickets," />
<MESSAGE value="Version 8.8Beta precio coste artículo, modificar tallos, mensajes error para items sin buyFk y ticket eliminado o viejo" />
<MESSAGE value="Version 9Beta, dos opciones a Paletizadores y carros de operator" />
<MESSAGE value="Version 9Beta-Tarea3420" />
<MESSAGE value="Version 9Beta-Borrados comentarios" />
<MESSAGE value="Version 9.1Beta- rgb,trasaccion marcar lineas, new collection y ajustes" />
<MESSAGE value="Version 9.1Beta- Rgb,trasaccion marcar lineas, new collection,shelvingLog, y ajustes" />
<MESSAGE value="Version 9.1Beta- Filtro inventario" />
<MESSAGE value="Version 9.1Beta- Modificar original y originalQuantity" />
<MESSAGE value="Version 9.1Beta-CMR quitado, rgb quitado" />
<MESSAGE value="Version 9.1Beta-Compilada versión y formateado Ajustes" />
<MESSAGE value="Version 9.1Beta-Quantity_y_originalQuantity_view_to_Integer.toString" />
<MESSAGE value="Version 9.2Beta-Controlador sin animacion y vuelve al sitio" />
<MESSAGE value="Version 9 Arreglado vuelta atrás controlador" />
<MESSAGE value="Version 9.2.1 Refactor Inicio" />
<MESSAGE value="Version 9.2.1 Refactor Inicio, pintar a través del rgb, modificado diseño,se añade shelvingLog y muestra colección a través de ticket" />
<MESSAGE value="Version 9.2.1 Modificado fragment" />
<MESSAGE value="Version 9.2.1 Modificado fragment a fragment_general" />
<MESSAGE value="Version 9.2.1 añadido error encajado y modificado marcaje" />
<MESSAGE value="Version 9.2.1 en producción" />
<MESSAGE value="Version 9.2.1 en producción. Borrada Voz y Ajustes impresora" />
<MESSAGE value="Version 9.2 Error encajado y en ver Ticket aparece ver la colección" />
<MESSAGE value="Version 9.4Beta Cmr, Control ubicación, volver atrás de Controlador, botón llamadas, volver pantalla anterior parking," />
<option name="LAST_COMMIT_MESSAGE" value="Version 9.4Beta Cmr, Control ubicación, volver atrás de Controlador, botón llamadas, volver pantalla anterior parking," />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" suspend="THREAD" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt</url>
<line>61</line>
<option name="timeStamp" value="3" />
</line-breakpoint>
<line-breakpoint enabled="true" suspend="THREAD" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlvehiculo/fragment/ControlVehiculoViewModel.kt</url>
<line>202</line>
<option name="timeStamp" value="5" />
</line-breakpoint>
<line-breakpoint enabled="true" suspend="THREAD" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlvehiculo/fragment/ControlVehiculoViewModel.kt</url>
<line>195</line>
<option name="timeStamp" value="6" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<pin-to-top-manager>
<pinned-members>
<PinnedItemInfo parentTag="java.net.SocketException" memberName="detailMessage" />
<PinnedItemInfo parentTag="retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall" memberName="delegate" />
<PinnedItemInfo parentTag="retrofit2.Response" memberName="errorBody" />
<PinnedItemInfo parentTag="es.verdnatura.presentation.view.feature.sacador.fragment.SacadorViewModel" memberName="_registerSmarttagInsert$delegate" />
</pinned-members>
</pin-to-top-manager>
<watches-manager>
<configuration name="app">
<watch expression="((SocketTimeoutException)((SocketTimeoutException)t).cause).cause" custom="java.net.SocketTimeoutException" />
<watch expression="this" />
</configuration>
</watches-manager>
</component>
</project>

View File

@ -11,8 +11,8 @@
"type": "SINGLE", "type": "SINGLE",
"filters": [], "filters": [],
"attributes": [], "attributes": [],
"versionCode": 138, "versionCode": 140,
"versionName": "9.2", "versionName": "9.4Beta",
"outputFile": "app-release.apk" "outputFile": "app-release.apk"
} }
], ],

Binary file not shown.

View File

@ -1,5 +1,4 @@
package es.verdnatura.di package es.verdnatura.di
import es.verdnatura.presentation.view.feature.ajustes.fragment.AjustesViewModel import es.verdnatura.presentation.view.feature.ajustes.fragment.AjustesViewModel
import es.verdnatura.presentation.view.feature.articulo.fragment.ItemCardViewModel import es.verdnatura.presentation.view.feature.articulo.fragment.ItemCardViewModel
import es.verdnatura.presentation.view.feature.buffer.fragment.BufferFragmentViewModel import es.verdnatura.presentation.view.feature.buffer.fragment.BufferFragmentViewModel
@ -18,6 +17,7 @@ import es.verdnatura.presentation.view.feature.historicoshelvinglog.fragment.she
import es.verdnatura.presentation.view.feature.historicovehiculo.fragment.HistoricoVehiculoViewModel import es.verdnatura.presentation.view.feature.historicovehiculo.fragment.HistoricoVehiculoViewModel
import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel
import es.verdnatura.presentation.view.feature.login.fragment.LoginViewModel import es.verdnatura.presentation.view.feature.login.fragment.LoginViewModel
import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingViewModel.PackagingViewModel
import es.verdnatura.presentation.view.feature.paletizador.fragment.* import es.verdnatura.presentation.view.feature.paletizador.fragment.*
import es.verdnatura.presentation.view.feature.parking.fragment.ParkingViewModel import es.verdnatura.presentation.view.feature.parking.fragment.ParkingViewModel
import es.verdnatura.presentation.view.feature.pasillero.fragment.PasilleroViewModel import es.verdnatura.presentation.view.feature.pasillero.fragment.PasilleroViewModel
@ -38,7 +38,7 @@ import org.koin.dsl.module
val viewModelModule = module { val viewModelModule = module {
viewModel{ viewModel {
WorkermistakeViewModel(androidContext()) WorkermistakeViewModel(androidContext())
} }
@ -188,7 +188,7 @@ val viewModelModule = module {
SmartTagsViewModel(androidContext()) SmartTagsViewModel(androidContext())
} }
viewModel { viewModel {
itemShelvingLogViewModel(androidContext()) itemShelvingLogViewModel(androidContext())
} }
viewModel { viewModel {
shelvingLogViewModel(androidContext()) shelvingLogViewModel(androidContext())
@ -200,5 +200,7 @@ val viewModelModule = module {
viewModel { viewModel {
PalletScanViewModel(androidContext()) PalletScanViewModel(androidContext())
} }
viewModel {
PackagingViewModel(androidContext())
}
} }

View File

@ -79,7 +79,7 @@ class GetLoginUserCase(context: Context) : RestClient(context)
fun sendChekingPresence(token:String,workerId:Int,message:String) : Call<Boolean>{ fun sendChekingPresence(token:String,workerId:Int,message:String) : Call<Boolean>{
var working_in_test=true // Enviar a grupo test Android o a los usuarios var working_in_test=false // Enviar a grupo test Android o a los usuarios
if (!working_in_test) { if (!working_in_test) {
return salixClient!!.sendChekingPresence( return salixClient!!.sendChekingPresence(

View File

@ -0,0 +1,59 @@
package es.verdnatura.domain
import android.content.Context
import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO
import es.verdnatura.presentation.view.feature.packaging.model.EntrySalix
import es.verdnatura.presentation.view.feature.packaging.model.ItemSupplier
import es.verdnatura.presentation.view.feature.packaging.model.Supplier
import retrofit2.Call
class GetPackagingUserCase(context: Context) : RestClient(context) {
fun getSuppliers(token: String): Call<List<Supplier>> {
return salixClient!!.getSuppliers(authorization = token)
}
fun Entries(token: String, entry:EntrySalix): Call<EntrySalix> {
return salixClient!!.Entries(authorization = token,entry=entry)
}
fun faultsReview_isChecked(
usuario: String,
password: String,
itemFk: String,
warehouseFk: String
): Call<Any> {
val params: ArrayList<String> = ArrayList()
params.add(itemFk)
params.add(warehouseFk)
return restClient!!.faultsReview_isChecked(
"json",
"1",
usuario,
password,
"application/json",
params = params
)
}
fun itemShelvingBuyerGet(usuario: String, password: String): Call<List<BuyerVO>> {
return restClient!!.itemShelvingBuyerGet("json", "1", usuario, password, "application/json")
}
fun supplier_getItems(
usuario: String,
password: String,
supplierFk: String
): Call<List<ItemSupplier>> {
val params: ArrayList<String> = ArrayList()
params.add(supplierFk)
return restClient!!.supplier_getItems(
"json",
"1",
usuario,
password,
"application/json",
params = params
)
}
}

View File

@ -45,10 +45,10 @@ class GetPaletizadoresUserCase(context: Context) : RestClient(context) {
fun cmrExpeditionPallet_add( fun cmrExpeditionPallet_add(
usuario: String, usuario: String,
password: String, password: String,
vExpeditionPallet: String, vExpeditionPallet: String?,
vCmrId: String vCmrId: String?
): Call<Void> { ): Call<Void> {
val params: ArrayList<String> = ArrayList() val params: ArrayList<String?> = ArrayList()
params.add(vExpeditionPallet) params.add(vExpeditionPallet)
params.add(vCmrId) params.add(vCmrId)

View File

@ -490,10 +490,9 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
params params
) )
} }
fun itemShelving_updateFromSale(usuario: String, password: String, saleFk: String,visible:String): Call<Unit> { fun itemShelving_updateFromSale(usuario: String, password: String, saleFk: String): Call<Unit> {
val params: ArrayList<String> = ArrayList() val params: ArrayList<String> = ArrayList()
params.add(saleFk) params.add(saleFk)
params.add(visible)
return restClient!!.itemShelving_updateFromSale( return restClient!!.itemShelving_updateFromSale(
"json", "json",
"1", "1",

View File

@ -30,17 +30,17 @@ class GetUbicadorUserCase(context: Context) : RestClient(context) {
shelving: String, shelving: String,
item: String, item: String,
quantity: String, quantity: String,
packing: String, packing: String?,
warehouse: String, warehouse: String,
grouping:String grouping:String?
): Call<Any> { ): Call<Any> {
val params: ArrayList<String> = ArrayList() val params: ArrayList<String> = ArrayList()
params.add(shelving) params.add(shelving)
params.add(item) params.add(item)
params.add(quantity) params.add(quantity)
params.add(packing) if (packing!=null) params.add(packing)
params.add(warehouse) params.add(warehouse)
params.add(grouping) if (grouping!=null)params.add(grouping)
return restClient!!.itemShelvingMake( return restClient!!.itemShelvingMake(
"json", "json",
"1", "1",

View File

@ -1,36 +1,40 @@
package es.verdnatura.domain package es.verdnatura.domain
import com.google.gson.Gson
import com.google.gson.JsonObject import com.google.gson.JsonObject
import es.verdnatura.presentation.view.feature.packaging.model.Supplier
import es.verdnatura.presentation.common.itemBarCodeSalix import es.verdnatura.presentation.common.itemBarCodeSalix
import es.verdnatura.presentation.common.itemPackingTypeSalix import es.verdnatura.presentation.common.itemPackingTypeSalix
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO 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.collection.saleSalix
import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.ShelvingLogSalix import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.ShelvingLogSalix
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.SalixGrupo import es.verdnatura.presentation.view.feature.login.model.SalixGrupo
import es.verdnatura.presentation.view.feature.login.model.SalixMessageVO import es.verdnatura.presentation.view.feature.login.model.SalixMessageVO
import es.verdnatura.presentation.view.feature.packaging.model.EntrySalix
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake
import org.json.JSONObject import org.json.JSONObject
import retrofit2.Call import retrofit2.Call
import retrofit2.http.* import retrofit2.http.*
import java.net.URLEncoder
interface SalixService { interface SalixService {
@POST("Accounts/login") @POST("Accounts/login")
fun login(@Header("Content-Type") content_type: String, fun login(
@Body params: LoginSalixVO): @Header("Content-Type") content_type: String,
@Body params: LoginSalixVO
):
Call<LoginSalixVO> Call<LoginSalixVO>
@POST("chats/sendCheckingPresence") @POST("chats/sendCheckingPresence")
fun sendChekingPresence( fun sendChekingPresence(
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String, @Header("Authorization") authorization: String,
@Body params: SalixMessageVO): @Body params: SalixMessageVO
):
Call<Boolean> Call<Boolean>
@POST("chats/send") @POST("chats/send")
@ -46,7 +50,7 @@ interface SalixService {
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String, @Header("Authorization") authorization: String,
): ):
Call<List<SectorItemVO>> Call<List<SectorItemVO>>
@GET("collections/getCollection") @GET("collections/getCollection")
@ -81,30 +85,30 @@ interface SalixService {
@Header("version") version: String, @Header("version") version: String,
@Header("Authorization") authorization: String, @Header("Authorization") authorization: String,
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@Path("idTicket") idTicket:String, @Path("idTicket") idTicket: String,
@Body params: listSaleSalix @Body params: listSaleSalix
): ):
Call<Any> Call<Any>
//https://test-salix.verdnatura.es/api/Departments?filter={"fields": {"id": true, "name": true},"where": {"name": "COMPRAS"}} //https://test-salix.verdnatura.es/api/Departments?filter={"fields": {"id": true, "name": true},"where": {"name": "COMPRAS"}}
// http://test-salix.verdnatura.es/api/Departments?filter={"fields": {"id": true, "name": true},"where": {"hasToMistake": "FALSE"}} // http://test-salix.verdnatura.es/api/Departments?filter={"fields": {"id": true, "name": true},"where": {"hasToMistake": "FALSE"}}
// @GET("api/Departments?filter={\"fields\": {\"id\": true, \"name\": true},\"where\": {\"hasToMistake\": \"FALSE\"}}") // @GET("api/Departments?filter={\"fields\": {\"id\": true, \"name\": true},\"where\": {\"hasToMistake\": \"FALSE\"}}")
@GET("Departments") @GET("Departments")
fun department_getHasMistake( fun department_getHasMistake(
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String, @Header("Authorization") authorization: String,
@Query("filter") filter:String = "{\"fields\": {\"id\": true, \"name\": true},\"where\": {\"name\": \"INFORMATICA\"}}" @Query("filter") filter: String = "{\"fields\": {\"id\": true, \"name\": true},\"where\": {\"name\": \"INFORMATICA\"}}"
// @Query("name") name:String ="COMPRAS" // @Query("name") name:String ="COMPRAS"
): ):
Call<List<DepartmentMistake>> Call<List<DepartmentMistake>>
@GET("Workers/{idWorker}/sip") @GET("Workers/{idWorker}/sip")
fun sip_getExtension( fun sip_getExtension(
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String, @Header("Authorization") authorization: String,
@Path("idWorker") idWorker:String @Path("idWorker") idWorker: String
): ):
Call<Any> Call<Any>
@ -113,7 +117,7 @@ interface SalixService {
fun update_ItemPackingType( fun update_ItemPackingType(
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String, @Header("Authorization") authorization: String,
@Path("itemFk") itemFk:String, @Path("itemFk") itemFk: String,
@Body params: itemPackingTypeSalix @Body params: itemPackingTypeSalix
): ):
Call<Any> Call<Any>
@ -124,12 +128,10 @@ interface SalixService {
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String, @Header("Authorization") authorization: String,
): ):
Call<List<ItemPackingType>> Call<List<ItemPackingType>>
@PUT("ItemBarCodes")//REVISADA @PUT("ItemBarCodes")//REVISADA
fun barcodes_edit( fun barcodes_edit(
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@ -143,20 +145,42 @@ interface SalixService {
fun barcodes_toitem( fun barcodes_toitem(
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String, @Header("Authorization") authorization: String,
@Path("barCodeValue") barCodeValue:String @Path("barCodeValue") barCodeValue: String
): ):
Call<String> Call<String>
@GET("Suppliers")//REVISADA
fun getSuppliers(
@Header("Content-Type") content_type: String="application/json",
@Header("Authorization") authorization: String,
//@Body params:JSONObject=JSONObject("""filter"={"fields":{"id":true,"name":true},"include":[{"relation":"contacts","scope":{"fields":["email"],"order":"id DESC","limit":1,"where":{"email":{"neq":null}}}}]}""")
/* @Query("filter") filter:String="{\"fields\":{\"id\":true,\"name\":true},\"include\":[{\"relation\":\"contacts\"," +
"\"scope\":{" +
"\"fields\":[\"email\"],\"order\":\"id DESC\",\"limit\":1," +
"\"where\":{ \"email\":{\"neq\":null } }}}]})"*/
):
Call<List<Supplier>>
@PUT("Entries")//REVISADA
fun Entries(
@Header("Content-Type") content_type: String="application/json",
@Header("Authorization") authorization: String,
@Body entry:EntrySalix
):
Call<EntrySalix>
@GET("Shelvings") @GET("Shelvings")
fun Shelvings( fun Shelvings(
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String, @Header("Authorization") authorization: String,
@Query("filter") filter:String @Query("filter") filter: String
): ):
Call<List<ShelvingLogSalix>> Call<List<ShelvingLogSalix>>
} }
interface SalixServiceSend { interface SalixServiceSend {
@POST("chats/send") @POST("chats/send")

View File

@ -21,6 +21,7 @@ import es.verdnatura.presentation.view.feature.historicovehiculo.model.ItemHisto
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
import es.verdnatura.presentation.view.feature.login.model.LoginDevice import es.verdnatura.presentation.view.feature.login.model.LoginDevice
import es.verdnatura.presentation.view.feature.login.model.versionApp import es.verdnatura.presentation.view.feature.login.model.versionApp
import es.verdnatura.presentation.view.feature.packaging.model.ItemSupplier
import es.verdnatura.presentation.view.feature.paletizador.model.* import es.verdnatura.presentation.view.feature.paletizador.model.*
import es.verdnatura.presentation.view.feature.presacador.model.PreSacadorItemVO import es.verdnatura.presentation.view.feature.presacador.model.PreSacadorItemVO
import es.verdnatura.presentation.view.feature.reubication.model.Reubication import es.verdnatura.presentation.view.feature.reubication.model.Reubication
@ -1287,7 +1288,7 @@ interface VerdnaturaService {
@Header("user") user: String, @Header("user") user: String,
@Header("pass") pass: String, @Header("pass") pass: String,
@Header("Content-Type") content_type: String, @Header("Content-Type") content_type: String,
@Body params: List<String> @Body params: List<String?>
): ):
Call<Void> Call<Void>
@ -1590,6 +1591,16 @@ interface VerdnaturaService {
@Body params: List<String> @Body params: List<String>
): ):
Call<Void> Call<Void>
//SUPPLIERS
@POST("almacennew/supplier_getItems")//REVISADA
fun supplier_getItems(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@Header("user") user: String,
@Header("pass") pass: String,
@Header("Content-Type") content_type: String,
@Body params: List<String>
):
Call<List<ItemSupplier>>
} }

View File

@ -6,6 +6,7 @@ import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
import es.verdnatura.presentation.view.feature.historicoshelving.model.ItemShelvingLog import es.verdnatura.presentation.view.feature.historicoshelving.model.ItemShelvingLog
import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.ShelvingLog import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.ShelvingLog
import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.ShelvingLogSalix import es.verdnatura.presentation.view.feature.historicoshelvinglog.model.ShelvingLogSalix
import es.verdnatura.presentation.view.feature.packaging.model.EntrySalix
import retrofit2.Call import retrofit2.Call
class itemShelvingLogUSerCase(context: Context) : RestClient(context) { class itemShelvingLogUSerCase(context: Context) : RestClient(context) {
@ -45,6 +46,8 @@ class itemShelvingLogUSerCase(context: Context) : RestClient(context) {
) )
} }
fun Shelvings( fun Shelvings(
token: String, token: String,
vShelvingFilter: String, vShelvingFilter: String,

View File

@ -255,6 +255,7 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelCla
R.drawable.ic_logo_salix -> getString(R.string.accessSalix) R.drawable.ic_logo_salix -> getString(R.string.accessSalix)
R.drawable.ic_eye_ui -> getString(R.string.icViewCollection) R.drawable.ic_eye_ui -> getString(R.string.icViewCollection)
R.drawable.ic_collection -> getString(R.string.icViewCollection) R.drawable.ic_collection -> getString(R.string.icViewCollection)
R.drawable.ic_controller_ui -> getString(R.string.checkerUbication)
else -> { else -> {
"" ""
} }
@ -547,6 +548,11 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelCla
ITEMPACKING -> prefs.getString(name, "").toString() ITEMPACKING -> prefs.getString(name, "").toString()
ITEMPACKINGFK -> prefs.getString(name, "").toString() ITEMPACKINGFK -> prefs.getString(name, "").toString()
WORKFORMSELECTED -> prefs.getString(name, "Producción").toString() WORKFORMSELECTED -> prefs.getString(name, "Producción").toString()
"SUPPLIERNAME" -> prefs.getString(name, "").toString()
"SUPPLIERID" -> prefs.getString(name, "").toString()
"ENTRYTYPE" -> prefs.getString(name, "").toString()
"ENTRYNUMBERIMAGES" -> prefs.getString(name, "0").toString()
"ENTRYOBSERVATIONS" -> prefs.getString(name, "").toString()
"base_url" -> { "base_url" -> {
@ -655,20 +661,22 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelCla
urlSalix = "https://test-salix.verdnatura.es/api/" urlSalix = "https://test-salix.verdnatura.es/api/"
) )
) )
saveWorkForm(
WorkForms( /* saveWorkForm(
"TestLocalhost", WorkForms(
"http://10.1.4.42:9000", "TestLocalhost",
urlSalix = "https://test-salix.verdnatura.es/api/" "http://10.1.4.42:9000",
urlSalix = "https://test-salix.verdnatura.es/api/"
)
) )
)
saveWorkForm( saveWorkForm(
WorkForms( WorkForms(
"TestHome", "TestHome",
"http://192.168.1.132:9000", "http://192.168.1.132:9000",
urlSalix = "https://test-salix.verdnatura.es/api/" urlSalix = "https://test-salix.verdnatura.es/api/"
) )
) )*/
saveWorkForm( saveWorkForm(
WorkForms( WorkForms(

View File

@ -9,6 +9,7 @@ import es.verdnatura.presentation.view.feature.buscaritem.model.ItemLocationVO
import es.verdnatura.presentation.view.feature.faltas.model.ItemFaltasVO import es.verdnatura.presentation.view.feature.faltas.model.ItemFaltasVO
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
import es.verdnatura.presentation.view.feature.login.model.WorkForms import es.verdnatura.presentation.view.feature.login.model.WorkForms
import es.verdnatura.presentation.view.feature.packaging.model.ItemSupplier
import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionScanVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionScanVO
import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionTruckVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionTruckVO
import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO
@ -61,6 +62,15 @@ interface OnSmartTagRowClickListener {
interface OnGeneralItemRowClickListener { interface OnGeneralItemRowClickListener {
fun OnGeneralItemRowClickListener(item: GeneralItem) fun OnGeneralItemRowClickListener(item: GeneralItem)
} }
interface OnImageTrashClickListener {
fun OnImageUpdateClickListener(item: Any)
}
interface OnImageUpdateClickListener {
fun OnImageUpdateClickListener(item: Any)
}
interface OnWorkFormsItemRowClickListener { interface OnWorkFormsItemRowClickListener {
fun OnWorkFormsItemRowClickListener(item: WorkForms) fun OnWorkFormsItemRowClickListener(item: WorkForms)
} }

View File

@ -3,7 +3,6 @@ package es.verdnatura.presentation.common
import org.json.JSONObject import org.json.JSONObject
data class itemScanned(var scanned: JSONObject) { data class itemScanned(var scanned: JSONObject) {
// var schema: String = scanned!!.get("schema").toString() var table: String? = scanned.get("table").toString()
var table: String = scanned!!.get("table").toString() var id: String? = scanned.get("id").toString()
var id: String = scanned!!.get("id").toString()
} }

View File

@ -57,6 +57,7 @@ class CustomDialogInputTwoValues(context: Context) : Dialog(context, R.style.Dia
return this return this
} }
fun setValueTwo(value: String): CustomDialogInputTwoValues { fun setValueTwo(value: String): CustomDialogInputTwoValues {
binding.customDialogValueTwo.setText(value) binding.customDialogValueTwo.setText(value)
@ -80,6 +81,7 @@ class CustomDialogInputTwoValues(context: Context) : Dialog(context, R.style.Dia
return this return this
} }
fun setDescription(description: String): CustomDialogInputTwoValues { fun setDescription(description: String): CustomDialogInputTwoValues {
binding.customDialogDescription.visibility = View.VISIBLE binding.customDialogDescription.visibility = View.VISIBLE
@ -118,6 +120,10 @@ class CustomDialogInputTwoValues(context: Context) : Dialog(context, R.style.Dia
fun setInfoTex(text:String){ fun setInfoTex(text:String){
binding.textinputlayoutUsername.hint = text binding.textinputlayoutUsername.hint = text
} }
fun setHint(visible:Boolean){
binding.textinputlayoutUsername.isHintEnabled = visible
binding.textinputlayoutTwo.isHintEnabled = visible
}
fun setInfoTextTwo(text:String){ fun setInfoTextTwo(text:String){
binding.textinputlayoutTwo.hint = text binding.textinputlayoutTwo.hint = text

View File

@ -24,6 +24,7 @@ class SaleAdapter(
private val onSaleClickListener: OnSaleClickListener, private val onSaleClickListener: OnSaleClickListener,
private val onMistakeClickListener: OnMistakeClickListener, private val onMistakeClickListener: OnMistakeClickListener,
private val onPackingClick: onPackingClickListener, private val onPackingClick: onPackingClickListener,
) : RecyclerView.Adapter<SaleAdapter.AjustesItemHolder>() { ) : RecyclerView.Adapter<SaleAdapter.AjustesItemHolder>() {
var context: Context? = null var context: Context? = null
var position: Int = 0 var position: Int = 0

View File

@ -8,6 +8,7 @@ import android.media.MediaPlayer
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Parcelable
import android.util.Log.d import android.util.Log.d
import android.view.View import android.view.View
import android.view.View.GONE import android.view.View.GONE
@ -103,6 +104,7 @@ class CollectionFragment(
private var workerFkFromTicket = "" private var workerFkFromTicket = ""
private var itemShelvingTracking_mark: String = "" private var itemShelvingTracking_mark: String = ""
private var recylerViewState: Parcelable? = null
companion object { companion object {
fun newInstance(collection: CollectionVO, type: String) = fun newInstance(collection: CollectionVO, type: String) =
@ -156,10 +158,6 @@ class CollectionFragment(
} }
override fun onResume() { override fun onResume() {
if (type == CONTROLADOR && storedBackPosition != 0) {
setListPosition(storedBackPosition, true)
}
super.onResume() super.onResume()
scanRequest() scanRequest()
} }
@ -171,7 +169,6 @@ class CollectionFragment(
customDialogThreeButtons = CustomDialogThreeButtons(requireContext()) customDialogThreeButtons = CustomDialogThreeButtons(requireContext())
ma.hideBottomNavigation(GONE) ma.hideBottomNavigation(GONE)
binding.splashProgress.visibility = VISIBLE binding.splashProgress.visibility = VISIBLE
setEvents() setEvents()
setToolBar() setToolBar()
@ -179,7 +176,6 @@ class CollectionFragment(
createCollectionList() createCollectionList()
} }
super.init() super.init()
} }
@ -188,6 +184,7 @@ class CollectionFragment(
goBack = true goBack = true
goBack2 = true goBack2 = true
goMistakeBack = true goMistakeBack = true
} }
private fun setToolBar() { private fun setToolBar() {
@ -199,12 +196,8 @@ class CollectionFragment(
binding.mainToolbar.toolbarTitle.text = collection.collectionFk binding.mainToolbar.toolbarTitle.text = collection.collectionFk
} }
val listIcons: ArrayList<ImageView> = ArrayList() val listIcons: ArrayList<ImageView> = ArrayList()
/* val iconPrevia = ImageView(context)
iconPrevia.setImageResource(R.drawable.ic_local_parking_orange_24dp)*/
val iconPrint = ImageView(context) val iconPrint = ImageView(context)
iconPrint.setImageResource(R.drawable.ic_print_black_24dp) iconPrint.setImageResource(R.drawable.ic_print_black_24dp)
@ -386,9 +379,6 @@ class CollectionFragment(
} }
//ESCANER ========= //ESCANER =========
hideKeyboards() hideKeyboards()
/* if (type.equals(CONTROLADOR)){
binding.scanInput.inputType= InputType.TYPE_CLASS_NUMBER
}*/
binding.scanInput.requestFocus() binding.scanInput.requestFocus()
binding.scanInput.setOnEditorActionListener { v, actionId, event -> binding.scanInput.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {//ID=0 ACTION_NEXT ID=5 ACTION_UNESPECEFIED) if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {//ID=0 ACTION_NEXT ID=5 ACTION_UNESPECEFIED)
@ -889,15 +879,19 @@ class CollectionFragment(
if (!goBack) { if (!goBack) {
ma.messageWithSound(it.errorMessage, it.isError, true) ma.messageWithSound(it.errorMessage, it.isError, true)
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
getData(USER),
getData(PASSWORD),
collection.collectionFk,
getData(SECTORFK),
type
)
} }
} else { } else {
saleAdapter!!.notifyDataSetChanged() saleAdapter!!.notifyDataSetChanged()
goBack = false goBack = false
} }
}) })
@ -1042,6 +1036,7 @@ class CollectionFragment(
//CREATE LIST //CREATE LIST
private fun createCollectionList() { private fun createCollectionList() {
state = 0 state = 0
binding.mainToolbar.toolbarTitle.text = collection.collectionFk binding.mainToolbar.toolbarTitle.text = collection.collectionFk
@ -1074,9 +1069,9 @@ class CollectionFragment(
sales = salesList.sortedWith(compareBy({ it.saleOrder })) sales = salesList.sortedWith(compareBy({ it.saleOrder }))
for (s in sales) { /* for (s in sales) {
d("VERDNATURA::", "El id es " + s.saleFk + " tiene saleOrder" + s.saleOrder) // d("VERDNATURA::", "El id es " + s.saleFk + " tiene saleOrder" + s.saleOrder)
} }*/
if (type == CONTROLADOR) { if (type == CONTROLADOR) {
@ -1157,20 +1152,37 @@ class CollectionFragment(
binding.fragmentSacadorCollections.adapter = saleAdapter binding.fragmentSacadorCollections.adapter = saleAdapter
binding.fragmentSacadorCollections.layoutManager = lm binding.fragmentSacadorCollections.layoutManager = lm
setTotalLines() setTotalLines()
//Tarea #4628
if (storedPosition != 0) if (type == CONTROLADOR) {
setListPosition(storedPosition, true)
else if (storedBackPosition != 0)
setListPosition(storedBackPosition, true) setListPosition(storedBackPosition, true)
setScrollListener(lm!!)
} else {
if (storedPosition != 0)
setListPosition(storedPosition, true)
else if (storedBackPosition != 0)
setListPosition(storedBackPosition, true)
setScrollListener(lm!!) }
//sergio: se quita porque se realiza desde triggers //CAU ISMAELCT
// changeInitTicketState() if (type == SACADOR) {
for (indice in sales.indices){
//sales.forEachIndexed outer@{ pos, s ->
if (sales[indice].isPrepared == "0") {
// d("VERDNATURA::", "sale encontrada pos: " + sales[indice].saleFk + "-" + sales[indice].itemFk)
setListPosition(position = indice, isFromBack = true)
break
}
}
}
exit@
printObservations(observations) printObservations(observations)
} }
private fun setScrollListener(lm: LinearLayoutManager) { private fun setScrollListener(lm: LinearLayoutManager) {
binding.fragmentSacadorCollections.clearOnScrollListeners()
binding.fragmentSacadorCollections.addOnScrollListener(object : binding.fragmentSacadorCollections.addOnScrollListener(object :
RecyclerView.OnScrollListener() { RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
@ -1477,6 +1489,9 @@ class CollectionFragment(
private fun setListPosition(position: Int, isFromBack: Boolean) { private fun setListPosition(position: Int, isFromBack: Boolean) {
storedPosition = position storedPosition = position
//tarea #4628, se asigna storedBackPosition
storedBackPosition = position
if (type == SACADOR || (type == CONTROLADOR && (getData(SECTORDESCRIP).uppercase() == getString( if (type == SACADOR || (type == CONTROLADOR && (getData(SECTORDESCRIP).uppercase() == getString(
R.string.sectorALGEMESI R.string.sectorALGEMESI
) || getData(SECTORDESCRIP).uppercase() == getString( ) || getData(SECTORDESCRIP).uppercase() == getString(
@ -1556,8 +1571,7 @@ class CollectionFragment(
viewModel.itemShelving_updateFromSale( viewModel.itemShelving_updateFromSale(
getData(USER), getData(USER),
getData(PASSWORD), getData(PASSWORD),
sales[position].saleFk, sales[position].saleFk
sales[position].quantity.toString()
) )
positionUnmarked = position positionUnmarked = position
@ -2298,24 +2312,24 @@ class CollectionFragment(
private fun showQuantityDialog(position: Int) { private fun showQuantityDialog(position: Int) {
customDialogThreeButtons.setDescription(getString(R.string.txtnuevacantidad)).setValue("") customDialogThreeButtons.setDescription(getString(R.string.txtnuevacantidad)).setValue("")
//Tarea4495 //Tarea4495
// if (type != SACADOR) { // if (type != SACADOR) {
customDialogThreeButtons.setOkButton(getString(R.string.titleFaults)) { customDialogThreeButtons.setOkButton(getString(R.string.titleFaults)) {
checkAndCall( checkAndCall(
position, position,
customDialogThreeButtons.getValue(), customDialogThreeButtons.getValue(),
getString(R.string.titleFaults) getString(R.string.titleFaults)
) )
}.setOkButtonTwo(getString(R.string.BasuraRechazar)) { }.setOkButtonTwo(getString(R.string.BasuraRechazar)) {
checkAndCall( checkAndCall(
position, position,
customDialogThreeButtons.getValue(), customDialogThreeButtons.getValue(),
getString(R.string.BasuraRechazar) getString(R.string.BasuraRechazar)
) )
} }
// } // }
customDialogThreeButtons.setOkButtonThree(getString(R.string.Reject)) { customDialogThreeButtons.setOkButtonThree(getString(R.string.Reject)) {
checkAndCall( checkAndCall(

View File

@ -738,14 +738,13 @@ class CollectionViewModel(context: Context) : BaseViewModel() {
fun itemShelving_updateFromSale( fun itemShelving_updateFromSale(
usuario: String, usuario: String,
password: String, password: String,
itemShelvingFk: String, itemShelvingFk: String
visible: String
) { ) {
getSacadorControladorUserCase.itemShelving_updateFromSale( getSacadorControladorUserCase.itemShelving_updateFromSale(
usuario, usuario,
password, password,
itemShelvingFk, itemShelvingFk
visible
) )
.enqueue(object : Callback<Unit> { .enqueue(object : Callback<Unit> {
override fun onFailure(call: Call<Unit>, t: Throwable) { override fun onFailure(call: Call<Unit>, t: Throwable) {

View File

@ -4,6 +4,7 @@ import android.content.Intent
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.util.Log.d
import android.view.View.* import android.view.View.*
import android.widget.ImageView import android.widget.ImageView
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
@ -56,7 +57,7 @@ class ControlVehiculoUsuarioFragment(
iconPhone.setImageResource(R.drawable.phone_call) iconPhone.setImageResource(R.drawable.phone_call)
iconPhone.tooltipText = getTooltip(R.drawable.phone_call) iconPhone.tooltipText = getTooltip(R.drawable.phone_call)
// listIcons.add(iconPhone) listIcons.add(iconPhone)
binding.mainToolbar.toolbarIcons.adapter = binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener { ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) { override fun onOptionsItemSelected(item: Drawable) {
@ -110,14 +111,16 @@ class ControlVehiculoUsuarioFragment(
binding.userInformation.setOnClickListener({ binding.mainToolbar.backButton.performClick() }) binding.userInformation.setOnClickListener({ binding.mainToolbar.backButton.performClick() })
viewModel.machine_getWorkerPlate(getData(USER), getData(PASSWORD)) viewModel.machine_getWorkerPlate(getData(USER), getData(PASSWORD))
} }
binding.userImage.loadUrl( binding.userImage.loadUrl(
"https://salix.verdnatura.es/api/Images/user/160x160/$userFk/download?access_token=${ getData("base_urlSalix")+"/Images/user/160x160/$userFk/download?access_token=${
getData( getData(
TOKEN TOKEN
) )
}" }"
) )
binding.nameVehiclecontrol.text = getData(USER) binding.nameVehiclecontrol.text = getData(USER)
binding.registeredVehiclecontrol.text = "" binding.registeredVehiclecontrol.text = ""
binding.deviceName.text = "" binding.deviceName.text = ""

View File

@ -7,12 +7,15 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.ItemShelvinglogRowBinding import es.verdnatura.databinding.ItemShelvinglogRowBinding
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
import es.verdnatura.presentation.view.feature.historicoshelving.model.ItemShelvingLog import es.verdnatura.presentation.view.feature.historicoshelving.model.ItemShelvingLog
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
class ItemShelvingLogAdapter ( class ItemShelvingLogAdapter (
private val items: List<ItemShelvingLog> private val items: List<ItemShelvingLog>,
private val onPasillerosItemClickListener: OnPasillerosItemClickListener
): RecyclerView.Adapter<ItemShelvingLogAdapter.ItemHolder>() { ): RecyclerView.Adapter<ItemShelvingLogAdapter.ItemHolder>() {
@ -26,6 +29,12 @@ class ItemShelvingLogAdapter (
override fun onBindViewHolder(holder: ItemHolder, position: Int) { override fun onBindViewHolder(holder: ItemHolder, position: Int) {
holder.bind(items[position]) holder.bind(items[position])
holder.binding.root.setOnClickListener {
onPasillerosItemClickListener.onPasillerosItemClickListener(
PasillerosItemVO(title = holder.binding.root.context.getString(
R.string.titleUbicator)),items[position].code)
}
} }
inner class ItemHolder( inner class ItemHolder(
@ -35,17 +44,7 @@ class ItemShelvingLogAdapter (
fun bind(item: ItemShelvingLog) { fun bind(item: ItemShelvingLog) {
binding.apply { binding.apply {
this.item = item this.item = item
/* val sdf = SimpleDateFormat("yyyy-MM-dd")
val currentDate = sdf.format(Date())
if (currentDate == item.created){
saledate.setBackgroundColor(
ContextCompat.getColor(historicoDate.context,
R.color.verdnatura_pumpkin_orange))
}else{
saledate.setBackgroundColor(
ContextCompat.getColor(historicoDate.context,
R.color.verdnatura_black_5))
}*/
} }
} }
} }

View File

@ -1,119 +1,126 @@
package es.verdnatura.presentation.view.feature.historicoshelving.fragment package es.verdnatura.presentation.view.feature.historicoshelving.fragment
import android.view.View import android.content.Context
import android.view.inputmethod.EditorInfo import android.view.View
import androidx.lifecycle.Observer import android.view.inputmethod.EditorInfo
import androidx.recyclerview.widget.LinearLayoutManager import androidx.lifecycle.Observer
import es.verdnatura.R import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.databinding.FragmentItemshelvinglogBinding import es.verdnatura.R
import es.verdnatura.domain.notNull import es.verdnatura.databinding.FragmentItemshelvinglogBinding
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.domain.notNull
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.view.component.CustomDialogList import es.verdnatura.presentation.common.OnPasillerosItemClickListener
import es.verdnatura.presentation.view.feature.historicoshelving.adapter.ItemShelvingLogAdapter import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.feature.main.activity.MainActivity import es.verdnatura.presentation.view.feature.historicoshelving.adapter.ItemShelvingLogAdapter
@Suppress("UNUSED_ANONYMOUS_PARAMETER") @Suppress("UNUSED_ANONYMOUS_PARAMETER")
class itemShelvingLogFragment( class itemShelvingLogFragment(
var entryPoint: String = "" var entryPoint: String = ""
// ) : BaseFragment<FragmentItemdayofsaleCardBinding, itemShelvingLogViewModel>(itemShelvingLogViewModel::class) { // ) : BaseFragment<FragmentItemdayofsaleCardBinding, itemShelvingLogViewModel>(itemShelvingLogViewModel::class) {
) : BaseFragment<FragmentItemshelvinglogBinding, itemShelvingLogViewModel>(itemShelvingLogViewModel::class) { ) : BaseFragment<FragmentItemshelvinglogBinding, itemShelvingLogViewModel>(itemShelvingLogViewModel::class) {
//private lateinit var customDialogList: CustomDialogList //private lateinit var customDialogList: CustomDialogList
private var adapter: ItemShelvingLogAdapter? = null private var adapter: ItemShelvingLogAdapter? = null
private var itemScan = "" private var itemScan = ""
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
companion object { companion object {
fun newInstance(entryPoint: String) = itemShelvingLogFragment(entryPoint) fun newInstance(entryPoint: String) = itemShelvingLogFragment(entryPoint)
} }
private lateinit var customDialog: CustomDialog private lateinit var customDialog: CustomDialog
override fun getLayoutId(): Int = R.layout.fragment_itemshelvinglog override fun getLayoutId(): Int = R.layout.fragment_itemshelvinglog
override fun init() { override fun init() {
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
// customDialogList = CustomDialogList(requireContext()) // customDialogList = CustomDialogList(requireContext())
setEvents() setEvents()
setToolBar(getString(R.string.itemShelvingLog)) setToolBar(getString(R.string.itemShelvingLog))
super.init() super.init()
} }
private fun setToolBar(title: String) { override fun onAttach(context: Context) {
binding.mainToolbar.toolbarTitle.text = title if (context is OnPasillerosItemClickListener) pasillerosItemClickListener = context
super.onAttach(context)
}
private fun setToolBar(title: String) {
binding.mainToolbar.toolbarTitle.text = title
}
} private fun setEvents() {
binding.scanInput.requestFocus()
binding.scanInput.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
if (!binding.scanInput.text.toString().isNullOrEmpty()) {
itemShelvingLog_get(binding.scanInput.text.toString())
private fun setEvents() { itemScan = binding.scanInput.text.toString()
binding.scanInput.requestFocus()
binding.scanInput.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
if (!binding.scanInput.text.toString().isNullOrEmpty()) {
itemShelvingLog_get(binding.scanInput.text.toString())
itemScan = binding.scanInput.text.toString()
}
binding.scanInput.setText("")
ma.hideKeyboard(binding.scanInput)
return@setOnEditorActionListener true
} }
false binding.scanInput.setText("")
ma.hideKeyboard(binding.scanInput)
return@setOnEditorActionListener true
} }
false
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
} }
private fun itemShelvingLog_get(vShelvingFK: String) { binding.mainToolbar.backButton.setOnClickListener {
binding.splashProgress.visibility = View.VISIBLE requireActivity().onBackPressed()
viewModel.itemShelvingLog_get(getData(USER), getData(PASSWORD),vShelvingFK)
} }
}
override fun observeViewModel() {
with(viewModel) {
loadItemShelvingLogList.observe(viewLifecycleOwner, Observer{ event -> private fun itemShelvingLog_get(vShelvingFK: String) {
event.getContentIfNotHandled().notNull { binding.splashProgress.visibility = View.VISIBLE
binding.splashProgress.visibility = View.GONE viewModel.itemShelvingLog_get(getData(USER), getData(PASSWORD), vShelvingFK)
adapter = ItemShelvingLogAdapter(it.list)
binding.itemshelvinglogRecyclerview.adapter = adapter
binding.itemshelvinglogRecyclerview.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
setToolBar(getString(R.string.itemShelvingLog)+":"+itemScan)
if (it.list.isEmpty()){ }
customDialog.setTitle(getString(R.string.noResults))
.setDescription(getString(R.string.noDataLabelScanned))
override fun observeViewModel() {
with(viewModel) {
loadItemShelvingLogList.observe(viewLifecycleOwner, Observer { event ->
event.getContentIfNotHandled().notNull {
binding.splashProgress.visibility = View.GONE
adapter = ItemShelvingLogAdapter(
it.list,
onPasillerosItemClickListener = pasillerosItemClickListener!!
)
binding.itemshelvinglogRecyclerview.adapter = adapter
binding.itemshelvinglogRecyclerview.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
setToolBar(getString(R.string.itemShelvingLog) + ":" + itemScan)
if (it.list.isEmpty()) {
customDialog.setTitle(getString(R.string.noResults))
.setDescription(getString(R.string.noDataLabelScanned))
.setOkButton(getString(R.string.close)) {
customDialog.dismiss()
}.show()
} else {
if (it.list.get(0).isError) {
customDialog.setTitle(getString(R.string.error))
.setDescription(it.list.get(0).errorMessage)
.setOkButton(getString(R.string.close)) { .setOkButton(getString(R.string.close)) {
customDialog.dismiss() customDialog.dismiss()
}.show() }.show()
}else{
if (it.list.get(0).isError){
customDialog.setTitle(getString(R.string.error))
.setDescription(it.list.get(0).errorMessage)
.setOkButton(getString(R.string.close)) {
customDialog.dismiss()
}.show()
}
} }
} }
})
}
})
}
} }
} }
}

View File

@ -80,7 +80,7 @@ class InventaryFragment :
items, items,
SearchResultListener { baseSearchDialogCompat, nombre, position -> SearchResultListener { baseSearchDialogCompat, nombre, position ->
binding.filterBuyer.text = (nombre.title) binding.filterBuyer.text = (nombre.title)
saveBuyer(nombre.getBuyerNickname()) saveBuyer(nombre.getBuyerNickname())
saveBuyerId(nombre.getBuyerId()) saveBuyerId(nombre.getBuyerId())
buyerId = nombre.getBuyerId() buyerId = nombre.getBuyerId()
@ -273,7 +273,7 @@ class InventaryFragment :
private fun changeOfflineValue(item: ItemInventaryVO) { private fun changeOfflineValue(item: ItemInventaryVO) {
listInvetory.removeAt(listInvetory.indexOf(item)) listInvetory.removeAt(listInvetory.indexOf(item))
listInvetoryAux.removeAt(listInvetoryAux.indexOf(item)) listInvetoryAux.removeAt(listInvetoryAux.indexOf(item))
listInvetory.filter { it.itemFk.contains("996") } //listInvetory.filter { it.itemFk.contains("996") }
adapter?.notifyDataSetChanged() adapter?.notifyDataSetChanged()
//reload = true //reload = true

View File

@ -5,7 +5,6 @@ import ir.mirrajabi.searchdialog.core.Searchable
class SearchBuyerModel(private var nickname: String?, private var buyerId: String?) : Searchable { class SearchBuyerModel(private var nickname: String?, private var buyerId: String?) : Searchable {
override fun getTitle(): String { override fun getTitle(): String {
return nickname!! return nickname!!
@ -21,9 +20,8 @@ class SearchBuyerModel(private var nickname: String?, private var buyerId: Strin
} }
class SearchDepartmentModel(private var name: String?, private var departmentId: String?) : Searchable { class SearchDepartmentModel(private var name: String?, private var departmentId: String?) :
Searchable {
override fun getTitle(): String { override fun getTitle(): String {
@ -39,3 +37,18 @@ class SearchDepartmentModel(private var name: String?, private var departmentId:
} }
} }
class SearchSupplierModel(private var name: String?, private var id: String?) : Searchable {
fun getId(): String {
return id!!
}
fun getName(): String {
return name!!
}
override fun getTitle(): String {
return name!!
}
}

View File

@ -43,6 +43,10 @@ import es.verdnatura.presentation.view.feature.historicoshelvinglog.fragment.she
import es.verdnatura.presentation.view.feature.historicovehiculo.fragment.HistoricoVehiculoFragment import es.verdnatura.presentation.view.feature.historicovehiculo.fragment.HistoricoVehiculoFragment
import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryFragment import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryFragment
import es.verdnatura.presentation.view.feature.main.model.ItemMenuVO import es.verdnatura.presentation.view.feature.main.model.ItemMenuVO
import es.verdnatura.presentation.view.feature.packaging.fragment.ObservFragment
import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingCountFragment
import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingSummaryFragment
import es.verdnatura.presentation.view.feature.packaging.fragment.SupplierFragment
import es.verdnatura.presentation.view.feature.paletizador.fragment.* import es.verdnatura.presentation.view.feature.paletizador.fragment.*
import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionTruckVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemExpeditionTruckVO
import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO
@ -346,8 +350,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
} }
getString(R.string.titleControllers) -> { getString(R.string.titleControllers) -> {
addFragmentOnTop(ControladorFragment.newInstance()) addFragmentOnTop(ControladorFragment.newInstance())
} }
getString(R.string.titleCorridors) -> { getString(R.string.titleCorridors) -> {
@ -519,10 +521,23 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
addFragmentOnTop(PalletScanFragment.newInstance(item.title, "receive")) addFragmentOnTop(PalletScanFragment.newInstance(item.title, "receive"))
} }
getString(R.string.titleScanPalletizar) -> { getString(R.string.titleScanPalletizar) -> {
addFragmentOnTop(PalletScanFragment.newInstance(item.title, "get")) addFragmentOnTop(PalletScanFragment.newInstance(item.title, "get"))
} }
getString(R.string.titlePackaging) -> {
addFragmentOnTop(SupplierFragment.newInstance(item.title))
}
getString(R.string.titlePackagingCount) -> {
addFragmentOnTop(PackagingCountFragment.newInstance(item.title))
}
getString(R.string.titlePackagingObs) -> {
addFragmentOnTop(ObservFragment.newInstance(item.title))
}
getString(R.string.titlePackagingSummary) -> {
addFragmentOnTop(PackagingSummaryFragment.newInstance(item.title))
}
getString(R.string.testing) -> { getString(R.string.testing) -> {
addFragmentOnTop(testPrint.newInstance(item.title)) addFragmentOnTop(testPrint.newInstance(item.title))

View File

@ -0,0 +1,59 @@
package es.verdnatura.presentation.view.feature.packaging.adapter
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R
import es.verdnatura.databinding.ItemItemsupplierRowBinding
import es.verdnatura.presentation.common.OnImageTrashClickListener
import es.verdnatura.presentation.common.OnImageUpdateClickListener
import es.verdnatura.presentation.view.feature.packaging.model.ItemSupplier
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
class ItemSupplierAdapter(
private val items: List<ItemSupplier>,
private val onImageUpdateClickListener: OnImageUpdateClickListener,
private val onImageTrashClickListener: OnImageTrashClickListener,
// private val OnGeneralItemRowClickListener: OnGeneralItemRowClickListener,
// private var showDelete: Boolean = false
) : RecyclerView.Adapter<ItemSupplierAdapter.ItemHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder {
return ItemHolder(
ItemItemsupplierRowBinding.inflate(LayoutInflater.from(parent.context), parent, false)
)
}
override fun getItemCount() = items.size
override fun onBindViewHolder(holder: ItemHolder, position: Int) {
holder.bind(items[position])
holder.binding.root.setOnClickListener {
}
}
inner class ItemHolder(
val binding: ItemItemsupplierRowBinding
) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: ItemSupplier) {
binding.apply {
this.item = item
itemImageUpdate.setOnClickListener {
onImageUpdateClickListener.OnImageUpdateClickListener(
item
)
itemImageTrash.setOnClickListener {
onImageTrashClickListener.OnImageUpdateClickListener(item)
}
}
}
}
}
}

View File

@ -0,0 +1,56 @@
package es.verdnatura.presentation.view.feature.packaging.adapter
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.esafirm.imagepicker.model.Image
import es.verdnatura.databinding.ItemImageRowBinding
import es.verdnatura.presentation.common.OnImageTrashClickListener
import es.verdnatura.presentation.common.OnImageUpdateClickListener
class ListImageAdapter(
private val items: List<Image>,
private val onImageUpdateClickListener: OnImageUpdateClickListener,
private val onImageTrashClickListener: OnImageTrashClickListener,
) : RecyclerView.Adapter<ListImageAdapter.ItemHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder {
return ItemHolder(
ItemImageRowBinding.inflate(LayoutInflater.from(parent.context), parent, false)
)
}
override fun getItemCount() = items.size
inner class ItemHolder(
val binding: ItemImageRowBinding
) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: Image) {
binding.apply {
this.item = item
itemImage.setImageURI(item.uri)
itemName.text = item.name
itemImageUpdate.setOnClickListener {
onImageUpdateClickListener.OnImageUpdateClickListener(
item
)
itemImageTrash.setOnClickListener {
onImageTrashClickListener.OnImageUpdateClickListener(item)
}
}
}
}
}
override fun onBindViewHolder(holder: ListImageAdapter.ItemHolder, position: Int) {
holder.bind(items[position])
}
}

View File

@ -0,0 +1,175 @@
package es.verdnatura.presentation.view.feature.packaging.fragment
import android.content.Context
import android.graphics.Color
import android.graphics.drawable.Drawable
import android.os.Build
import android.util.Log.d
import android.view.View
import android.widget.ImageView
import androidx.recyclerview.widget.LinearLayoutManager
import com.esafirm.imagepicker.features.ImagePickerConfig
import com.esafirm.imagepicker.features.registerImagePicker
import com.esafirm.imagepicker.model.Image
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPackagingObsBinding
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.*
import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.component.CustomDialogList
import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel
import es.verdnatura.presentation.view.feature.packaging.adapter.ListImageAdapter
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class ObservFragment(
var entryPoint: String = ""
) : BaseFragment<FragmentPackagingObsBinding, InventaryViewModel>(
InventaryViewModel::class
) {
private var adapterListImage: ListImageAdapter? = null
private var listImages: MutableList<Image>? = null
private lateinit var customDialog: CustomDialog
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
private var layoutManager: LinearLayoutManager? = null
private lateinit var customDialogList: CustomDialogList
companion object {
fun newInstance(entryPoint: String) = ObservFragment(entryPoint)
}
override fun getLayoutId(): Int = R.layout.fragment_packaging_obs
override fun onAttach(context: Context) {
if (context is OnPasillerosItemClickListener) pasillerosItemClickListener = context
super.onAttach(context)
}
override fun init() {
customDialog = CustomDialog(requireContext())
ma.hideBottomNavigation(View.GONE)
binding.splashProgress.visibility = View.GONE
setToolBar()
setEvents()
super.init()
}
private fun setToolBar() {
binding.mainToolbar.toolbarTitle.text = getData("ENTRYTYPE") + ":" + getData("SUPPLIERNAME")
val listIcons: ArrayList<ImageView> = ArrayList()
val iconNext = ImageView(context)
iconNext.setImageResource(R.drawable.ic_chevron_right_black_24dp)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
iconNext.tooltipText = getString(R.string.nextEntrySummary)
}
listIcons.add(iconNext)
binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) {
when (item) {
iconNext.drawable -> {
saveData(
"ENTRYNUMBERIMAGES",
if (listImages.isNullOrEmpty()) "0" else {
listImages!!.size.toString()
}
)
saveData("ENTRYOBSERVATIONS",binding.observations.text.toString())
ma.onPasillerosItemClickListener(
PasillerosItemVO(title = getString(R.string.titlePackagingSummary)),
getString(R.string.titlePackagingSummary)
)
}
}
}
})
binding.mainToolbar.toolbarIcons.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
}
private fun setEvents() {
val launcher = registerImagePicker {
for (image in it) {
d("VERDNATURA::", "el nombre es " + image.name)
d("VERDNATURA::", "el nombre es " + image.uri)
//binding.imageView30.setImageURI(image.uri)
}
listImages = it as MutableList<Image>
setAdapter(listImages!!)
}
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
binding.openPickerImages.setOnClickListener {
val config = ImagePickerConfig {
doneButtonText = "HECHO" // done button text
language = "es" // Set image picker language
arrowColor = Color.WHITE // set toolbar arrow up color
theme = R.style.ToolPickerImage
/* mode = ImagePickerMode.SINGLE // default is multi image mode
language = "in" // Set image picker language
theme = R.style.ImagePickerTheme
// set whether pick action or camera action should return immediate result or not. Only works in single mode for image picker
returnMode = if (returnAfterCapture) ReturnMode.ALL else ReturnMode.NONE
isFolderMode = folderMode // set folder mode (false by default)
isIncludeVideo = includeVideo // include video (false by default)
isOnlyVideo = onlyVideo // include video (false by default)
arrowColor = Color.RED // set toolbar arrow up color
folderTitle = "Folder" // folder selection title
imageTitle = "Tap to select" // image selection title
doneButtonText = "DONE" // done button text
limit = 10 // max images can be selected (99 by default)
isShowCamera = true // show camera or not (true by default)
savePath = ImagePickerSavePath("Camera") // captured image directory name ("Camera" folder by default)
savePath = ImagePickerSavePath(Environment.getExternalStorageDirectory().path, isRelative = false) // can be a full path
excludedImages = images.toFiles() // don't show anything on this selected images
selectedImages = images // original selected images, used in multi mode*/
}
launcher.launch(config)
}
}
override fun observeViewModel() {
with(viewModel) {
}
}
fun setAdapter(list: MutableList<Image>) {
adapterListImage =
ListImageAdapter(list, object : OnImageUpdateClickListener {
override fun OnImageUpdateClickListener(item: Any) {
d("VERDNATURA::", "Seleccionado update" + (item as Image).name)
}
}, object : OnImageTrashClickListener {
override fun OnImageUpdateClickListener(item: Any) {
d("VERDNATURA::", "Seleccionado trash" + (item as Image).name)
list.remove(item)
adapterListImage!!.notifyDataSetChanged()
}
})
binding.listImagesRecycler.adapter = adapterListImage
layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
binding.listImagesRecycler.layoutManager = layoutManager
}
}

View File

@ -0,0 +1,149 @@
package es.verdnatura.presentation.view.feature.packaging.fragment
import android.graphics.drawable.Drawable
import android.os.Build
import android.os.Bundle
import android.util.Log.d
import android.view.View
import android.widget.ImageView
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPackagingCountBinding
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnImageTrashClickListener
import es.verdnatura.presentation.common.OnImageUpdateClickListener
import es.verdnatura.presentation.common.OnOptionsSelectedListener
import es.verdnatura.presentation.common.ToolBarAdapterTooltip
import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.component.CustomDialogInput
import es.verdnatura.presentation.view.feature.packaging.adapter.ItemSupplierAdapter
import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingViewModel.PackagingViewModel
import es.verdnatura.presentation.view.feature.packaging.model.ItemSupplier
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class PackagingCountFragment(
var entryPoint: String = ""
) : BaseFragment<FragmentPackagingCountBinding, PackagingViewModel>(
PackagingViewModel::class
) {
private var adapteritemsupplier: ItemSupplierAdapter? = null
private lateinit var customDialogInput: CustomDialogInput
private var listItemSupplier: MutableList<ItemSupplier> = ArrayList()
private lateinit var customDialog: CustomDialog
private var layoutManager: LinearLayoutManager? = null
companion object {
fun newInstance(entryPoint: String) = PackagingCountFragment(entryPoint)
}
override fun getLayoutId(): Int = R.layout.fragment_packaging_count
override fun onCreate(savedInstanceState: Bundle?) {
viewModel.supplier_getItems(
usuario = getData(USER),
password = getData(PASSWORD),
getData("SUPPLIERID")
)
super.onCreate(savedInstanceState)
}
override fun init() {
binding.quantityPackaging.setOnClickListener {
ma.onPasillerosItemClickListener(
PasillerosItemVO(title = getString(R.string.titlePackagingObs)),
getString(R.string.titlePackagingObs)
)
}
binding.splashProgress.visibility = View.VISIBLE
customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext())
ma.hideBottomNavigation(View.GONE)
setToolBar()
setEvents()
super.init()
}
private fun setToolBar() {
binding.mainToolbar.toolbarTitle.text = getData("ENTRYTYPE") + ":" + getData("SUPPLIERNAME")
val listIcons: ArrayList<ImageView> = ArrayList()
val iconNext = ImageView(context)
iconNext.setImageResource(R.drawable.ic_chevron_right_black_24dp)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
iconNext.tooltipText = getString(R.string.entryNextObsers)
}
listIcons.add(iconNext)
binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) {
when (item) {
iconNext.drawable -> {
ma.onPasillerosItemClickListener(
PasillerosItemVO(title = getString(R.string.titlePackagingObs)),
getString(R.string.titlePackagingObs)
)
}
}
}
})
binding.mainToolbar.toolbarIcons.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
}
private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
}
override fun observeViewModel() {
with(viewModel) {
itemSupplierList.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
adapteritemsupplier =
ItemSupplierAdapter(it.list, object : OnImageUpdateClickListener {
override fun OnImageUpdateClickListener(item: Any) {
d("VERDNATURA::", "Seleccionado update" + (item as ItemSupplier).name)
}
}, object : OnImageTrashClickListener {
override fun OnImageUpdateClickListener(item: Any) {
d("VERDNATURA::", "Seleccionado trash" + (item as ItemSupplier).name)
}
})
binding.itemsupplierRecyclerview.adapter = adapteritemsupplier
layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
binding.itemsupplierRecyclerview.layoutManager = layoutManager
}
}
}
}

View File

@ -0,0 +1,281 @@
package es.verdnatura.presentation.view.feature.packaging.fragment
import android.graphics.drawable.Drawable
import android.os.Build
import android.view.View
import android.widget.ImageView
import androidx.core.widget.addTextChangedListener
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPackagingSummaryBinding
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.*
import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.component.CustomDialogInput
import es.verdnatura.presentation.view.component.CustomDialogList
import es.verdnatura.presentation.view.feature.articulo.adapter.BarcodeAdapter
import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO
import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel
import es.verdnatura.presentation.view.feature.inventario.fragment.SearchDepartmentModel
import es.verdnatura.presentation.view.feature.workermistake.adapter.WorkermistakeAdapter
import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake
import es.verdnatura.presentation.view.feature.workermistake.model.MistakeWorkerType
import es.verdnatura.presentation.view.feature.workermistake.model.WorkerFromMistake
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class PackagingSummaryFragment(
var entryPoint: String = ""
) : BaseFragment<FragmentPackagingSummaryBinding, InventaryViewModel>(
InventaryViewModel::class
) {
private var adapterworker: WorkermistakeAdapter? = null
private lateinit var customDialogInput: CustomDialogInput
private var listWorker: MutableList<WorkerFromMistake> = ArrayList()
private var listWorkerAuxiliary: MutableList<WorkerFromMistake> = ArrayList()
private lateinit var customDialog: CustomDialog
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
private var layoutManager: LinearLayoutManager? = null
private lateinit var customDialogList: CustomDialogList
private var listMistakes: ArrayList<BarcodeVO> = ArrayList()
private var listMistakesAdapter: BarcodeAdapter? = null
private var workerMistakeName: WorkerFromMistake? = null
private val departments = ArrayList<SearchDepartmentModel>()
private lateinit var departmentId: String
companion object {
fun newInstance(entryPoint: String) = PackagingSummaryFragment(entryPoint)
}
override fun getLayoutId(): Int = R.layout.fragment_packaging_summary
override fun init() {
binding.splashProgress.visibility = View.VISIBLE
binding.totalImages.text = getData("ENTRYNUMBERIMAGES")
binding.observations.text=getData("ENTRYOBSERVATIONS")
departmentId = getData(DEPARTMENTMISTAKEID)
customDialogList = CustomDialogList(requireContext())
if (!departmentId.isEmpty()) {
viewModel.worker_getFromHasMistake(
getData(USER),
getData(PASSWORD),
getData(DEPARTMENTMISTAKEID)
)
}
customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext())
ma.hideBottomNavigation(View.GONE)
binding.splashProgress.visibility = View.VISIBLE
setToolBar()
setEvents()
super.init()
}
private fun setToolBar() {
binding.mainToolbar.toolbarTitle.text = getData("ENTRYTYPE") + ":" + getData("SUPPLIERNAME")
val listIcons: ArrayList<ImageView> = ArrayList()
val iconConfirm = ImageView(context)
iconConfirm.setImageResource(R.drawable.check)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
iconConfirm.tooltipText = getString(R.string.confirmEntry)
}
listIcons.add(iconConfirm)
binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) {
when (item) {
iconConfirm.drawable -> {
// TODO()
}
}
}
})
binding.mainToolbar.toolbarIcons.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
}
private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
}
override fun observeViewModel() {
with(viewModel) {
mistakeDepartmentList.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
createDepartmentList(it.list)
}
workerFromMistakeList.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
createWorkerList(it.list)
adapterworker =
WorkermistakeAdapter(listWorker, object : onMistakeWorkerClickListener {
override fun onMistakeWorkerClickListener(item: WorkerFromMistake) {
viewModel.workerMistakeType_get(
usuario = getData(USER),
password = getData(PASSWORD)
)
workerMistakeName =
WorkerFromMistake(
item.id,
item.firstName,
item.lastName,
true,
""
)
}
})
binding.workermistakeRecyclerview.adapter = adapterworker
layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
binding.workermistakeRecyclerview.layoutManager = layoutManager
}
mistakeWorkerList.observe(viewLifecycleOwner, {
binding.splashProgress.visibility = View.GONE
showMistakeList(it.list)
//goBack = false
})
responseAddMistake.observe(viewLifecycleOwner, {
ma.messageWithSound(
if (it.isError) {
if (it.codeError == 403) {
getString(R.string.userNotPermission)
} else {
it.errorMessage
}
} else {
getString(R.string.errorCauseRegistered)
}, it.isError, true, isToasted = true
)
})
response.observe(viewLifecycleOwner, {
if (it.isError) {
ma.messageWithSound(it.errorMessage, true, false)
}
})
}
}
private fun showMistakeList(list: List<MistakeWorkerType>) {
binding.splashProgress.visibility = View.GONE
listMistakes = ArrayList()
list.forEach {
listMistakes.add(BarcodeVO(code = it.description))
}
customDialogList.setTitle(getString(R.string.errorCause) + workerMistakeName!!.firstName)
.setKoButton(
getString(
R.string.cancel
)
) {
customDialogList.dismiss()
}.hideDialog().show()
listMistakesAdapter =
BarcodeAdapter(listMistakes, object : OnBarcodeRowClickListener {
override fun onBarcodeRowClickListener(item: BarcodeVO) {
list.forEach {
if (it.description == item.code) {
viewModel.workerMistake_Add(
usuario = getData(USER),
password = getData(PASSWORD),
vUserFk = workerMistakeName!!.id,
vTypeFk = it.code
)
// getString(R.string.errorRegistered).toast(requireContext())
customDialogList.dismiss()
}
}
}
}, showDelete = false)
customDialogList.getRecyclerView().adapter = listMistakesAdapter
customDialogList.getRecyclerView().layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
}
private fun createDepartmentList(list: List<DepartmentMistake>) {
departments.clear()
list.forEach { department ->
if (!department.isError) {
try {
departments.add(SearchDepartmentModel(department.name, department.id))
} catch (e: Exception) {
}
}
}
}
private fun createWorkerList(list: List<WorkerFromMistake>) {
listWorker.clear()
list.forEach { worker ->
if (!worker.isError) {
try {
listWorker.add(worker)
} catch (e: Exception) {
}
}
}
listWorker.add(WorkerFromMistake("0", "Añadir nuevo", "", false))
listWorkerAuxiliary.clear()
listWorkerAuxiliary.addAll(listWorker)
listWorkerAuxiliary.add(WorkerFromMistake("0", "Añadir nuevo", "", false))
}
}

View File

@ -0,0 +1,155 @@
package es.verdnatura.presentation.view.feature.packaging.fragment.PackagingViewModel
import android.content.Context
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import es.verdnatura.domain.GetInventaryUserCase
import es.verdnatura.domain.GetPackagingUserCase
import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.base.getMessageFromAllResponse
import es.verdnatura.presentation.base.nameofFunction
import es.verdnatura.presentation.common.ResponseItemVO
import es.verdnatura.presentation.view.feature.inventario.model.InventaryListVO
import es.verdnatura.presentation.view.feature.packaging.model.*
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
class PackagingViewModel(context: Context) : BaseViewModel() {
private val getInventaryUserCase: GetInventaryUserCase = GetInventaryUserCase(context)
private val getPackagingUserCase: GetPackagingUserCase = GetPackagingUserCase(context)
private val _inventaryList by lazy { MutableLiveData<InventaryListVO>() }
val inventaryList: LiveData<InventaryListVO>
get() = _inventaryList
private val _itemSupplierList by lazy { MutableLiveData<itemSupplierList>() }
val itemSupplierList: LiveData<itemSupplierList>
get() = _itemSupplierList
private val _supplierList by lazy { MutableLiveData<SupplierList>() }
val supplierList: LiveData<SupplierList>
get() = _supplierList
private val _entry by lazy { MutableLiveData<EntrySalix>() }
val entry: LiveData<EntrySalix>
get() = _entry
private val _response by lazy { MutableLiveData<ResponseItemVO>() }
val response: LiveData<ResponseItemVO>
get() = _response
fun getSuppliers(token: String) {
getPackagingUserCase.getSuppliers(token)
.enqueue(object :
Callback<List<Supplier>> {
override fun onFailure(call: Call<List<Supplier>>, t: Throwable) {
val listError: ArrayList<Supplier> = ArrayList()
listError.add(
Supplier(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
t.message!!
)
)
)
_supplierList.value = SupplierList(listError)
}
override fun onResponse(
call: Call<List<Supplier>>,
response: Response<List<Supplier>>
) {
if (response.body() != null) {
_supplierList.value = response.body()?.let { SupplierList(it) }
} else {
val listError: ArrayList<Supplier> = ArrayList()
listError.add(
Supplier(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
response.message()
)
)
)
_supplierList.value = SupplierList(listError)
}
}
})
}
fun supplier_getItems(usuario: String, password: String, supplierFk: String) {
getPackagingUserCase.supplier_getItems(usuario, password, supplierFk)
.enqueue(object : Callback<List<ItemSupplier>> {
override fun onFailure(call: Call<List<ItemSupplier>>, t: Throwable) {
val listError: ArrayList<ItemSupplier> = ArrayList()
listError.add(
ItemSupplier(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
t.message!!
)
)
)
_itemSupplierList.value = itemSupplierList(listError)
}
override fun onResponse(
call: Call<List<ItemSupplier>>,
response: Response<List<ItemSupplier>>
) {
if (response.body() != null) {
_itemSupplierList.value =
response.body()?.let { itemSupplierList(it) }
} else {
val listError: ArrayList<ItemSupplier> = ArrayList()
listError.add(ItemSupplier(null, null))
_itemSupplierList.value = itemSupplierList(listError)
}
}
})
}
fun entry_addSalix(token: String, entry: EntrySalix) {
getPackagingUserCase.Entries(token, entry = entry)
.enqueue(object :
Callback<EntrySalix> {
override fun onFailure(call: Call<EntrySalix>, t: Throwable) {
_entry.value = EntrySalix(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
t.message!!
)
)
}
override fun onResponse(
call: Call<EntrySalix>,
response: Response<EntrySalix>
) {
if (response.body() != null) {
_entry.value = response.body()
} else {
_entry.value = EntrySalix(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
response.message()
)
)
}
}
})
}
}

View File

@ -0,0 +1,153 @@
package es.verdnatura.presentation.view.feature.packaging.fragment
import android.content.Context
import android.os.Bundle
import android.util.Log.d
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPackagingBinding
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
import es.verdnatura.presentation.view.feature.inventario.fragment.SearchSupplierModel
import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingViewModel.PackagingViewModel
import es.verdnatura.presentation.view.feature.packaging.model.EntrySalix
import es.verdnatura.presentation.view.feature.packaging.model.Supplier
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class SupplierFragment(
var entryPoint: String = ""
) : BaseFragment<FragmentPackagingBinding, PackagingViewModel>(
PackagingViewModel::class
) {
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
private var layoutManager: LinearLayoutManager? = null
private var onBack = false
private val suppliers = ArrayList<SearchSupplierModel>()
companion object {
fun newInstance(entryPoint: String) = SupplierFragment(entryPoint)
}
override fun getLayoutId(): Int = R.layout.fragment_packaging
override fun onAttach(context: Context) {
if (context is OnPasillerosItemClickListener) pasillerosItemClickListener = context
super.onAttach(context)
}
override fun onCreate(savedInstanceState: Bundle?) {
viewModel.getSuppliers(
getData(TOKEN),
)
super.onCreate(savedInstanceState)
}
override fun onPause() {
onBack = true
super.onPause()
}
override fun init() {
binding.splashProgress.visibility = View.VISIBLE
binding.filterSupplier.setOnClickListener {
SimpleSearchDialogCompat(
context,
getString(R.string.suppliers),
getString(R.string.escribirparteNombre),
null,
suppliers
) { baseSearchDialogCompat, nombre, position ->
binding.filterSupplier.setText((nombre.getName()))
binding.radiobuttonTypePackaging.visibility = View.VISIBLE
saveData("SUPPLIERNAME", nombre.getName())
saveData("SUPPLIERID", nombre.getId())
baseSearchDialogCompat.dismiss()
}.show()
}
ma.hideBottomNavigation(View.GONE)
setToolBar()
setEvents()
var entrada = EntrySalix(supplierFk = "591", travelFk = "186025", companyFk = "442")
viewModel.entry_addSalix(getData(TOKEN), entrada)
super.init()
}
private fun setToolBar() {
binding.mainToolbar.toolbarTitle.text = entryPoint
}
private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
binding.radiobuttonTypePackaging.setOnCheckedChangeListener { buttonView, isChecked ->
when (isChecked) {
R.id.radioButtonRec -> {
saveData("ENTRYTYPE", "Rec")
}
R.id.radioButtonDev -> {
d("VERDNATURA::", "dev")
saveData("ENTRYTYPE", "Dev")
}
}
if (!onBack) {
ma.onPasillerosItemClickListener(
PasillerosItemVO(title = getString(R.string.titlePackagingCount)),
getString(R.string.titlePackagingCount)
)
}
onBack = false
}
}
override fun observeViewModel() {
with(viewModel) {
supplierList.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
createSupplierList(it.list)
}
response.observe(viewLifecycleOwner) {
if (it.isError) {
ma.messageWithSound(it.errorMessage, true, false)
}
}
}
}
private fun createSupplierList(list: List<Supplier>) {
suppliers.clear()
list.forEach { supplier ->
if (!supplier.isError) {
try {
suppliers.add(SearchSupplierModel(supplier.name, supplier.id.toString()))
} catch (e: Exception) {
}
}
}
}
}

View File

@ -0,0 +1,10 @@
package es.verdnatura.presentation.view.feature.packaging.model
class EntrySalix(
var id: String? = null,
var supplierFk: String? = null,
var travelFk: String? = null,
var companyFk: String? = null,
var isError: Boolean? = null,
var errorMessage: String? = null
)

View File

@ -0,0 +1,31 @@
package es.verdnatura.presentation.view.feature.packaging.model
import com.esafirm.imagepicker.model.Image
data class Supplier(
var id: Int? = null,
var name: String? = null,
var isError: Boolean = false,
var errorMessage: String? = null
)
class SupplierList(
var list: List<Supplier> = listOf()
)
class itemSupplierList(
var list: List<ItemSupplier> = listOf()
)
data class ItemSupplier(
var id: Int? = null,
var name: String? = null,
var quantity: Int? = 0,
var subquantity: Int? = 0,
var isError: Boolean = false,
var errorMessage: String? = null
)

View File

@ -1,6 +1,5 @@
package es.verdnatura.presentation.view.feature.paletizador.fragment package es.verdnatura.presentation.view.feature.paletizador.fragment
import android.util.Log.d
import android.view.View import android.view.View
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import es.verdnatura.R import es.verdnatura.R
@ -19,8 +18,8 @@ class CmrExpeditionPalletFragment(
override fun getLayoutId(): Int = R.layout.fragment_expeditionscan_sorter override fun getLayoutId(): Int = R.layout.fragment_expeditionscan_sorter
private lateinit var customDialogList: CustomDialogInputTwoValues private lateinit var customDialogList: CustomDialogInputTwoValues
private var itemScaned: String = "" private var itemScaned: String = ""
private lateinit var dataScanned: itemScanned private var dataScanned: itemScanned? = null
private lateinit var dataScannedTwo: itemScanned private var dataScannedTwo: itemScanned? = null
companion object { companion object {
fun newInstance(title: String) = CmrExpeditionPalletFragment(title) fun newInstance(title: String) = CmrExpeditionPalletFragment(title)
@ -41,7 +40,7 @@ class CmrExpeditionPalletFragment(
binding.mainToolbar.toolbarTitle.text = title binding.mainToolbar.toolbarTitle.text = title
} }
private fun cmrExpeditionPallet_add(vExpeditionPallet: String, vCmrId: String) { private fun cmrExpeditionPallet_add(vExpeditionPallet: String?, vCmrId: String?) {
customDialogList.dismiss() customDialogList.dismiss()
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
@ -73,15 +72,19 @@ class CmrExpeditionPalletFragment(
ma.messageWithSound( ma.messageWithSound(
getString(R.string.cmrError) + it.errorMessage, getString(R.string.cmrError) + it.errorMessage,
true, isError = true,
true, isPlayed = true,
isToasted = true isToasted = true
) )
showExpeditionPalletScan() showExpeditionPalletScan()
} else { } else {
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
ma.messageWithSound(getString(R.string.operationSuccess), false, true) ma.messageWithSound(
getString(R.string.operationSuccess),
isError = false,
isPlayed = true
)
showExpeditionPalletScan() showExpeditionPalletScan()
} }
@ -92,215 +95,153 @@ class CmrExpeditionPalletFragment(
} }
private fun showExpeditionPalletScan() { private fun showExpeditionPalletScan() {
customDialogList.setHint(true)
customDialogList.setValue("") customDialogList.setValue("")
customDialogList.setValueTwo("") customDialogList.setValueTwo("")
customDialogList.setInfoTex("") customDialogList.setInfoTex("Código QR o PALLET")
customDialogList.setInfoTextTwo("") customDialogList.setInfoTextTwo("Código QR o CMR")
customDialogList.setInfoTex(getString(R.string.expeditionPalletOrCMR)) customDialogList.setTitle("Escanea los valores : ")
customDialogList.setTitle(getString(R.string.expeditionPalletCMR)) customDialogList.setHint(false)
.setOkButton(getString(R.string.end)) {
ma.hideKeyboard(customDialogList.getEditText())
customDialogList.dismiss()
binding.mainToolbar.backButton.performClick()
}.setValue("").show()
customDialogList.setOkButton(getString(R.string.end)) {
ma.hideKeyboard(customDialogList.getEditText())
customDialogList.dismiss()
binding.mainToolbar.backButton.performClick()
}.setValue("").show()
customDialogList.setFocusText() customDialogList.setFocusText()
ma.hideKeyboard(customDialogList.getEditText()) ma.hideKeyboard(customDialogList.getEditText())
customDialogList.getEditText().setOnEditorActionListener { _, actionId, _ -> customDialogList.getEditText().setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5 || actionId == 6) { if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5 || actionId == 6) {
// var action = true
if (customDialogList.getValue().isNotEmpty()) { if (customDialogList.getValue().isNotEmpty()) {
dataScanned = itemScan(customDialogList.getValue()) dataScanned = itemScan(customDialogList.getValue())
d("VERDNATURA::","tabla v1 es "+dataScanned.table)
when (itemScaned(customDialogList.getValue())) { if (dataScanned == null) {
"cmr" -> { // action = false
customDialogList.setInfoTex(getString(R.string.cmr)) /*ma.messageWithSound(
customDialogList.setInfoTextTwo(getString(R.string.pallet)) getString(R.string.errorPalletCmrNotScanned),
customDialogList.setValue(dataScanned.id) isError = true,
} isPlayed = true,
"expeditionPallet" -> { titleWithError = getString(R.string.warning),
customDialogList.setInfoTex(getString(R.string.pallet)) isToasted = true
customDialogList.setInfoTextTwo(getString(R.string.cmr)) )
//customDialogList.setInputTextVisibility(View.GONE) customDialogList.setValue("")*/
customDialogList.setValue(dataScanned.id)
}
else ->
customDialogList.setValue("No ha escaneado ni pallet ni CMR")
} else {
// action = false
customDialogList.setValue(dataScanned!!.id!!)
customDialogList.setHint(true)
if (dataScanned!!.table == "cmr") {
customDialogList.setInfoTextTwo(getString(R.string.scanLabelPallet))
} else {
customDialogList.setInfoTextTwo(getString(R.string.scanLabelCMR))
}
customDialogList.setHint(false)
} }
customDialogList.setFocusTextTwo()
} }
return@setOnEditorActionListener false return@setOnEditorActionListener false
} }
false false
} }
customDialogList.getEditTextTwo().setOnEditorActionListener { _, actionId, _ -> customDialogList.getEditTextTwo().setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5 || actionId == 6) { if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5 || actionId == 6) {
if (customDialogList.getValue().isNotEmpty() && customDialogList.getValueTwo() if (customDialogList.getValueTwo().isNotEmpty() && customDialogList.getValue()
.isNotEmpty() .isNotEmpty()
) { ) {
dataScannedTwo = itemScan(customDialogList.getValueTwo()) dataScannedTwo = itemScan(customDialogList.getValueTwo())
d("VERDNATURA::","tabla v1 es "+dataScanned.table) if (dataScannedTwo == null) {
d("VERDNATURA::","tabla v2 es "+itemScaned(customDialogList.getValueTwo())) cmrExpeditionPallet_add(
customDialogList.getValue(),
customDialogList.getValueTwo()
)
// customDialogList.setValueTwo(itemScanedValue(customDialogList.getValueTwo())) /* var messageLabel = ""
when (itemScaned(customDialogList.getValueTwo())){ when (dataScanned!!.table) {
"cmr" -> { "cmr" -> {
if (dataScanned.table == "cmr"){ messageLabel = "CMR"
ma.messageWithSound( }
"Escanea pallet", "expeditionPallet" -> {
true, messageLabel = "Pallet"
true, }
isToasted = true }
)
customDialogList.setValueTwo("")
}
if (dataScanned.table == "expeditionPallet"){
cmrExpeditionPallet_add(
dataScanned.id,
dataScannedTwo.id)
}
customDialogList.setValueTwo(dataScannedTwo.id)
}
"expeditionPallet"->{
/* d("VERDNATURA::","tabla v1 es "+dataScanned.table)
d("VERDNATURA::","tabla v2 es "+itemScaned(customDialogList.getValueTwo()))*/
if (dataScanned.table == "cmr"){
cmrExpeditionPallet_add(
dataScannedTwo.id,
dataScanned.id)
customDialogList.setValueTwo(dataScannedTwo.id)
}
if (dataScanned.table == "expeditionPallet"){
ma.messageWithSound(
"Escanea CMR",
true,
true,
isToasted = true
)
customDialogList.setValueTwo("")
}
}
}
// ma.hideKeyboard(customDialogList.getEditText())
/* dataScannedTwo = itemScan(customDialogList.getValueTwo())
d("VERDNATURA::","el valor es " + dataScannedTwo.id + "y tabla " + dataScannedTwo.table)
*/
/* when (itemScaned(customDialogList.getValueTwo())) {
"cmr" -> {
customDialogList.setValueTwo(dataScanned.id)
*//* if (dataScanned.table == "cmr") {
ma.messageWithSound(
getString(R.string.palletScanError),
true,
true,
isToasted = true
)
}*//*
}
*//* "expeditionPallet" -> {
if (dataScanned.table == "expeditionPallet") {
ma.messageWithSound(
getString(R.string.errorCmrNotScanned),
true,
true,
isToasted = true
)
}
if (dataScanned.table == "cmr") {
cmrExpeditionPallet_add(
itemScanedValue(customDialogList.getValueTwo()),
itemScanedValue(customDialogList.getValue()),
)
}
}*//*
else ->
customDialogList.setValueTwo("No ha escanado ni pallet ni CMR")
}*/
// customDialogList.setFocusTextTwo()
/* if (itemScaned(customDialogList.getValueTwo())) {
itemScaned = dataScanned.value
customDialogList.setValueTwo("")
cmrExpeditionPallet_add(
customDialogList.getValue(),
itemScaned
)
} else {
customDialogList.setValueTwo("")
ma.messageWithSound( ma.messageWithSound(
getString(R.string.errorCmrNotScanned), String.format(
true, getString(R.string.labelPalletOrCmrNotValid),
true, messageLabel
),
isError = true,
isPlayed = true,
titleWithError = getString(R.string.warning),
isToasted = true isToasted = true
) )
} customDialogList.setValueTwo("")*/
*/ } else {
if (dataScanned != null) {
if (dataScanned!!.table == dataScannedTwo!!.table) {
ma.messageWithSound(
getString(R.string.errorSameType),
isError = true,
isPlayed = true,
titleWithError = "Aviso",
isToasted = true
)
customDialogList.setValueTwo("")
} else {
customDialogList.setValueTwo(dataScanned!!.id!!)
cmrExpeditionPallet_add(
if (dataScannedTwo!!.table == "cmr") {
dataScanned!!.id
} else {
dataScannedTwo!!.id
},
if (dataScannedTwo!!.table == "cmr") {
dataScannedTwo!!.id
} else {
dataScanned!!.id
}
)
}
} else {
cmrExpeditionPallet_add(
customDialogList.getValue(),
dataScannedTwo!!.id
)
}
}
} }
return@setOnEditorActionListener true
} }
false
return@setOnEditorActionListener true
} }
}
private fun itemScanedValue(valueTwo: String): String {
return try {
return itemScanned(JSONObject(valueTwo)).id
} catch (Ex: Exception) {
return valueTwo
}
}
private fun itemScan(value: String): itemScanned {
return try {
itemScanned(JSONObject(value))
} catch (Ex: Exception) {
return itemScan("")
}
}
private fun itemScaned(valueTwo: String): String {
try {
return itemScanned(JSONObject(valueTwo)).table
} catch (Ex: Exception) {
d("VERDNATURA::", "EL VALUE ES " + Ex.message.toString())
return ""
}
} }
} }
private fun itemScan(value: String): itemScanned? {
return try {
val valueScanned = itemScanned(JSONObject(value))
if (valueScanned.table == "cmr" || valueScanned.table == "expeditionPallet") {
valueScanned
} else {
null
}
} catch (Ex: Exception) {
return null
}
}

View File

@ -23,7 +23,7 @@ import retrofit2.Response
get() = _responsescan get() = _responsescan
fun cmrExpeditionPallet_add(usuario: String, password: String, vExpeditionPallet: String,vCmrId:String) { fun cmrExpeditionPallet_add(usuario: String, password: String, vExpeditionPallet: String?,vCmrId:String?) {
GetPaletizadoresUserCase.cmrExpeditionPallet_add(usuario, password, vExpeditionPallet, vCmrId) GetPaletizadoresUserCase.cmrExpeditionPallet_add(usuario, password, vExpeditionPallet, vCmrId)
.enqueue(object : Callback<Void> { .enqueue(object : Callback<Void> {
override fun onFailure(call: Call<Void>, t: Throwable) { override fun onFailure(call: Call<Void>, t: Throwable) {

View File

@ -1,13 +1,16 @@
package es.verdnatura.presentation.view.feature.paletizador.fragment package es.verdnatura.presentation.view.feature.paletizador.fragment
import android.util.Log
import android.view.View import android.view.View
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.core.view.isVisible import androidx.core.view.isVisible
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentGeneralBlackBinding import es.verdnatura.databinding.FragmentGeneralBlackBinding
import es.verdnatura.presentation.base.BaseFragment import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.itemScanned
import es.verdnatura.presentation.view.component.CustomDialogInput import es.verdnatura.presentation.view.component.CustomDialogInput
import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO import es.verdnatura.presentation.view.feature.paletizador.model.ItemPalletVO
import org.json.JSONObject
class PalletScanFragment( class PalletScanFragment(
var title: String = "", var action: String var title: String = "", var action: String
@ -59,10 +62,20 @@ class PalletScanFragment(
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = View.VISIBLE
customDialogList.dismiss() customDialogList.dismiss()
var valueScanned:String
try {
valueScanned = itemScanned(JSONObject(vPalletId)).id.toString()
Log.d("VERDNATURA::", "el valor es " + valueScanned)
}
catch(ex:Exception){
valueScanned=vPalletId
Log.d("VERDNATURA::", "ex " + ex.message)
}
itemScaned=valueScanned
viewModel.expeditionPallet_get( viewModel.expeditionPallet_get(
getData(USER), getData(USER),
getData(PASSWORD), getData(PASSWORD),
vPalletId, valueScanned,
) )
} }

View File

@ -80,6 +80,10 @@ class ParkingFragment (var menuOrigin:String): BaseFragment<FragmentParkingBindi
//viewModel.hideProgressLoading() //viewModel.hideProgressLoading()
mpok?.start() mpok?.start()
setList() setList()
//Tarea #4711 Jordi parking canviat
requireActivity().onBackPressed()
} }
} }
}) })

View File

@ -312,7 +312,7 @@ class PasilleroViewModel(context: Context) : BaseViewModel() {
) )
) )
/* //Tarea #3986 //Tarea #3986
_pasillerositem.add( _pasillerositem.add(
PasillerosItemVO( PasillerosItemVO(
31, 31,
@ -321,7 +321,7 @@ class PasilleroViewModel(context: Context) : BaseViewModel() {
R.string.titleCMRState, R.string.titleCMRState,
contextApp.getString(R.string.titleCMRDescrip) contextApp.getString(R.string.titleCMRDescrip)
) )
)*/ )
_pasillerositem.add( _pasillerositem.add(
PasillerosItemVO( PasillerosItemVO(
40, 40,
@ -499,8 +499,18 @@ class PasilleroViewModel(context: Context) : BaseViewModel() {
) )
val working_in_test=false //#tarea4021
/* _pasillerositem.add(
PasillerosItemVO(
6,
R.drawable.ic_packaging,
contextApp.getString(R.string.titlePackaging),
R.string.titlePackaging,
contextApp.getString(R.string.titlePackagingDescrip)
)
)*/
val working_in_test=false
if (working_in_test){ if (working_in_test){
_pasillerositem.add( _pasillerositem.add(
PasillerosItemVO( PasillerosItemVO(

View File

@ -840,8 +840,7 @@ class EndSacadorFragment(
viewModel.itemShelving_updateFromSale( viewModel.itemShelving_updateFromSale(
usuario = getData(USER), usuario = getData(USER),
password = getData(PASSWORD), password = getData(PASSWORD),
saleFk = sales[position].idMovimiento, saleFk = sales[position].idMovimiento
visible = sales[position].quantity.toString()
) )
positionUnmarked = position positionUnmarked = position
//sergio: anterior previa //sergio: anterior previa

View File

@ -865,14 +865,12 @@ class PreSacadorViewModel(context: Context) : BaseViewModel() {
fun itemShelving_updateFromSale( fun itemShelving_updateFromSale(
usuario: String, usuario: String,
password: String, password: String,
saleFk: String, saleFk: String
visible: String
) { ) {
getSacadorControladorUserCase.itemShelving_updateFromSale( getSacadorControladorUserCase.itemShelving_updateFromSale(
usuario, usuario,
password, password,
saleFk, saleFk
visible
) )
.enqueue(object : Callback<Unit> { .enqueue(object : Callback<Unit> {
override fun onFailure(call: Call<Unit>, t: Throwable) { override fun onFailure(call: Call<Unit>, t: Throwable) {

View File

@ -1,7 +1,8 @@
package es.verdnatura.presentation.view.feature.ubicador.adapter package es.verdnatura.presentation.view.feature.ubicador.adapter
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.provider.Settings.Global.getString import android.graphics.Color.GREEN
import android.graphics.Color.RED
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
@ -15,21 +16,21 @@ import es.verdnatura.presentation.common.loadUrl
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import es.verdnatura.presentation.view.feature.ubicador.model.ItemUbicadorVO import es.verdnatura.presentation.view.feature.ubicador.model.ItemUbicadorVO
class UbicadorAdapter ( class UbicadorAdapter(
private val items: List<ItemUbicadorVO>, private val items: List<ItemUbicadorVO>,
private val onPasillerosItemClickListener: OnPasillerosItemClickListener, private val onPasillerosItemClickListener: OnPasillerosItemClickListener,
private val onVisibleClickListener: OnVisibleClickListener, private val onVisibleClickListener: OnVisibleClickListener,
private val onMoreClickListener: OnMoreClickListener private val onMoreClickListener: OnMoreClickListener
): RecyclerView.Adapter<UbicadorAdapter.ItemHolder> () { ) : RecyclerView.Adapter<UbicadorAdapter.ItemHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder {
return ItemHolder( return ItemHolder(
ItemUbicationRowBinding.inflate(LayoutInflater.from(parent.context),parent,false) ItemUbicationRowBinding.inflate(LayoutInflater.from(parent.context), parent, false)
) )
} }
override fun getItemCount() =items.size override fun getItemCount() = items.size
override fun onBindViewHolder(holder: ItemHolder, position: Int) { override fun onBindViewHolder(holder: ItemHolder, position: Int) {
holder.bind(items[position]) holder.bind(items[position])
@ -37,35 +38,69 @@ class UbicadorAdapter (
inner class ItemHolder( inner class ItemHolder(
val binding: ItemUbicationRowBinding val binding: ItemUbicationRowBinding
) : RecyclerView.ViewHolder(binding.root){ ) : RecyclerView.ViewHolder(binding.root) {
private val res = binding.root.context.resources private val res = binding.root.context.resources
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
fun bind(item: ItemUbicadorVO) { fun bind(item: ItemUbicadorVO) {
binding.apply { binding.apply {
this.item = item this.item = item
multiText.text = "${item.stickers}x${item.packing}" multiText.text = "${item.stickers}x${item.packing}"
imgItem.loadUrl("https://verdnatura.es/vn-image-data/catalog/200x200/"+item.item) imgItem.loadUrl("https://verdnatura.es/vn-image-data/catalog/200x200/" + item.item)
imgItem.setOnClickListener { imgItem.setOnClickListener {
onPasillerosItemClickListener.onPasillerosItemClickListener(PasillerosItemVO(title = res.getString( onPasillerosItemClickListener.onPasillerosItemClickListener(
R.string.itemSearch)),item.item) PasillerosItemVO(
title = res.getString(
R.string.itemSearch
)
), item.item
)
} }
layerVisible.setOnClickListener { layerVisible.setOnClickListener {
onVisibleClickListener.onVisibleClickListener(item) onVisibleClickListener.onVisibleClickListener(item)
} }
if (item.visible == "0"){ if (item.visible == "0") {
visibleText.setTextColor(ContextCompat.getColor(visibleText.context,R.color.verdnatura_brown_grey)) visibleText.setTextColor(
ContextCompat.getColor(
visibleText.context,
R.color.verdnatura_brown_grey
)
)
}else{ } else {
visibleText.setTextColor(ContextCompat.getColor(visibleText.context,R.color.verdnatura_pumpkin_orange)) visibleText.setTextColor(
ContextCompat.getColor(
visibleText.context,
R.color.verdnatura_pumpkin_orange
)
)
} }
moreImg.setOnClickListener { moreImg.setOnClickListener {
onMoreClickListener.onMoreClickListener(item) onMoreClickListener.onMoreClickListener(item)
} }
namelayout.setOnClickListener { namelayout.setOnClickListener {
onPasillerosItemClickListener.onPasillerosItemClickListener(PasillerosItemVO(title = res.getString(R.string.itemSearch)),item.item) onPasillerosItemClickListener.onPasillerosItemClickListener(
PasillerosItemVO(
title = res.getString(R.string.itemSearch)
), item.item
)
}
if (item.checked) {
itemRowLayout.setBackgroundColor(
ContextCompat.getColor(
visibleText.context,
R.color.verdnatura_dark_green_verdnatura
)
)
}
if (item.isNew){
itemRowLayout.setBackgroundColor(
RED
)
} }
} }

View File

@ -6,11 +6,12 @@ import android.graphics.drawable.Drawable
import android.media.MediaPlayer import android.media.MediaPlayer
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.util.Log.d
import android.view.View import android.view.View
import android.view.View.VISIBLE
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.widget.ImageView import android.widget.ImageView
import android.widget.Toast import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
@ -41,12 +42,14 @@ class UbicadorFragment(
private lateinit var customDialogUbicador: CustomDialogUbicador private lateinit var customDialogUbicador: CustomDialogUbicador
private lateinit var customDialogTwoButtons: CustomDialogTwoButtons private lateinit var customDialogTwoButtons: CustomDialogTwoButtons
private var listItems: ArrayList<ItemUbicadorVO> = ArrayList() private var listItems: ArrayList<ItemUbicadorVO> = ArrayList()
private var listLocalItems: ArrayList<ItemUbicadorVO> = ArrayList()
private lateinit var customDialog: CustomDialog private lateinit var customDialog: CustomDialog
private var deep: Int = 1 private var deep: Int = 1
private var parking: String = "" private var parking: String = ""
private var etiquetas: String = "0" private var etiquetas: String = "0"
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
private var isShelvinLogfromMainScreen = false private var isShelvinLogfromMainScreen = false
private var modeCheckUbication = false
var mperror: MediaPlayer? = null var mperror: MediaPlayer? = null
var mpok: MediaPlayer? = null var mpok: MediaPlayer? = null
@ -62,6 +65,7 @@ class UbicadorFragment(
super.onAttach(context) super.onAttach(context)
} }
@RequiresApi(Build.VERSION_CODES.O)
override fun init() { override fun init() {
customDialogInput = CustomDialogInput(requireContext()) customDialogInput = CustomDialogInput(requireContext())
@ -75,7 +79,7 @@ class UbicadorFragment(
setToolBar() setToolBar()
if (!shelvingFk.isNullOrEmpty()) { if (!shelvingFk.isNullOrEmpty()) {
isShelvinLogfromMainScreen = false isShelvinLogfromMainScreen = false
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = VISIBLE
binding.mainToolbar.toolbarTitle.text = shelvingFk binding.mainToolbar.toolbarTitle.text = shelvingFk
viewModel.itemShelvingList(getData(USER), getData(PASSWORD), shelvingFk) viewModel.itemShelvingList(getData(USER), getData(PASSWORD), shelvingFk)
@ -92,6 +96,7 @@ class UbicadorFragment(
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }
@RequiresApi(Build.VERSION_CODES.O)
private fun setToolBar() { private fun setToolBar() {
val listIcons: ArrayList<ImageView> = ArrayList() val listIcons: ArrayList<ImageView> = ArrayList()
@ -100,12 +105,34 @@ class UbicadorFragment(
val iconReload = ImageView(context) val iconReload = ImageView(context)
iconReload.setImageResource(R.drawable.ic_autorenew_black_24dp) iconReload.setImageResource(R.drawable.ic_autorenew_black_24dp)
binding.mainToolbar.switchButton.visibility = VISIBLE
binding.mainToolbar.switchButton.setOnCheckedChangeListener { buttonView, isChecked ->
modeCheckUbication = isChecked
binding.mainToolbar.switchButton.tooltipText = if (isChecked)
getString(R.string.activateModoChecking) else
getString(R.string.allowCheckingMode)
binding.textinputlayoutMatricula.hint =
if (isChecked) getString(R.string.scanItem) else {
getString(R.string.scanPlate)
}
if (!isChecked) {
listLocalItems.clear()
}
}
val iconChecker = ImageView(context)
iconChecker.setImageResource(R.drawable.ic_controller_ui)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
iconReload.tooltipText = getTooltip(R.drawable.ic_autorenew_black_24dp) iconReload.tooltipText = getTooltip(R.drawable.ic_autorenew_black_24dp)
iconAdd.tooltipText = getString(R.string.addItemShelving) iconAdd.tooltipText = getString(R.string.addItemShelving)
} }
listIcons.add(iconAdd) listIcons.add(iconAdd)
listIcons.add(iconReload) listIcons.add(iconReload)
binding.mainToolbar.toolbarIcons.adapter = binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener { ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) { override fun onOptionsItemSelected(item: Drawable) {
@ -113,7 +140,7 @@ class UbicadorFragment(
when (item) { when (item) {
iconAdd.drawable -> showAddItem("", "", "", "", false, ItemUbicadorVO(), "") iconAdd.drawable -> showAddItem("", "", "", "", false, ItemUbicadorVO(), "")
iconReload.drawable -> { iconReload.drawable -> {
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = VISIBLE
viewModel.itemShelvingList( viewModel.itemShelvingList(
getData(USER), getData(USER),
getData(PASSWORD), getData(PASSWORD),
@ -121,12 +148,7 @@ class UbicadorFragment(
) )
} }
} }
/*if (item == iconAdd){
showAddItem("","","","",false,ItemUbicadorVO(),"")
}else if(item == iconReload){
binding.splashProgress.visibility = View.VISIBLE
viewModel.itemShelvingList(user,password,shelvingFk,"itemShelvingList")
}*/
} }
}) })
@ -145,17 +167,28 @@ class UbicadorFragment(
binding.editMatricula.setOnEditorActionListener { v, actionId, event -> binding.editMatricula.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) { if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
if (!binding.editMatricula.text.toString().isNullOrEmpty()) { if (!binding.editMatricula.text.toString().isNullOrEmpty()) {
binding.mainToolbar.toolbarTitle.text = binding.editMatricula.text.toString()
shelvingFk = binding.editMatricula.text.toString()
binding.splashProgress.visibility = View.VISIBLE
viewModel.itemShelvingList(
getData(USER), if (!modeCheckUbication) {
getData(PASSWORD), binding.mainToolbar.toolbarTitle.text =
binding.editMatricula.text.toString() binding.editMatricula.text.toString()
) shelvingFk = binding.editMatricula.text.toString()
binding.splashProgress.visibility = VISIBLE
viewModel.itemShelvingList(
getData(USER),
getData(PASSWORD),
binding.editMatricula.text.toString()
)
} else {
binding.splashProgress.visibility = VISIBLE
viewModel.getIdFromCode(
usuario = getData(USER),
password = getData(PASSWORD),
code = binding.editMatricula.text.toString()
)
}
} }
binding.editMatricula.setText("") binding.editMatricula.setText("")
ma.hideKeyboard(binding.editMatricula) ma.hideKeyboard(binding.editMatricula)
return@setOnEditorActionListener true return@setOnEditorActionListener true
@ -315,6 +348,43 @@ class UbicadorFragment(
} }
private fun checkUbications(itemScanned: String) {
for (item in listItems) {
if (item.item == itemScanned) {
item.checked = true
ma.messageWithSound("", false, true, "", false)
}
}
if (listItems.filter { it.item == itemScanned }.isEmpty()) {
binding.splashProgress.visibility = View.GONE
listItems.add(
ItemUbicadorVO(
item = itemScanned,
visible = "0",
packing = "0",
grouping = "0",
isNew = true
)
)
listLocalItems = listItems.clone() as ArrayList<ItemUbicadorVO>
viewModel.itemShelvingMake(
getData(USER),
getData(PASSWORD),
shelving = shelvingFk,
item = itemScanned,
quantity = "0",
packing = null,
warehouse = getData(WAREHOUSEFK),
grouping = null
)
}
adapter!!.notifyDataSetChanged()
}
private fun setTooltips() { private fun setTooltips() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
binding.editImg.tooltipText = getTooltip(R.drawable.ic_mode_edit_black_24dp) binding.editImg.tooltipText = getTooltip(R.drawable.ic_mode_edit_black_24dp)
@ -333,6 +403,7 @@ class UbicadorFragment(
with(viewModel) { with(viewModel) {
loadShelvingList.observe(viewLifecycleOwner, Observer { event -> loadShelvingList.observe(viewLifecycleOwner, Observer { event ->
event.getContentIfNotHandled().notNull { event.getContentIfNotHandled().notNull {
deep = it.list.size deep = it.list.size
listItems = ArrayList() listItems = ArrayList()
var contEtiquetas = 0 var contEtiquetas = 0
@ -343,7 +414,10 @@ class UbicadorFragment(
} }
parking = item.code.uppercase() parking = item.code.uppercase()
listItems.add(item) listItems.add(item)
} }
etiquetas = contEtiquetas.toString() etiquetas = contEtiquetas.toString()
binding.mainToolbar.toolbarTitle.text = binding.mainToolbar.toolbarTitle.text =
@ -354,13 +428,29 @@ class UbicadorFragment(
binding.editPrioridad.setText(it.list[0].priority) binding.editPrioridad.setText(it.list[0].priority)
binding.splashProgress.visibility = View.GONE binding.splashProgress.visibility = View.GONE
//sergio: para mostrar CustomDialogUbicator, ubicador con grouping
adapter = UbicadorAdapter(listItems, for (item in listItems) {
for (localItem in listLocalItems) {
if (item.item == localItem.item) {
item.isNew = localItem.isNew
item.checked = localItem.checked
if (item.isNew && item.visible != "0") {
item.isNew = false
item.checked = true
}
binding.locationRecyclerview.postInvalidate()
}
}
}
adapter = UbicadorAdapter(
listItems,
onPasillerosItemClickListener = pasillerosItemClickListener!!, onPasillerosItemClickListener = pasillerosItemClickListener!!,
onVisibleClickListener = object : OnVisibleClickListener { onVisibleClickListener = object : OnVisibleClickListener {
override fun onVisibleClickListener(item: ItemUbicadorVO) { override fun onVisibleClickListener(item: ItemUbicadorVO) {
// if (item.grouping.isNullOrEmpty()){item.grouping=""}
showAddItem( showAddItem(
item.item, item.item,
item.packing, item.packing,
@ -387,9 +477,9 @@ class UbicadorFragment(
binding.locationRecyclerview.layoutManager = binding.locationRecyclerview.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, true) LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, true)
if (isShelvinLogfromMainScreen){ if (isShelvinLogfromMainScreen) {
//tarea 4454 //tarea 4454
viewModel.shelvinLog_add(getData(USER),getData(PASSWORD),shelvingFk) viewModel.shelvinLog_add(getData(USER), getData(PASSWORD), shelvingFk)
} }
} }
@ -406,7 +496,16 @@ class UbicadorFragment(
} }
}) })
responseCode.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE
if (it.isError) {
ma.messageWithSound(it.errorMessage, true, true)
} else {
checkUbications(it.response)
}
})
responsepriority.observe(viewLifecycleOwner, Observer { responsepriority.observe(viewLifecycleOwner, Observer {
ma.messageWithSound( ma.messageWithSound(
@ -419,12 +518,14 @@ class UbicadorFragment(
responseMake.observe(viewLifecycleOwner, Observer { responseMake.observe(viewLifecycleOwner, Observer {
if (!shelvingFk.isNullOrEmpty()) { if (!shelvingFk.isNullOrEmpty()) {
binding.splashProgress.visibility = View.VISIBLE
binding.mainToolbar.toolbarTitle.text = shelvingFk binding.mainToolbar.toolbarTitle.text = shelvingFk
binding.splashProgress.visibility = VISIBLE
viewModel.itemShelvingList( viewModel.itemShelvingList(
getData(USER), getData(USER),
getData(PASSWORD), shelvingFk getData(PASSWORD), shelvingFk
) )
} }
}) })
} }
@ -519,17 +620,15 @@ class UbicadorFragment(
if (updatePacking == null) { if (updatePacking == null) {
if (!itemFk.isNullOrEmpty() && !visible.isNullOrEmpty()) { if (!itemFk.isNullOrEmpty() && !visible.isNullOrEmpty()) {
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = VISIBLE
viewModel.itemShelvingMake( viewModel.itemShelvingMake(
getData(USER), getData(USER),
getData(PASSWORD), getData(PASSWORD),
shelvingFk, shelvingFk,
itemFk, itemFk,
deep.toString(),
visible, visible,
packing, packing,
getData(WAREHOUSEFK), getData(WAREHOUSEFK),
"1",
groupingPack groupingPack
) )
/*changeOfflineValue( /*changeOfflineValue(
@ -547,17 +646,15 @@ class UbicadorFragment(
} else if (!itemFk.isNullOrEmpty() && !etiquetas.isNullOrEmpty()) { } else if (!itemFk.isNullOrEmpty() && !etiquetas.isNullOrEmpty()) {
val visible_calc = (etiquetas.toInt() * packing.toInt()).toString() val visible_calc = (etiquetas.toInt() * packing.toInt()).toString()
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = VISIBLE
viewModel.itemShelvingMake( viewModel.itemShelvingMake(
getData(USER), getData(USER),
getData(PASSWORD), getData(PASSWORD),
shelvingFk, shelvingFk,
itemFk, itemFk,
deep.toString(),
visible_calc, visible_calc,
packing, packing,
getData(WAREHOUSEFK), getData(WAREHOUSEFK),
"1",
groupingPack groupingPack
) )
/*changeOfflineValue( /*changeOfflineValue(
@ -582,7 +679,7 @@ class UbicadorFragment(
} }
} else { } else {
if (!itemFk.isNullOrEmpty() && !visible.isNullOrEmpty() && !updatePacking) { if (!itemFk.isNullOrEmpty() && !visible.isNullOrEmpty() && !updatePacking) {
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = VISIBLE
viewModel.itemShelvingMakeEdit( viewModel.itemShelvingMakeEdit(
getData(USER), getData(USER),
getData(PASSWORD), getData(PASSWORD),
@ -615,7 +712,7 @@ class UbicadorFragment(
visible_calc = (etiquetas.toInt() * packing.toInt()).toString() visible_calc = (etiquetas.toInt() * packing.toInt()).toString()
} catch (e: Exception) { } catch (e: Exception) {
} }
binding.splashProgress.visibility = View.VISIBLE binding.splashProgress.visibility = VISIBLE
viewModel.itemShelvingMakeEdit( viewModel.itemShelvingMakeEdit(
getData(USER), getData(USER),
getData(PASSWORD), getData(PASSWORD),
@ -659,35 +756,6 @@ class UbicadorFragment(
} }
} }
/* private fun editItem(itemFk:String,etiquetas:String,packing:String,visible:String){
if (!packing.isNullOrEmpty()){
if (!itemFk.isNullOrEmpty() && !visible.isNullOrEmpty()){
viewModel.itemShelvingMake(user,password,shelvingFk,itemFk,deep.toString(),visible,packing,warehouseFk,"1","itemShelvingMake")
changeOfflineValue(ItemUbicadorVO(item = itemFk,visible = visible,packing = packing))
customDialogUbicador.setItemValue("").setPackingValue("").setEtiquetaValue("").setVisibleValue("")
customDialogUbicador.getEditItem().requestFocus()
ma.hideKeyboard(customDialogUbicador.getEditItem())
}else if(!itemFk.isNullOrEmpty() && !etiquetas.isNullOrEmpty()){
val visible_calc = (etiquetas.toInt() * packing.toInt()).toString()
viewModel.itemShelvingMake(user,password,shelvingFk,itemFk,deep.toString(),visible_calc,packing,warehouseFk,"1","itemShelvingMake")
changeOfflineValue(ItemUbicadorVO(item = itemFk,visible = visible_calc,packing = packing,stickers = etiquetas))
customDialogUbicador.setItemValue("").setPackingValue("").setEtiquetaValue("").setVisibleValue("")
customDialogUbicador.getEditItem().requestFocus()
ma.hideKeyboard(customDialogUbicador.getEditItem())
}else{
"Rellena campos obligatorios".toast((activity as MainActivity), Toast.LENGTH_LONG)
}
}else{
"Packing obligatorio".toast((activity as MainActivity), Toast.LENGTH_LONG)
}
}*/
/*private fun changeOfflineValue(item: ItemUbicadorVO) {
binding.splashProgress.visibility = View.VISIBLE
*//*listItems.add(item)
adapter?.notifyDataSetChanged()*//*
}*/
private fun showMoreOptions(item: ItemUbicadorVO) { private fun showMoreOptions(item: ItemUbicadorVO) {
customDialogTwoButtons.setTitle(item.item).setDescription(getString(R.string.selectAction)) customDialogTwoButtons.setTitle(item.item).setDescription(getString(R.string.selectAction))
.setOkButton(getString(R.string.transfer)) { .setOkButton(getString(R.string.transfer)) {
@ -707,10 +775,8 @@ class UbicadorFragment(
} else { } else {
getString(R.string.wagonIncorrect).toast(requireContext()) getString(R.string.wagonIncorrect).toast(requireContext())
} }
}.setKoButton(getString(R.string.cancel)) { }.setKoButton(getString(R.string.cancel)) {
customDialogInput.dismiss() customDialogInput.dismiss()
}.show() }.show()

View File

@ -5,6 +5,7 @@ import android.util.Log
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Transformations import androidx.lifecycle.Transformations
import es.verdnatura.domain.GetSacadorControladorUserCase
import es.verdnatura.domain.GetUbicadorUserCase import es.verdnatura.domain.GetUbicadorUserCase
import es.verdnatura.presentation.base.BaseViewModel import es.verdnatura.presentation.base.BaseViewModel
import es.verdnatura.presentation.base.getMessageFromAllResponse import es.verdnatura.presentation.base.getMessageFromAllResponse
@ -21,32 +22,28 @@ import retrofit2.Response
class UbicadorViewModel(context: Context) : BaseViewModel() { class UbicadorViewModel(context: Context) : BaseViewModel() {
private val getUbicadorUserCase: GetUbicadorUserCase = GetUbicadorUserCase(context) private val getUbicadorUserCase: GetUbicadorUserCase = GetUbicadorUserCase(context)
private val getSacadorControladorUserCase: GetSacadorControladorUserCase = GetSacadorControladorUserCase(context)
private val _shelvingList by lazy { MutableLiveData<ItemUbicadorListVO>() } private val _shelvingList by lazy { MutableLiveData<ItemUbicadorListVO>() }
private val _response by lazy { MutableLiveData<ResponseItemVO>() } private val _response by lazy { MutableLiveData<ResponseItemVO>() }
val response: LiveData<ResponseItemVO> val response: LiveData<ResponseItemVO>
get() = _response get() = _response
private val _responsepriority by lazy { MutableLiveData<ResponseItemVO>() } private val _responsepriority by lazy { MutableLiveData<ResponseItemVO>() }
val responsepriority: LiveData<ResponseItemVO> val responsepriority: LiveData<ResponseItemVO>
get() = _responsepriority get() = _responsepriority
private val _responseMake by lazy { MutableLiveData<ResponseItemVO>() } private val _responseMake by lazy { MutableLiveData<ResponseItemVO>() }
val responseMake: LiveData<ResponseItemVO> val responseMake: LiveData<ResponseItemVO>
get() = _responseMake get() = _responseMake
val loadShelvingList = Transformations.map(_shelvingList) { Event(it) } val loadShelvingList = Transformations.map(_shelvingList) { Event(it) }
private val _reubicationList by lazy { MutableLiveData<ReubicationList>() } private val _reubicationList by lazy { MutableLiveData<ReubicationList>() }
val loadReubicationList = Transformations.map(_reubicationList) { Event(it) } val loadReubicationList = Transformations.map(_reubicationList) { Event(it) }
private val _responseCode by lazy { MutableLiveData<ResponseItemVO>() }
val responseCode: LiveData<ResponseItemVO>
get() = _responseCode
fun itemShelvingList( fun itemShelvingList(
usuario: String, usuario: String,
@ -136,12 +133,10 @@ class UbicadorViewModel(context: Context) : BaseViewModel() {
password: String, password: String,
shelving: String, shelving: String,
item: String, item: String,
deep: String,
quantity: String, quantity: String,
packing: String, packing: String?,
warehouse: String, warehouse: String,
level: String, grouping: String?
grouping: String
) { ) {
getUbicadorUserCase.itemShelvingMake( getUbicadorUserCase.itemShelvingMake(
usuario, usuario,
@ -500,4 +495,31 @@ class UbicadorViewModel(context: Context) : BaseViewModel() {
}) })
} }
fun getIdFromCode(usuario: String, password: String, code: String) {
getSacadorControladorUserCase.getIdFromCode(usuario, password, code)
.enqueue(object : Callback<String> {
override fun onFailure(call: Call<String>, t: Throwable) {
_responseCode.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
)
}
override fun onResponse(call: Call<String>, response: Response<String>) {
if (response.body() == null) {
_responseCode.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
response.message()
)
)
} else {
_responseCode.value =
ResponseItemVO(isError = false, response = response.body()!!)
}
}
})
}
} }

View File

@ -13,7 +13,9 @@ class ItemUbicadorVO (
var id:String = "", var id:String = "",
var priority:String = "", var priority:String = "",
var isError:Boolean = false, var isError:Boolean = false,
var errorMessage:String = "" var errorMessage:String = "",
var checked:Boolean = false,
var isNew:Boolean = false
) )
class ItemEscanerVO( class ItemEscanerVO(

View File

@ -32,10 +32,7 @@ class WorkermistakeFragment(
) { ) {
private var adapterworker: WorkermistakeAdapter? = null private var adapterworker: WorkermistakeAdapter? = null
private lateinit var customDialogInput: CustomDialogInput private lateinit var customDialogInput: CustomDialogInput
private var listWorker: MutableList<WorkerFromMistake> = ArrayList() private var listWorker: MutableList<WorkerFromMistake> = ArrayList()
private var listWorkerAuxiliary: MutableList<WorkerFromMistake> = ArrayList() private var listWorkerAuxiliary: MutableList<WorkerFromMistake> = ArrayList()
private lateinit var customDialog: CustomDialog private lateinit var customDialog: CustomDialog

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,8 @@
<!-- drawable/check_outline.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="#FFF" android:pathData="M19.78,2.2L24,6.42L8.44,22L0,13.55L4.22,9.33L8.44,13.55L19.78,2.2M19.78,5L8.44,16.36L4.22,12.19L2.81,13.55L8.44,19.17L21.19,6.42L19.78,5Z" />
</vector>

View File

@ -0,0 +1,8 @@
<!-- drawable/package_variant.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="#FFF" android:pathData="M2,10.96C1.5,10.68 1.35,10.07 1.63,9.59L3.13,7C3.24,6.8 3.41,6.66 3.6,6.58L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.66,6.72 20.82,6.88 20.91,7.08L22.36,9.6C22.64,10.08 22.47,10.69 22,10.96L21,11.54V16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V10.96C2.7,11.13 2.32,11.14 2,10.96M12,4.15V4.15L12,10.85V10.85L17.96,7.5L12,4.15M5,15.91L11,19.29V12.58L5,9.21V15.91M19,15.91V12.69L14,15.59C13.67,15.77 13.3,15.76 13,15.6V19.29L19,15.91M13.85,13.36L20.13,9.73L19.55,8.72L13.27,12.35L13.85,13.36Z" />
</vector>

View File

@ -54,7 +54,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@drawable/background_round" android:background="@drawable/background_round"
android:enabled="true" android:enabled="true"
android:hint="@string/quantity" android:hint="@string/expeditionPalletOrCMR"
android:inputType="text" android:inputType="text"
android:lines="1" android:lines="1"
android:maxLines="1" android:maxLines="1"
@ -68,7 +68,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/layout_margin_min" android:layout_margin="@dimen/layout_margin_min"
android:hint="@string/scanShelving" android:hint="@string/expeditionPalletOrCMR"
android:textColorHint="@android:color/darker_gray" android:textColorHint="@android:color/darker_gray"
android:visibility="visible"> android:visibility="visible">

View File

@ -0,0 +1,144 @@
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:paddingTop="@dimen/toolbar_height">
<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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/filter_itemFk"
style="@style/InputLineTextSearch"
android:layout_width="match_parent"
android:layout_weight="1.5"
android:backgroundTint="@android:color/white"
android:hint="Nombre o apellido"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:visibility="gone"
android:textAlignment="center"
android:textColor="@color/verdnatura_white"
android:textColorHint="@android:color/darker_gray" />
<TextView
android:id="@+id/filter_supplier"
style="@style/InputLineTextSearch"
android:layout_width="match_parent"
android:layout_weight="1"
android:backgroundTint="@android:color/white"
android:drawableEnd="@drawable/ic_arrow_drop_down_black_24dp"
android:focusable="false"
android:hint="Proveedor"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:textAlignment="center"
android:textColor="@color/verdnatura_pumpkin_orange"
android:textColorHint="@android:color/darker_gray"
android:visibility="visible" />
</LinearLayout>
</com.google.android.material.textfield.TextInputLayout>
<RadioGroup
android:id="@+id/radiobuttonTypePackaging"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"
android:layout_marginTop="25dp"
android:gravity="center_horizontal"
>
<RadioButton
android:id="@+id/radioButtonRec"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:buttonTint="@color/verdnatura_white"
android:minHeight="48dp"
android:text="@string/reception"
android:textColor="@color/verdnatura_white" />
<RadioButton
android:id="@+id/radioButtonDev"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:buttonTint="@color/verdnatura_white"
android:minHeight="48dp"
android:text="@string/comeback"
android:textColor="@color/verdnatura_white" />
</RadioGroup>
</LinearLayout>
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/verdnatura_black_8_alpha_6"
android:visibility="visible"
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

@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="@dimen/toolbar_height"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/filter_itemFk"
style="@style/InputLineTextSearch"
android:layout_width="match_parent"
android:layout_weight="1.5"
android:backgroundTint="@android:color/white"
android:hint="Nombre o apellido"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:textAlignment="center"
android:textColor="@color/verdnatura_white"
android:textColorHint="@android:color/darker_gray"
android:visibility="gone" />
<TextView
android:id="@+id/filter_department"
style="@style/InputLineTextSearch"
android:layout_width="match_parent"
android:layout_weight="1"
android:backgroundTint="@android:color/white"
android:drawableEnd="@drawable/ic_arrow_drop_down_black_24dp"
android:focusable="false"
android:hint="Embalajes"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:textAlignment="center"
android:textColor="@color/verdnatura_pumpkin_orange"
android:textColorHint="@android:color/darker_gray"
android:visibility="gone" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.75"
android:text="Descripción"
android:textAlignment="viewStart"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2" />
<TextView
android:id="@+id/quantityPackaging"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@string/Cantidad"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.75"
android:text="Total"
android:textAlignment="textStart"
android:textColor="@color/verdnatura_white"
android:paddingStart="@dimen/layout_margin_3"
android:textSize="@dimen/body2" />
</LinearLayout>
</com.google.android.material.textfield.TextInputLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/itemsupplier_recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:visibility="visible"
tools:listitem="@layout/item_itemsupplier_row" />
</LinearLayout>
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/verdnatura_black_8_alpha_6"
android:gravity="center"
android:orientation="vertical"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<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

@ -0,0 +1,105 @@
<?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"
android:background="@color/verdnatura_black">
<TextView
android:id="@+id/textObs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Observaciones : "
android:textColor="#FFF"
android:textSize="18dp"
app:layout_constraintStart_toEndOf="@+id/main_toolbar"
app:layout_constraintTop_toBottomOf="@+id/main_toolbar" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/observations"
android:layout_width="match_parent"
android:layout_height="100dp"
android:gravity="center"
android:hint="Observaciones"
android:inputType="textCapSentences|textMultiLine"
android:textColor="@color/verdnatura_white"
android:textColorHint="@android:color/tertiary_text_light"
android:visibility="visible"
app:layout_constraintStart_toEndOf="@+id/textObs"
app:layout_constraintTop_toBottomOf="@+id/textObs" />
<TextView
android:id="@+id/textImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Imágenes : "
android:textColor="#FFF"
android:textSize="18dp"
app:layout_constraintStart_toEndOf="@+id/observations"
app:layout_constraintTop_toBottomOf="@+id/observations" />
<LinearLayout
android:id="@+id/textImages"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min"
app:layout_constraintStart_toEndOf="@+id/textImage"
app:layout_constraintTop_toBottomOf="@+id/textImage" >
<TextView
android:id="@+id/openPickerImages"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_weight="1"
android:gravity="center"
android:text="Añadir nueva..."
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/listImagesRecycler"
android:layout_width="match_parent"
android:layout_height="550dp"
android:visibility="visible"
app:layout_constraintStart_toEndOf="@+id/textImages"
app:layout_constraintTop_toBottomOf="@+id/textImages"
tools:listitem="@layout/item_image_row"
/>
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/verdnatura_black_8_alpha_6"
android:gravity="center"
android:orientation="vertical"
android:visibility="visible"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp">
<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

@ -0,0 +1,308 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="@dimen/toolbar_height"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:orientation="horizontal"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.25"
android:gravity="center"
android:text="Descripción"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="Total"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:orientation="horizontal"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="CC ROJO"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="220"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2" />
<ImageButton
android:layout_width="25dp"
android:layout_height="25dp"
android:background="@drawable/ic_delete_black_24dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:orientation="horizontal"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:orientation="horizontal"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="DC"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="30"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2" />
<ImageButton
android:layout_width="25dp"
android:layout_height="25dp"
android:background="@drawable/ic_delete_black_24dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:orientation="horizontal"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min" />
<LinearLayout
android:id="@+id/layout_total_images"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:orientation="horizontal"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Imágenes adjuntas:"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold" />
<TextView
android:id="@+id/totalImages"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Observaciones:"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/layout_observations"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:orientation="horizontal"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min">
<TextView
android:id="@+id/observations"
android:layout_width="match_parent"
android:layout_height="100dp"
android:gravity="center"
android:hint="Observaciones"
android:inputType="textCapSentences|textMultiLine"
android:textColor="@color/verdnatura_white"
android:textColorHint="@android:color/tertiary_text_light"
android:visibility="visible"
app:layout_constraintStart_toEndOf="@+id/layout_total_images"
app:layout_constraintTop_toBottomOf="@+id/layout_total_images" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:orientation="horizontal"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min">
<TextView
android:id="@+id/sign"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="left"
android:text="Firma:"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1"
android:orientation="horizontal"
android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min">
<com.simplify.ink.InkView
android:id="@+id/ink"
android:layout_width="wrap_content"
android:layout_height="102dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:background="@color/verdnatura_white"
app:inkFlags="interpolation|responsiveWeight"
app:layout_constraintBottom_toTopOf="@+id/textView36"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/sign"
app:layout_constraintTop_toBottomOf="@+id/sign"
app:layout_constraintVertical_bias="0.0" />
</LinearLayout>
</com.google.android.material.textfield.TextInputLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/workermistake_recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:visibility="gone"
tools:listitem="@layout/item_general_row" />
</LinearLayout>
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/verdnatura_black_8_alpha_6"
android:gravity="center"
android:orientation="vertical"
android:visibility="visible"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp">
<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

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools" <layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:tools="http://schemas.android.com/tools">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@ -12,11 +12,11 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:paddingTop="@dimen/toolbar_height"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent">
android:paddingTop="@dimen/toolbar_height">
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/textinputlayout_username" android:id="@+id/textinputlayout_username"
@ -70,9 +70,9 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="@dimen/layout_margin_min" android:layout_marginTop="@dimen/layout_margin_min"
android:layout_marginBottom="@dimen/layout_margin_1" android:layout_marginBottom="@dimen/layout_margin_1"
android:orientation="horizontal"
android:paddingLeft="@dimen/layout_margin_min" android:paddingLeft="@dimen/layout_margin_min"
android:paddingRight="@dimen/layout_margin_min"> android:paddingRight="@dimen/layout_margin_min">
@ -110,13 +110,14 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clipToPadding="false" android:clipToPadding="false"
tools:listitem="@layout/item_workermistake_row"/> tools:listitem="@layout/item_workermistake_row" />
</LinearLayout> </LinearLayout>
'
' <include <include
android:id="@+id/main_toolbar" android:id="@+id/main_toolbar"
layout="@layout/toolbar_fragment" layout="@layout/toolbar_fragment"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -124,25 +125,23 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<LinearLayout <LinearLayout
android:id="@+id/splash_progress" android:id="@+id/splash_progress"
android:visibility="visible"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/verdnatura_black_8_alpha_6" android:background="@color/verdnatura_black_8_alpha_6"
android:gravity="center"
android:orientation="vertical"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent">
android:gravity="center">
<com.airbnb.lottie.LottieAnimationView <com.airbnb.lottie.LottieAnimationView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/verdnatura_logo_large_height" android:layout_height="@dimen/verdnatura_logo_large_height"
app:lottie_autoPlay="true" app:lottie_autoPlay="true"
app:lottie_loop="true" app:lottie_loop="true"
app:lottie_rawRes="@raw/orange_loading" app:lottie_rawRes="@raw/orange_loading"
@ -150,7 +149,5 @@
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<data>
<variable
name="item"
type="es.verdnatura.presentation.common.GeneralItem" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/item_row_layout"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/verdnatura_black_5"
android:padding="@dimen/packaging_margin_main_menu">
<ImageView
android:id="@+id/imageView2"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_weight="1"
tools:srcCompat="@tools:sample/avatars" />
<TextView
android:id="@+id/item_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:layout_marginRight="48dp"
android:gravity="center_vertical"
android:text="@{item.code}"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h7"
android:textStyle="bold"
android:visibility="visible"
tools:text="Nombre archivo"/>
<ImageView
android:layout_marginLeft="@dimen/default_layout_margin"
android:id="@+id/item_image_update"
android:layout_width="48dp"
android:layout_height="48dp"
android:gravity="center_vertical"
android:scaleType="centerCrop"
android:layout_gravity="center"
android:visibility="visible"
android:src="@drawable/ic_history_black_24dp" />
<ImageView
android:layout_marginLeft="@dimen/default_layout_margin"
android:id="@+id/item_image_trash"
android:layout_width="48dp"
android:gravity="center_vertical"
android:layout_height="48dp"
android:scaleType="centerCrop"
android:layout_gravity="center"
android:visibility="visible"
android:src="@drawable/ic_delete_black_24dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_black_9"/>
</LinearLayout>
</layout>

View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<data>
<variable
name="item"
type="com.esafirm.imagepicker.model.Image" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/item_row_layout"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/verdnatura_black_5"
>
<ImageView
android:id="@+id/item_image"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_weight="1"
tools:srcCompat="@tools:sample/avatars" />
<TextView
android:id="@+id/item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:layout_marginRight="48dp"
android:gravity="center_vertical"
android:text="@{item.name}"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h8"
android:visibility="visible"
tools:text="Nombre archivo"/>
<ImageView
android:layout_marginLeft="@dimen/default_layout_margin"
android:id="@+id/item_image_update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical"
android:scaleType="centerCrop"
android:layout_gravity="center"
android:visibility="visible"
android:src="@drawable/ic_history_black_24dp" />
<ImageView
android:layout_marginLeft="@dimen/default_layout_margin"
android:id="@+id/item_image_trash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_weight="1"
android:scaleType="centerCrop"
android:layout_gravity="center"
android:visibility="visible"
android:src="@drawable/ic_delete_black_24dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_black_9"/>
</LinearLayout>
</layout>

View File

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<data>
<variable
name="item"
type="es.verdnatura.presentation.view.feature.packaging.model.ItemSupplier" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/item_row_layout"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/verdnatura_black_5"
android:padding="5dp">
<TextView
android:id="@+id/item_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{Integer.toString(item.id)}"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h8"
android:gravity="center_vertical"
android:visibility="gone"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/pasilleros_margin_main_menu"
tools:text="1" />
<TextView
android:id="@+id/item_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.75"
android:text="@{item.name}"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h8"
android:gravity="center_vertical"
android:visibility="visible"
android:layout_gravity="center"
tools:text="BB" />
<TextView
android:id="@+id/item_subquantity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.25"
android:text="@{Integer.toString(item.subquantity)}"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h8"
android:gravity="center_vertical"
android:visibility="visible"
android:layout_gravity="center"
tools:text="20" />
<TextView
android:id="@+id/item_quantity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/pasilleros_margin_main_menu"
android:layout_weight="1.25"
android:layout_gravity="center"
android:text="@{Integer.toString(item.quantity)}"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h8"
android:visibility="visible"
tools:text="150" />
<ImageView
android:layout_marginLeft="@dimen/default_layout_margin"
android:id="@+id/item_image_update"
android:layout_width="24dp"
android:gravity="center_vertical"
android:layout_height="24dp"
android:scaleType="centerCrop"
android:layout_gravity="center"
android:visibility="visible"
android:src="@drawable/ic_history_black_24dp" />
<ImageView
android:layout_marginLeft="@dimen/default_layout_margin"
android:id="@+id/item_image_trash"
android:layout_width="24dp"
android:gravity="center_vertical"
android:layout_height="24dp"
android:scaleType="centerCrop"
android:layout_gravity="center"
android:visibility="visible"
android:src="@drawable/ic_delete_black_24dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_black_9"/>
</LinearLayout>
</layout>

View File

@ -10,6 +10,7 @@
type="es.verdnatura.presentation.view.feature.ubicador.model.ItemUbicadorVO" /> type="es.verdnatura.presentation.view.feature.ubicador.model.ItemUbicadorVO" />
</data> </data>
<LinearLayout <LinearLayout
android:id="@+id/itemLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">

View File

@ -82,13 +82,14 @@
android:textColor="@color/verdnatura_white" android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h6" android:textSize="@dimen/h6"
android:visibility="invisible" android:visibility="invisible"
app:autoSizeTextType="uniform" app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="12sp" app:autoSizeMinTextSize="12sp"
app:autoSizeMaxTextSize="100sp" app:autoSizeMaxTextSize="100sp"
tool:text="10/20" tool:text="10/20"
tool:visibility="visible" /> tool:visibility="visible" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/toolbar_icons" android:id="@+id/toolbar_icons"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -96,6 +97,14 @@
android:layout_marginLeft="@dimen/layout_margin_min" android:layout_marginLeft="@dimen/layout_margin_min"
tool:listitem="@layout/item_toolbar_row" tool:listitem="@layout/item_toolbar_row"
tool:visibility="visible" /> tool:visibility="visible" />
<Switch
android:id="@+id/switchButton"
android:layout_width="50dp"
android:layout_height="match_parent"
android:text="Switch"
android:visibility="gone"
android:tooltipText="@string/allowCheckingMode"
tool:visibility="visible"/>
</LinearLayout> </LinearLayout>

View File

@ -193,6 +193,7 @@
<string name="speedProblems">Problemas con la velocidad de internet. No se puede usar la voz</string> <string name="speedProblems">Problemas con la velocidad de internet. No se puede usar la voz</string>
<string name="allowParking">Permite aparcar ticket/carro</string> <string name="allowParking">Permite aparcar ticket/carro</string>
<string name="allowTakeoffVehicle">Permite dejar el vehículo</string> <string name="allowTakeoffVehicle">Permite dejar el vehículo</string>
<string name="newCollection">Genera colección para sacar</string> <string name="newCollection">Genera colección para sacar</string>
<string name="showFilter">Ver filtro </string> <string name="showFilter">Ver filtro </string>
<string name="showFaults">Ver movimientos de Faltas</string> <string name="showFaults">Ver movimientos de Faltas</string>
@ -459,7 +460,7 @@
<string name="in_shelve">En balda:</string> <string name="in_shelve">En balda:</string>
<string name="pendingReviewParking">No es posible aparcar el ticket porque hay un ticket pendiente:</string> <string name="pendingReviewParking">No es posible aparcar el ticket porque hay un ticket pendiente:</string>
<string name="sectorALGEMESINEW">SACADOR V</string> <string name="sectorALGEMESINEW">SACADOR V</string>
<string name="titleCMRState">Informar CMR</string> <string name="titleCMRState">Asociar pallet a CMR</string>
<string name="titleCMRDescrip">Permite infomar de un CMR</string> <string name="titleCMRDescrip">Permite infomar de un CMR</string>
<string name="expeditionPalletScan">Escanea el Pallet</string> <string name="expeditionPalletScan">Escanea el Pallet</string>
<string name="cmrScan">Escanea CMR</string> <string name="cmrScan">Escanea CMR</string>
@ -494,5 +495,24 @@
<string name="printerRemoved">(Su impresora ha sido borrada)</string> <string name="printerRemoved">(Su impresora ha sido borrada)</string>
<string name="expeditionPalletCMR">Escanea Pallet y CMR</string> <string name="expeditionPalletCMR">Escanea Pallet y CMR</string>
<string name="expeditionPalletOrCMR">Escanea pallet o cmr</string> <string name="expeditionPalletOrCMR">Escanea pallet o cmr</string>
<string name="labelPalletOrCmrNotValid">Etiqueta escaneada para %s no válida</string>
<string name="errorSameType">Escaneadas dos etiquetas del mismo tipo</string>
<string name="scanLabelCMR">Escanea CMR</string>
<string name="scanLabelPallet">Escanea PALLET</string>
<string name="errorPalletCmrNotScanned">No ha escaneado ni pallet ni Cmr</string>
<string name="titlePackaging">Entradas</string>
<string name="titlePackagingDescrip">Permite realizar la entrada de embalajes</string>
<string name="titlePackagingCount">Embalajes</string>
<string name="titlePackagingObs">Observaciones</string>
<string name="titlePackagingSummary">Resumen</string>
<string name="suppliers">Proveedores</string>
<string name="reception">Recepción</string>
<string name="comeback">Devolución</string>
<string name="checkerUbication">Permite modo revisión de la ubicación</string>
<string name="confirmEntry">Confirmar entrada</string>
<string name="entryNextObsers">Siguiente paso: observaciones e imágenes</string>
<string name="nextEntrySummary">Siguiente paso: resumen entrada</string>
<string name="activateModoChecking">Activado modo revisión</string>
<string name="allowCheckingMode">Permite activar modo revisión. Escane primero una matrícula</string>
</resources> </resources>

View File

@ -20,6 +20,7 @@
<color name="verdnatura_pumpkin_orange">#f7931e</color> <color name="verdnatura_pumpkin_orange">#f7931e</color>
<color name="verdnatura_sunflower_yellow">#ffd400</color> <color name="verdnatura_sunflower_yellow">#ffd400</color>
<color name="verdnatura_dark_sky_blue">#4ab4e6</color> <color name="verdnatura_dark_sky_blue">#4ab4e6</color>
<color name="verdnatura_dark_green_verdnatura">#a3d131</color>
<color name="verdnatura_dark_mint">#50be87</color> <color name="verdnatura_dark_mint">#50be87</color>
<color name="verdnatura_dark_mint_light">#80be87</color> <color name="verdnatura_dark_mint_light">#80be87</color>
<color name="verdnatura_dark_mint_light_precontrolled">#b8daba</color> <color name="verdnatura_dark_mint_light_precontrolled">#b8daba</color>
@ -27,6 +28,7 @@
<color name="verdnatura_white">#ffffff</color> <color name="verdnatura_white">#ffffff</color>
<color name="verdnatura_black_8_alpha_6">#991A1A1A</color> <color name="verdnatura_black_8_alpha_6">#991A1A1A</color>
<color name="verdnatura_background_item_picker">#4d4d4d</color> <color name="verdnatura_background_item_picker">#4d4d4d</color>
<color name="verdnatura_background_subtitle_settings">#1a1a1a</color> <color name="verdnatura_background_subtitle_settings">#1a1a1a</color>
<color name="verdnatura_background_items_menus">#333333</color> <color name="verdnatura_background_items_menus">#333333</color>

View File

@ -77,6 +77,8 @@
<!--Pasilleros--> <!--Pasilleros-->
<dimen name="pasilleros_margin_main_menu">15dp</dimen> <dimen name="pasilleros_margin_main_menu">15dp</dimen>
<dimen name="packaging_margin_main_menu">5dp</dimen>
<dimen name="itemcard_image_height">300dp</dimen> <dimen name="itemcard_image_height">300dp</dimen>
<dimen name="itemcard_image_height_medium">200dp</dimen> <dimen name="itemcard_image_height_medium">200dp</dimen>

View File

@ -100,6 +100,8 @@
<string name="escribirparteNombre">Write here</string> <string name="escribirparteNombre">Write here</string>
<string name="compradores">Buyers</string> <string name="compradores">Buyers</string>
<string name="departamentos">Departments</string> <string name="departamentos">Departments</string>
<string name="suppliers">Suppliers</string>
<string name="reception">Reception</string>
<string name="Grouping">Grouping</string> <string name="Grouping">Grouping</string>
<string name="Packing">Packing</string> <string name="Packing">Packing</string>
<string name="Barcode">Barcode</string> <string name="Barcode">Barcode</string>
@ -134,7 +136,7 @@
<string name="assigned_user">User assigned to device name</string> <string name="assigned_user">User assigned to device name</string>
<string name="ScanPlateOrSmarttag">Scan plate or smartag</string> <string name="ScanPlateOrSmarttag">Scan plate or smartag</string>
<string name="titleExpeditionState">Expedition state</string> <string name="titleExpeditionState">Expedition state</string>
<string name="titleCMRState">Report CMR</string> <string name="titleCMRState">Associate pallet to CMR</string>
<string name="BuffersManegement">Buffer Management</string> <string name="BuffersManegement">Buffer Management</string>
<string name="PalletMake">Pallet make</string> <string name="PalletMake">Pallet make</string>
<string name="scanPallet">Scan pallet</string> <string name="scanPallet">Scan pallet</string>
@ -150,6 +152,7 @@
<string name="minQuantity">Min quantity</string> <string name="minQuantity">Min quantity</string>
<string name="producer">Producer</string> <string name="producer">Producer</string>
<string name="controlticket">Control ticket</string> <string name="controlticket">Control ticket</string>
<string name="checkerUbication">Permit check ubications</string>
<string name="titleExpeditionScan">Scan expedition</string> <string name="titleExpeditionScan">Scan expedition</string>
<string name="dayofSale">Day of sale</string> <string name="dayofSale">Day of sale</string>
<string name="wagoon">Wagoon</string> <string name="wagoon">Wagoon</string>
@ -298,6 +301,7 @@
<string name="printerUpdated">Printer registered</string> <string name="printerUpdated">Printer registered</string>
<string name="sectorUpdated">sector updated</string> <string name="sectorUpdated">sector updated</string>
<string name="errorCmrNotScanned">CMR not scanned</string> <string name="errorCmrNotScanned">CMR not scanned</string>
<string name="errorPalletCmrNotScanned">Not scanned neither pallet nor cmr</string>
<string name="itemUpdated">Item updated</string> <string name="itemUpdated">Item updated</string>
<string name="logAppName">warehouse</string> <string name="logAppName">warehouse</string>
<string name="base_urlSalix">base_urlSalix</string> <string name="base_urlSalix">base_urlSalix</string>
@ -363,6 +367,11 @@
<string name="titleScanExpedition">Scan expedition</string> <string name="titleScanExpedition">Scan expedition</string>
<string name="titleBufferManegement">Buffer management</string> <string name="titleBufferManegement">Buffer management</string>
<string name="titleClaims">Claims</string> <string name="titleClaims">Claims</string>
<string name="titlePackaging">Suppliers</string>
<string name="titlePackagingCount">Packaging</string>
<string name="titlePackagingObs">Observations</string>
<string name="titlePackagingSummary">Summary</string>
<string name="confirmEntry">Confirm entry</string>
<string name="titleUserControlVehicle">Vehicle User Control</string> <string name="titleUserControlVehicle">Vehicle User Control</string>
<string name="titlePrePicker">Pre puncher</string> <string name="titlePrePicker">Pre puncher</string>
<string name="titleDayOfSale">Day of sale</string> <string name="titleDayOfSale">Day of sale</string>
@ -380,7 +389,6 @@
<string name="titleLogShelving">Log Shelving</string> <string name="titleLogShelving">Log Shelving</string>
<string name="titlePickers">Pickers</string> <string name="titlePickers">Pickers</string>
<string name="itemScanetNotFound">"Scanned element not found "</string> <string name="itemScanetNotFound">"Scanned element not found "</string>
<string name="NotOrderReplacement">There are no requests to replace</string> <string name="NotOrderReplacement">There are no requests to replace</string>
<string name="orderCompleted">Completed order</string> <string name="orderCompleted">Completed order</string>
<string name="shelvingSure">Make sure to scan a plate.</string> <string name="shelvingSure">Make sure to scan a plate.</string>
@ -460,6 +468,7 @@
<string name="titleControlDescrip">Access the ticket review</string> <string name="titleControlDescrip">Access the ticket review</string>
<string name="titlePalletizDescrip">Access the palletizers menu: palletize, buffer…</string> <string name="titlePalletizDescrip">Access the palletizers menu: palletize, buffer…</string>
<string name="titleClaimsDescrip">Access the claims menu</string> <string name="titleClaimsDescrip">Access the claims menu</string>
<string name="titlePackagingDescrip">Access the packaging menu</string>
<string name="titleClaimDescrip">Claims Location</string> <string name="titleClaimDescrip">Claims Location</string>
<string name="collectionErrorBuilding">Error building collection. Error description:</string> <string name="collectionErrorBuilding">Error building collection. Error description:</string>
<string name="main">Main</string> <string name="main">Main</string>
@ -494,6 +503,15 @@
<string name="deleteWorkForm">Delete work form</string> <string name="deleteWorkForm">Delete work form</string>
<string name="deleteWorkFormConfirmation">¿Do you remove definitely?</string> <string name="deleteWorkFormConfirmation">¿Do you remove definitely?</string>
<string name="noAssigned">Not assigned</string> <string name="noAssigned">Not assigned</string>
<string name="labelPalletOrCmrNotValid">Scanned label not valid for %s</string>
<string name="errorSameType">Scanned two labels of same type</string>
<string name="scanLabelPallet">Scan PALLET</string>
<string name="scanLabelCMR">Scan CMR</string>
<string name="comeback">Return</string>
<string name="entryNextObsers">Next step: observations and images</string>
<string name="nextEntrySummary">Next step: entry summary</string>
<string name="activateModoChecking">Activated checking mode</string>
<string name="allowCheckingMode">Allow checking mode. Scan firstly the plate and after activate the mode</string>
</resources> </resources>

View File

@ -40,6 +40,11 @@
<item name="android:background">@drawable/btn_blue</item> <item name="android:background">@drawable/btn_blue</item>
<item name="android:textColor">@color/verdnatura_white</item> <item name="android:textColor">@color/verdnatura_white</item>
</style> </style>
<style name="ToolPickerImage" parent="AppTheme">
<item name="colorPrimary">@color/verdnatura_black</item>
<item name="colorPrimaryDark">@color/verdnatura_black</item>
<item name="android:textColor">@color/verdnatura_white</item>
</style>
<style name="DefaultButton.NormalButtonThree" parent="DefaultButton"> <style name="DefaultButton.NormalButtonThree" parent="DefaultButton">
<item name="android:background">@drawable/btn_green</item> <item name="android:background">@drawable/btn_green</item>

8
local.properties Normal file
View File

@ -0,0 +1,8 @@
## This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Mon Apr 19 11:46:38 CEST 2021
sdk.dir=C\:\\Users\\sergiodt\\AppData\\Local\\Android\\Sdk