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

This commit is contained in:
Sergio De la torre 2022-05-04 08:47:52 +02:00
parent f0ba03db3d
commit 1341e08efe
91 changed files with 3214 additions and 872 deletions

View File

@ -4,19 +4,29 @@
<option name="filePathToZoomLevelMap">
<map>
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable-v24/background_gradient.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable-v24/background_round_corner.xml" value="0.2205" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable-v24/ic_history_orang.xml" value="0.22037037037037038" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable-v24/ic_history_orange_24dp.xml" value="0.16666666666666666" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.13541666666666666" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable-v24/selector_bottombar_text.xml" value="0.13541666666666666" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/alpha_b_circle_outline.xml" value="0.2359375" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/alpha_f_circle_outline.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/background_item_color.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/background_oval_checked.xml" value="0.2359375" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/background_oval_unchecked.xml" value="0.30052083333333335" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/background_round.xml" value="0.2555" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/background_round_corner.xml" value="0.2205" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/background_round_square.xml" value="0.2205" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/background_roundl.xml" value="0.232" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/barcode.xml" value="0.2359375" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/barcode_scan.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/border.xml" value="0.27447916666666666" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/border_parental.xml" value="0.11979166666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/btn_blue.xml" value="0.27447916666666666" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/btn_green.xml" value="0.2205" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/btn_ios_like.xml" value="0.2635" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/btn_orange.xml" value="0.2635" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/btn_white_transparent.xml" value="0.2635" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/buffer_accumulate.xml" value="0.18489583333333334" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/buffer_accumulation.xml" value="0.19814814814814816" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/buffer_desactivate.xml" value="0.1" />
@ -33,10 +43,12 @@
<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/crane.xml" value="0.23802083333333332" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/custom_ripple.xml" value="0.2175" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/day_of_sale.xml" value="0.184375" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/delete.xml" value="0.19166666666666668" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/drawable_white_circle.xml" value="0.1775" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/emoticon_error.xml" value="0.27447916666666666" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/emoticon_error_fragment.xml" value="0.26" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/eraser.xml" value="0.26564102564102565" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/face_man_outline.xml" value="0.22708333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/filter_outline.xml" value="0.22239583333333332" />
@ -45,18 +57,30 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_arrow_back_black_24dp.xml" value="0.22708333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml" value="0.22708333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_autorenew_black_24dp.xml" value="0.1775" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_barcode_ui_selected.xml" value="0.212" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_baseline_star_24.xml" value="0.1775" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_build_black_24dp.xml" value="0.22708333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_chevron_right_black_24dp.xml" value="0.1775" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_claim_ui.xml" value="0.186" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_claims.xml" value="0.2425" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_controller_ui.xml" value="0.212" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_controller_ui_selected.xml" value="0.212" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_corridor_ui.xml" value="0.186" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_dashboard_black_24dp.xml" value="0.1775" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_delete_black_24dp.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_delete_forever_black_24dp.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_device_hub_black_24dp.xml" value="0.22" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_device_hub_black_24dp_selected.xml" value="0.22" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_eye_ui.xml" value="0.2015" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_eye_ui_selected.xml" value="0.212" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_flash_auto_black_24dp.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_history_black_24dp.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_history_orange.xml" value="0.22037037037037038" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_icon_configuracion.xml" value="0.26" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_init.xml" value="0.186" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_init_selected.xml" value="0.26" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_init_ui.xml" value="0.212" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_init_ui_selected.xml" value="0.212" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_launcher_background.xml" value="0.24010416666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_local_florist_black_24dp.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_local_florist_black_24dp_selected.xml" value="0.21041666666666667" />
@ -66,10 +90,20 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_local_shipping_black_24dp_selected.xml" value="0.11979166666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_loyalty_black_24dp.xml" value="0.21041666666666667" />
<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_move_to_inbox_black_24dp.xml" value="0.15052083333333333" />
<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_parking_ui.xml" value="0.212" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_parking_ui_selected.xml" value="0.212" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_picker_ui.xml" value="0.186" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_playlist_add_black_24dp.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_print_black_24dp.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_qr_ui.xml" value="0.212" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_send_black_24dp.xml" value="0.134375" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_setting_ui.xml" value="0.26" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_setting_ui_selected.xml" value="0.26" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_settings.xml" value="0.26" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_settings_selected.xml" value="0.26" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_spa_black_24dp.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_spa_black_launcher.xml" value="0.19479166666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_star_ko.xml" value="0.15052083333333333" />
@ -83,6 +117,9 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_visibility_black_24dp.xml" value="0.2546875" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_visibility_black_24dp_white.xml" value="0.2546875" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_visibility_white_24dp.xml" value="0.2546875" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/ic_vn_logo_negativo_app_warehouse.xml" value="0.18" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/init_icon.xml" value="0.2635" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/init_selected_icon.xml" value="0.2635" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/movie_plus_outline.xml" value="0.134375" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/pallet_shipping.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/pallet_shipping_black.xml" value="0.1" />
@ -94,15 +131,17 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/revision_icon.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/round_av_timer_24.xml" value="0.15052083333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/round_outline.xml" value="0.11979166666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/settings_icon.xml" value="0.2635" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/settings_icon_selected.xml" value="0.2635" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/walk.xml" value="0.10885416666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/worker.xml" value="0.12" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable/worker_mistake.xml" value="0.15364583333333334" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/activity_imageview.xml" value="0.134375" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/activity_imageview.xml" value="0.22" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/activity_login.xml" value="0.1" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/activity_main.xml" value="0.17916666666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/buyers_fragment.xml" value="0.18333333333333332" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_dialog.xml" value="0.1490036231884058" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_edit_dialog.xml" value="0.10208333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_edit_dialog.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_hour.xml" value="0.1793478260869565" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_list_dialog.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/component_custom_three_dialog.xml" value="0.12817028985507245" />
@ -114,7 +153,7 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_buffer_loadexpedition.xml" value="0.1398176291793313" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_buscar_item.xml" value="0.21014492753623187" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_buscar_item_all.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_collection.xml" value="0.23007246376811594" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_collection.xml" value="0.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_controlador.xml" value="0.20153985507246377" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_expedition_pallet.xml" value="0.1793478260869565" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_expedition_pallet_detail.xml" value="0.15579710144927536" />
@ -137,8 +176,8 @@
<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_paletizador_menu.xml" value="0.13829787234042554" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_parking.xml" value="0.5" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_pasillero.xml" value="0.13829787234042554" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_pre_sacador.xml" value="0.3333333333333333" />
<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_pre_sacador.xml" value="0.16666666666666666" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_qr.xml" value="0.19882246376811594" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_sacador.xml" value="0.12952898550724637" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_sacador_associatesmarttag.xml" value="0.22" />
@ -152,7 +191,8 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_web.xml" value="0.2463768115942029" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/fragment_workermistake.xml" value="0.2265625" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_ajustes_row.xml" value="0.10009057971014493" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row.xml" value="0.4466666666666667" />
<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.3333333333333333" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_article_row_presacador.xml" value="0.4466666666666667" />
<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_buyer_row.xml" value="0.1793478260869565" />
@ -172,7 +212,8 @@
<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_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_pasilleros_main_menu.xml" value="0.13829787234042554" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_main_menu.xml" value="0.15070921985815602" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_pasilleros_main_menu.xml" value="0.33" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_placement_row.xml" value="0.1793478260869565" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_proposal_row.xml" value="0.22604166666666667" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/item_reposicion.xml" value="0.1" />
@ -188,6 +229,8 @@
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/reposicion_fragment.xml" value="0.15353260869565216" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/shelvinglog_row.xml" value="0.18385416666666668" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/toolbar.xml" value="0.15353260869565216" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/toolbarUI.xml" value="0.29846014492753625" />
<entry key="..\:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/layout/toolbar_fragment.xml" value="0.18" />
</map>
</option>
</component>

View File

@ -14,9 +14,11 @@ android {
applicationId "es.verdnatura"
minSdkVersion 21
targetSdkVersion 30
versionCode 109 //para pruebas sacadores
versionName "8" //VERSION CODE 109, obligado seleccionar impresora, controlador sube el recyclerViewer, controlador ordenado por picked, mensaje error a collectioNew
versionCode 112
versionName "8.2" //versionCode 112 : desmarcar, previa update quantity dels carros, afegir P, etc.., impressores
//versionName "8.1" //versionCode 111 de proves . Instal.lat a Ismael y Juan
//versionName "8.1" //VERSION CODE 110, SOLO A V SE LE DESPLAZA LAS LINEAS EN PANTALLA CONTROLADOR
//versionName "8" //VERSION CODE 109, obligado seleccionar impresora, controlador sube el recyclerViewer, controlador ordenado por picked, mensaje error a collectioNew
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

View File

@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 109,
"versionName": "8",
"versionCode": 112,
"versionName": "8.2",
"outputFile": "app-release.apk"
}
],

Binary file not shown.

View File

@ -6,7 +6,7 @@ import retrofit2.converter.gson.GsonConverterFactory
class ApiSalixUtils {
companion object {
//const val BASE_URL:String = "http://192.168.1.155:9009/"
//const val BASE_URL: String = "https://test-salix.verdnatura.es/api/"
// const val BASE_URL: String = "https://test-salix.verdnatura.es/api/"
const val BASE_URL: String = "https://salix.verdnatura.es/api/"
fun getApiService(): SalixService {
val salixRetrofit = Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(

View File

@ -12,8 +12,10 @@ import java.util.concurrent.TimeUnit
class ApiUtils {
companion object {
//const val BASE_URL:String = "http://192.168.1.54:8009/"
const val BASE_URL: String = "https://app.verdnatura.es/"
//const val BASE_URL:String = "https://test-app.verdnatura.es/"
const val BASE_URL:String = "https://10.1.3.102/"
//const val BASE_URL: String = "https://app.verdnatura.es/"
fun getApiService(context: Context): VerdnaturaService {

View File

@ -1,11 +1,14 @@
package es.verdnatura.domain
import android.content.Context
import es.verdnatura.presentation.common.itemBarCodeSalix
import es.verdnatura.presentation.common.itemPackingTypeSalix
import es.verdnatura.presentation.view.feature.articulo.model.ItemCardVO
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
import es.verdnatura.presentation.view.feature.articulo.model.ItemProposal
import es.verdnatura.presentation.view.feature.historicoarticulo.model.ItemHistoricoVO
import retrofit2.Call
import java.security.AuthProvider
class GetItemCardUserCase(context: Context) : RestClient(context) {
@ -64,6 +67,13 @@ class GetItemCardUserCase(context: Context) : RestClient(context) {
)
}
fun getItemPackingTypeSalix(token:String): Call<List<ItemPackingType>> {
return salixClient!!.get_ItemPackingType(
content_type = "application/json",
authorization = token
)
}
fun itemStockUpdate(
usuario: String,
password: String,
@ -195,6 +205,20 @@ class GetItemCardUserCase(context: Context) : RestClient(context) {
)
}
fun updatePackingTypeSalix(
token:String,
itemFk: String,
ItemPackingType: String
): Call<Any> {
val params=itemPackingTypeSalix(ItemPackingType)
return salixClient!!.update_ItemPackingType(
content_type ="application/json",
authorization = token,
itemFk = itemFk,
params = params
)
}
fun itemSaveMin(
usuario: String,
password: String,
@ -255,6 +279,22 @@ class GetItemCardUserCase(context: Context) : RestClient(context) {
)
}
fun barcodes_editSalix(
token:String,
itemFk: String,
value: String,
): Call<Any> {
return salixClient!!.barcodes_edit(
content_type = "application/json",
authorization=token,
itemBarCodeSalix(itemFk,value)
)
}
fun itemDiary(
usuario: String,
password: String,

View File

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

View File

@ -1,9 +1,13 @@
package es.verdnatura.domain
import android.content.Context
import com.google.gson.JsonObject
import es.verdnatura.presentation.view.feature.collection.SalixSaleQuantity
import es.verdnatura.presentation.view.feature.login.model.workerId
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
import es.verdnatura.presentation.view.feature.sacador.model.MistakeTypeVO
import es.verdnatura.presentation.view.feature.sacador.model.PlacementSupplyVO
import org.json.JSONObject
import retrofit2.Call
class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
@ -42,6 +46,19 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
)
}
fun sip_getExtensionSalix(
token:String,
WorkerId: String
): Call<Any> {
val params: ArrayList<String> = ArrayList()
params.add(WorkerId)
return salixClient!!.sip_getExtension(
content_type = "application/json",
authorization = token,
idWorker=WorkerId
)
}
fun sip_getExtension(
usuario: String,
password: String,
@ -58,6 +75,8 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
params
)
}
fun ticket_checkFullyControlled(
usuario: String,
password: String,
@ -125,7 +144,7 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
fun collectionGetSalix(token:String): Call<List<CollectionVO>> {
// val params:ArrayList<String> = ArrayList()
return salixClient!!.getCollectionSalix(content_type = "application/json",token)
return salixClient!!.getCollectionSalix(content_type = "application/json", authorization = token)
}
fun saleTrackingReplace(
@ -386,7 +405,19 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
params
)
}
fun itemShelving_updateFromSale(usuario: String, password: String, saleFk: String,visible:String): Call<Unit> {
val params: ArrayList<String> = ArrayList()
params.add(saleFk)
params.add(visible)
return restClient!!.itemShelving_updateFromSale(
"json",
"1",
usuario,
password,
"application/json",
params
)
}
fun ticket_setState(
usuario: String,
password: String,
@ -419,6 +450,16 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
)
}
fun getIdFromCodeSalix(token: String, barCodeValue: String): Call<String> {
return salixClient!!.barcodes_toitem(
"application/json",
authorization = token,
barCodeValue=barCodeValue
)
}
fun collectionIncreaseQuantity(
usuario: String,
password: String,
@ -438,6 +479,24 @@ class GetSacadorControladorUserCase(context: Context) : RestClient(context) {
)
}
fun collectionIncreaseQuantitySalix(
token: String,
saleFk: String,
quantity: String
): Call<Any> {
return salixClient!!.collectionIncreaseQuantitySalix(
"json",
"1",
token,
"application/json",
SalixSaleQuantity(saleId = saleFk.toInt(), quantity = quantity.toInt())
)
}
fun saleMistakeAdd(
usuario: String,
password: String,

View File

@ -28,21 +28,17 @@ class GetUbicadorUserCase(context: Context) : RestClient(context) {
password: String,
shelving: String,
item: String,
deep: String,
quantity: String,
packing: String,
warehouse: String,
level: String,
grouping:String
): Call<String> {
val params: ArrayList<String> = ArrayList()
params.add(shelving)
params.add(item)
params.add(deep)
params.add(quantity)
params.add(packing)
params.add(warehouse)
params.add(level)
params.add(grouping)
return restClient!!.itemShelvingMake(
"json",
@ -93,16 +89,12 @@ class GetUbicadorUserCase(context: Context) : RestClient(context) {
password: String,
shelving: String,
items: List<String>,
deep: String,
warehouse: String,
level: String
warehouse: String
): Call<String> {
val params: ArrayList<Any> = ArrayList()
params.add(shelving)
params.add(items)
params.add(deep)
params.add(warehouse)
params.add(level)
return restClient!!.itemShelvingMake_multi(
"json",
"1",

View File

@ -49,8 +49,8 @@ class GetWokerMistakeUSerCase(context: Context) : RestClient(context) {
fun department_getHasMistake(usuario: String, password: String): Call<List<DepartmentMistake>> {
return restClient!!.department_getHasMistake("json", "1", usuario, password, "application/json")
}
fun department_getHasMistakeSalix(usuario: String, password: String): Call<List<DepartmentMistake>> {
return salixClient!!.department_getHasMistake("json", "1", usuario, password, "application/json")
fun department_getHasMistakeSalix(token:String): Call<List<DepartmentMistake>> {
return salixClient!!.department_getHasMistake(content_type = "application/json", authorization = token)
}

View File

@ -1,16 +1,20 @@
package es.verdnatura.domain
import com.google.gson.JsonObject
import es.verdnatura.presentation.common.itemBarCodeSalix
import es.verdnatura.presentation.common.itemPackingTypeSalix
import es.verdnatura.presentation.view.feature.ajustes.model.SectorItemVO
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
import es.verdnatura.presentation.view.feature.collection.SalixSaleQuantity
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.SalixMessageVO
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake
import org.json.JSONObject
import retrofit2.Call
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.Header
import retrofit2.http.POST
import retrofit2.http.*
import java.net.URLEncoder
interface SalixService {
@ -57,20 +61,76 @@ interface SalixService {
):
Call<List<CollectionVO>>
@POST("collections/setSaleQuantity")
fun collectionIncreaseQuantitySalix(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@Header("Authorization") authorization: String,
@Header("Content-Type") content_type: String,
@Body params: SalixSaleQuantity
):
Call<Any>
//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"}}
// @GET("api/Departments?filter{\"fields\": {\"id\": true, \"name\": true},\"where\": {\"hasToMistake\": \"FALSE\"}}")
@GET("api/Departments")
// @GET("api/Departments?filter={\"fields\": {\"id\": true, \"name\": true},\"where\": {\"hasToMistake\": \"FALSE\"}}")
@GET("Departments")
fun department_getHasMistake(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@Header("user") user: String,
@Header("pass") pass: String,
@Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String,
@Query("filter") filter:String = "{\"fields\": {\"id\": true, \"name\": true},\"where\": {\"name\": \"INFORMATICA\"}}"
// @Query("name") name:String ="COMPRAS"
):
Call<List<DepartmentMistake>>
@GET("Workers/{idWorker}/sip")
fun sip_getExtension(
@Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String,
@Path("idWorker") idWorker:String
):
Call<Any>
@PATCH("Items/{itemFk}")
fun update_ItemPackingType(
@Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String,
@Path("itemFk") itemFk:String,
@Body params: itemPackingTypeSalix
):
Call<Any>
//Fins que Salix 8.3 no puje no descomentar
@GET("ItemPackingTypes")
fun get_ItemPackingType(
@Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String,
):
Call<List<ItemPackingType>>
@PUT("ItemBarCodes")//REVISADA
fun barcodes_edit(
@Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String,
@Body params: itemBarCodeSalix
):
Call<Any>
@GET("ItemBarCodes/{barCodeValue}/toItem")//REVISADA
fun barcodes_toitem(
@Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String,
@Path("barCodeValue") barCodeValue:String
):
Call<String>
}

View File

@ -0,0 +1,18 @@
package es.verdnatura.domain
import es.verdnatura.presentation.view.feature.login.model.SalixMessageVO
import retrofit2.Call
import retrofit2.http.Body
import retrofit2.http.Header
import retrofit2.http.POST
interface SalixServiceMessages {
@POST("chats/sendCheckingPresence")
fun sendChekingPresence(
@Header("Content-Type") content_type: String,
@Header("Authorization") authorization: String,
@Body params: SalixMessageVO
):
Call<Boolean>
}

View File

@ -105,7 +105,7 @@ interface VerdnaturaService {
Call<versionApp>
//AJUSTES ========================================================================>
@POST("almacennew/sector_get")//REVISADA
@POST("almacennew/sector_get")//SALIX
fun getSectors(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -115,7 +115,7 @@ interface VerdnaturaService {
):
Call<List<SectorItemVO>>
@POST("almacennew/printer_get")//REVISADA
@POST("almacennew/printer_get")//NO SALIX
fun printer_get(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -125,7 +125,7 @@ interface VerdnaturaService {
):
Call<List<Printers>>
@POST("almacennew/worker_getPrinter")//REVISADA
@POST("almacennew/worker_getPrinter")//NO SALIX
fun worker_getPrinter(
@Header("aplicacion") aplicacion: String,
@ -136,7 +136,7 @@ interface VerdnaturaService {
):
Call<List<Printers>>
@POST("almacennew/worker_updatePrinter")//REVISADA
@POST("almacennew/worker_updatePrinter")//NO SALIX
fun worker_updatePrinter(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -147,7 +147,7 @@ interface VerdnaturaService {
):
Call<Unit>
@POST("almacennew/worker_updateSector")//REVISADA
@POST("almacennew/worker_updateSector")//NO SALIX
fun worker_updateSector(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -158,7 +158,7 @@ interface VerdnaturaService {
):
Call<Unit>
@POST("almacennew/worker_getSector")//REVISADA
@POST("almacennew/worker_getSector")//NO SALIX
fun worker_getSector(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -170,7 +170,7 @@ interface VerdnaturaService {
//PRESACADORES ========================================================================>
@POST("almacennew/ticketToPrePrepare")//REVISADA
@POST("almacennew/ticketToPrePrepare")//NO SALIX
fun ticketToPrePrepare(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -181,7 +181,7 @@ interface VerdnaturaService {
):
Call<List<PreSacadorItemVO>>
@POST("almacennew/sectorCollection_getSale")//REVISADA
@POST("almacennew/sectorCollection_getSale")//NO SALIX
fun sectorCollection_getSale(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -192,7 +192,7 @@ interface VerdnaturaService {
):
Call<List<PreSacadorItemVO>>
@POST("almacennew/itemPlacementSupplyGetOrder")//REVISADA
@POST("almacennew/itemPlacementSupplyGetOrder")//NO SALIX
fun itemPlacementSupplyGetOrder(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -203,7 +203,7 @@ interface VerdnaturaService {
):
Call<List<PreSacadorItemVO>>
@POST("almacennew/itemPlacementSupplyCloseOrder")//REVISADA
@POST("almacennew/itemPlacementSupplyCloseOrder")//NO SALIX
fun itemPlacementSupplyCloseOrder(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -215,7 +215,7 @@ interface VerdnaturaService {
Call<String>
//SACADORES / CONTROLADORES ========================================================================>
@POST("almacennew/collectionGet") //REVISADA
@POST("almacennew/collectionGet") //NO SALIX
fun collectionGet(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -226,7 +226,7 @@ interface VerdnaturaService {
Call<List<CollectionVO>>
@POST("almacennew/sectorCollection_get") //REVISADA
@POST("almacennew/sectorCollection_get") //NO SALIX
fun sectorCollection_get(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -236,7 +236,7 @@ interface VerdnaturaService {
):
Call<List<CollectionVO>>
@POST("almacennew/collectionNew")//REVISADA
@POST("almacennew/collectionNew")//NO SALIX
fun collectionNew(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -247,7 +247,7 @@ interface VerdnaturaService {
):
Call<String>
@POST("almacennew/sectorCollection_new")//REVISADA
@POST("almacennew/sectorCollection_new")//NO SALIX
fun sectorCollection_new(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -258,7 +258,7 @@ interface VerdnaturaService {
):
Call<Unit>
@POST("almacennew/sectorCollectionSaleGroup_add")//REVISADA
@POST("almacennew/sectorCollectionSaleGroup_add")//NO SALIX
fun sectorCollectionSaleGroup_add(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -269,7 +269,7 @@ interface VerdnaturaService {
):
Call<Unit>
@POST("almacennew/saleTracking_addPrevOK")//REVISADA
@POST("almacennew/saleTracking_addPrevOK")//NO SALIX
fun saleTracking_addPrevOK(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -280,7 +280,7 @@ interface VerdnaturaService {
):
Call<Unit>
@POST("almacennew/saleTracking_updateIsChecked")//REVISADA
@POST("almacennew/saleTracking_updateIsChecked")//NO SALIX
fun saleTracking_updateIsChecked(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -302,7 +302,7 @@ interface VerdnaturaService {
):
Call<CollectionVO>*/
@POST("almacennew/ticket_checkFullyControlled")//REVISADA
@POST("almacennew/ticket_checkFullyControlled")//NO SALIX
fun ticket_checkFullyControlled(
@Header("aplicacion") aplicacion: String,
@Header("version") version: String,
@ -503,6 +503,17 @@ interface VerdnaturaService {
):
Call<String>
@POST("almacennew/itemShelving_updateFromSale")//REVISADA
fun itemShelving_updateFromSale(
@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<Unit>
@POST("almacennew/ticket_setState")//REVISADA
fun ticket_setState(
@Header("aplicacion") aplicacion: String,

View File

@ -88,6 +88,7 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(viewModelCla
protected val FALTA = 6
protected val ERROR = -1
val allowedStrings =
Arrays.asList(
"cero", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete",
@ -534,6 +535,15 @@ override fun onViewCreated(view: View, savedInstanceState: Bundle?)
else -> {""}
}
}
fun removeSector(){
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
editor.remove(SECTORFK).commit()
editor.remove(SECTORDESCRIP).commit()
editor.remove(WAREHOUSEFK).commit()
}
fun setDefaults(key: String?, value: String?, context: Context?) {

View File

@ -40,6 +40,6 @@ fun getMessageFromAllResponse(callFunction: String, ResponseMessage: String): St
}
}
//}
return "$messageFromError.$returnMessage"
return "$messageFromError.\r$returnMessage"
}

View File

@ -0,0 +1,10 @@
package es.verdnatura.presentation.common
class itemPackingTypeSalix(
var itemPackingTypeFk: String = ""
)
class itemBarCodeSalix(
var itemFk: String = "",
var code:String=""
)

View File

@ -1,22 +1,31 @@
package es.verdnatura.presentation.view.feature.ajustes.adapter
import android.content.Context
import android.content.res.Resources
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat.getColor
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R
import es.verdnatura.databinding.ItemAjustesRowBinding
import es.verdnatura.presentation.common.OnAjustesItemClickListener
import es.verdnatura.presentation.view.feature.ajustes.model.AjustesItemVO
import java.security.AccessController.getContext
class AjustesAdapter (
private val items: List<AjustesItemVO>,
private val onAjustesItemClickListener: OnAjustesItemClickListener
): RecyclerView.Adapter<AjustesAdapter.AjustesItemHolder> () {
var context: Context? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AjustesItemHolder {
this.context = parent.context
return AjustesItemHolder(
ItemAjustesRowBinding.inflate(LayoutInflater.from(parent.context),parent,false)
)
}
override fun getItemCount() =items.size
@ -29,12 +38,22 @@ class AjustesAdapter (
}
class AjustesItemHolder(
inner class AjustesItemHolder(
val binding: ItemAjustesRowBinding
) : RecyclerView.ViewHolder(binding.root){
fun bind(item: AjustesItemVO) {
binding.apply {
this.item = item
if (item.title=="Cerrar Sesión"){
binding.itemTitle.setTextColor(
ContextCompat.getColor(
context!!,
R.color.verdnatura_pumpkin_orange
)
)
}
}
}
}

View File

@ -3,23 +3,19 @@ package es.verdnatura.presentation.view.feature.ajustes.fragment
import android.app.AlertDialog
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Context.CLIPBOARD_SERVICE
import android.content.SharedPreferences
import android.os.Bundle
import android.provider.Settings
import android.util.Log
import android.view.KeyEvent
import android.view.View
import androidx.appcompat.app.ActionBar
import androidx.appcompat.widget.TooltipCompat.setTooltipText
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentAjustesBinding
import es.verdnatura.databinding.ToolbarFragmentBinding
import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnAjustesItemClickListener
import es.verdnatura.presentation.common.hideKeyboard
import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.feature.ajustes.adapter.AjustesAdapter
import es.verdnatura.presentation.view.feature.ajustes.model.AjustesItemVO
@ -35,7 +31,6 @@ class AjustesFragment :
private lateinit var customDialog: CustomDialog
private var sectorListVO: List<SectorItemVO> = listOf()
private var printersList: List<Printers> = listOf()
private var vozList: List<String> = listOf()
private var prefs: SharedPreferences? = null
private var ajustesAdapter: AjustesAdapter? = null
@ -71,7 +66,12 @@ class AjustesFragment :
override fun init() {
ma.hideBottomNavigation(View.VISIBLE)
//ma.hideBottomNavigationFragment(View.VISIBLE)
binding.mainToolbar.toolbarTitle.text="Configuración"
binding.mainToolbar.backButton.visibility=View.INVISIBLE
binding.userText.setText(getData(USER))
val versionName = requireActivity().packageManager.getPackageInfo(
requireActivity().packageName,
@ -288,7 +288,7 @@ class AjustesFragment :
dialog.show()
}
private fun showDialogVoz(array: Array<String>) {
/* private fun showDialogVoz(array: Array<String>) {
val builder = AlertDialog.Builder(this.context)
@ -315,7 +315,7 @@ class AjustesFragment :
val dialog = builder.create()
dialog.show()
}
}*/
private fun showDialogCarros(array: Array<String>) {
val builder = AlertDialog.Builder(this.context)

View File

@ -178,8 +178,15 @@ class ItemCardFragment(
binding.splashProgressTwo.visibility = View.VISIBLE
viewModel.getItemCard(itemFk, warehouseFk, user, password, "item_card")
binding.splashProgress.visibility = View.VISIBLE
viewModel.getItemPackingType(getData(USER), getData(PASSWORD), "get_ItemPackingType")
var working_in_test=false //sergio:No descomentar fins que Salix puje versió 8.3
if (working_in_test){
viewModel.getItemPackingTypeSalix(getData(TOKEN))
}else {
viewModel.getItemPackingType(getData(USER), getData(PASSWORD), "get_ItemPackingType")
}
}
override fun observeViewModel() {
@ -719,14 +726,27 @@ class ItemCardFragment(
} else {
listBarcodes.add(BarcodeVO(code))
}
// var working_in_test=false //sergio:Revisar como borrar directamente en Salix o crear proc en back para borrar.
if (delete=="0") {
viewModel.barcodesEditSalix(
token=getData(TOKEN),
itemFk = itemInfoG!!.id,
barCodeValue = code,
)
}
else{
viewModel.barcodesEdit(
itemFk = itemInfoG!!.id,
user = user,
password = password,
value = code,
delete = delete,
"itemBarcode_update"
)
"itemBarcode_update")
}
// viewModel.barcodesEdit(itemFk = itemFk, user = user, password = password, value = code, delete = delete,"itemBarcode_update")
barcodeAdapter!!.notifyDataSetChanged()
//changeOfflineValue(item,"", listBarcodes)
@ -745,7 +765,9 @@ class ItemCardFragment(
.setItems(
array
) { _, position ->
updateItemPackingType(itemsPackingType[position].code.toString())
}
builder.create().show()
@ -753,6 +775,15 @@ class ItemCardFragment(
private fun updateItemPackingType(itemPackingType: String) {
binding.splashProgress.visibility = View.VISIBLE
var working_in_test=true //sergio: en proves app
if (working_in_test){
viewModel.updatePackingTypeSalix(
getData(TOKEN),
this.itemFk,
itemPackingType,
"item_updatePackingType"
)}else{
viewModel.updatePackingType(
this.itemFk,
user,
@ -761,6 +792,7 @@ class ItemCardFragment(
"item_updatePackingType"
)
}
}
}

View File

@ -109,7 +109,28 @@ class ItemCardViewModel(context: Context) : BaseViewModel() {
})
}
fun getItemPackingTypeSalix(token:String) {
getItemCardUserCase.getItemPackingTypeSalix(token).enqueue(object :
Callback<List<ItemPackingType>>{
override fun onFailure(call: Call<List<ItemPackingType>>, t: Throwable) {
val listError:ArrayList<ItemPackingType> = ArrayList()
listError.add(ItemPackingType(isError = true,errorMessage =getMessageFromAllResponse(nameofFunction(this),t.message!!)))
_itemspackinglist.value = ItemPackingTypeList(listError)
}
override fun onResponse(call: Call<List<ItemPackingType>>, response: Response<List<ItemPackingType>>) {
if (response.body() != null){
_itemspackinglist.value = response.body()?.let { ItemPackingTypeList(it) }
}else{
val listError:ArrayList<ItemPackingType> = ArrayList()
listError.add(ItemPackingType(isError = true,errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())))
_itemspackinglist.value = ItemPackingTypeList(listError)
}
}
})
}
fun itemStockUpdate(itemFk:String,warehouseFk:String,user:String,password:String,newValue:String,isTrash:String,callFunction:String){
getItemCardUserCase.itemStockUpdate(user,password,itemFk,warehouseFk,newValue,isTrash).enqueue(object : Callback<String>{
@ -221,7 +242,25 @@ class ItemCardViewModel(context: Context) : BaseViewModel() {
})
}
fun updatePackingTypeSalix(token:String,itemFk:String,itemPackingType:String,callFunction:String){
getItemCardUserCase.updatePackingTypeSalix(token,itemFk,itemPackingType).enqueue(object : Callback<Any>{
override fun onFailure(call: Call<Any>, t: Throwable) {
_response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!))
}
override fun onResponse(call: Call<Any>, response: Response<Any>) {
if (response.body() == null){
_response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message()))
}else{
//if (response.body()=="Finish"){
// //Log.i("VERDNATURA:","Fisnih encontrado")}
_response.value = ResponseItemVO(isError = false,response = response.body()!!.toString())
}
}
})
}
fun itemSaveMin(itemFk:String,user:String,password:String,value:String,callFunction:String){
getItemCardUserCase.itemSaveMin(user,password,itemFk,value).enqueue(object : Callback<String>{
override fun onFailure(call: Call<String>, t: Throwable) {
@ -276,4 +315,24 @@ class ItemCardViewModel(context: Context) : BaseViewModel() {
})
}
fun barcodesEditSalix(token:String,itemFk:String,barCodeValue:String){
getItemCardUserCase.barcodes_editSalix(token,itemFk,barCodeValue).enqueue(object : Callback<Any>{
override fun onFailure(call: Call<Any>, t: Throwable) {
_response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!))
}
override fun onResponse(call: Call<Any>, response: Response<Any>) {
if (response.body() == null){
_response.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message()))
}else{
_response.value = ResponseItemVO(isError = false,response = response.message()!!)
}
}
})
}
}

View File

@ -8,3 +8,7 @@ class ItemVO(
var isError: Boolean = false,
var errorMessage: String = ""
)
class SalixSaleQuantity(
var saleId : Int =0,
var quantity: Int = 0
)

View File

@ -1,7 +1,12 @@
package es.verdnatura.presentation.view.feature.collection.adapter
import android.content.Context
import android.graphics.BlendMode
import android.graphics.BlendModeColorFilter
import android.graphics.Color
import android.graphics.PorterDuff
import android.os.Build
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@ -10,6 +15,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R
import es.verdnatura.databinding.ItemArticleRowBinding
import es.verdnatura.databinding.ItemArticleRowFragmentBinding
import es.verdnatura.domain.toast
import es.verdnatura.presentation.common.*
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
@ -30,6 +36,8 @@ class SaleAdapter(
this.context = parent.context
return AjustesItemHolder(
ItemArticleRowBinding.inflate(LayoutInflater.from(parent.context), parent, false)
//working_in_design
//ItemArticleRowFragmentBinding.inflate(LayoutInflater.from(parent.context), parent, false)
)
}
@ -41,6 +49,8 @@ class SaleAdapter(
}
inner class AjustesItemHolder(
//working_in_design
// val binding: ItemArticleRowFragmentBinding
val binding: ItemArticleRowBinding
) : RecyclerView.ViewHolder(binding.root) {
fun bind(sale: SaleVO) {
@ -117,6 +127,10 @@ class SaleAdapter(
paintTicketcolor(sale.level, itemTicketColor)
//working_in_design : modificar llamada cuando no estemos en
//paintTicketcolor(sale.color, itemColor)
if (!sale.isNew && sale.originalQuantity == sale.quantity) {
layoutError.visibility = View.GONE
@ -246,45 +260,206 @@ class SaleAdapter(
}
}
private fun paintTicketcolor(color: String, itemTicketColor: View) {
when (color) {
"ROJO" -> itemTicketColor.setBackgroundColor(Color.RED)
"AMARILLO" -> itemTicketColor.setBackgroundColor(Color.YELLOW)
"VERDE" -> itemTicketColor.setBackgroundColor(Color.GREEN)
"AZUL" -> itemTicketColor.setBackgroundColor(Color.BLUE)
"BLANCO" -> itemTicketColor.setBackgroundColor(Color.WHITE)
// "NEGRO"-> itemTicketColor.setBackgroundResource((R.drawable.rectangle))
private fun paintTicketcolorOld(color:String,itemView:View){
when (color.uppercase()) {
"ROJO" -> itemView.setBackgroundColor(Color.RED)
"AMARILLO" -> itemView.setBackgroundColor(Color.YELLOW)
"VERDE" -> itemView.setBackgroundColor(Color.GREEN)
"AZUL" -> itemView.setBackgroundColor(Color.BLUE)
"BLANCO" ->{itemView.setBackgroundColor(Color.WHITE)
itemView.setBackgroundResource((R.drawable.border))}
"NEGRO" -> {
itemTicketColor.setBackgroundColor(Color.BLACK)
itemTicketColor.setBackgroundResource((R.drawable.border))
itemView.setBackgroundColor(Color.BLACK)
}
"VIOLETA" -> itemTicketColor.setBackgroundColor(0xFF4c2882.toInt())
"GRIS" -> itemTicketColor.setBackgroundColor(Color.GRAY)
"ORANGE" -> itemTicketColor.setBackgroundColor(
"VIOLETA" -> itemView.setBackgroundColor(0xFF4c2882.toInt())
"GRIS" -> itemView.setBackgroundColor(Color.GRAY)
"ORANGE" -> itemView.setBackgroundColor(
getColor(
context!!,
android.R.color.holo_orange_light
)
)
"MORADO" -> itemTicketColor.setBackgroundColor(
"MORADO" -> itemView.setBackgroundColor(
getColor(
context!!,
android.R.color.holo_purple
)
)
"CELESTE" -> itemTicketColor.setBackgroundColor(0xFF5b85F5.toInt())
"ROSA" -> itemTicketColor.setBackgroundColor(0xFFfc0fc0.toInt())
"DORADO" -> itemTicketColor.setBackgroundColor(0xFFb8860b.toInt())
"MARRON" -> itemTicketColor.setBackgroundColor(0xFF663300.toInt())
"PERLA" -> itemTicketColor.setBackgroundColor(0xFFcdcecf.toInt())
"MARFIL" -> itemTicketColor.setBackgroundColor(0xFFf7eada.toInt())
"CIAN" -> itemTicketColor.setBackgroundColor(0xFF00ffff.toInt())
"BEIGE" -> itemTicketColor.setBackgroundColor(0xFFf2e7bf.toInt())
"CELESTE" -> itemView.setBackgroundColor(0xFF5b85F5.toInt())
"ROSA" -> itemView.setBackgroundColor(0xFFfc0fc0.toInt())
"DORADO" -> itemView.setBackgroundColor(0xFFb8860b.toInt())
"MARRON" -> itemView.setBackgroundColor(0xFF663300.toInt())
"PERLA" -> itemView.setBackgroundColor(0xFFcdcecf.toInt())
"MARFIL" -> itemView.setBackgroundColor(0xFFf7eada.toInt())
"CIAN" -> itemView.setBackgroundColor(0xFF00ffff.toInt())
"BEIGE" -> itemView.setBackgroundColor(0xFFf2e7bf.toInt())
"trasparente" -> itemView.setBackgroundColor(0xFFf2e7bf.toInt())
else -> {
itemView.setBackgroundColor(Color.TRANSPARENT)
itemView.setBackgroundResource(R.drawable.background_item_color)
}
}
}
private fun paintTicketcolor(color: String, itemView: View) {
when (color.uppercase()) {
"ROJO" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(Color.RED, BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP)
}
// itemView.background.setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP)
"AMARILLO" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(Color.YELLOW, BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_ATOP)
}
"VERDE" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(Color.GREEN, BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_ATOP)
}
"AZUL" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(Color.BLUE, BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP)
}
"BLANCO" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(Color.WHITE, BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP)
}
// "NEGRO"-> itemView.setBackgroundResource((R.drawable.rectangle))
"NEGRO" -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(Color.BLACK, BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_ATOP)
}
itemView.setBackgroundResource((R.drawable.border))
}
"VIOLETA" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(Color.parseColor("0xFF4c2882"), BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(0xFF4c2882.toInt(), PorterDuff.Mode.SRC_ATOP)
}
"GRIS" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(Color.GRAY, BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_ATOP)
}
"ORANGE" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(getColor(
context!!,
android.R.color.holo_orange_light
), BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(getColor(
context!!,
android.R.color.holo_orange_light
), PorterDuff.Mode.SRC_ATOP)
}
"MORADO" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(getColor(
context!!,
android.R.color.holo_purple
), BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(getColor(
context!!,
android.R.color.holo_purple
), PorterDuff.Mode.SRC_ATOP)
}
"CELESTE" -> itemView.setBackgroundColor(0xFF5b85F5.toInt())
"ROSA" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(0xFFfc0fc0.toInt(), BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(
0xFFfc0fc0.toInt(),
PorterDuff.Mode.SRC_ATOP
)
}
"DORADO" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(0xFFb8860b.toInt(), BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(
0xFFb8860b.toInt(),
PorterDuff.Mode.SRC_ATOP
)
}
"MARRON" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(0xFF663300.toInt(), BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(
0xFF663300.toInt(),
PorterDuff.Mode.SRC_ATOP
)
}
"PERLA" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(0xFFcdcecf.toInt(), BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(
0xFFcdcecf.toInt(),
PorterDuff.Mode.SRC_ATOP
)
}
"MARFIL" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(0xFFf7eada.toInt(), BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(
0xFFf7eada.toInt(),
PorterDuff.Mode.SRC_ATOP
)
}
"CIAN" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(0xFF00ffff.toInt(), BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(
0xFF00ffff.toInt(),
PorterDuff.Mode.SRC_ATOP
)
}
"BEIGE" -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
itemView.background.colorFilter =
BlendModeColorFilter(0xFFf2e7bf.toInt(), BlendMode.SRC_ATOP)
} else {
itemView.background.setColorFilter(
0xFFf2e7bf.toInt(),
PorterDuff.Mode.SRC_ATOP
)
}
else -> {
itemView.visibility=View.INVISIBLE
}
}

View File

@ -11,11 +11,11 @@ import android.os.Bundle
import android.speech.SpeechRecognizer
import android.util.Log
import android.view.View
import android.view.View.GONE
import android.view.View.VISIBLE
import android.view.View.*
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import android.widget.ImageView
import android.widget.RelativeLayout.TRUE
import android.widget.Toast
import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
@ -24,8 +24,6 @@ import es.verdnatura.R
import es.verdnatura.databinding.FragmentCollectionBinding
import es.verdnatura.domain.ConstAndValues.CONTROLADOR
import es.verdnatura.domain.ConstAndValues.OK
import es.verdnatura.domain.ConstAndValues.ON_CHECKING
import es.verdnatura.domain.ConstAndValues.ON_PREPARATION
import es.verdnatura.domain.ConstAndValues.PRECHECKER
import es.verdnatura.domain.ConstAndValues.SACADOR
import es.verdnatura.domain.toast
@ -83,7 +81,9 @@ class CollectionFragment(
private var isMarking = false
private var positionCollectionSplit = 0
private var quantityCollectionSplit = ""
//private var myKM: KeyguardManager? = null
private var positionUnmarked = -1
private var state = 0
@ -112,6 +112,8 @@ class CollectionFragment(
mperror = MediaPlayer.create((activity as MainActivity), R.raw.error)
mpok = MediaPlayer.create((activity as MainActivity), R.raw.ok)
if ((collection.collectionFk != null) && type.equals(CONTROLADOR)) {
//sergio: comprueba si viene de la pantalla de controlador
@ -163,6 +165,7 @@ class CollectionFragment(
createCollectionList()
}
super.init()
}
@ -188,35 +191,47 @@ class CollectionFragment(
iconFace.setImageResource(R.drawable.face_man_outline)
val iconPhone = ImageView(context)
iconPhone.setImageResource(R.drawable.phone_call)
val iconParking = ImageView(context)
iconParking.setImageResource(R.drawable.ic_local_parking_black_24dp)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
iconPrint.tooltipText=getTooltip(R.drawable.ic_local_parking_black_24dp)
iconAdd.tooltipText=getTooltip(R.drawable.ic_playlist_add_black_24dp)
iconFace.tooltipText=getTooltip(R.drawable.face_man_outline)
iconPhone.tooltipText=getTooltip(R.drawable.phone_call)
iconPrint.tooltipText = getTooltip(R.drawable.ic_print_black_24dp)
iconAdd.tooltipText = getTooltip(R.drawable.ic_playlist_add_black_24dp)
iconFace.tooltipText = getTooltip(R.drawable.face_man_outline)
iconPhone.tooltipText = getTooltip(R.drawable.phone_call)
iconParking.tooltipText = getTooltip(R.drawable.ic_local_parking_black_24dp)
}
if (type.equals("CHECKER")){
if (type.equals("CHECKER")) {
listIcons.add(iconPhone)
}
listIcons.add(iconFace)
listIcons.add(iconPrint)
listIcons.add(iconAdd)
//listIcons.add(iconSearch)
if (type.equals(PRECHECKER)) {
listIcons.add(iconParking)
listIcons.remove(iconPrint)
}
binding.mainToolbar.toolbarIcons.adapter =
ToolBarAdapterTooltip(listIcons, object : OnOptionsSelectedListener {
override fun onOptionsItemSelected(item: Drawable) {
when (item){
iconPrint.drawable->print()
iconAdd.drawable->addItem()
iconFace.drawable->showUser()
iconPhone.drawable->getExtensionFromUser()
when (item) {
iconPrint.drawable -> print()
iconAdd.drawable -> addItem()
iconFace.drawable -> showUser()
iconPhone.drawable -> getExtensionFromUser()
iconParking.drawable->pasillerosItemClickListener?.onPasillerosItemClickListener(
PasillerosItemVO(
title = "Parking"
), ""
)
}
}
@ -228,9 +243,18 @@ class CollectionFragment(
private fun getExtensionFromUser() {
binding.splashProgress.visibility=VISIBLE
viewModel.sip_getExtension(getData(USER),
getData(PASSWORD), workerFkFromTicket,"sip_getExtension")
binding.splashProgress.visibility = VISIBLE
var working_in_test = true // sergio: en proves app
if (working_in_test) {
viewModel.sip_getExtensionSalix(getData(TOKEN), workerFkFromTicket, "sip_getExtension")
} else {
viewModel.sip_getExtension(
getData(USER),
getData(PASSWORD), workerFkFromTicket, "sip_getExtension"
)
}
}
@ -308,6 +332,7 @@ class CollectionFragment(
}
}
private fun showKeyboards() {
try {
requireActivity().showKeyboard()
@ -349,18 +374,19 @@ class CollectionFragment(
responseUsedShelves.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
if (!goBack){
if (!goBack) {
ma.messageWithSound(
if (it.isError) it.errorMessage else "Baldas guardadas",
it.isError,true
)}
it.isError, true
)
}
})
responseItem_updatePackingShelve.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
ma.messageWithSound(
if (it.isError) it.errorMessage else "Packing guardado",
it.isError,!it.isError
it.isError, !it.isError
)
if (!it.isError) {
viewModel.collectionTicketGet(
@ -379,9 +405,9 @@ class CollectionFragment(
if (it.isError) {
ma.messageWithSound(it.errorMessage, true,true)
ma.messageWithSound(it.errorMessage, true, true)
} else {
ma.messageWithSound("Previa recogida", false,true)
ma.messageWithSound("Previa recogida", false, true)
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
getData(USER),
@ -420,7 +446,7 @@ class CollectionFragment(
View.VISIBLE
if (!goBack){
if (!goBack) {
sendSalixMessage(
item = dataMessageSalix.item,
ticketFk = dataMessageSalix.ticket,
@ -474,9 +500,9 @@ class CollectionFragment(
responseMissingTrash.observe(viewLifecycleOwner, Observer {
if (!goBack){
if (!goBack) {
if (it.isError) {
ma.messageWithSound(it.errorMessage, isError = true,true)
ma.messageWithSound(it.errorMessage, isError = true, true)
} else {
@ -492,11 +518,14 @@ class CollectionFragment(
responseIncQuantity.observe(viewLifecycleOwner, Observer {
if (it.isError) {
ma.messageWithSound(it.errorMessage, isError = true,true)
ma.messageWithSound(it.errorMessage, isError = true, true)
} else {
if (!goBack){ incresaseSuccesful()}else{
goBack=false}
if (!goBack) {
incresaseSuccesful()
} else {
goBack = false
}
}
})
@ -504,22 +533,26 @@ class CollectionFragment(
responseSaleMove.observe(viewLifecycleOwner, Observer {
if (it.isError) {
ma.messageWithSound(it.errorMessage, isError = true,true)
ma.messageWithSound(it.errorMessage, isError = true, true)
} else {
if (!goBack)
responseSaleMoveSuccesful()
goBack=false
goBack = false
}
})
responseGetExtensionFromUserId.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility=GONE
binding.splashProgress.visibility = GONE
if (it.isError) {
if (!goBack)
ma.messageWithSound(it.errorMessage+"Usuario:"+workerFkFromTicket, isError = true,true)
ma.messageWithSound(
it.errorMessage + "Usuario:" + workerFkFromTicket,
isError = true,
true
)
goBack = false
} else {
if (!goBack)
@ -541,7 +574,7 @@ class CollectionFragment(
responsecheckfully.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE
if (it.isError) {
ma.messageWithSound(it.errorMessage,it.isError,false)
ma.messageWithSound(it.errorMessage, it.isError, false)
/*customDialog.setTitle("Error").setDescription(it.errorMessage)
.setOkButton("Aceptar") {
customDialog.dismiss()
@ -575,13 +608,63 @@ class CollectionFragment(
}
})
responseDel.observe(viewLifecycleOwner, Observer {
if (it.isError) {
binding.splashProgress.visibility = GONE
if (!goBack) {
ma.messageWithSound(it.errorMessage, it.isError, false)
}
} else {
viewModel.collectionTicketGet(
getData(USER),
getData(PASSWORD),
collection.collectionFk,
getData(SECTORFK),
type, "collection_getTickets"
)
goBack = false
}
})
responseItemShelvingUpdate.observe(viewLifecycleOwner, Observer {
if (it.isError) {
if (!goBack) {
ma.messageWithSound(it.errorMessage, it.isError, false)
}
} else {
viewModel.saleTrackingDel(
getData(USER),
getData(PASSWORD),
saleFk = sales[positionUnmarked].saleFk,
"saleTracking_del"
)
goBack = false
}
})
responseSalixMessage.observe(viewLifecycleOwner, Observer {
if (it.isError) {
if (!goBack){
ma.messageWithSound(it.errorMessage,it.isError,false)}else{goBack=false}
if (!goBack) {
ma.messageWithSound(it.errorMessage, it.isError, false)
} else {
goBack = false
}
/*customDialog.setTitle("Error").setDescription(it.errorMessage)
.setOkButton("Aceptar") {
@ -606,11 +689,11 @@ class CollectionFragment(
val message =
"Se ha enviado a Split el articulo " + sales[positionCollectionSplit].itemFk + " del ticket " + ticket
sendSalixMessageNew(message,sales[positionCollectionSplit].salePersonFk)
sendSalixMessageNew(message, sales[positionCollectionSplit].salePersonFk)
}
private fun callPicker(extensionNumber:String) {
private fun callPicker(extensionNumber: String) {
try {
@ -619,8 +702,8 @@ class CollectionFragment(
}
startActivity(intent)
}catch (e:Exception){
d("VERDNATURA::"+e.message)
} catch (e: Exception) {
d("VERDNATURA::" + e.message)
}
@ -697,7 +780,7 @@ class CollectionFragment(
sales = salesList.sortedWith(compareBy({ it.saleOrder }))
if (type==CONTROLADOR){
if (type == CONTROLADOR) {
sales = salesList.sortedWith(compareBy({ it.picked }))
/* for (s in sales){
Log.d("VERDNATURA::","El item es ${s.itemFk} y su picked ${s.picked} y saleorder ${s.saleOrder}")
@ -753,8 +836,10 @@ class CollectionFragment(
if (binding.splashProgress != null) binding.splashProgress.visibility =
View.VISIBLE
mistakeSale = sale
viewModel.mistakeType(usuario = getData(USER),
getData(PASSWORD))
viewModel.mistakeType(
usuario = getData(USER),
getData(PASSWORD)
)
}
}
}, object : onPackingClickListener {
@ -1037,7 +1122,8 @@ class CollectionFragment(
sales[position].isControlled = if (sales[position].isControlled == "1") "0" else "1"
if (type == PRECHECKER) {
sales[position].isPreControlled= if ( sales[position].isPreControlled == "1") "0" else "1"
sales[position].isPreControlled =
if (sales[position].isPreControlled == "1") "0" else "1"
/* sales[position].isControlled =
//if (sales[position].isControlled == "2") "0" else "2" //sergio: para diferenciar precontrol en previa
if (sales[position].isControlled == "1") "0" else "1"//sergio: para diferenciar precontrol en previa*/
@ -1050,7 +1136,7 @@ class CollectionFragment(
saleTrackingReplace(position, newType)
isMarking = true
}
*/
*/
// sergio
/* if (type == PRECHECKER) {
saleTrackingReplace(position, newType)
@ -1063,7 +1149,7 @@ class CollectionFragment(
private fun setListPosition(position: Int, isFromBack: Boolean) {
storedPosition = position
if (type == SACADOR || type == CONTROLADOR) {
if (type == SACADOR || (type == CONTROLADOR && (getData(SECTORDESCRIP).uppercase() == "ALGEMESI V"))) {
if (binding.fragmentSacadorCollections != null) {
binding.fragmentSacadorCollections.addViewObserver {
lm!!.scrollToPositionWithOffset(position, 0)
@ -1086,7 +1172,7 @@ class CollectionFragment(
getData(USER),
getData(PASSWORD),
saleFk = sales[position].saleFk,
vIsChecked = if (type == SACADOR) sales[position].isPrepared else if (type == CONTROLADOR ) sales[position].isControlled else if (type=="PRECHECKER") sales[position].isPreControlled else "1",
vIsChecked = if (type == SACADOR) sales[position].isPrepared else if (type == CONTROLADOR) sales[position].isControlled else if (type == "PRECHECKER") sales[position].isPreControlled else "1",
vOriginalQuantity = sales[position].pickedQuantity,
vStateFk = if (type == CONTROLADOR) "CHECKED" else if (type == "PRECHECKER") "PREVIOUS_CONTROL" else type,//type.toString(),
vBuyFk = originalItemScan,
@ -1106,12 +1192,26 @@ class CollectionFragment(
saleAdapter!!.notifyDataSetChanged()
setListPosition(position, false)
if (type != PRECHECKER) {
viewModel.saleTrackingDel(
binding.splashProgress.visibility= VISIBLE
viewModel.itemShelving_updateFromSale(
getData(USER),
getData(PASSWORD),
sales[position].saleFk,
sales[position].quantity,
""
)
positionUnmarked = position
/* viewModel.saleTrackingDel(
getData(USER),
getData(PASSWORD),
saleFk = sales[position].saleFk,
"saleTracking_del"
)
)*/
}
setTotalLines()
scanRequest()
@ -1199,10 +1299,21 @@ class CollectionFragment(
itemShelvingFkStored = itemShelvingFk
if (binding.splashProgress != null) binding.splashProgress.visibility =
View.VISIBLE
viewModel.getIdFromCode(usuario = getData(USER),
var working_in_test = true // sergio: en proves app
if (working_in_test) {
viewModel.getIdFromCodeSalix(
token = getData(USER),
code = customDialogList.getValueTwo(),
)
} else {
viewModel.getIdFromCode(
usuario = getData(USER),
password = getData(PASSWORD),
code = customDialogList.getValueTwo(), "barcodeToItem"
)
}
customDialogList.dismiss()
}
scanRequest()
@ -1268,11 +1379,21 @@ class CollectionFragment(
} else {
itemShelvingFkStored = itemShelvingFk
binding.splashProgress.visibility = View.VISIBLE
var working_in_test = true //sergio: en proves app
if (working_in_test) {
viewModel.getIdFromCodeSalix(
getData(TOKEN),
code = customDialogList.getValueTwo()
)
} else {
viewModel.getIdFromCode(
getData(USER),
getData(PASSWORD),
code = customDialogList.getValueTwo(), "barcodeToItem"
)
}
customDialogList.dismiss()
scanRequest()
}
@ -1346,7 +1467,6 @@ class CollectionFragment(
}
private fun checkItemScan(valueToCheck: String): Boolean {
if (storedPosition >= 0 && sales.size > storedPosition) {
@ -1391,6 +1511,7 @@ class CollectionFragment(
callFunction = "itemShelvingSaleSupplyAdd"
)
} catch (e: Exception) {
}
@ -1421,7 +1542,7 @@ class CollectionFragment(
//OPTIONS
private fun print() {
if (ma.havePrinter()){
if (ma.havePrinter() && ma.haveSector()) {
viewModel.collectionStickerPrint(
getData(USER),
getData(PASSWORD),
@ -1430,9 +1551,15 @@ class CollectionFragment(
"collectionStickerPrint"
)
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(requireContext())
}else{
} else {
ma.messageWithSound("Falta seleccionar impresora.",isError = true,true,"Error al imprimir",false)
ma.messageWithSound(
"Falta seleccionar impresora.",
isError = true,
true,
"Error al imprimir",
false
)
}
@ -1653,7 +1780,7 @@ class CollectionFragment(
getString(R.string.Coleccióncompleta).toast(this.context, Toast.LENGTH_SHORT)
if (!goBack)
ticketCollection_setUsedShelves()
goBack=false
goBack = false
//showBottomNavigation(View.VISIBLE)
//sergio: se quita porque se realiza desde triggers
@ -1850,9 +1977,9 @@ class CollectionFragment(
when (action) {
getString(R.string.Agregar) -> increaseQuantity(position, value)
getString(R.string.BasuraRechazar) -> TrashMissingReject(position, value,"TRUE")
getString(R.string.Faltas) -> TrashMissingReject(position, value,"FALSE")
getString(R.string.Reject) -> TrashMissingReject(position, value,"reject")
getString(R.string.BasuraRechazar) -> TrashMissingReject(position, value, "TRUE")
getString(R.string.Faltas) -> TrashMissingReject(position, value, "FALSE")
getString(R.string.Reject) -> TrashMissingReject(position, value, "reject")
getString(R.string.Split) -> split(position, value)
}
@ -1864,8 +1991,8 @@ class CollectionFragment(
private fun split(position: Int, quantity: String) {
quantityCollectionSplit=quantity
positionCollectionSplit=position
quantityCollectionSplit = quantity
positionCollectionSplit = position
var totalQuantity: Int = 0
try {
@ -1930,7 +2057,7 @@ class CollectionFragment(
if (quantity == "0")
markLine(position, type)
*/
*/
}
/* private fun trash(position: Int, quantity: String) {
@ -2047,7 +2174,7 @@ class CollectionFragment(
private fun missingTrashSuccesful() {
var message=""
var message = ""
sales[positionCollectionMissing].quantity = quantityCollectionMissing
saleAdapter!!.notifyDataSetChanged()
@ -2056,7 +2183,8 @@ class CollectionFragment(
var totalQuantity: Int = 0
try {
totalQuantity = sales[positionCollectionMissing].originalQuantity.toInt() - quantityCollectionMissing.toInt()
totalQuantity =
sales[positionCollectionMissing].originalQuantity.toInt() - quantityCollectionMissing.toInt()
} catch (e: Exception) {
}
@ -2066,18 +2194,21 @@ class CollectionFragment(
"[" + sales[positionCollectionMissing].ticketFk + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionCollectionMissing].ticketFk + "/summary)"
when (typeCollectionMissing){
when (typeCollectionMissing) {
"TRUE"->{
message = "Se ha enviado a Basura " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket
"TRUE" -> {
message =
"Se ha enviado a Basura " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket
}
"FALSE"->{
message= "Se ha enviado a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket
"FALSE" -> {
message =
"Se ha enviado a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket
}
"reject"->{
message = "Se ha modificado la cantidad de " + sales[positionCollectionMissing].originalQuantity + " del artículo " + sales[positionCollectionMissing].itemFk + " a nueva cantidad: " + sales[positionCollectionMissing].quantity + " del ticket " + ticket
"reject" -> {
message =
"Se ha modificado la cantidad de " + sales[positionCollectionMissing].originalQuantity + " del artículo " + sales[positionCollectionMissing].itemFk + " a nueva cantidad: " + sales[positionCollectionMissing].quantity + " del ticket " + ticket
}
}
@ -2148,6 +2279,9 @@ class CollectionFragment(
positionIncreaseQuantity = position
quantityIncrease = quantity
var working_in_test = true // sergio: en proves app
if (!working_in_test) {
viewModel.collectionIncreaseQuantity(
getData(USER),
getData(PASSWORD),
@ -2155,6 +2289,14 @@ class CollectionFragment(
quantity = quantity, "collection_increaseQuantity"
)
} else {
viewModel.collectionIncreaseQuantitySalix(
getData(TOKEN),
saleFk = sales[position].saleFk,
quantity = quantity, "collection_increaseQuantity"
)
}
}
@ -2163,7 +2305,7 @@ class CollectionFragment(
if (type == CONTROLADOR) {
tickets.forEach {
viewModel.ticket_setState(
usuario=getData(USER),
usuario = getData(USER),
password = getData(PASSWORD),
ticketFk = it,
state = "CHECKED",
@ -2173,7 +2315,7 @@ class CollectionFragment(
} else if (type == SACADOR) {
tickets.forEach {
viewModel.ticket_setState(
usuario=getData(USER),
usuario = getData(USER),
password = getData(PASSWORD),
ticketFk = it,
state = "PREPARED",
@ -2267,7 +2409,8 @@ class CollectionFragment(
override fun onBarcodeRowClickListener(item: BarcodeVO) {
list.forEach {
if (it.description == item.code) {
viewModel.saleMistakeAdd(usuario = getData(USER),
viewModel.saleMistakeAdd(
usuario = getData(USER),
password = getData(PASSWORD),
vSaleFk = mistakeSale?.saleFk!!,
vUserFk = mistakeSale?.workerFk!!,

View File

@ -1,8 +1,10 @@
package es.verdnatura.presentation.view.feature.collection.fragment
import android.content.Context
import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.google.gson.JsonObject
import es.verdnatura.domain.GetLoginUserCase
import es.verdnatura.domain.GetSacadorControladorUserCase
import es.verdnatura.domain.GetUbicadorUserCase
@ -11,6 +13,7 @@ import es.verdnatura.presentation.common.ResponseItemVO
import es.verdnatura.presentation.view.feature.collection.ItemVO
import es.verdnatura.presentation.view.feature.collection.mapper.map
import es.verdnatura.presentation.view.feature.sacador.model.*
import org.json.JSONObject
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
@ -37,6 +40,14 @@ class CollectionViewModel(context: Context) : BaseViewModel()
val response: LiveData<ResponseItemVO>
get() = _response
private val _responseDel by lazy { MutableLiveData<ResponseItemVO>() }
val responseDel: LiveData<ResponseItemVO>
get() = _responseDel
private val _responseItemShelvingUpdate by lazy { MutableLiveData<ResponseItemVO>() }
val responseItemShelvingUpdate: LiveData<ResponseItemVO>
get() = _responseItemShelvingUpdate
private val _responseSaleMove by lazy { MutableLiveData<ResponseItemVO>() }
val responseSaleMove: LiveData<ResponseItemVO>
get() = _responseSaleMove
@ -585,7 +596,7 @@ class CollectionViewModel(context: Context) : BaseViewModel()
{
override fun onFailure(call: Call<String>, t: Throwable)
{
_response.value = ResponseItemVO(
_responseDel.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!)
)
@ -595,19 +606,49 @@ class CollectionViewModel(context: Context) : BaseViewModel()
{
if (response.body() == null)
{
_response.value = ResponseItemVO(
_responseDel.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())
)
} else
{
_response.value =
_responseDel.value =
ResponseItemVO(isError = false, response = response.body()!!)
}
}
})
}
fun itemShelving_updateFromSale(usuario: String, password: String, itemShelvingFk: String,visible:String,callFunction:String)
{
getSacadorControladorUserCase.itemShelving_updateFromSale(usuario, password, itemShelvingFk, visible)
.enqueue(object : Callback<Unit>
{
override fun onFailure(call: Call<Unit>, t: Throwable)
{
_responseItemShelvingUpdate.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!)
)
}
override fun onResponse(call: Call<Unit>, response: Response<Unit>)
{
if (!response.isSuccessful )
{
_responseItemShelvingUpdate.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())
)
} else
{
_responseItemShelvingUpdate.value =
ResponseItemVO(isError = false, response = response.message()!!)
}
}
})
}
fun parking(usuario: String, password: String, ticketFk: String, parking: String,callFunction:String)
{
getUbicadorUserCase.shelvingPark(usuario, password, ticketFk, parking)
@ -704,6 +745,36 @@ class CollectionViewModel(context: Context) : BaseViewModel()
})
}
fun getIdFromCodeSalix(token: String, code: String)
{
getSacadorControladorUserCase.getIdFromCodeSalix(token, 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()!!)
}
}
})
}
fun collectionIncreaseQuantity(
usuario: String,
password: String,
@ -730,14 +801,6 @@ class CollectionViewModel(context: Context) : BaseViewModel()
override fun onResponse(call: Call<String>, response: Response<String>)
{
/* if (response.isSuccessful){
_responseIncQuantity.value =
ResponseItemVO(isError = false, response = response.body()!!)
}else{
_responseIncQuantity.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())
}*/
if (response.body() == null)
{
_responseIncQuantity.value = ResponseItemVO(
@ -753,6 +816,44 @@ class CollectionViewModel(context: Context) : BaseViewModel()
})
}
fun collectionIncreaseQuantitySalix(
token: String,
saleFk: String,
quantity: String,callFunction:String
)
{
getSacadorControladorUserCase.collectionIncreaseQuantitySalix(
token,
saleFk,
quantity
).enqueue(object : Callback<Any>
{
override fun onFailure(call: Call<Any>, t: Throwable)
{
_responseIncQuantity.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!)
)
}
override fun onResponse(call: Call<Any>, response: Response<Any>)
{
if (!response.isSuccessful)
{
_responseIncQuantity.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())
)
} else
{
_responseIncQuantity.value =
ResponseItemVO(isError = false, response = response.message().toString())
}
}
})
}
fun sendChekingPresence(token: String, workerId: String, message: String,calledFunction:String)
{
try
@ -763,11 +864,11 @@ class CollectionViewModel(context: Context) : BaseViewModel()
override fun onResponse(call: Call<Boolean>, response: Response<Boolean>)
{
if (!response.isSuccessful)
if (!response.isSuccessful || response.message()=="false")
{
_responseSalixMessage.value = ResponseItemVO(
isError = true,
errorMessage = "Error en la llamada $calledFunction al enviar mensaje rocket." + getMessageFromAllResponse(
errorMessage = "Error al enviar mensaje rocket." + getMessageFromAllResponse(
nameofFunction(this),response.message()
))
//Log.i("Salix","Mensaje enviado a salix")
@ -777,11 +878,11 @@ class CollectionViewModel(context: Context) : BaseViewModel()
override fun onFailure(call: Call<Boolean>, t: Throwable)
{
/*_responseSalixMessage.value = ResponseItemVO(
_responseSalixMessage.value = ResponseItemVO(
isError = true,
errorMessage = "Error en la llamada $calledFunction al enviar mensaje rocket." + getMessageFromAllResponse(
errorMessage = "Error al enviar mensaje rocket." + getMessageFromAllResponse(
nameofFunction(this),t.message!!))
*/
//Log.i("Salix Error",""+t.message)
}
})
@ -908,7 +1009,67 @@ class CollectionViewModel(context: Context) : BaseViewModel()
}
})
}
fun sip_getExtensionSalix(
token:String,
workerId: String,
callFunction:String
)
{
getSacadorControladorUserCase.sip_getExtensionSalix(
token,
workerId
).enqueue(object :
Callback<Any>
{
override fun onFailure(call: Call<Any>, t: Throwable)
{
_responseGetExtensionFromUserId.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!)
)
}
override fun onResponse(
call: Call<Any>,
response: Response<Any?>
)
{
// No se ajusta ya que la response is Successful pero el valor retornado es un error y por lo tanto response.body nulo y tira error
/* if (response.isSuccessful ){
_responseGetExtensionFromUserId.value = ResponseItemVO(
isError = false,
response = JSONObject(response.body()!!.toString()).get("extension").toString(),
errorMessage = "")
}else{
_responseGetExtensionFromUserId.value = ResponseItemVO(
isError = true,
response = response.message()!!,
errorMessage = "No se puede realizar la llamada. El usuario no tiene la extensión configurada. Solicítelo a informática.")
}*/
if (response.body() != null)
{
_responseGetExtensionFromUserId.value = ResponseItemVO(
isError = false,
response = JSONObject(response.body()!!.toString()).get("extension").toString(),
errorMessage = ""
)
// Se prueba el call como JSONOBJECT pero no da resultado porque el sevidor puede devolver un null directamente y salta error MAlformed
// Se deja Any para obtener cualquier tipo de objeto y si no es nulo se parsea a Json
// Per al cas que el CAll siga Any enlloc de JsonObject:
//var answerError=(JSONObject(response.body().toString()).get("extension").toString())
//var messageFromError = answerError.get("extension").toString()
//Log.d("VERDNATURA::","Message ext"+messageFromError)
}else{
_responseGetExtensionFromUserId.value = ResponseItemVO(
isError = true,
response = response.message()!!,
errorMessage = "No se puede realizar la llamada. El usuario no tiene la extensión configurada. Solicítelo a informática.")
}
}
})
}
fun ticket_checkFullyControlled(
usuario: String,
password: String,

View File

@ -106,7 +106,7 @@ class CollectionShowTicketFragment(
private fun print() {
if (ma.havePrinter()) {
if (ma.havePrinter() && ma.haveSector()) {
viewModel.collectionStickerPrint(
usuario = getData(USER),
password = getData(PASSWORD),

View File

@ -119,7 +119,7 @@ class DayOfSaleFragment(
if (it.list.isEmpty()){
customDialog.setTitle("Sin resultados")
.setDescription("No se ha podido obtener datos de la etiqueta escaneada. ")
.setDescription("No hay nada vendido para el carro escaneado. ")
.setOkButton("Cerrar") {
customDialog.dismiss()
}.show()

View File

@ -61,6 +61,11 @@ class HistoricoVehiculoFragment (
if (it.list.isEmpty()){
ma.messageWithSound("Solo puedes visualizar cuando has cogido tu mismo el vehículo a no ser que tengas permisos para ello.",true,true,"Información")
}else{
if (it.list[0].isError){
ma.messageWithSound(it.list[0].errorMessage,true,true,"Información")
}
}
}

View File

@ -13,6 +13,7 @@ import es.verdnatura.presentation.view.feature.historicovehiculo.model.ItemHisto
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import timber.log.Timber.d
import timber.log.Timber.i
class HistoricoVehiculoViewModel (context: Context) : BaseViewModel() {
@ -32,6 +33,7 @@ class HistoricoVehiculoViewModel (context: Context) : BaseViewModel() {
val listError:ArrayList<ItemHistoricoVehiculo> = ArrayList()
listError.add(ItemHistoricoVehiculo(isError = true,errorMessage =getMessageFromAllResponse(nameofFunction(this),t.message!!)))
_historicovehiculoList.value = ItemHistoricoVehiculoList(listError)
}
override fun onResponse(
@ -39,13 +41,16 @@ class HistoricoVehiculoViewModel (context: Context) : BaseViewModel() {
response: Response<List<ItemHistoricoVehiculo>>
) {
if (response.body() != null){
i("El response es "+response.body())
_historicovehiculoList.value = response.body()?.let { ItemHistoricoVehiculoList(it) }
}else{
val listError:ArrayList<ItemHistoricoVehiculo> = ArrayList()
listError.add(ItemHistoricoVehiculo(isError = true,errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())))
_historicovehiculoList.value = ItemHistoricoVehiculoList(listError)
}
}
})

View File

@ -194,12 +194,41 @@ class InventaryViewModel(context: Context) : BaseViewModel() {
})
}
fun department_getHasMistake(usuario: String, password: String)
fun department_getHasMistakeSalix(token:String)
{
getWorkerMistakeUserCase.department_getHasMistakeSalix(token)
.enqueue(object : Callback<List<DepartmentMistake>>
{
override fun onFailure(call: Call<List<DepartmentMistake>>, t: Throwable)
{
val listError: ArrayList<DepartmentMistake> = ArrayList()
listError.add(DepartmentMistake(isError = true,errorMessage =getMessageFromAllResponse(nameofFunction(this),t.message!!)))
_mistakeDepartmentList.value = departmentMistakeList(listError)
}
override fun onResponse(
call: Call<List<DepartmentMistake>>,
response: Response<List<DepartmentMistake>>
)
{
if (response.body() != null)
{
_mistakeDepartmentList.value = response.body()?.let { departmentMistakeList(it) }
} else
{
val listError: ArrayList<DepartmentMistake> = ArrayList()
listError.add(DepartmentMistake("0", ""))
_mistakeDepartmentList.value = departmentMistakeList(listError)
}
}
})
}
fun department_getHasMistake(usuario:String, password:String)
{
var working_in_test=false
//getWorkerMistakeUserCase.department_getHasMistakeSalix(usuario, password)
getWorkerMistakeUserCase.department_getHasMistake(usuario, password)
.enqueue(object : Callback<List<DepartmentMistake>>
@ -314,11 +343,18 @@ class InventaryViewModel(context: Context) : BaseViewModel() {
{
if (!response.isSuccessful)
{
if (response.code()==403){
_responseAddMistake.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),"Usuario sin permisos para realizar la acción")
)
}else{
d("Error message:"+{response.errorBody()}+"-"+response.message()+"-"+response.raw())
_responseAddMistake.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())
)
}
} else
{

View File

@ -8,6 +8,7 @@ import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.net.Uri
import android.provider.Settings
import android.util.Log
import android.view.KeyEvent
import android.view.View
import androidx.lifecycle.Observer
@ -86,8 +87,9 @@ class LoginFragment : BaseFragment<FragmentLoginBinding, LoginViewModel>(LoginVi
@SuppressLint("HardwareIds")
private fun saveIdentifiers() {
val AndroidId: String = Settings.Secure.getString(requireActivity().contentResolver, Settings.Secure.ANDROID_ID)
saveData(ANDROID_ID,AndroidId)
val AndroidId: String =
Settings.Secure.getString(requireActivity().contentResolver, Settings.Secure.ANDROID_ID)
saveData(ANDROID_ID, AndroidId)
}
@ -260,25 +262,31 @@ class LoginFragment : BaseFragment<FragmentLoginBinding, LoginViewModel>(LoginVi
workergetSector.observe(viewLifecycleOwner) {
binding.splashProgress.visibility = View.GONE
if (it.isError) {
removeSector()
Log.d("VERDNATURA::","ERROR")
} else {
if (it.id != 0) {
saveDataInt("sectorFk", it.id)
saveData("sectordescrip", it.description)
it.warehouseFk?.let { it1 -> saveDataInt("warehouseFk", it1) }
}
}
}
loadWorkerPrintList.observe(viewLifecycleOwner, Observer{ event ->
loadWorkerPrintList.observe(viewLifecycleOwner, Observer { event ->
binding.splashProgress.visibility = View.GONE
event.getContentIfNotHandled().notNull {
if (it.list.isEmpty()){
if (it.list.isEmpty()) {
"Tiene que seleccionar impresora.".toast(context)
}else{
if (!it.list.get(0).isError){
} else {
if (!it.list.get(0).isError) {
saveDataInt(PRINTERFK, it.list.get(0).id!!)
saveData(PRINTERNAME, it.list.get(0).name!!)
}else{
} else {
it.list.get(0).errorMessage.toast(context)
}
}

View File

@ -401,7 +401,6 @@ class LoginViewModel(context: Context) : BaseViewModel()
getLoginUserCase.worker_getSector(user,password).enqueue(object : Callback<SectorItemVO>{
override fun onFailure(call: Call<SectorItemVO>, t: Throwable) {
Timber.d("El sector failure " + t.message!!)
_workergetSector.value = SectorItemVO(0,"",0,isError = true, errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!))
}

View File

@ -9,6 +9,7 @@ import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import com.google.android.material.bottomnavigation.LabelVisibilityMode.LABEL_VISIBILITY_UNLABELED
import es.verdnatura.BuildConfig
import es.verdnatura.R
import es.verdnatura.databinding.ActivityMainBinding
@ -85,17 +86,24 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
mperror = MediaPlayer.create((this), R.raw.error)
mpok = MediaPlayer.create((this), R.raw.ok)
customDialog = CustomDialogMainActivity(this)
// working_in_design = para nuevo diseño app
SetisWorkingInDesign(false)
if (isWorkingInDesign()) {
setBottomMenuFragment()
} else {
setBottomMenu()
}
if (haveSector() && havePrinter()) addFragment(
PasilleroFragment.newInstance("Verdnatura"),
/* working_in_design nuevo diseño*/
// PasilleroFragment.newInstance("Verdnatura_design",true),
PasilleroFragment.newInstance("Verdnatura", false),
R.id.main_frame_layout,
PasilleroFragment.TAG,
false
@ -113,39 +121,34 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
//navigationDrawer()
}
private fun navigationDrawer(){
/* val drawerLayout = binding.drawerLayout
drawerLayout.open()
val toggle = ActionBarDrawerToggle(
this,
drawerLayout,
toolbar,
"abierto",
"cerrado"
)
drawerLayout.addDrawerListener(toggle)
toggle.syncState()*/
}
/* private fun navigateToFragment(){
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.main_frame_layout) as NavHostFragment
val navController = navHostFragment.navController
navController.navigate(R.id.action_pasilleroFragment_to_ajustesFragment)
}
*/
private fun haveSector(): Boolean {
fun haveSector(): Boolean {
val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0)
val sectorFk = prefs.getInt("sectorFk", -1)
return sectorFk != -1
}
fun isWorkingInDesign():Boolean{
val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0)
val working= prefs.getInt("working_in_design", -1)
return working != -1
}
fun SetisWorkingInDesign(isWorkingIn: Boolean) {
val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0)
val editor = prefs.edit()
if (isWorkingIn){
editor.putInt("working_in_design", 0)
editor.apply()
}else{
editor.putInt("working_in_design", -1)
editor.apply()
}
}
fun havePrinter(): Boolean {
val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0)
val printerFk = prefs.getInt("printerFk", -1)
@ -262,7 +265,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
delete_Fragments()
addFragment(
PasilleroFragment.newInstance("Verdnatura"),
PasilleroFragment.newInstance("Verdnatura", isInitMenu = false),
R.id.main_frame_layout,
PasilleroFragment.TAG,
false
@ -290,7 +293,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
ControladorFragment.TAG,
false
)
/*addFragment(
/* addFragment(
CollectionFragment.newInstance(type = "CHECKER", collection = CollectionVO()),
R.id.main_frame_layout,
ControladorFragment.TAG,
@ -302,7 +305,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
delete_Fragments()
//addFragment(ExpeditionTruckListFragment.newInstance(),R.id.main_frame_layout, ExpeditionTruckListFragment.TAG,false)
addFragment(
PasilleroFragment.newInstance("Paletizadores"),
PasilleroFragment.newInstance("Paletizadores", isInitMenu = false),
R.id.main_frame_layout,
PasilleroFragment.TAG,
false
@ -332,6 +335,186 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
}
fun setBottomMenuFragment() {
val bottomMenu = binding.mainBottomNavigation
//iconos abajo sin texto
bottomMenu.labelVisibilityMode = LABEL_VISIBILITY_UNLABELED
bottomMenu.itemIconTintList = null
GlobalScope.launch(Dispatchers.Main) {
val bottomMenuItems: ArrayList<ItemMenuVO> = ArrayList()
bottomMenuItems.add(
ItemMenuVO(
0,
title = getString(R.string.Pasilleros),
defaultImage = ContextCompat.getDrawable(
applicationContext, R.drawable.ic_init_ui
),
selectedImage = ContextCompat.getDrawable(
applicationContext, R.drawable.ic_init_ui_selected
)
)
)
bottomMenuItems.add(
ItemMenuVO(
1,
title = getString(R.string.verticket),
defaultImage = ContextCompat.getDrawable(
applicationContext, R.drawable.ic_eye_ui
),
selectedImage = ContextCompat.getDrawable(
applicationContext, R.drawable.ic_eye_ui_selected
)
)
)
bottomMenuItems.add(
ItemMenuVO(
2,
title = getString(R.string.Parking),
defaultImage = ContextCompat.getDrawable(
applicationContext, R.drawable.ic_parking_ui
),
selectedImage = ContextCompat.getDrawable(
applicationContext, R.drawable.ic_parking_ui_selected
)
)
)
bottomMenuItems.add(
ItemMenuVO(
3,
title = getString(R.string.Ajustes),
defaultImage = ContextCompat.getDrawable(
applicationContext, R.drawable.ic_setting_ui
),
selectedImage = ContextCompat.getDrawable(
applicationContext, R.drawable.ic_setting_ui_selected
)
)
)
// Add al items to menu view
bottomMenuItems.forEach {
bottomMenu.menu.add(Menu.NONE, it.id, Menu.NONE, it.title).icon = it.defaultImage
}
if (haveSector()) {
// Select first item by default
firstItem = bottomMenuItems.first()
bottomMenu.selectedItemId = firstItem!!.id
bottomMenu.menu.findItem(firstItem!!.id).icon = firstItem!!.selectedImage
lastBottomMenuItemSelected = firstItem
} else {
// Select last item by default
val lastItem = bottomMenuItems.last()
bottomMenu.selectedItemId = lastItem.id
bottomMenu.menu.findItem(lastItem.id).icon = lastItem.selectedImage
lastBottomMenuItemSelected = lastItem
}
bottomMenu.setOnNavigationItemSelectedListener { menuItem ->
// Get selected item from itemList and apply ui changes to menu view
val selectedItemMenu = bottomMenuItems.find { menuItem.itemId == it.id }
menuItem.icon = selectedItemMenu?.selectedImage
// Get last selected item and disable it
bottomMenu.menu.findItem(lastBottomMenuItemSelected?.id!!).icon =
lastBottomMenuItemSelected?.defaultImage
lastBottomMenuItemSelected = selectedItemMenu
when (selectedItemMenu?.title) {
getString(R.string.Pasilleros) -> {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
delete_Fragments()
addFragment(
PasilleroFragment.newInstance("Verdnatura_design", true),
R.id.main_frame_layout,
PasilleroFragment.TAG,
false
)
}
getString(R.string.Sacadores) -> {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
delete_Fragments()
addFragment(
ControlVehiculoFragment.newInstance(MAINACTIVITY),
R.id.main_frame_layout,
MAINACTIVITY.TAG,
false
)
}
getString(R.string.verticket) -> {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
delete_Fragments()
addFragment(
ShowTicketFragment.newInstance(),
R.id.main_frame_layout,
MAINACTIVITY.TAG,
false
)
}
getString(R.string.Parking) -> {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
delete_Fragments()
addFragment(
ParkingFragment.newInstance(),
R.id.main_frame_layout,
MAINACTIVITY.TAG,
false
)
}
getString(R.string.Ajustes) -> {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
delete_Fragments()
addFragment(
AjustesFragment.newInstance(),
R.id.main_frame_layout,
AjustesFragment.TAG,
false
)
}
}
true
}
/* working_in_design: para cuando son seleccionados de nuevo */
/*bottomMenu.setOnNavigationItemReselectedListener {
when (it.title){
getString(R.string.Pasilleros) -> {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
delete_Fragments()
addFragment(
PasilleroFragment.newInstance("Verdnatura_design",true),
R.id.main_frame_layout,
PasilleroFragment.TAG,
false
)
}
}
}*/
}
}
private fun delete_Fragments() {
fm.getFragments().forEach {
///Log.i("VERDNATURA:", "si esta ${it.tag.toString()}")
@ -344,6 +527,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
override fun onPasillerosItemClickListener(item: PasillerosItemVO, entryPoint: String) {
when (item.title) {
"Asociar Sacador SmartTags" -> {
@ -358,6 +542,43 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
"Paletizar" -> {
addFragmentOnTop(ExpeditionTruckListFragment.newInstance())
}
getString(R.string.Paletizadores) -> {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
// delete_Fragments()
//addFragment(ExpeditionTruckListFragment.newInstance(),R.id.main_frame_layout, ExpeditionTruckListFragment.TAG,false)
addFragment(
PasilleroFragment.newInstance(
getString(R.string.Paletizadores),
isInitMenu = false
),
R.id.main_frame_layout,
PasilleroFragment.TAG,
false
)
}
getString(R.string.Controladores) -> {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
delete_Fragments()
addFragment(
ControladorFragment.newInstance(),
R.id.main_frame_layout,
ControladorFragment.TAG,
false
)
}
getString(R.string.Pasilleros) -> {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
delete_Fragments()
addFragment(
PasilleroFragment.newInstance("Verdnatura", isInitMenu = false),
R.id.main_frame_layout,
PasilleroFragment.TAG,
false
)
}
getString(R.string.ExpeditionState) -> {
// addFragment(ExpeditionStateFragment.newInstance(entryPoint),R.id.main_frame_layout, ExpeditionTruckListFragment.TAG,false)
addFragmentOnTop(ExpeditionStateFragment.newInstance(item.title))
@ -367,7 +588,12 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
"Gestión de buffers" -> {
addFragmentOnTop(PasilleroFragment.newInstance("Gestión de buffer"))
addFragmentOnTop(
PasilleroFragment.newInstance(
"Gestión de buffer",
isInitMenu = false
)
)
}
"Control de usuario de vehículo" -> {
@ -482,7 +708,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
addFragmentOnTop(WorkermistakeFragment.newInstance(item.title))
}
"Obtener colección previa"->{
"Obtener colección previa" -> {
addFragmentOnTop(InitPreSacadorFragment.newInstance(item.title))
}
@ -557,17 +783,17 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
// fm.popBackStack()
when (type){
PREITEMPICKER->{
when (type) {
PREITEMPICKER -> {
// d("VERDNATURA::"," entrando en preitempicker")
// d("VERDNATURA::"," entrando en preitempicker, la colecc es "+collection.collectionFk)
addFragmentOnTop(EndSacadorFragment.newInstance(collection,type))
addFragmentOnTop(EndSacadorFragment.newInstance(collection, type))
}
"SHOWTICKET"->{
"SHOWTICKET" -> {
addFragmentOnTop(CollectionShowTicketFragment.newInstance(collection, type))
}
else->{
else -> {
addFragmentOnTop(CollectionFragment.newInstance(collection, type))
}
}
@ -604,10 +830,12 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
// addFragmentOnTop(ControlVehiculoFragment.newInstance(tag))
}
fun openFragmentPickers(delete:Boolean) {
fun openFragmentPickers(delete: Boolean) {
//delete_Fragments()
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
if (delete){delete_Fragments()}
if (delete) {
delete_Fragments()
}
addFragment(
SacadorFragment.newInstance(),
R.id.main_frame_layout,
@ -633,19 +861,30 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
binding.mainBottomNavigation.visibility = visible
}
fun messageWithSound(message: String, isError: Boolean,isPlayed:Boolean?,titleWithError:String="Error",isToasted:Boolean?=false) {
fun hideBottomNavigationFragment(visible: Int) {
binding.mainBottomNavigationFragment.visibility = visible
}
fun messageWithSound(
message: String,
isError: Boolean,
isPlayed: Boolean?,
titleWithError: String = "Error",
isToasted: Boolean? = false
) {
if (!isError) {
if (isPlayed == true)(mpok?.start())
if (isPlayed == true) (mpok?.start())
message.toast(this, Toast.LENGTH_SHORT)
} else {
if (isPlayed == true)( mperror?.start())
if (isPlayed == true) (mperror?.start())
if (isToasted==true){
if (isToasted == true) {
message.toast(this, Toast.LENGTH_SHORT)
}else{
} else {
customDialog.setTitle(titleWithError).setDescription(message)
.setOkButton("Aceptar") {
customDialog.dismiss()
@ -656,7 +895,5 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
}
}

View File

@ -105,7 +105,7 @@ class ExpeditionPalletDetailFragment(
}else if(item == iconPrint){
binding.splashProgress.visibility = View.VISIBLE
if (ma.havePrinter()) {
if (ma.havePrinter() && ma.haveSector()) {
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(
requireContext()
)

View File

@ -2,9 +2,15 @@ package es.verdnatura.presentation.view.feature.pasillero.adapter
import android.content.Context
import android.os.Build
import android.util.Log
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.BR
import es.verdnatura.R
import es.verdnatura.databinding.ItemMainMenuBinding
import es.verdnatura.databinding.ItemPasillerosMainMenuBinding
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
@ -12,15 +18,58 @@ import timber.log.Timber.d
class PasillerosAdapter (
private val items: List<PasillerosItemVO>,
private val onPasillerosItemClickListener: OnPasillerosItemClickListener
private val onPasillerosItemClickListener: OnPasillerosItemClickListener,
private val isMenuInit:Boolean
): RecyclerView.Adapter<PasillerosAdapter.PasillerosItemHolder> () {
var context : Context? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PasillerosItemHolder {
this.context = parent.context
return PasillerosItemHolder(
val binding: ViewDataBinding = DataBindingUtil.inflate(
LayoutInflater.from(parent.context),
viewType,
parent,
false)
return if (isMenuInit){
PasillerosItemHolder(binding as ItemMainMenuBinding)
}else{
PasillerosItemHolder(binding as ItemPasillerosMainMenuBinding)
}
/* return if (!isMenuInit){
PasillerosItemHolder(
//sergio working_in_design : modificar vista
//ItemPasillerosMainMenuBinding.inflate(LayoutInflater.from(parent.context),parent,false)
ItemPasillerosMainMenuBinding.inflate(LayoutInflater.from(parent.context),parent,false)
)
}else{
PasillerosItemHolder(
//sergio working_in_design : modificar vista
// ItemMainMenuBinding.inflate(LayoutInflater.from(parent.context),parent,false)
ItemMainMenuBinding.inflate(LayoutInflater.from(parent.context),parent,false)
)
}*/
}
override fun getItemViewType(position: Int): Int {
if (isMenuInit) return R.layout.item_main_menu
else{
return R.layout.item_pasilleros_main_menu
}
// return super.getItemViewType(position)
}
override fun getItemCount() =items.size
@ -35,10 +84,51 @@ class PasillerosAdapter (
inner class PasillerosItemHolder(
val binding: ItemPasillerosMainMenuBinding
//sergio working_in_design : modificar vista
//val binding: ItemMainMenuBinding
val binding: ViewDataBinding
//val binding_: ItemPasillerosMainMenuBinding
) : RecyclerView.ViewHolder(binding.root){
fun bind(item: PasillerosItemVO) {
binding.apply {
binding.setVariable(BR.item,item)
binding.setVariable(BR.title, context?.getString(item.titleToShow))
if (isMenuInit)
{
try {
(binding as ItemMainMenuBinding).itemImage.setImageResource(item.iconResource)
}catch(exception:Exception){
d("Exception::"+exception.message)
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
(binding as ItemMainMenuBinding).itemImage.tooltipText=item.description
}
}
else{
try {
(binding as ItemPasillerosMainMenuBinding).itemImage.setImageResource(item.iconResource)
}catch(exception:Exception){
d("Exception::"+exception.message)
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
(binding as ItemPasillerosMainMenuBinding).itemImage.tooltipText=item.description
}
}
/* binding.apply {
this.item = item
this.title = context?.getString(item.titleToShow)
@ -51,7 +141,7 @@ class PasillerosAdapter (
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
itemImage.tooltipText=item.description
}
}
}*/
}
}
}

View File

@ -3,7 +3,12 @@ package es.verdnatura.presentation.view.feature.pasillero.fragment
import android.content.Context
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout.VERTICAL
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager.HORIZONTAL
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.HORIZONTAL
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPasilleroBinding
import es.verdnatura.presentation.base.BaseFragment
@ -12,13 +17,15 @@ import es.verdnatura.presentation.view.feature.pasillero.adapter.PasillerosAdapt
class PasilleroFragment(
var tagName: String = ""
var tagName: String = "",
var isInitMenu: Boolean
) : BaseFragment<FragmentPasilleroBinding, PasilleroViewModel>(PasilleroViewModel::class) {
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
companion object {
fun newInstance(tagName: String) = PasilleroFragment(tagName)
fun newInstance(tagName: String, isInitMenu: Boolean) =
PasilleroFragment(tagName, isInitMenu = isInitMenu)
}
override fun onAttach(context: Context) {
@ -30,35 +37,93 @@ class PasilleroFragment(
override fun init() {
ma.hideBottomNavigation(View.VISIBLE)
if (!ma.isWorkingInDesign()) {
binding.mainToolbar.toolbarTitle.text = tagName
binding.mainToolbar.backButton.visibility = View.VISIBLE
binding.mainToolbarDesign.toolbarTitle.visibility = View.GONE
binding.mainToolbarDesign.toolbarSubtitle.visibility = View.GONE
binding.mainToolbarDesign.backButton.visibility = View.GONE
when (tagName) {
"Verdnatura" -> {
binding.mainToolbar.backButton.visibility = View.GONE
}
"Paletizadores" -> {
binding.mainToolbar.backButton.visibility = View.GONE
}
"Controlar ticket" -> {
binding.mainToolbar.backButton.visibility = View.GONE
}
"Verdnatura_design" -> {
binding.mainToolbar.backButton.visibility = View.GONE
}
else-> binding.mainToolbar.backButton.visibility = View.VISIBLE
}
} else {
when (tagName) {
"Verdnatura_design" -> {
binding.mainToolbarDesign.imageViewMenu.visibility = View.VISIBLE
binding.mainToolbarDesign.backButton.visibility = View.GONE
binding.mainToolbar.backButton.visibility = View.GONE
}
tagName -> {
binding.mainToolbarDesign.toolbarTitle.text = tagName
binding.mainToolbarDesign.imageViewMenu.visibility = View.GONE
}
}
/* binding.mainToolbarDesign.toolbarTitle.visibility = View.VISIBLE
binding.mainToolbar.toolbarTitle.visibility = View.GONE
binding.mainToolbar.toolbarSubtitle.visibility = View.GONE
binding.mainToolbar.toolbarTitleSeparator.visibility = View.GONE*/
binding.mainToolbarDesign.backButton.visibility=View.INVISIBLE
binding.mainToolbarDesign.backButton.setOnClickListener {
requireActivity().onBackPressed()
}
}
super.init()
}
override fun onCreate(savedInstanceState: Bundle?) {
if (tagName.equals("Verdnatura")) {
viewModel.inititializeDefaultData()
}
if (tagName.equals("Paletizadores")) {
viewModel.inititializeDefaultPallet()
when (tagName) {
"Verdnatura" -> {viewModel.inititializeDefaultData()}
"Paletizadores" -> viewModel.inititializeDefaultPallet()
"Gestión de buffer" -> viewModel.inititializeDefaultBuffer()
"Verdnatura_design" -> viewModel.inititializeDefaultDataInit()
}
if (tagName.equals("Gestión de buffer")) {
viewModel.inititializeDefaultBuffer()
}
super.onCreate(savedInstanceState)
}
override fun observeViewModel() {
with(viewModel) {
binding.pasillerosItems.adapter= PasillerosAdapter(pasillerositem, pasillerosItemClickListener!!)
/* val mLayoutManager: RecyclerView.LayoutManager = GridLayoutManager(
activity,
requireActivity()!!.resources.getInteger(R.integer.number_of_grid_items)
)*/
binding.pasillerosItems.adapter =
PasillerosAdapter(pasillerositem, pasillerosItemClickListener!!, isInitMenu)
binding.pasillerosItems.layoutManager =
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
}
super.observeViewModel()

View File

@ -281,4 +281,51 @@ class PasilleroViewModel : BaseViewModel() {
)
}
fun inititializeDefaultDataInit(){
_pasillerositem.add(
PasillerosItemVO(
7,
R.drawable.ic_corridor_ui,
"Pasilleros", R.string.Pasilleros,"Accede menú de los pasilleros:presacar, ver ticket, ubicador..."
)
)
//precontrol
_pasillerositem.add(
PasillerosItemVO(7,
R.drawable.ic_picker_ui,
"Sacadores",R.string.Sacadores,"Accede a sacar pedidos"
)
)
//sergio para que aparezca el nuevo menu
_pasillerositem.add(
PasillerosItemVO(
10,
R.drawable.ic_controller_ui,
"Controladores", R.string.Controladores,"Accede a la revisión de los tickets"
)
)
_pasillerositem.add(
PasillerosItemVO(
0,
R.drawable.ic_pallet_ui,
"Paletizadores", R.string.Paletizadores,"Accede al menú de paletizadores: paletizar, buffer..."
)
)
_pasillerositem.add(
PasillerosItemVO(
6,
R.drawable.ic_claim_ui,
"Reclamaciones", R.string.claims,"Accede al menú de reclamaciones"
)
)
}
}

View File

@ -1,5 +1,6 @@
package es.verdnatura.presentation.view.feature.presacador.fragment
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.drawable.Drawable
import android.media.MediaPlayer
@ -18,7 +19,6 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPreSacadorBinding
import es.verdnatura.domain.ConstAndValues.PRESACADOR
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.*
@ -36,13 +36,14 @@ import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
import es.verdnatura.presentation.view.feature.sacador.model.PlacementSupplyListVO
import es.verdnatura.presentation.view.feature.sacador.model.SaleVO
class EndSacadorFragment (
class EndSacadorFragment(
var collection: CollectionVO = CollectionVO(),
var type: String = ""
):
) :
BaseFragment<FragmentPreSacadorBinding, PreSacadorViewModel>(PreSacadorViewModel::class) {
var mperror: MediaPlayer? = null
var mpok: MediaPlayer? = null
//private var sales: ArrayList<PreSacadorItemVO> = ArrayList()
private lateinit var sales: MutableList<PreSacadorItemVO>
private lateinit var customDialog: CustomDialog
@ -64,10 +65,12 @@ class EndSacadorFragment (
private lateinit var customDialogThreeButtons: CustomDialogThreeButtons
private var ticketFk = ""
private var originalScanned = ""
private var positionUnmarked = -1
fun changevariables(){
fun changevariables() {
TODO("Refactor llevar variables i deixar soles una com positionToChange i quantityToChange")
}
private var typeCollectionMissing = ""
private var positionCollectionMissing = 0
private var quantityCollectionMissing = ""
@ -82,7 +85,6 @@ class EndSacadorFragment (
private var originalItemScan: String = ""
override fun onAttach(context: Context) {
if (context is OnPasillerosItemClickListener) pasillerosItemClickListener = context
super.onAttach(context)
@ -135,7 +137,8 @@ class EndSacadorFragment (
pasillerosItemClickListener?.onPasillerosItemClickListener(
PasillerosItemVO(
title = "Parking"
), "")
), ""
)
// parkingTicket(binding.scanInput.text.toString())
} else {
//if (binding.scanInput.text.length > 6){
@ -169,6 +172,7 @@ class EndSacadorFragment (
}
}
@SuppressLint("LogNotTimber")
override fun observeViewModel() {
with(viewModel) {
salesList.observe(viewLifecycleOwner, Observer {
@ -176,6 +180,29 @@ class EndSacadorFragment (
createSaleList(it)
})
responseItemShelvingUpdate.observe(viewLifecycleOwner, Observer {
if (!goBack) {
if (it.isError) {
ma.messageWithSound(it.errorMessage, it.isError, false)
} else {
saleTrackingReplace(positionUnmarked)
setTotalLines()
/* viewModel.saleTrackingDel(
getData(USER),
getData(PASSWORD),
saleFk = sales[positionUnmarked].saleFk,
"saleTracking_del"
)*/
goBack = false
}
}
})
placementSuppleyList.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE
if (!goBack) printShelvingResult(it)
@ -183,38 +210,37 @@ class EndSacadorFragment (
})
responseSalixMessage.observe(viewLifecycleOwner, Observer {
if (!goBack)
{
if (!goBack) {
if (it.isError) {
ma.messageWithSound(it.errorMessage,true,false)
ma.messageWithSound(it.errorMessage, true, false)
/* customDialog.setTitle("Error").setDescription(it.errorMessage)
.setOkButton("Aceptar") {
customDialog.dismiss()
}.show()*/
}
}
goBack=false
goBack = false
})
responseIncQuantity.observe(viewLifecycleOwner, Observer {
if (!goBack){
if (!goBack) {
if (it.isError) {
ma.messageWithSound(it.errorMessage, isError = true,true)
ma.messageWithSound(it.errorMessage, isError = true, true)
} else {
incresaseSuccesful()
setTotalLines()
}
}
goBack=false
goBack = false
})
responseParkingAdd.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
if (it.isError) {
ma.messageWithSound(it.errorMessage,true,false)
ma.messageWithSound(it.errorMessage, true, false)
/* customDialog.setTitle("Error").setDescription(it.errorMessage)
.setOkButton("Aceptar") {
customDialog.dismiss()
@ -227,13 +253,11 @@ class EndSacadorFragment (
responseSaleTrackingUpdate.observe(viewLifecycleOwner, Observer {
ma.messageWithSound(it.errorMessage, isError = it.isError,true)
ma.messageWithSound(it.errorMessage, isError = it.isError, true)
try {
sales.clear()
}
catch(e:Exception)
{
} catch (e: Exception) {
}
@ -250,14 +274,14 @@ class EndSacadorFragment (
responseSaleMoveSuccesful()
setTotalLines()
}
goBack=false
goBack = false
}
})
responseMissingTrash.observe(viewLifecycleOwner, Observer {
if (it.isError) {
ma.messageWithSound(it.errorMessage, isError = true,true)
ma.messageWithSound(it.errorMessage, isError = true, true)
} else {
missingTrashSuccesful()
@ -266,48 +290,84 @@ class EndSacadorFragment (
})
responseSaleGroupAdd.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility=GONE
binding.splashProgress.visibility = GONE
if (!goBack){
if (!goBack) {
if (it.isError) {
ma.messageWithSound(it.errorMessage, isError = true,true, isToasted = true)
ma.messageWithSound(it.errorMessage, isError = true, true, isToasted = true)
} else {
viewModel.sectorCollection_getSale(getData(USER),getData(PASSWORD),collection.collectionFk,getData(SECTORFK))
}}
viewModel.sectorCollection_getSale(
getData(USER),
getData(PASSWORD),
collection.collectionFk,
getData(SECTORFK)
)
}
}
})
responseSaleAddPrevOK.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility=GONE
binding.splashProgress.visibility = GONE
if (!goBack){
if (!goBack) {
if (it.isError) {
ma.messageWithSound(it.errorMessage, isError = true,true)
ma.messageWithSound(it.errorMessage, isError = true, true)
} else {
ma.messageWithSound("Previa ok", isError = false,false)
ma.messageWithSound("Previa ok", isError = false, false)
}
}
goBack=false
goBack = false
})
response.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
if (!goBack) {
if (it.isError) {
ma.messageWithSound(it.errorMessage, isError = true, true)
} else {
ma.messageWithSound("Previa ok", isError = false, false)
}
}
goBack = false
})
responseSaleupdateIsChecked.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility=GONE
binding.splashProgress.visibility = GONE
if (!goBack){
if (!goBack) {
if (it.isError) {
ma.messageWithSound(it.errorMessage, isError = true,true)
ma.messageWithSound(it.errorMessage, isError = true, true)
} else {
// ma.messageWithSound("Checked update ok", isError = false,false)
if (positionUnmarked != -1) {
}}
goBack=false
searchSaleCollection()
saleAdapter!!.notifyDataSetChanged()
positionUnmarked = -1
}
}
}
goBack = false
})
responseItemShelvingSaleSupplyAdd.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
if (!goBack) {
if (it.isError) {
ma.messageWithSound(it.errorMessage, isError = true, true)
searchSaleCollection()
}
}
goBack = false
})
responseCode.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE
@ -343,7 +403,7 @@ class EndSacadorFragment (
private fun responseSaleMoveSuccesful() {
Log.d("VERDNATURA::","responseSaleMove succesful")
Log.d("VERDNATURA::", "responseSaleMove succesful")
try {
sales[positionCollectionSplit].saldo = quantityCollectionSplit.toInt()
} catch (e: Exception) {
@ -360,7 +420,7 @@ class EndSacadorFragment (
val ticket =
"[" + sales[positionCollectionSplit].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionCollectionSplit].id + "/summary)"
val message =
"Se ha enviado a Split el articulo " + sales[positionCollectionSplit].itemFk +" del ticket " + ticket
"Se ha enviado a Split el articulo " + sales[positionCollectionSplit].itemFk + " del ticket " + ticket
/* viewModel.sendChekingPresence(
@ -369,7 +429,7 @@ class EndSacadorFragment (
message = message,
"sendChekingPresence"
)*/
sendSalixMessageNew(message,sales[positionCollectionSplit].salesPersonFk)
sendSalixMessageNew(message, sales[positionCollectionSplit].salesPersonFk)
}
@ -388,7 +448,7 @@ class EndSacadorFragment (
val ticket =
"[" + sales[positionIncreaseQuantity].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionIncreaseQuantity].id + "/summary)"
val message =
"Se ha modificado desde previa la cantidad original " + sales[positionIncreaseQuantity].quantity + " del artículo " + sales[positionIncreaseQuantity].itemFk +" a nueva cantidad: " + quantityIncrease + " del ticket " + ticket
"Se ha modificado desde previa la cantidad original " + sales[positionIncreaseQuantity].quantity + " del artículo " + sales[positionIncreaseQuantity].itemFk + " a nueva cantidad: " + quantityIncrease + " del ticket " + ticket
@ -402,7 +462,8 @@ class EndSacadorFragment (
var totalQuantity: Int = 0
try {
totalQuantity = sales[positionCollectionMissing].saldo.toInt() - quantityCollectionMissing.toInt()
totalQuantity =
sales[positionCollectionMissing].saldo.toInt() - quantityCollectionMissing.toInt()
} catch (e: Exception) {
}
@ -422,29 +483,30 @@ class EndSacadorFragment (
saleAdapter!!.notifyDataSetChanged()
var message=""
var message = ""
val ticket =
"[" + sales[positionCollectionMissing].id + "](https://salix.verdnatura.es/#!/ticket/" + sales[positionCollectionMissing].id + "/summary)"
when (typeCollectionMissing){
when (typeCollectionMissing) {
"TRUE"->{
message = "Se ha enviado desde previa a Basura " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket
"TRUE" -> {
message =
"Se ha enviado desde previa a Basura " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket
}
"FALSE"->{
message= "Se ha enviado desde previa a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket
"FALSE" -> {
message =
"Se ha enviado desde previa a Faltas la cantidad de " + totalQuantity + " del articulo " + sales[positionCollectionMissing].itemFk + " ticket " + ticket
}
"reject"->{
var quantityOriginal=totalQuantity.toInt()+quantityCollectionMissing.toInt()
message = "Se ha modificado desde previa la cantidad de " +quantityOriginal+ " del artículo " + sales[positionCollectionMissing].itemFk + " a nueva cantidad: " + quantityCollectionMissing+ " del ticket " + ticket
"reject" -> {
var quantityOriginal = totalQuantity.toInt() + quantityCollectionMissing.toInt()
message =
"Se ha modificado desde previa la cantidad de " + quantityOriginal + " del artículo " + sales[positionCollectionMissing].itemFk + " a nueva cantidad: " + quantityCollectionMissing + " del ticket " + ticket
}
}
@ -452,11 +514,11 @@ class EndSacadorFragment (
sendSalixMessageNew(message, sales[positionCollectionMissing].salesPersonFk)
searchSaleCollection()
}
private fun sendSalixMessageNew(message: String, workerId: String) {
if (!goBack){
if (!goBack) {
if (!workerId.isNullOrEmpty())
viewModel.sendChekingPresence(
@ -464,21 +526,26 @@ class EndSacadorFragment (
workerId = workerId,
message = message,
"sendChekingPresence"
)}
)
}
}
//CREATE LIST
private fun searchSaleCollection(){
private fun searchSaleCollection() {
binding.splashProgress.visibility = View.VISIBLE
viewModel.sectorCollection_getSale(getData(USER),getData(PASSWORD),collection.collectionFk, vSectorFk = getData(SECTORFK))
viewModel.sectorCollection_getSale(
getData(USER),
getData(PASSWORD),
collection.collectionFk,
vSectorFk = getData(SECTORFK)
)
}
private fun searchTicket(ticketFk: String) {
Log.i(TAG, "Escaneamos ticket en previa"+ticketFk)
Log.i(TAG, "Escaneamos ticket en previa" + ticketFk)
ticket = ticketFk
/* viewModel.ticketToPrePrepare(
usuario = getData(USER),
getData(PASSWORD),
@ -489,21 +556,23 @@ class EndSacadorFragment (
if (!ticketFk.isNullOrEmpty())
binding.splashProgress.visibility = View.VISIBLE
viewModel.sectorCollectionSaleGroup_add(getData(USER),getData(PASSWORD),ticketFk,
collection.collectionFk,"sectorCollectionSaleGroup_add")
viewModel.sectorCollectionSaleGroup_add(
getData(USER), getData(PASSWORD), ticketFk,
collection.collectionFk, "sectorCollectionSaleGroup_add"
)
}
private fun createSaleList(salesList: List<PreSacadorItemVO>) {
binding.splashProgress.visibility = GONE
if (salesList.isNullOrEmpty()) {
ma.messageWithSound("Colección sin tickets. Escanea tickets para añadirlos",false,false,"Pre Sacador")
ma.messageWithSound(
"Colección sin tickets. Escanea tickets para añadirlos",
false,
false,
"Pre Sacador"
)
/* customDialog.setTitle("Pre Sacador")
.setDescription("No hemos podido obtener movimientos para el ticket escaneado")
.setKoButton("Cancelar") {
customDialog.dismiss()
}.show()*/
} else {
binding.mainToolbar.toolbarTitle.text = ticket
sales = ArrayList()
@ -514,20 +583,20 @@ class EndSacadorFragment (
//sergio: se tiene que ordenar por el pickingOrder del primer carro (Pako)
for (s in sales){
Log.d("VERDNATURA::","sales "+s.longName)
Log.d("VERDNATURA::","sales "+s.salesPersonFk)
for (s in sales) {
// Log.d("VERDNATURA::","sales comercial"+s.salesPersonFk)
//sergio: para que no de error si no hay carros. Ya está asignado a 0 el pickingorder si no hay item en el carro
if (!s.carros.isNullOrEmpty()){
s.pickingOrder=s.carros.get(0).pickingOrder
if (!s.carros.isNullOrEmpty()) {
s.pickingOrder = s.carros.get(0).pickingOrder
}
}
var sortedSales=sales.sortedBy{ it.pickingOrder }
var sortedSales = sales.sortedBy { it.pickingOrder }
//sergio: Se ordena las sales por ellas mismas con With
sales.sortWith(compareBy({it.pickingOrder}))
sales.sortWith(compareBy({ it.pickingOrder }))
lm = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
@ -599,11 +668,13 @@ class EndSacadorFragment (
}
private fun saleTracking_addPrevOK(){
private fun saleTracking_addPrevOK() {
binding.splashProgress.visibility=VISIBLE
viewModel.saleTracking_addPrevOK(usuario = getData(USER), password = getData(PASSWORD),
vSectorCollectionFk = collection.collectionFk, callFunction = "saleTracking_addPrevOK")
binding.splashProgress.visibility = VISIBLE
viewModel.saleTracking_addPrevOK(
usuario = getData(USER), password = getData(PASSWORD),
vSectorCollectionFk = collection.collectionFk, callFunction = "saleTracking_addPrevOK"
)
}
@ -699,7 +770,6 @@ class EndSacadorFragment (
private fun saleTrackingReplace(position: Int) {
if (sales[position].picked == sales[position].quantity) {
viewModel.saleTracking_updateIsChecked(
@ -710,7 +780,7 @@ class EndSacadorFragment (
callFunction = "saleTracking_updateIsChecked"
)
}
if (sales[position].picked==0){
if (sales[position].picked == 0) {
viewModel.saleTracking_updateIsChecked(
usuario = getData(USER),
password = getData(PASSWORD),
@ -732,8 +802,6 @@ class EndSacadorFragment (
)*/
}
private fun unMarkLine(position: Int) {
@ -745,14 +813,24 @@ class EndSacadorFragment (
sales[position].picked = 0
saleAdapter!!.notifyDataSetChanged()
setListPosition(position)
viewModel.itemShelving_updateFromSale(
usuario = getData(USER),
password = getData(PASSWORD),
saleFk = sales[position].idMovimiento,
visible = sales[position].quantity.toString(),
"itemShelving_updateFromSale"
)
positionUnmarked = position
//sergio: anterior previa
/* viewModel.saleTrackingDel(
usuario =getData(USER),
password = getData(PASSWORD),
saleFk = sales[position].idMovimiento, "saleTracking_del"
)*/
//sergio: previa nuevo
saleTrackingReplace(position)
setTotalLines()
//sergio: previa se pone después itemshelving_update
//saleTrackingReplace(positionUnmarked)
//setTotalLines()
scanRequest()
customDialog.dismiss()
}.setKoButton("Cancelar") {
@ -910,6 +988,15 @@ class EndSacadorFragment (
sales[storedPosition].carros[storedShelvingPosition].stockTotal =
(shelvingVisible.toInt() - customDialogList.getValue().toInt()).toString()
//sergio: se añade línea que actualiza la pantalla. Es posible que falle
// el itemShelvingSaleSupplyAdd que se actualiza pantalla si falla se actualizará todo
sales[storedPosition].carros[storedShelvingPosition].visible =
"(" + (shelvingVisible.toInt() - customDialogList.getValue()
.toInt()).toString() + ")"
viewModel.itemShelvingSaleSupplyAdd(
usuario = getData(USER),
password = getData(PASSWORD),
@ -1054,7 +1141,7 @@ class EndSacadorFragment (
private fun setToolBar() {
binding.mainToolbar.toolbarSubtitle.visibility = View.VISIBLE
val listIcons:ArrayList<ImageView> = ArrayList()
val listIcons: ArrayList<ImageView> = ArrayList()
val iconParking = ImageView(context)
iconParking.setImageResource(R.drawable.ic_local_parking_black_24dp)
@ -1063,8 +1150,8 @@ class EndSacadorFragment (
iconEraser.setImageResource(R.drawable.previous_delete)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
iconParking.tooltipText=getTooltip(R.drawable.ic_local_parking_black_24dp)
iconEraser.tooltipText=getTooltip(R.drawable.previous_delete)
iconParking.tooltipText = getTooltip(R.drawable.ic_local_parking_black_24dp)
iconEraser.tooltipText = getTooltip(R.drawable.previous_delete)
}
@ -1078,8 +1165,8 @@ class EndSacadorFragment (
/*if (item == iconEraser) {
} else*/
when (item){
iconParking.drawable-> pasillerosItemClickListener?.onPasillerosItemClickListener(
when (item) {
iconParking.drawable -> pasillerosItemClickListener?.onPasillerosItemClickListener(
PasillerosItemVO(
title = "Parking"
), ""
@ -1137,7 +1224,7 @@ class EndSacadorFragment (
companion object {
fun newInstance(collection: CollectionVO?, entrypoint: String) = EndSacadorFragment(
collection!!,entrypoint
collection!!, entrypoint
)
}
@ -1149,10 +1236,11 @@ class EndSacadorFragment (
super.onPause()
}
override fun onResume(){
goBack=false
override fun onResume() {
goBack = false
super.onResume()
}
private fun showErrorMessage(text: String) {
customDialog.setTitle("Error al marcar la linea").setDescription(text)
.setKoButton("Cerrar") {
@ -1213,9 +1301,9 @@ class EndSacadorFragment (
when (action) {
getString(R.string.Agregar) -> increaseQuantity(position, value)
getString(R.string.BasuraRechazar) -> TrashMissingReject(position, value,"TRUE")
getString(R.string.Faltas) -> TrashMissingReject(position, value,"FALSE")
getString(R.string.Reject) -> TrashMissingReject(position, value,"reject")
getString(R.string.BasuraRechazar) -> TrashMissingReject(position, value, "TRUE")
getString(R.string.Faltas) -> TrashMissingReject(position, value, "FALSE")
getString(R.string.Reject) -> TrashMissingReject(position, value, "reject")
getString(R.string.Split) -> split(position, value)
}
@ -1224,6 +1312,7 @@ class EndSacadorFragment (
customDialogThreeButtons.dismiss()
}
}
private fun TrashMissingReject(
position: Int,
quantity: String,
@ -1304,8 +1393,8 @@ class EndSacadorFragment (
private fun split(position: Int, quantity: String) {
positionCollectionSplit=position
quantityCollectionSplit=quantity
positionCollectionSplit = position
quantityCollectionSplit = quantity
var totalQuantity: Int = 0
try {
@ -1319,7 +1408,7 @@ class EndSacadorFragment (
quantity = totalQuantity.toString(),
originalQuantity = sales[position].quantity.toString(), "saleMove"
)
Log.d("VERDNATURA::","responseSaleMove enviando")
Log.d("VERDNATURA::", "responseSaleMove enviando")
/*
try {
sales[position].saldo = quantity.toInt()
@ -1493,7 +1582,7 @@ class EndSacadorFragment (
"sendChekingPresence"
)
Log.d("VERDNATURA","el trabajador es "+sales[position].salesPersonFk)
Log.d("VERDNATURA", "el trabajador es " + sales[position].salesPersonFk)
try {
sales[position].saldo = quantity.toInt()
} catch (e: Exception) {
@ -1505,6 +1594,7 @@ class EndSacadorFragment (
}
private fun increaseQuantity(position: Int, quantity: String) {
positionIncreaseQuantity = position
quantityIncrease = quantity

View File

@ -631,6 +631,7 @@ class PreSacadorFragment :
sales[position].picked = 0
saleAdapter!!.notifyDataSetChanged()
setListPosition(position)
viewModel.saleTrackingDel(
usuario =getData(USER),
password = getData(PASSWORD),
@ -700,11 +701,14 @@ class PreSacadorFragment :
} else {
itemShelvingFkStored = itemShelvingFk
binding.splashProgress.visibility = View.VISIBLE
viewModel.getIdFromCode(
usuario = getData(USER),
password = getData(PASSWORD),
code = customDialogList.getValueTwo(), "barcodeToItem"
)
customDialogList.dismiss()
}
scanRequest()

View File

@ -38,6 +38,9 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
val response: LiveData<ResponseItemVO>
get() = _response
private val _responseItemShelvingSaleSupplyAdd by lazy { MutableLiveData<ResponseItemVO>() }
val responseItemShelvingSaleSupplyAdd: LiveData<ResponseItemVO>
get() = _responseItemShelvingSaleSupplyAdd
private val _responseSaleTrackingUpdate by lazy { MutableLiveData<ResponseItemVO>() }
val responseSaleTrackingUpdate: LiveData<ResponseItemVO>
@ -72,6 +75,10 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
val responseMissingTrash: LiveData<ResponseItemVO>
get() = _responseMissingTrash
private val _responseItemShelvingUpdate by lazy { MutableLiveData<ResponseItemVO>() }
val responseItemShelvingUpdate: LiveData<ResponseItemVO>
get() = _responseItemShelvingUpdate
//sergio: previa nuevo
private val _collectionList by lazy { MutableLiveData<CollectionListVO>() }
@ -289,20 +296,20 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
{
override fun onFailure(call: Call<String>, t: Throwable)
{
_response.value = ResponseItemVO(isError = true, errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!))
_responseItemShelvingSaleSupplyAdd.value = ResponseItemVO(isError = true, errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!))
}
override fun onResponse(call: Call<String>, response: Response<String>)
{
if (response.body() == null)
{
_response.value = ResponseItemVO(
_responseItemShelvingSaleSupplyAdd.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())
)
} else
{
_response.value = ResponseItemVO(isError = false, response = response.body()!!)
_responseItemShelvingSaleSupplyAdd.value = ResponseItemVO(isError = false, response = response.body()!!)
}
}
})
@ -544,11 +551,11 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
{
override fun onResponse(call: Call<Boolean>, response: Response<Boolean>)
{
if (!response.isSuccessful)
if (!response.isSuccessful ||response.message()=="false")
{
_responseSalixMessage.value = ResponseItemVO(
isError = true,
errorMessage = "Error en la llamada $calledFunction al enviar mensaje rocket." + getMessageFromAllResponse(
errorMessage = "Error al enviar mensaje rocket." + getMessageFromAllResponse(
nameofFunction(this),response.message()
)
)
@ -559,10 +566,10 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
override fun onFailure(call: Call<Boolean>, t: Throwable)
{
/* _responseSalixMessage.value = ResponseItemVO(
_responseSalixMessage.value = ResponseItemVO(
isError = true,
errorMessage = "Error en la llamada $calledFunction al enviar mensaje rocket." + getMessageFromAllResponse(
nameofFunction(this),t.message!!))*/
errorMessage = "Error al enviar mensaje rocket." + getMessageFromAllResponse(
nameofFunction(this),t.message!!))
}
})
@ -797,4 +804,35 @@ class PreSacadorViewModel(context: Context) : BaseViewModel()
})
}
fun itemShelving_updateFromSale(usuario: String, password: String, saleFk: String,visible:String,callFunction:String)
{
getSacadorControladorUserCase.itemShelving_updateFromSale(usuario, password, saleFk, visible)
.enqueue(object : Callback<Unit>
{
override fun onFailure(call: Call<Unit>, t: Throwable)
{
_responseItemShelvingUpdate.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!)
)
}
override fun onResponse(call: Call<Unit>, response: Response<Unit>)
{
if (!response.isSuccessful )
{
_responseItemShelvingUpdate.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this),response.message())
)
} else
{
_responseItemShelvingUpdate.value =
ResponseItemVO(isError = false, response = response.message()!!)
}
}
})
}
}

View File

@ -38,7 +38,7 @@ class QrFragmentViewModel(context: Context) : BaseViewModel() {
override fun onResponse(call: Call<String>, response: Response<String>) {
if (response.raw().code() == 555) {
if (response.raw().code() == 555 || response.raw().code()==403) {
//Log.i("VERDNATURA:","UserError ${response.raw().message().toString()}")
// var message = response.raw().message().toString()
@ -46,7 +46,7 @@ class QrFragmentViewModel(context: Context) : BaseViewModel() {
_qrresponse.value = ResponseItemVO(
response = "",
isError = true,
errorMessage = "Ususario sin permisos"
errorMessage = "Usuario sin permisos para realizar la acción"
)

View File

@ -54,7 +54,7 @@ class SacadorFragment :
setToolBar()
setEvents()
var working_in_test=false
var working_in_test=false //sergio: Ok en app
if (!working_in_test) {
viewModel.collectionGetSalix(token = getData(TOKEN))
@ -68,6 +68,8 @@ class SacadorFragment :
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Use the Kotlin extension in the fragment-ktx artifact
@ -77,7 +79,7 @@ class SacadorFragment :
resultTagMode=result
Log.d("VERDNATURA::","el result es "+result)
if (result.equals("complete") && getData(TAGSTYPE).equals("SmartTags")) {
viewModel.collectionNew(getData(USER),
viewModel.collection_new_wagon(getData(USER),
getData(PASSWORD), getData(SECTORFK), getData(WAGON), getData(TAGSTYPE),"collection_new_wagon")
}
@ -123,7 +125,7 @@ class SacadorFragment :
iconAdd.drawable -> {
binding.splashProgress.visibility = View.VISIBLE
// checkTagsMode()
viewModel.collectionNew(getData(USER),
viewModel.collection_new_wagon(getData(USER),
getData(PASSWORD),getData(SECTORFK),getData(WAGON),getData(TAGSTYPE),"collection_new_wagon")
}
iconVehicleIn.drawable-> ma.onVehicleSelected(SacadorFragment.TAG)
@ -156,7 +158,7 @@ class SacadorFragment :
} else {
Log.d("VERDNATURA::","ResultMode"+resultTagMode)
if (resultTagMode.equals("complete")) {
viewModel.collectionNew(getData(USER),
viewModel.collection_new_wagon(getData(USER),
getData(PASSWORD), getData(SECTORFK), getData(WAGON), getData(TAGSTYPE),"collection_new_wagon")
} else {
requireActivity().addFragment(
@ -207,7 +209,7 @@ class SacadorFragment :
//sergio:para asegurarnos que aparece en pantalla.
var working_in_test=false
var working_in_test=false //sergio: ok en app SACADOR
if (!working_in_test) {
viewModel.collectionGetSalix(token=getData(TOKEN))

View File

@ -120,13 +120,13 @@ class SacadorViewModel(context: Context) : BaseViewModel() {
})
}
fun collectionNew(usuario: String, password: String, sectorFk: String, wagons: String,tagtype:String,callFunction:String){
fun collection_new_wagon(usuario: String, password: String, sectorFk: String, wagons: String,tagtype:String,callFunction:String){
getSacadorControladorUserCase.collectionNew(usuario, password, sectorFk, wagons,tagtype).enqueue(
object :
Callback<String> {
override fun onFailure(call: Call<String>, t: Throwable) {
_response.value =
ResponseItemVO(isError = true, errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!)+".Es posible que tengas colecciones pendientes, falle bbdd o Internet")
ResponseItemVO(isError = true, errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!))
}

View File

@ -65,7 +65,7 @@ class SaleVO(
var saleGroupFk: String = "",
var packingShelve:String="",
var picked:String=""
var picked:String="",
)

View File

@ -10,15 +10,15 @@ import es.verdnatura.databinding.FragmentControladorBinding
import es.verdnatura.domain.ConstAndValues
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import es.verdnatura.presentation.view.feature.precontrol.ShowTicketViewModel
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
class ShowTicketFragment: BaseFragment<FragmentControladorBinding, ShowTicketViewModel>(
ShowTicketViewModel::class) {
class ShowTicketFragment : BaseFragment<FragmentControladorBinding, ShowTicketViewModel>(
ShowTicketViewModel::class
) {
private var goBack:Boolean = false
private var onCollectionSelectedListener : OnCollectionSelectedListener? = null
private var goBack: Boolean = false
private var onCollectionSelectedListener: OnCollectionSelectedListener? = null
override fun getLayoutId(): Int = R.layout.fragment_controlador
private var type = ""
@ -35,6 +35,8 @@ class ShowTicketFragment: BaseFragment<FragmentControladorBinding, ShowTicketVie
binding.splashProgress.visibility = View.GONE
binding.mainToolbar.toolbarTitle.text = getString(R.string.verticket)
binding.mainToolbar.backButton.visibility=View.VISIBLE
setEvents()
super.init()
}
@ -46,11 +48,11 @@ class ShowTicketFragment: BaseFragment<FragmentControladorBinding, ShowTicketVie
override fun onCreate(savedInstanceState: Bundle?) {
type=ConstAndValues.VERTICKET
type = ConstAndValues.VERTICKET
super.onCreate(savedInstanceState)
}
private fun setEvents(){
private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
@ -59,7 +61,7 @@ class ShowTicketFragment: BaseFragment<FragmentControladorBinding, ShowTicketVie
binding.scanInput.requestFocus()
binding.scanInput.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
goBack=false;
goBack = false
if (!binding.scanInput.text.isNullOrEmpty()) {
binding.splashProgress.visibility = View.VISIBLE
@ -81,13 +83,13 @@ class ShowTicketFragment: BaseFragment<FragmentControladorBinding, ShowTicketVie
}
override fun observeViewModel() {
with(viewModel){
with(viewModel) {
collectionTicketList.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = View.GONE
if (it.isError){
ma.messageWithSound(it.errorMessage,true,false)
}else{
if (!goBack)navigateToCollectionList(it)
if (it.isError) {
ma.messageWithSound(it.errorMessage, true, false)
} else {
if (!goBack) navigateToCollectionList(it)
goBack = false
}
@ -99,9 +101,9 @@ class ShowTicketFragment: BaseFragment<FragmentControladorBinding, ShowTicketVie
}
private fun navigateToCollectionList(collection: CollectionVO){
private fun navigateToCollectionList(collection: CollectionVO) {
onCollectionSelectedListener?.onCollectionSelected(collection, ConstAndValues.VERTICKET)
}
}
}

View File

@ -90,7 +90,7 @@ class AutomaticAddItemFragment(
}
listItems = ArrayList()
binding.splashProgress.visibility = View.VISIBLE
viewModel.itemShelvingMake_multi( getData(USER),getData(PASSWORD),shelvingFk,listString,deep.toString(),getData(WAREHOUSEFK),"1")
viewModel.itemShelvingMake_multi( getData(USER),getData(PASSWORD),shelvingFk,listString,getData(WAREHOUSEFK))
}
binding.mainToolbar.backButton.setOnClickListener {

View File

@ -19,8 +19,8 @@ class AutomaticAddItemViewModel (context: Context): BaseViewModel() {
get() = _response
fun itemShelvingMake_multi(usuario:String,password:String,shelving:String,items:List<String>,deep:String,warehouse:String,level:String){
getUbicadorUserCase.itemShelvingMake_multi(usuario,password,shelving,items,deep,warehouse,level).enqueue(object :
fun itemShelvingMake_multi(usuario:String,password:String,shelving:String,items:List<String>,warehouse:String){
getUbicadorUserCase.itemShelvingMake_multi(usuario,password,shelving,items,warehouse).enqueue(object :
Callback<String> {
override fun onFailure(call: Call<String>, t: Throwable) {
_response.value = ResponseItemVO(isError = true,errorMessage ="Error al guardar items itemShelvingMake."+t.message!!)

View File

@ -93,7 +93,7 @@ class UbicadorViewModel(context: Context) : BaseViewModel() {
fun itemShelvingMake(usuario:String,password:String,shelving:String,item:String,deep:String,quantity:String,packing:String,warehouse:String,level:String,callFunction:String,grouping: String){
getUbicadorUserCase.itemShelvingMake(usuario,password,shelving,item,deep,quantity,packing,warehouse,level,grouping).enqueue(object : Callback<String>{
getUbicadorUserCase.itemShelvingMake(usuario,password,shelving,item,quantity,packing,warehouse,grouping).enqueue(object : Callback<String>{
override fun onFailure(call: Call<String>, t: Throwable) {
_responseMake.value = ResponseItemVO(isError = true,errorMessage = getMessageFromAllResponse(nameofFunction(this),t.message!!))
}

View File

@ -60,7 +60,16 @@ class WorkermistakeFragment( var entryPoint: String = ""
}
override fun onCreate(savedInstanceState: Bundle?) {
var working_in_test=false //sergio:No descomentar fins que Salix puje versió 8.3
if (!working_in_test){
viewModel.department_getHasMistake(usuario = getData(USER),password = getData(PASSWORD))
}else{
viewModel.department_getHasMistakeSalix(getData(TOKEN))
}
super.onCreate(savedInstanceState)
}

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1dp"
android:color="#FFF" >
</stroke>
<corners
android:radius="10dp"/>
<size
android:width="20dp"
android:height="20dp" />
</shape>

View File

@ -0,0 +1,18 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="2dp"
android:color="#FFF" >
</stroke>
<corners
android:radius="10dp"/>
<padding
android:top="5dp"
android:bottom="5dp"
android:left="5dp"
android:right="5dp"/>
</shape>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="rectangle"
android:useLevel="false"
android:innerRadius="2dp"
android:visible="true">
<solid android:color="@color/verdnatura_brown_grey"/>
<corners android:radius="10dp" />
<size
android:width="40dp"
android:height="20dp" />
</shape>

View File

@ -0,0 +1,8 @@
<!-- drawable/emoticon_confused_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="#000" android:pathData="M20 12A8 8 0 1 0 12 20A8 8 0 0 0 20 12M22 12A10 10 0 1 1 12 2A10 10 0 0 1 22 12M15.5 8A1.5 1.5 0 1 1 14 9.5A1.54 1.54 0 0 1 15.5 8M10 9.5A1.5 1.5 0 1 1 8.5 8A1.54 1.54 0 0 1 10 9.5M17 15H13A4 4 0 0 0 9.53 17L7.8 16A6 6 0 0 1 13 13H17Z" />
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M8.3,12.5h4.2v25H8.3V12.5M14.6,12.5h2.1v25h-2.1V12.5M18.8,12.5H25v25h-6.2V12.5M27.1,12.5h2.1v25h-2.1V12.5M33.3,12.5h4.2v25h-4.2V12.5M39.6,12.5h2.1v25h-2.1V12.5M4.2,8.3v8.3H0V8.3C0,6 1.9,4.2 4.2,4.2h8.3v4.2H4.2M45.8,4.2C48.1,4.2 50,6 50,8.3v8.3h-4.2V8.3h-8.3V4.2H45.8M4.2,33.3v8.3h8.3v4.2H4.2C1.9,45.8 0,44 0,41.7v-8.3H4.2M45.8,41.7v-8.3H50v8.3c0,2.3 -1.9,4.2 -4.2,4.2h-8.3v-4.2H45.8z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#F7931E" android:pathData="M8.3,12.5h4.2v25H8.3V12.5M14.6,12.5h2.1v25h-2.1V12.5M18.8,12.5H25v25h-6.2V12.5M27.1,12.5h2.1v25h-2.1V12.5M33.3,12.5h4.2v25h-4.2V12.5M39.6,12.5h2.1v25h-2.1V12.5M4.2,8.3v8.3H0V8.3C0,6 1.9,4.2 4.2,4.2h8.3v4.2H4.2M45.8,4.2C48.1,4.2 50,6 50,8.3v8.3h-4.2V8.3h-8.3V4.2H45.8M4.2,33.3v8.3h8.3v4.2H4.2C1.9,45.8 0,44 0,41.7v-8.3H4.2M45.8,41.7v-8.3H50v8.3c0,2.3 -1.9,4.2 -4.2,4.2h-8.3v-4.2H45.8z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFF" android:pathData="M28.8,46.4c0.6,-4.1 4.2,-7.1 8.4,-7.1h0.4v-3.6h-0.4c-3.3,0 -6.4,1.4 -8.6,3.7V28.3c2.8,-0.4 5.4,-1.8 7.4,-3.9c2.5,-2.5 3.8,-5.8 3.8,-9.5v-1.8H38c-3.4,0 -6.6,1.4 -9.2,4c-0.1,0.1 -0.2,0.3 -0.3,0.4V8.8c0,-2.4 -0.8,-4.5 -2.4,-6.3c-1.7,-1.7 -3.8,-2.6 -6,-2.6c-4.1,0.2 -7.5,3.2 -8.3,7.3C7.5,8 4.4,11.9 4.4,16.5v10.3l5.7,-4.3l3.2,3.2l3.6,-3.2l5.6,4.4V16.5c0,-4.4 -3,-8.2 -6.9,-9.1c0.7,-2.1 2.6,-3.6 4.7,-3.6c1.3,0 2.5,0.6 3.5,1.6c0.9,0.9 1.4,2.2 1.4,3.7v32.2c-1.4,-1.1 -3.2,-1.7 -5.1,-1.7h-0.4v3.6h0.4c2.2,0 4.1,1.4 4.8,3.5H8.7V50h37v-3.6H28.8zM36.1,17c-0.4,1.7 -1.3,3.4 -2.5,4.9c-1.4,1.4 -3,2.3 -4.8,2.7c0.3,-1.7 1.2,-3.5 2.6,-4.9C32.8,18.3 34.4,17.4 36.1,17z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFF" android:pathData="M20.5,36.4l-9.1,-9.1l3.2,-3.2l5.9,5.9l15,-15l3.2,3.2M25,0L4.5,9.1v13.6C4.5,35.3 13.3,47.1 25,50c11.7,-2.9 20.5,-14.7 20.5,-27.3V9.1L25,0z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#F7931E" android:pathData="M20.5,36.4l-9.1,-9.1l3.2,-3.2l5.9,5.9l15,-15l3.2,3.2M25,0L4.5,9.1v13.6C4.5,35.3 13.3,47.1 25,50c11.7,-2.9 20.5,-14.7 20.5,-27.3V9.1L25,0z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFF" android:pathData="M43,50c2,0 4,0 6,0c0.8,0 1,-0.2 0.9,-1c0,-3.9 0,-7.9 0,-11.8c0,-0.9 -0.3,-1.1 -1.1,-1.1c-2.9,0 -5.8,0 -8.8,0c-0.8,0 -1.3,-0.2 -1.9,-0.8c-3,-3.1 -6.1,-6.2 -9.3,-9.2c-0.9,-0.8 -1.3,-1.7 -1.3,-3c0.1,-1.9 0.1,-3.9 0,-5.8c0,-0.8 0.2,-1.2 0.9,-1.5c3.4,-1.5 5.6,-5.5 4.4,-9.7c-0.8,-2.9 -3.5,-5.5 -6.6,-6c-3.2,-0.5 -6.7,1.1 -8.4,3.8c-2.5,3.9 -1.2,9.8 3.4,11.8c0.8,0.3 1,0.8 1,1.6c-0.1,2.2 -0.1,4.4 0,6.6c0,0.7 -0.2,1.2 -0.7,1.6c-3.3,3.3 -6.6,6.6 -9.9,9.9c-0.5,0.5 -1,0.7 -1.7,0.7c-3,0 -5.9,0 -8.9,0c-0.8,0 -1.2,0.1 -1.1,1.1c0.1,3.9 0,7.9 0,11.8c0,0.7 0.2,1 0.9,1c4,0 8,0 11.9,0c0.7,0 1,-0.2 1,-1c0,-2.2 0,-4.3 0,-6.5c0,-0.5 0,-0.9 0.4,-1.3c3.4,-3.5 6.7,-7 10.1,-10.6c0.6,-0.7 1,-0.5 1.5,0.1c3.3,3.5 6.5,7 9.9,10.4c0.4,0.4 0.4,0.8 0.4,1.3c0,2.2 0,4.4 0,6.6c0,0.7 0.2,1 0.9,1C39.1,49.9 41.1,50 43,50z"/>
<path android:fillColor="#FFF" android:pathData="M43,50c-2,0 -4,0 -6,0c-0.8,0 -1,-0.2 -0.9,-1c0,-2.2 0,-4.4 0,-6.6c0,-0.5 0,-0.9 -0.4,-1.3c-3.3,-3.4 -6.6,-6.9 -9.9,-10.4c-0.5,-0.6 -0.9,-0.7 -1.5,-0.1c-3.3,3.6 -6.7,7.1 -10.1,10.6c-0.4,0.4 -0.4,0.8 -0.4,1.3c0,2.2 0,4.3 0,6.5c0,0.8 -0.2,1 -1,1c-4,0 -8,0 -11.9,0C0.2,50 0,49.8 0,49c0,-3.9 0,-7.9 0,-11.8c0,-0.9 0.3,-1.1 1.1,-1.1c3,0 5.9,0 8.9,0c0.7,0 1.2,-0.2 1.7,-0.7c3.3,-3.3 6.6,-6.6 9.9,-9.9c0.5,-0.5 0.7,-0.9 0.7,-1.6c-0.1,-2.2 -0.1,-4.4 0,-6.6c0,-0.8 -0.2,-1.3 -1,-1.6c-4.6,-2 -5.8,-7.9 -3.4,-11.8c1.7,-2.7 5.2,-4.3 8.4,-3.8c3.1,0.5 5.8,3.1 6.6,6c1.2,4.2 -1,8.2 -4.4,9.7c-0.7,0.3 -0.9,0.8 -0.9,1.5c0.1,1.9 0.1,3.9 0,5.8c-0.1,1.3 0.4,2.1 1.3,3c3.1,3 6.2,6.1 9.3,9.2c0.6,0.6 1.1,0.8 1.9,0.8c2.9,0 5.8,0 8.8,0c0.8,0 1.1,0.1 1.1,1.1c-0.1,3.9 0,7.9 0,11.8c0,0.7 -0.2,1 -0.9,1C47,49.9 45,50 43,50z"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector android:height="24dp"
android:viewportHeight="50"
android:viewportWidth="50"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFF" android:pathData="M25,18.2c-3.8,0 -6.8,3.1 -6.8,6.8s3.1,6.8 6.8,6.8s6.8,-3.1 6.8,-6.8S28.8,18.2 25,18.2M25,36.4c-6.3,0 -11.4,-5.1 -11.4,-11.4S18.7,13.6 25,13.6S36.4,18.7 36.4,25S31.3,36.4 25,36.4M25,8C13.6,8 3.9,15 0,25c3.9,10 13.6,17 25,17S46.1,35 50,25C46.1,15 36.4,8 25,8z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#F7931E" android:pathData="M25,18.2c-3.8,0 -6.8,3.1 -6.8,6.8s3.1,6.8 6.8,6.8s6.8,-3.1 6.8,-6.8S28.8,18.2 25,18.2M25,36.4c-6.3,0 -11.4,-5.1 -11.4,-11.4S18.7,13.6 25,13.6S36.4,18.7 36.4,25S31.3,36.4 25,36.4M25,8C13.6,8 3.9,15 0,25c3.9,10 13.6,17 25,17S46.1,35 50,25C46.1,15 36.4,8 25,8z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFF" android:pathData="M0,22.2h22.2V0H0M0,50h22.2V27.8H0M27.8,50H50V27.8H27.8M27.8,0v22.2H50V0"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#F7931E" android:pathData="M0,22.2h22.2V0H0M0,50h22.2V27.8H0M27.8,50H50V27.8H27.8M27.8,0v22.2H50V0"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFF" android:pathData="M5.7,1.7h38.5v27h-38.5z"/>
<path android:fillColor="#FFF" android:pathData="M44.3,34.2l0,3.4l-5.7,0l0,-3.2l-5.3,0l0,3.2l-5.7,0l0,-3.2l-5.3,0l0,3.2l-5.7,0l0,-3.2l-5.2,0l0,3.2l-5.7,0l0,-3.2l-5.3,0l0,3.2l0,0l0,5.3l0,0l0,5.9l5.3,0l0,-5.9l5.7,0l0,0l5.2,0l0,0l5.7,0l0,5.9l5.3,0l0,-5.9l5.7,0l0,0l5.3,0l0,0l5.7,0l0,5.7l5.3,0l0,-5.7l0,-5.3l0,-3.4z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFF" android:pathData="M42.6,16.2C42.6,7.3 35.4,0 26.5,0H7.4v50h8.8V32.4h10.3C35.4,32.4 42.6,25.1 42.6,16.2zM16.2,8.8h10.9c4.1,0 7.4,3.3 7.4,7.4c0,4.1 -3.3,7.4 -7.4,7.4H16.2V8.8z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#F7931E" android:pathData="M42.6,16.2C42.6,7.3 35.4,0 26.5,0H7.4v50h8.8V32.4h10.3C35.4,32.4 42.6,25.1 42.6,16.2zM16.2,8.8h10.9c4.1,0 7.4,3.3 7.4,7.4c0,4.1 -3.3,7.4 -7.4,7.4H16.2V8.8z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFF" android:pathData="M30.9,26.9c-0.2,3.9 -2.5,6.3 -5.8,6.3c-3.6,0 -5.8,-2.2 -6.1,-6.2c-1.1,0.4 -2.1,0.9 -3.3,0.9c-2.6,-0.1 -4.9,-1.5 -5.6,-3.8c-0.9,-2.8 -0.2,-5.3 2.1,-6.9c0.6,-0.4 0.7,-0.6 0,-1.1c-2,-1.5 -3,-3.5 -2.4,-5.9c0.8,-3.4 2.9,-4.5 5.4,-4.9C16.6,5 17.8,5.7 19,6.2C19.6,1.9 21.6,0 25.3,0c3.2,0 5.2,2.2 5.7,6.2c0.6,-0.2 1.2,-0.4 1.7,-0.6c2.8,-1 5.9,1 6.9,3.1c1.2,2.5 0.6,5.5 -1.7,7.3c-1,0.7 -0.8,0.9 0.1,1.5c1.7,1.1 2.6,4 2,5.9c-0.9,2.9 -2.8,4.5 -5.3,4.6C33.4,27.9 32.2,27.7 30.9,26.9zM25,10.7c-3.3,0 -5.8,2.6 -5.9,5.8c-0.1,3.4 2.5,6.1 5.9,6.1c3.4,0 5.8,-2.9 6,-5.8C31.1,13.9 28.5,10.6 25,10.7z"/>
<path android:fillColor="#FFF" android:pathData="M25.1,46.8c0.4,-1.3 0.7,-2.7 1.2,-4c2.6,-7.1 7.6,-11.6 14.9,-13.6c1.5,-0.4 3.1,-0.4 4.7,-0.6c0.5,-0.1 0.7,0.1 0.6,0.6c-0.3,4.6 -1.7,8.9 -4.6,12.6c-3.5,4.5 -8.1,7.2 -13.7,8.1c-6,0.9 -11.5,-0.6 -16.3,-4.3C7.3,42 4.8,37.2 3.8,31.7c-0.2,-0.9 -0.1,-1.7 -0.2,-2.6c0,-0.5 0.2,-0.5 0.6,-0.5c9,0.2 16.8,6.2 19.6,14.5C24.2,44.3 24.5,45.5 25.1,46.8z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFF" android:pathData="M8.3,8.3h12.5v12.5H8.3V8.3M41.7,8.3v12.5H29.2V8.3H41.7M29.2,31.2h4.2v-4.2h-4.2v-4.2h4.2v4.2h4.2v-4.2h4.2v4.2h-4.2v4.2h4.2v6.2h-4.2v4.2h-4.2v-4.2h-6.2v4.2h-4.2v-8.3h6.2V31.2M33.3,31.2v6.2h4.2v-6.2H33.3M8.3,41.7V29.2h12.5v12.5H8.3M12.5,12.5v4.2h4.2v-4.2H12.5M33.3,12.5v4.2h4.2v-4.2H33.3M12.5,33.3v4.2h4.2v-4.2H12.5M8.3,22.9h4.2v4.2H8.3V22.9M18.8,22.9h8.3v8.3h-4.2v-4.2h-4.2V22.9M22.9,12.5h4.2v8.3h-4.2V12.5M4.2,4.2v8.3H0V4.2C0,1.9 1.9,0 4.2,0h8.3v4.2H4.2M45.8,0C48.1,0 50,1.9 50,4.2v8.3h-4.2V4.2h-8.3V0H45.8M4.2,37.5v8.3h8.3V50H4.2C1.9,50 0,48.1 0,45.8v-8.3H4.2M45.8,45.8v-8.3H50v8.3c0,2.3 -1.9,4.2 -4.2,4.2h-8.3v-4.2H45.8z"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50"
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFF" android:pathData="M25,33.8c-4.8,0 -8.8,-3.9 -8.8,-8.8s3.9,-8.8 8.8,-8.8s8.7,3.9 8.7,8.8S29.8,33.8 25,33.8M43.6,27.4c0.1,-0.8 0.2,-1.6 0.2,-2.4s-0.1,-1.6 -0.2,-2.5l5.3,-4.1c0.5,-0.4 0.6,-1 0.3,-1.6l-5,-8.6c-0.3,-0.5 -1,-0.8 -1.5,-0.5l-6.2,2.5c-1.3,-1 -2.7,-1.8 -4.2,-2.4l-0.9,-6.6C31.2,0.5 30.6,0 30,0H20c-0.6,0 -1.1,0.5 -1.2,1.1l-0.9,6.6c-1.6,0.6 -2.9,1.5 -4.2,2.4L7.4,7.6c-0.5,-0.2 -1.2,0 -1.5,0.5l-5,8.6c-0.3,0.6 -0.2,1.2 0.3,1.6l5.3,4.1c-0.1,0.9 -0.2,1.7 -0.2,2.5s0.1,1.6 0.2,2.4l-5.3,4.1c-0.5,0.4 -0.6,1 -0.3,1.6l5,8.6c0.3,0.6 1,0.8 1.5,0.6l6.2,-2.5c1.3,1 2.6,1.8 4.2,2.5l0.9,6.6c0.1,0.6 0.6,1 1.2,1h10c0.6,0 1.1,-0.5 1.2,-1l0.9,-6.6c1.6,-0.7 2.9,-1.5 4.2,-2.5l6.2,2.5c0.6,0.2 1.2,0 1.5,-0.6l5,-8.6c0.3,-0.6 0.2,-1.2 -0.3,-1.6L43.6,27.4z"/>
</vector>

View File

@ -0,0 +1,6 @@
<vector android:height="24dp" android:viewportHeight="50"
android:viewportWidth="50"
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#F7931E" android:pathData="M25,33.8c-4.8,0 -8.8,-3.9 -8.8,-8.8s3.9,-8.8 8.8,-8.8s8.7,3.9 8.7,8.8S29.8,33.8 25,33.8M43.6,27.4c0.1,-0.8 0.2,-1.6 0.2,-2.4s-0.1,-1.6 -0.2,-2.5l5.3,-4.1c0.5,-0.4 0.6,-1 0.3,-1.6l-5,-8.6c-0.3,-0.5 -1,-0.8 -1.5,-0.5l-6.2,2.5c-1.3,-1 -2.7,-1.8 -4.2,-2.4l-0.9,-6.6C31.2,0.5 30.6,0 30,0H20c-0.6,0 -1.1,0.5 -1.2,1.1l-0.9,6.6c-1.6,0.6 -2.9,1.5 -4.2,2.4L7.4,7.6c-0.5,-0.2 -1.2,0 -1.5,0.5l-5,8.6c-0.3,0.6 -0.2,1.2 0.3,1.6l5.3,4.1c-0.1,0.9 -0.2,1.7 -0.2,2.5s0.1,1.6 0.2,2.4l-5.3,4.1c-0.5,0.4 -0.6,1 -0.3,1.6l5,8.6c0.3,0.6 1,0.8 1.5,0.6l6.2,-2.5c1.3,1 2.6,1.8 4.2,2.5l0.9,6.6c0.1,0.6 0.6,1 1.2,1h10c0.6,0 1.1,-0.5 1.2,-1l0.9,-6.6c1.6,-0.7 2.9,-1.5 4.2,-2.5l6.2,2.5c0.6,0.2 1.2,0 1.5,-0.6l5,-8.6c0.3,-0.6 0.2,-1.2 -0.3,-1.6L43.6,27.4z"/>
</vector>

View File

@ -0,0 +1,49 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="1343.3dp"
android:height="428.9dp"
android:viewportWidth="1343.3"
android:viewportHeight="428.9">
<path
android:pathData="M190.3,284.2l-48.8,-142h38.6l20,73l1.6,6c2.4,8.7 4.3,16.1 5.6,22c0.7,-2.9 1.6,-6.3 2.6,-10.2c1,-3.9 2.5,-9.1 4.3,-15.4l20.9,-75.3h38.4l-49.2,142H190.3z"
android:fillColor="#FFFFFF"
android:fillType="evenOdd"/>
<path
android:pathData="M1184.8,284.2h-34.9c0.1,-1.7 0.2,-3.4 0.4,-5.2l0.7,-5.6c-6.2,4.8 -12.3,8.4 -18.4,10.7c-6.1,2.3 -12.4,3.5 -18.9,3.5c-10.1,0 -17.3,-2.8 -21.7,-8.3c-4.3,-5.6 -5.2,-13.1 -2.5,-22.5c2.4,-8.7 6.7,-15.7 12.8,-21.1c6.1,-5.4 14.1,-9.2 24.1,-11.4c5.5,-1.2 12.4,-2.4 20.7,-3.8c12.4,-1.9 19.1,-4.8 20.2,-8.5l0.7,-2.5c0.9,-3 0.4,-5.4 -1.5,-6.9c-1.8,-1.6 -5,-2.4 -9.5,-2.4c-4.9,0 -9.1,1 -12.5,3c-3.4,2 -6,5 -7.8,8.8h-31.6c5,-11.8 12.4,-20.7 22.1,-26.5c9.7,-5.8 22.1,-8.7 37.1,-8.7c9.3,0 16.9,1.1 22.6,3.4c5.8,2.2 9.8,5.7 12.1,10.2c1.6,3.3 2.3,7.2 2,11.7c-0.2,4.5 -1.8,11.8 -4.6,21.9l-11.1,39.7c-1.3,4.7 -1.9,8.5 -1.9,11.2c0.1,2.7 0.9,4.5 2.4,5.3L1184.8,284.2zM1160.9,234.9c-3.1,1.7 -8.2,3.2 -15.2,4.6c-3.4,0.6 -6,1.2 -7.8,1.6c-4.5,1.2 -7.8,2.6 -10,4.4c-2.2,1.8 -3.7,4.2 -4.6,7.2c-1,3.7 -0.7,6.7 1,9c1.7,2.3 4.4,3.4 8.2,3.4c5.9,0 11.1,-1.7 15.8,-5.1c4.7,-3.4 7.7,-7.8 9.3,-13.3L1160.9,234.9z"
android:fillColor="#97D700"
android:fillType="evenOdd"/>
<path
android:pathData="M1011.3,284.2l29.4,-104.9h33l-5.1,18.4c5.7,-7.2 11.7,-12.5 18.1,-15.8c6.4,-3.3 13.8,-5 22.3,-5.2l-9.5,34c-1.4,-0.2 -2.8,-0.3 -4.3,-0.4c-1.4,-0.1 -2.8,-0.1 -4.1,-0.1c-5.3,0 -9.8,0.8 -13.7,2.4c-3.9,1.6 -7.3,4 -10.3,7.3c-1.9,2.2 -3.7,5.3 -5.4,9.4c-1.7,4.1 -3.8,10.7 -6.4,19.8l-9.9,35.2H1011.3z"
android:fillColor="#97D700"
android:fillType="evenOdd"/>
<path
android:pathData="M1023.9,179.4l-29.4,104.9h-33.6l4,-14.5c-5.7,5.8 -11.6,10.1 -17.5,12.9c-5.9,2.7 -12.3,4.1 -19,4.1c-11.6,0 -19.5,-3 -23.6,-8.9c-4.2,-5.9 -4.6,-14.7 -1.4,-26.4l20.2,-72.1h34.4l-16.4,58.7c-2.4,8.6 -3,14.6 -1.8,17.8c1.2,3.2 4.5,4.9 9.9,4.9c6,0 10.9,-2 14.7,-5.9c3.8,-4 7,-10.4 9.5,-19.4l15.7,-56.1H1023.9z"
android:fillColor="#97D700"
android:fillType="evenOdd"/>
<path
android:pathData="M843.8,200.1l5.8,-20.7h14l8.3,-29.6h34.4l-8.3,29.6h17.6l-5.8,20.7h-17.6l-12.7,45.4c-1.9,6.9 -2.3,11.5 -1.2,13.8c1.2,2.2 4.2,3.4 9.2,3.4l2.6,-0.1l1.8,-0.1l-6.1,21.9c-3.8,0.7 -7.5,1.2 -11,1.6c-3.6,0.4 -6.9,0.6 -10.2,0.6c-11.9,0 -19.2,-2.9 -22,-8.7c-2.7,-5.8 -1.5,-18.2 3.8,-37.2l11.4,-40.6H843.8z"
android:fillColor="#97D700"
android:fillType="evenOdd"/>
<path
android:pathData="M820.3,284.2h-34.9c0.1,-1.7 0.2,-3.4 0.4,-5.2l0.7,-5.6c-6.2,4.8 -12.3,8.4 -18.4,10.7c-6.1,2.3 -12.4,3.5 -18.9,3.5c-10.1,0 -17.3,-2.8 -21.7,-8.3c-4.3,-5.6 -5.2,-13.1 -2.5,-22.5c2.4,-8.7 6.7,-15.7 12.8,-21.1c6.1,-5.4 14.1,-9.2 24.1,-11.4c5.5,-1.2 12.4,-2.4 20.7,-3.8c12.4,-1.9 19.1,-4.8 20.2,-8.5l0.7,-2.5c0.9,-3 0.4,-5.4 -1.5,-6.9c-1.8,-1.6 -5,-2.4 -9.5,-2.4c-4.9,0 -9.1,1 -12.5,3c-3.4,2 -6,5 -7.8,8.8h-31.6c5,-11.8 12.4,-20.7 22.1,-26.5c9.8,-5.8 22.1,-8.7 37.1,-8.7c9.3,0 16.9,1.1 22.6,3.4c5.8,2.2 9.8,5.7 12.1,10.2c1.6,3.3 2.3,7.2 2,11.7c-0.2,4.5 -1.8,11.8 -4.6,21.9l-11.1,39.7c-1.3,4.7 -1.9,8.5 -1.9,11.2c0.1,2.7 0.9,4.5 2.4,5.3L820.3,284.2zM796.4,234.9c-3.1,1.7 -8.2,3.2 -15.2,4.6c-3.4,0.6 -6,1.2 -7.8,1.6c-4.5,1.2 -7.8,2.6 -10,4.4c-2.2,1.8 -3.7,4.2 -4.6,7.2c-1,3.7 -0.7,6.7 1,9c1.7,2.3 4.4,3.4 8.2,3.4c5.9,0 11.1,-1.7 15.8,-5.1c4.7,-3.4 7.7,-7.8 9.3,-13.3L796.4,234.9z"
android:fillColor="#97D700"
android:fillType="evenOdd"/>
<path
android:pathData="M593.6,142.2l-39.8,142h-34.4l3.9,-13.8c-5.5,5.7 -11.1,9.9 -16.9,12.7c-5.8,2.7 -12.1,4.1 -18.9,4.1c-13.1,0 -22.4,-5.1 -27.7,-15.2c-5.3,-10.1 -5.7,-23.4 -1.1,-39.8c4.6,-16.5 12.5,-30 23.6,-40.4c11.1,-10.4 23.1,-15.6 35.9,-15.6c6.9,0 12.6,1.4 17.2,4.2c4.6,2.8 7.9,6.9 9.8,12.3l14.1,-50.4H593.6zM487.5,230.7c-2.6,9.4 -2.9,16.6 -0.8,21.5c2.1,5 6.4,7.5 13,7.5c6.6,0 12.2,-2.5 17,-7.4c4.7,-4.9 8.5,-12.1 11.1,-21.6c2.5,-8.8 2.6,-15.6 0.4,-20.4c-2.2,-4.8 -6.5,-7.2 -13,-7.2c-6.1,0 -11.6,2.5 -16.6,7.4C493.6,215.4 489.9,222.2 487.5,230.7z"
android:fillColor="#FFFFFF"
android:fillType="evenOdd"/>
<path
android:pathData="M359.3,284.2l29.4,-104.9h33l-5.1,18.4c5.7,-7.2 11.7,-12.5 18.1,-15.8c6.4,-3.3 28.2,-5 36.6,-5.2l-9.5,34c-1.4,-0.2 -2.8,-0.3 -4.3,-0.4c-1.4,-0.1 -2.8,-0.1 -4.1,-0.1c-5.3,0 -24.2,0.8 -28.1,2.4c-3.9,1.6 -7.3,4 -10.3,7.3c-1.9,2.2 -3.7,5.3 -5.4,9.4c-1.7,4.1 -3.8,10.7 -6.4,19.8l-9.9,35.2H359.3z"
android:fillColor="#FFFFFF"
android:fillType="evenOdd"/>
<path
android:pathData="M323.3,251.3h33c-6.3,11.5 -14.9,20.4 -25.7,26.7c-10.8,6.3 -22.9,9.4 -36.3,9.4c-16.3,0 -27.7,-4.9 -34.4,-14.8c-6.7,-9.9 -7.6,-23.3 -2.9,-40.4c4.9,-17.4 13.5,-31.1 25.8,-41.2c12.4,-10.1 26.6,-15.2 42.7,-15.2c16.7,0 28.3,5.1 34.9,15.4c6.6,10.3 7.4,24.5 2.3,42.7l-1.1,3.8L361,240h-70.9c-2.1,7.4 -2.1,13 0,16.9c2.1,3.9 6.2,5.8 12.4,5.8c4.6,0 8.6,-1 12.1,-2.9C318.2,257.9 321.1,255 323.3,251.3zM294.6,220.6l39.1,-0.1c1.8,-6.7 1.4,-12 -0.9,-15.8c-2.4,-3.8 -6.6,-5.7 -12.5,-5.7c-5.7,0 -10.7,1.9 -15.1,5.6C300.6,208.4 297.1,213.7 294.6,220.6z"
android:fillColor="#FFFFFF"
android:fillType="evenOdd"/>
<path
android:pathData="M670.3,285.8l-30,-87.3L610,285.8h-34l44.8,-142h38.4l20.8,73l1.6,6c2.4,8.7 4.3,16.1 5.6,22l2.6,-10.2c1,-3.9 2.5,-9.1 4.3,-15.4l20.9,-75.3h38.4l-49.2,142H670.3z"
android:fillColor="#97D700"/>
</vector>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -35,6 +35,16 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/main_bottom_navigation_fragment"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_navigation_height"
app:itemBackground="@color/verdnatura_black_3"
app:itemTextColor="@color/verdnatura_white"
app:labelVisibilityMode="labeled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.drawerlayout.widget.DrawerLayout>

View File

@ -39,6 +39,30 @@
tools:text="Este cambio no podrá deshacerse a no ser que vuelvas a vincular el dispositivo"
tools:visibility="visible" />
<!--working_in_design : esto es lo nuevo
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textinputlayout_username"
android:layout_width="match_parent"
android:layout_height="50dp"
android:textColorHint="@android:color/darker_gray"
android:layout_marginTop="@dimen/default_layout_margin"
android:background="@drawable/background_round">
android:hint="@string/Nuevovalor" -->
<!-- <com.google.android.material.textfield.TextInputEditText
android:id="@+id/custom_dialog_value"
style="@style/InputLineTextSearch"
android:layout_width="match_parent"
android:layout_height="30dp"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:textColor="@color/verdnatura_white"
android:textColorHint="@android:color/darker_gray" />
</com.google.android.material.textfield.TextInputLayout>-->
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textinputlayout_username"
android:layout_width="match_parent"

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
<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"
>
@ -8,6 +9,20 @@
android:layout_height="match_parent"
android:background="@color/verdnatura_black">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintTop_toBottomOf="@+id/main_toolbar">
</LinearLayout>
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_white"
app:layout_constraintBottom_toBottomOf="@+id/main_toolbar"/>
<LinearLayout
android:id="@+id/linearLayout"
@ -16,30 +31,35 @@
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toBottomOf="@id/divider"
android:layout_marginLeft="@dimen/pasilleros_margin_main_menu"
android:padding="@dimen/navigation_row_limit_padding"
>
android:padding="@dimen/navigation_row_limit_padding">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/default_layout_margin"
android:text="@string/Versión"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"
android:textStyle="bold"
android:layout_marginRight="@dimen/default_layout_margin" />
android:textStyle="bold" />
<TextView
android:id="@+id/item_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/verdnatura_brown_grey"
android:layout_marginLeft="@dimen/layout_margin_8"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"/>
</LinearLayout>
@ -63,7 +83,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/verdnatura_brown_grey"
android:layout_marginLeft="@dimen/layout_margin_8"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"/>
</LinearLayout>
@ -84,8 +105,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text=""
android:layout_marginLeft="@dimen/layout_margin_6"
android:tooltipText="@string/copied"
android:textColor="@color/verdnatura_brown_grey"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body1"/>
</LinearLayout>
<LinearLayout
@ -121,8 +143,16 @@
</LinearLayout>
</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" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/ajustess_items"
@ -135,7 +165,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout" />
<LinearLayout
android:id="@+id/splash_progress"
android:visibility="invisible"
@ -149,6 +178,7 @@
app:layout_constraintTop_toTopOf="parent"
android:gravity="center">
<com.airbnb.lottie.LottieAnimationView
android:layout_width="wrap_content"
@ -161,4 +191,5 @@
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@ -67,7 +67,7 @@
app:lottie_speed="2" />
</LinearLayout>
<!--working_in_design toolbar/fragment-->
<include
android:id="@+id/main_toolbar"

View File

@ -30,6 +30,7 @@
</com.google.android.material.textfield.TextInputLayout>
<!-- working_in_design modificar a toolbar_design-->
<include
android:id="@+id/main_toolbar"
layout="@layout/toolbar"

View File

@ -17,23 +17,54 @@
>
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_white"
app:layout_constraintBottom_toBottomOf="@+id/main_toolbar_design"/>
<View
android:id="@+id/divider_two"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_white"
app:layout_constraintBottom_toBottomOf="@+id/main_toolbar"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/pasilleros_items"
android:layout_width="0dp"
android:layout_height="0dp"
android:foregroundGravity="fill_horizontal|center_horizontal"
android:isScrollContainer="false"
android:paddingTop="@dimen/toolbar_height"
android:splitMotionEvents="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.6"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tool:listitem="@layout/item_pasilleros_main_menu"
android:paddingTop="@dimen/toolbar_height"/>
app:stackFromEnd="false"
tool:listitem="@layout/item_pasilleros_main_menu" />
<include
android:id="@+id/main_toolbar"
layout="@layout/toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"
tool:visibility="visible"/>
<!--working_in_design poner visibility a visible o viceversa -->
<include
android:id="@+id/main_toolbar_design"
layout="@layout/toolbar_fragment"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tool:visibility="gone" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@ -13,6 +13,10 @@
android:layout_height="wrap_content"
android:orientation="vertical"
style="@style/LayoutClickable">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_black_9"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"

View File

@ -14,7 +14,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="@dimen/layout_margin_min">
android:layout_marginBottom="@dimen/layout_margin_min"
>
<!--CABECERA=================================================-->
<LinearLayout
android:id="@+id/item_row_layout"

View File

@ -0,0 +1,401 @@
<?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:tool="http://schemas.android.com/tools"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="sale"
type="es.verdnatura.presentation.view.feature.sacador.model.SaleVO" />
</data>
<!-- android:background="@drawable/round_outline"
android:clipToOutline="true"-->
<LinearLayout
android:id="@+id/linear_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="@dimen/layout_margin_1"
android:layout_marginBottom="@dimen/layout_margin_min"
android:background="@drawable/background_round"
>
<!--CABECERA=================================================-->
<LinearLayout
android:id="@+id/item_row_layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/verdnatura_white"
android:padding="@dimen/layout_margin_min"
android:orientation="vertical"
android:textColor="@color/verdnatura_black">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/verdnatura_black"
android:text="@string/Nivel"
android:textSize="@dimen/h8"
android:layout_marginRight="@dimen/layout_margin_min"/>
<TextView
android:id="@+id/level"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor ="@color/verdnatura_black"
android:text="@{sale.level}"
tool:text="2"
android:textStyle="bold"
android:textSize="@dimen/h8"
android:layout_marginRight="@dimen/layout_margin_min"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/verdnatura_black"
android:text="@string/Ticket"
android:textSize="@dimen/h8"
android:layout_marginRight="@dimen/layout_margin_min"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/verdnatura_black"
android:text="@{sale.ticketFk}"
tool:text="123456789"
android:textStyle="bold"
android:textSize="@dimen/h8"
/>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:id="@+id/imageErrorMessage"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
app:srcCompat="@drawable/emoticon_error_fragment" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{sale.agencyName}"
tool:text="MRW"
android:textStyle="bold"
android:textSize="@dimen/h8"
android:layout_marginRight="@dimen/layout_margin_min"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/content_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/layout_margin_min"
android:paddingBottom="@dimen/layout_margin_min"
android:background="@color/verdnatura_black"
>
<!--SEMAFORO=================================================-->
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="@dimen/semaforo_width"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
>
<View
android:id="@+id/item_article_row_semaforo_pre"
android:layout_width="match_parent"
android:layout_height="@dimen/semaforo_height"
android:background="@color/verdnatura_warm_grey"
android:layout_marginBottom="1dp"/>
<View
android:id="@+id/item_article_row_semaforo_sac"
android:layout_width="match_parent"
android:layout_height="@dimen/semaforo_height"
android:background="@color/verdnatura_warm_grey"
android:layout_marginBottom="1dp"/>
<View
android:id="@+id/item_article_row_semaforo_con"
android:layout_width="match_parent"
android:layout_height="@dimen/semaforo_height"
android:background="@color/verdnatura_warm_grey" />
background_oval_checked
</LinearLayout>
<!--CONTENIDO=================================================-->
<!--app:layout_constraintEnd_toStartOf="@+id/item_article_quantity_picked"-->
<TextView
android:id="@+id/item_article_itemFk"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/layout_margin_min"
android:layout_marginEnd="@dimen/layout_margin_min"
android:text="@{sale.itemFk}"
tool:text="85478"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/linearLayout3"
app:layout_constraintTop_toTopOf="parent"
android:maxLines="1"/>
<TextView
android:id="@+id/item_packing_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginEnd="@dimen/layout_margin_min"
android:paddingTop="2dp"
android:text="En balda:"
tool:text="En balda:"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/item_packing_itemFk"
app:layout_constraintStart_toEndOf="@+id/item_article_itemFk"
app:layout_constraintTop_toTopOf="parent"
android:maxLines="1"/>
<TextView
android:id="@+id/item_packing_itemFk"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="1dp"
android:layout_marginEnd="@dimen/layout_margin_min"
android:text="@{sale.packingShelve}"
tool:text="Number"
android:paddingTop="2dp"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/item_article_quantity_picked"
app:layout_constraintStart_toEndOf="@+id/item_packing_text"
app:layout_constraintTop_toTopOf="parent"
android:maxLines="1"/>
<TextView
android:id="@+id/item_article_quantity_picked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_min"
android:text="@{sale.pickedQuantity}"
tool:text="0"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/txtde"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/txtde"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_min"
android:text="@string/de"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
app:layout_constraintEnd_toStartOf="@+id/item_article_quantity"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/item_article_quantity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_1"
android:text="@{sale.quantity}"
tool:text="10"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
<TextView
android:id="@+id/item_article_quantity_line1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/layout_margin_min"
android:ellipsize="end"
android:maxLines="1"
android:text="@{sale.line1}"
tool:text="información de la linea 1"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/linearLayout3"
app:layout_constraintTop_toBottomOf="@+id/item_article_itemFk"
/>
<TextView
android:id="@+id/item_article_cel1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_1"
android:text="@{sale.cel1}"
tool:text="cel1"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@+id/item_article_quantity_line1"
app:layout_constraintTop_toTopOf="@+id/item_article_quantity_line1" />
<TextView
android:id="@+id/item_article_quantity_line2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/layout_margin_min"
android:ellipsize="end"
android:maxLines="1"
android:text="@{sale.line2}"
tool:text="información de la linea 2"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/linearLayout3"
app:layout_constraintTop_toBottomOf="@+id/item_article_quantity_line1" />
<TextView
android:id="@+id/item_article_cel2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_1"
android:text="@{sale.cel2}"
tool:text="cel2"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@+id/item_article_quantity_line2"
app:layout_constraintTop_toTopOf="@+id/item_article_quantity_line2" />
<TextView
android:id="@+id/item_article_quantity_line3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/layout_margin_1"
android:ellipsize="end"
android:maxLines="1"
android:text="@{sale.line3}"
android:textAlignment="center"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
app:layout_constraintStart_toEndOf="@+id/linearLayout3"
app:layout_constraintTop_toBottomOf="@+id/item_article_quantity_line2"
tool:text="información de la linea 3" />
<View
android:id="@+id/item_color"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/background_item_color"
android:layout_marginBottom="1dp"
android:layout_marginLeft="5dp"
app:layout_constraintStart_toEndOf="@+id/item_article_quantity_line3"
app:layout_constraintTop_toTopOf="@+id/item_article_quantity_line3" />
/>
<TextView
android:id="@+id/item_article_cel3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/layout_margin_1"
android:text="@{sale.cel3}"
tool:text="cel3"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/body2"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@+id/content_layout"
app:layout_constraintTop_toTopOf="@+id/item_article_quantity_line3" />
<LinearLayout
android:id="@+id/linearLayoutColor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
>
<View
android:id="@+id/item_ticketColor"
android:layout_width="5dp"
android:layout_height="@dimen/ticketColor_height"
android:background="@drawable/border"
android:layout_marginBottom="1dp"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/layout_error"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/txt_error"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/verdnatura_white"
android:background="@color/verdnatura_red"
tool:text="Cantidad original 100"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_white">
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/item_article_placements"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
tools:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_placement_row"
tools:orientation="horizontal" />
</LinearLayout>
</layout>

View File

@ -0,0 +1,64 @@
<?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">
<data>
<variable
name="item"
type="es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO" />
<variable
name="title"
type="String"/>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="horizontal"
android:padding="@dimen/pasilleros_margin_main_menu"
android:background="@drawable/background_round_square"
android:foreground="@drawable/custom_ripple" >
<ImageView
android:id="@+id/item_image"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="centerCrop"
android:layout_weight="0"
/>
<TextView
android:id="@+id/item_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="30dp"
android:gravity="center_vertical"
android:text="@{title}"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h7"
android:layout_weight="1"
android:drawableEnd="@drawable/ic_chevron_right_black_24dp"
/>
<!-- <ImageView
android:id="@+id/item_image_end"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="centerCrop"
app:srcCompat="@drawable/ic_chevron_right_black_24dp"
android:layout_weight="0"/>-->
</LinearLayout>
<!-- <LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/verdnatura_black_9"/>-->
</LinearLayout>
</layout>

View File

@ -16,6 +16,7 @@
android:layout_height="wrap_content"
android:orientation="vertical"
style="@style/LayoutClickable">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"

View File

@ -18,6 +18,7 @@
android:layout_width="40dp"
android:layout_height="match_parent"
android:scaleType="center"
android:visibility="visible"
android:src="@drawable/ic_arrow_back_black_24dp" />
<View

View File

@ -0,0 +1,102 @@
<?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:tool="http://schemas.android.com/tools">
<androidx.appcompat.widget.Toolbar
android:id="@+id/tool"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="@color/verdnatura_black_8_alpha_6"
tool:visibility="visible"
>
<ImageView
android:id="@+id/imageViewMenu"
android:layout_width="wrap_content"
android:layout_height="?android:attr/actionBarSize"
android:visibility="gone"
app:srcCompat="@drawable/ic_vn_logo_negativo_app_warehouse" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tool:visibility="visible">
<ImageView
android:id="@+id/backButton"
android:layout_width="40dp"
android:layout_height="match_parent"
android:scaleType="center"
android:visibility="invisible"
android:src="@drawable/ic_arrow_back_black_24dp"
/>
<View
android:id="@+id/toolbar_title_separator"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/default_layout_margin"
android:layout_marginBottom="@dimen/default_layout_margin"
android:background="@color/verdnatura_pumpkin_orange"
android:visibility="gone"
tool:visibility="visible" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/layout_margin_min"
>
<TextView
android:id="@+id/toolbar_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/layout_margin_3"
android:layout_weight="1"
android:gravity="left|center_vertical"
android:maxLines="1"
android:text="Title fragment"
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h6"
android:textStyle="bold" />
<TextView
android:id="@+id/toolbar_subtitle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/layout_margin_min"
android:layout_weight="1"
android:gravity="center_vertical"
android:maxLines="1"
android:text=""
android:textColor="@color/verdnatura_white"
android:textSize="@dimen/h6"
android:visibility="gone"
tool:text="10/20"
tool:visibility="visible" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/toolbar_icons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tool:listitem="@layout/item_toolbar_row"
tool:visibility="visible" />
</LinearLayout>
</androidx.appcompat.widget.Toolbar>
</layout>

View File

@ -162,4 +162,5 @@
<string name="Noprinters">No hay impresora</string>
<string name="Selecccionaimpresoara">Selecciona impresora</string>
<string name="claim">Ubicación de reclamación</string>
<string name="claims">Reclamaciones</string>
</resources>

View File

@ -89,6 +89,8 @@
<dimen name="ticketColor_height">90dp</dimen>
<dimen name="ticketColor_width">10dp</dimen>
<!-- Elements of RecyclerViewer -->
<integer name="number_of_grid_items">5</integer>
</resources>

View File

@ -160,5 +160,6 @@
<string name="workermistake">Worker mistaker</string>
<string name="buscarDepartamento">Find department</string>
<string name="claim">Claim Ubication</string>
<string name="claims">Claims</string>
</resources>

View File

@ -10,6 +10,7 @@
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="colorControlHighlight">@color/verdnatura_white</item>
<item name="android:fontFamily">@font/roboto_medium</item>
</style>
<!--Buttons-->
@ -105,7 +106,8 @@
<style name="LayoutClickable">
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
<item name="android:foreground">?android:attr/selectableItemBackground</item>
<!-- <item name="android:foreground">?android:attr/selectableItemBackground</item> -->
<item name="android:foreground">@drawable/custom_ripple</item>
</style>
<!--Progress Bar-->
@ -134,5 +136,9 @@
<item name="android:textSize">10sp</item>
<item name="android:textStyle">normal</item>
</style>
<style name="Divider">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1dp</item>
<item name="android:background">?android:attr/listDivider</item>
</style>
</resources>