refs #6004 feature:dataStoreByPreference

This commit is contained in:
Sergio De la torre 2024-01-26 11:30:04 +01:00
parent 51b8f5921e
commit d0d4889a16
60 changed files with 1534 additions and 1585 deletions

View File

@ -50,11 +50,6 @@
<theme>@style/AppTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/buyers_fragment.xml">
<config>
<theme>@style/AppTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/item_expeditionpallet_row.xml">
<config>
<theme>@style/AppTheme</theme>
@ -75,11 +70,6 @@
<theme>@style/AppTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/reposicion_fragment.xml">
<config>
<theme>@style/AppTheme</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/app/src/main/res/layout/sale_row_fragment.xml">
<config>
<theme>@style/AppTheme</theme>
@ -127,113 +117,67 @@
</select>
</component>
<component name="ChangeListManager">
<list default="true" id="fa688d1c-dbee-4864-9e33-4d84ef9afca8" name="Default Changelist" comment="refs #5135 feat: refactor animation. HotFix phones cambiar a String(varchar en bbdd)">
<list default="true" id="fa688d1c-dbee-4864-9e33-4d84ef9afca8" name="Default Changelist" comment="refs #6460 fix:date">
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/dataStore/DataStoreLocal.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/common/UtilFunctions.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/beta/release/output-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/app/beta/release/output-metadata.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/app/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/MobileApplication.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/MobileApplication.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/db/database.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/db/database.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/ApiSalixUtils.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/ApiSalixUtils.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/ApiUtils.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/ApiUtils.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/ConstAndValues.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/ConstAndValues.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/SalixInterceptor.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/SalixInterceptor.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/SalixService.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/SalixService.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/SilexInterceptor.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/domain/SilexInterceptor.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/base/BaseActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/base/BaseActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/base/BaseFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/base/BaseFragmentSalix.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/common/UICallbacks.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/common/UICallbacks.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/testing/testPrint.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/testing/testPrint.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ajustes/fragment/AjustesViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemCardViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemProposalFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/articulo/fragment/ItemProposalFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/buffer/fragment/BufferFragmentViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/buffer/fragment/BufferFragmentViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/claim/fragment/ClaimFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/claim/fragment/ClaimFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/claim/fragment/ClaimViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/claim/fragment/ClaimViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/adapter/SaleAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/adapter/SaleAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/adapter/SaleAdapterNew.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/adapter/SaleAdapterNew.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragmentPicker.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragmentPicker.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragmentPickerNew.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragmentPickerNew.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragmentPreChecker.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionFragmentPreChecker.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/CollectionViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/ControladorViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/ControladorViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/WebFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/WebFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/ShowTicketFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/collection/fragment/ShowTicketFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/ControladorFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/ControladorFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlvehiculo/fragment/ControlVehiculoUsuarioFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlvehiculo/fragment/ControlVehiculoUsuarioFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlvehiculo/fragment/ControlVehiculoViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/controlvehiculo/fragment/ControlVehiculoViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/activity/SignedActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/activity/SignedActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/TicketsFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/fragments/TicketsFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/viewmodels/DeliveryViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/delivery/viewmodels/DeliveryViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoarticulo/fragment/HistoricoArticuloFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoarticulo/fragment/HistoricoArticuloFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoarticulo/fragment/HistoricoArticuloViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoarticulo/fragment/HistoricoArticuloViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/login/activity/LoginActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/login/activity/LoginActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/fragment/shelvingLogFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/fragment/shelvingLogFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/inventario/fragment/InventaryFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/login/fragment/LoginViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/main/activity/MainActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/ObservFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/ObservFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingCountFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingCountFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingSummaryFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingSummaryFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingViewModel/SupplierViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/PackagingViewModel/SupplierViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/SupplierFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packaging/fragment/SupplierFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packingHolland/fragment/PackingHollandFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/packingHolland/fragment/PackingHollandFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionListAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionListAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionPalletAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionPalletAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionScanAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/adapter/ExpeditionScanAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletDetailFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletDetailFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletDetailViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionPalletDetailViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/ExpeditionScanViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/PalletScanFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/PalletScanFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/PalletScanViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/paletizador/fragment/PalletScanViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/parking/fragment/ParkingFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/parking/fragment/ParkingFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/adapter/PasillerosAdapter.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/adapter/PasillerosAdapter.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/photos/fragment/PhotosViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/photos/fragment/PhotosViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/pasillero/fragment/PasilleroFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/photos/fragment/PhotosFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/photos/fragment/PhotosFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/precontrol/PreControladorFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/precontrol/PreControladorFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/precontrol/PreControladorViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/precontrol/PreControladorViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/EndSacadorFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/EndSacadorFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/InitPreSacadorFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/InitPreSacadorFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/qr/QrFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/qr/QrFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/fragment/ReubicationFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/reubication/fragment/ReubicationFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorFragmentNew.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorFragmentNew.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/SacadorViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/showticket/ShowTicketFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/fragment/showticket/ShowTicketFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ticket/fragment/TicketAdvanceFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ticket/fragment/TicketAdvanceFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ticket/fragment/TicketViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ticket/fragment/TicketViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/transferencia/fragment/TransferenciaFragment.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/transferencia/fragment/TransferenciaViewModel.kt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/model/TicketItemVO.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/sacador/model/TicketItemVO.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemFragmentTEST.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemFragmentTEST.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemFragmentTEST.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemFragmentOld.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/UbicadorViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/workermistake/fragment/PackingMistakeFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/workermistake/fragment/PackingMistakeFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/workermistake/fragment/WorkermistakeFragment.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/workermistake/fragment/WorkermistakeFragment.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_login.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_login.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_sign.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_sign.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/buyers_fragment.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_ajustes.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_ajustes.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_automatic_add_item.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_automatic_add_item.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_buffer_load.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_buffer_load.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_buscar_item_all.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_expedition_pallet_detail.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_expedition_pallet_detail.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_expedition_scan.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_expedition_scan.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_general_black.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_general_black.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_historico.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_historico.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_inventary_old.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_itemproposal.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_itemproposal.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_itemshelvingdayofsale.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_login.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_login.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging_count.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging_count.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging_obs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging_obs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging_summary.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_packaging_summary.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_qr.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_qr.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_sacador.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_sacador.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_sacador_associatesmarttag.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_shelving_parking.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_testing_print.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_testing_print.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_transferencia.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_ubicador.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_ubicador.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_web.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_web.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/reposicion_fragment.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/toolbar_fragment.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/toolbar_fragment.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_vehiclecontrol.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_vehiclecontrol.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/sale_row_fragment.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/sale_row_fragment.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gradle.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle.properties" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -247,7 +191,7 @@
<component name="CodeInsightWorkspaceSettings">
<option name="optimizeImportsOnTheFly" value="true" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[C:\Users\sergiodt\.android\avd\Pixel_6a_API_24.avd]" />
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[21114523025303]" />
<component name="ExportToHTMLSettings">
<option name="OPEN_IN_BROWSER" value="true" />
<option name="OUTPUT_DIRECTORY" value="C:\Program Files\Android\Android Studio\inspections" />
@ -339,7 +283,7 @@
</option>
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="testBeta" />
<entry key="$PROJECT_DIR$" value="dev-5135" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@ -363,7 +307,7 @@
<setting file="file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/historicoshelvinglog/fragment/shelvingLogFragment.kt" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/InitPreSacadorFragment.kt" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/presacador/fragment/PreSacadorViewModel.kt" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemFragment.kt" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemFragmentOld.kt" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/java/es/verdnatura/presentation/view/feature/ubicador/fragment/AutomaticAddItemViewModel.kt" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_itemexpeditionstate_card.xml" root0="SKIP_INSPECTION" />
<setting file="file://$PROJECT_DIR$/app/src/main/res/layout/sale_row_fragment.xml" root0="FORCE_HIGHLIGHTING" />
@ -392,44 +336,44 @@
<option name="showLibraryContents" value="true" />
<option name="showMembers" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;ApkExportedModule&quot;: &quot;Gestor_Almacén.app&quot;,
&quot;ExportApk.ApkPathForGestor_Almacén.app&quot;: &quot;C:\\Users\\sergiodt\\AndroidStudioProjects\\vn-warehouseManager\\app&quot;,
&quot;KotlinFunctionFindUsagesOptions.isSearchForTextOccurrences&quot;: &quot;true&quot;,
&quot;PROJECT_TRUSTED_KEY&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.cidr.known.project.marker&quot;: &quot;true&quot;,
&quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
&quot;ScreenRecorder.SavePath&quot;: &quot;C:\\Users\\sergiodt&quot;,
&quot;android-custom-viewC:/Users/sergiodt/.gradle/caches/modules-2/files-2.1/androidx.recyclerview/recyclerview/1.2.1/f0f93e67af3f7417bdd560d5142f6dec4fe629c3/recyclerview-1.2.1-sources.jar!/androidx/recyclerview/widget/RecyclerView.java_SELECTED&quot;: &quot;RecyclerView&quot;,
&quot;android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-29/android/widget/TextView.java_SELECTED&quot;: &quot;TextView&quot;,
&quot;android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-33/android/view/View.java_SELECTED&quot;: &quot;View&quot;,
&quot;cidr.known.project.marker&quot;: &quot;true&quot;,
&quot;com.android.tools.idea.devicemanager.tab&quot;: &quot;Physical&quot;,
&quot;com.developerphil.adbidea.selecteddevices&quot;: &quot;21114523025303&quot;,
&quot;com.google.services.firebase.aqiPopupShown&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;dev&quot;,
&quot;last_opened_file_path&quot;: &quot;C:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable&quot;,
&quot;project.structure.last.edited&quot;: &quot;Suggestions&quot;,
&quot;project.structure.proportion&quot;: &quot;0.17&quot;,
&quot;project.structure.side.proportion&quot;: &quot;0.2&quot;,
&quot;run.code.analysis.last.selected.profile&quot;: &quot;pProject Default&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;preferences.sourceCode.Kotlin&quot;
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"ApkExportedModule": "Gestor_Almacén.app",
"ExportApk.ApkPathForGestor_Almacén.app": "C:\\Users\\sergiodt\\AndroidStudioProjects\\vn-warehouseManager\\app",
"KotlinFunctionFindUsagesOptions.isSearchForTextOccurrences": "true",
"PROJECT_TRUSTED_KEY": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.cidr.known.project.marker": "true",
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
"ScreenRecorder.SavePath": "C:\\Users\\sergiodt",
"android-custom-viewC:/Users/sergiodt/.gradle/caches/modules-2/files-2.1/androidx.recyclerview/recyclerview/1.2.1/f0f93e67af3f7417bdd560d5142f6dec4fe629c3/recyclerview-1.2.1-sources.jar!/androidx/recyclerview/widget/RecyclerView.java_SELECTED": "RecyclerView",
"android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-29/android/widget/TextView.java_SELECTED": "TextView",
"android-custom-viewC:/Users/sergiodt/AppData/Local/Android/Sdk/sources/android-33/android/view/View.java_SELECTED": "View",
"cidr.known.project.marker": "true",
"com.android.tools.idea.devicemanager.tab": "Physical",
"com.developerphil.adbidea.selecteddevices": "21114523025303",
"com.google.services.firebase.aqiPopupShown": "true",
"git-widget-placeholder": "dev",
"last_opened_file_path": "C:/Users/sergiodt/AndroidStudioProjects/vn-warehouseManager/app/src/main/res/drawable",
"project.structure.last.edited": "Suggestions",
"project.structure.proportion": "0.17",
"project.structure.side.proportion": "0.2",
"run.code.analysis.last.selected.profile": "pProject Default",
"settings.editor.selected.configurable": "preferences.pluginManager"
},
&quot;keyToStringList&quot;: {
&quot;ExportApk.BuildVariants&quot;: [
&quot;betaRelease&quot;
"keyToStringList": {
"ExportApk.BuildVariants": [
"betaRelease"
],
&quot;com.android.tools.idea.sqlite.queryhistory&quot;: [
&quot;select * from expedition where routeFk=182933;&quot;,
&quot;select * from expedition;&quot;,
&quot;select * from expeditionPending;&quot;,
&quot;select * from expedition where id = 7753995;\n\n&quot;,
&quot;\nselect * from expedition where id = 7753995;&quot;
"com.android.tools.idea.sqlite.queryhistory": [
"select * from expedition where routeFk=182933;",
"select * from expedition;",
"select * from expeditionPending;",
"select * from expedition where id = 7753995;\n\n",
"\nselect * from expedition where id = 7753995;"
]
}
}</component>
}]]></component>
<component name="PsdUISettings">
<option name="MODULE_TAB" value="Properties" />
<option name="LAST_EDITED_SIGNING_CONFIG" value="debug" />
@ -986,7 +930,7 @@
<entry key="branch">
<value>
<list>
<option value="dev-5135" />
<option value="dev" />
</list>
</value>
</entry>

View File

@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 245,
"versionName": "23.48Beta",
"versionCode": 251,
"versionName": "24.2Beta",
"outputFile": "app-beta-release.apk"
}
],

View File

@ -13,7 +13,7 @@ android {
applicationId "es.verdnatura"
minSdkVersion 24 //21
targetSdkVersion 33
versionCode 250
versionCode 251
versionName = "24.2Beta" //23.48Beta son la misma
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
@ -141,6 +141,10 @@ dependencies {
//pickerImage
implementation 'com.github.esafirm:android-image-picker:3.0.0-beta5'
//preferences
implementation("androidx.datastore:datastore-preferences:1.0.0")
implementation 'androidx.datastore:datastore-core:1.0.0'
//linphone
// implementation 'org.linphone:linphone-sdk-android:5.1.0+'
//implementation 'androidx.media:media:1.6.0'

View File

@ -1,11 +1,11 @@
package es.verdnatura
import android.app.Application
import android.content.SharedPreferences
import android.graphics.Color
import android.media.MediaPlayer
import android.os.Handler
import android.os.Looper
import es.verdnatura.dataStore.DataStoreLocal
import es.verdnatura.di.viewModelModule
import es.verdnatura.domain.RestClient
import es.verdnatura.domain.SalixService
@ -25,6 +25,7 @@ class MobileApplication : Application(), InteceptorListener {
private var mainActivityListener: MainActivityListener? = null
private var loginListener: LoginListener? = null
private var signListener: SignListener? = null
fun setMainListener(listener: MainActivityListener) {
mainActivityListener = listener
}
@ -50,11 +51,10 @@ class MobileApplication : Application(), InteceptorListener {
var androidId: String = ""
var mperror: MediaPlayer? = null
var mpok: MediaPlayer? = null
var dataStoreApp= DataStoreLocal(this)
private lateinit var customDialog: CustomDialogMainActivity
private val handler = Handler(Looper.getMainLooper())
protected val PREFS_USER = "es.verdnatura.user.prefs"
override fun onCreate() {
super.onCreate()
mperror = MediaPlayer.create((this), R.raw.error)
@ -68,15 +68,7 @@ class MobileApplication : Application(), InteceptorListener {
var restClient = RestClient(this, this)
silex = restClient.restClient
salix = restClient.salixClient
}
fun getPrefsEditor(): SharedPreferences.Editor {
val prefs: SharedPreferences = getSharedPreferences(PREFS_USER, 0)
return prefs.edit()
}
fun getPrefsShared(): SharedPreferences {
return getSharedPreferences(PREFS_USER, 0)
}
fun playSoundIsOK(bool: Boolean) {
@ -117,4 +109,5 @@ class MobileApplication : Application(), InteceptorListener {
}
}
}

View File

@ -0,0 +1,274 @@
package es.verdnatura.dataStore
import android.content.Context
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.booleanPreferencesKey
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.intPreferencesKey
import androidx.datastore.preferences.core.longPreferencesKey
import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
import com.google.gson.Gson
import es.verdnatura.MobileApplication
import es.verdnatura.R
import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.NUMBEROFWAGONS
import es.verdnatura.domain.ConstAndValues.PRINTERFK
import es.verdnatura.domain.ConstAndValues.PRINTERFKDEFAULT
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.ConstAndValues.SECTORDESCRIP
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.TRAINNAME
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WORKFORMSELECTED
import es.verdnatura.presentation.view.feature.login.model.OperatorSalix
import es.verdnatura.presentation.view.feature.login.model.WorkForms
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.runBlocking
import org.json.JSONObject
import java.util.Calendar
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
val Context.dataStoreWork: DataStore<Preferences> by preferencesDataStore(name = "workForm")
class DataStoreLocal(var mobileApplication: MobileApplication) {
suspend fun saveDataOperator(operator: OperatorSalix) {
editDataStoreKey(
SECTORFK, if (operator.sector != null) {
operator.sector.id
} else {
SECTORFKDEFAULT
}
)
editDataStoreKey(
WAREHOUSEFK, if (operator.sector != null) {
operator.sector.warehouseFk
} else {
WAREHOUSEFKDEFAULT
}
)
editDataStoreKey(
SECTORDESCRIP, if (operator.sector != null) {
operator.sector.description
} else {
mobileApplication.getString(R.string.Sinsector)
}
)
editDataStoreKey(
PRINTERFK, if (operator.printer != null) {
operator.printer.id
} else {
PRINTERFKDEFAULT
}
)
editDataStoreKey(
PRINTERNAME, if (operator.printer != null) {
operator.printer.name
} else {
mobileApplication.getString(R.string.printerWithout)
}
)
editDataStoreKey(
TRAINNAME, if (operator.train != null) {
operator.train.name
} else {
""
}
)
editDataStoreKey(
NUMBEROFWAGONS, operator.numberOfWagons
)
}
inline fun <reified T> readDataStoreKey(key: String): T {
return when (T::class) {
Int::class ->
runBlocking {
mobileApplication.dataStore.data
.map { preferences -> preferences[intPreferencesKey(key)] ?: -1 }
.first() as T
}
String::class -> runBlocking {
mobileApplication.dataStore.data
.map { preferences -> preferences[stringPreferencesKey(key)] ?: "" }
.first() as T
}
Boolean::class -> runBlocking {
mobileApplication.dataStore.data
.map { preferences -> preferences[booleanPreferencesKey(key)] ?: false }
.first() as T
}
Long::class -> runBlocking {
mobileApplication.dataStore.data
.map { preferences -> preferences[longPreferencesKey(key)] ?: 0 }
.first() as T
}
else -> "ERROR" as T
}
}
suspend fun editDataStoreKey(key: String, value: Any) {
mobileApplication.dataStore.edit { preferences ->
when (value) {
is Int -> preferences[intPreferencesKey(key)] = value
is String -> preferences[stringPreferencesKey(key)] = value
is Boolean -> preferences[booleanPreferencesKey(key)] = value
is Long -> preferences[longPreferencesKey(key)] = value
}
}
}
suspend fun deleteWorkForm(nameWorkForm: Preferences.Key<String>) {
if (nameWorkForm.name == "all") {
mobileApplication.dataStoreWork.edit {
it.clear()
}
} else {
mobileApplication.dataStoreWork.edit { preferences ->
preferences.remove(nameWorkForm)
}
mobileApplication.dataStoreApp.editDataStoreKey(
WORKFORMSELECTED, "Producción"
)
saveWorkForm(
WorkForms(
"Producción",
"https://app.verdnatura.es",
"https://salix.verdnatura.es"
)
)
}
}
suspend fun getWorkForm(): List<WorkForms> {
var listForms: ArrayList<WorkForms> = ArrayList()
val preferences = mobileApplication.dataStoreWork.data.first()
preferences.asMap().forEach { entry ->
val key = entry.key
val value = entry.value
var json2 = JSONObject(value.toString())
listForms.add(
WorkForms(
key.name,
json2.get("urlSilex").toString(),
json2.get("urlSalix").toString(),
json2.get("isShowDelete").toString().toBoolean(),
json2.get("created") as Long
)
)
}
if (listForms.isEmpty()) {
createWorksDefault()
}
return listForms.sortedBy { it.created }
}
suspend fun createWorksDefault() {
saveWorkForm(
WorkForms(
"Producción",
"https://app.verdnatura.es",
"https://salix.verdnatura.es"
)
)
saveWorkForm(
WorkForms(
"Test",
"https://test-app.verdnatura.es",
urlSalix = "https://test-salix.verdnatura.es"
)
)
var working_in_test = true
if (working_in_test) {
saveWorkForm(
WorkForms(
"TestLocalhost",
"http://10.1.4.42:9000",
urlSalix = "https://test-salix.verdnatura.es"
)
)
saveWorkForm(
WorkForms(
"TestHome",
"http://192.168.1.132:9000",
urlSalix = "https://test-salix.verdnatura.es"
)
)
saveWorkForm(
WorkForms(
"TestLOCAL",
"http://10.1.4.42:9000",
urlSalix = "http://10.1.4.42:3000"
)
)
saveWorkForm(
WorkForms(
"TestLOCALHOME",
"http://192.168.1.132:9000",
urlSalix = "http://192.168.1.132:3000"
)
)
} else {
//deleteWorkForm("all")
}
saveWorkForm(
WorkForms(
"Añadir...",
"",
"",
created = Calendar.getInstance().timeInMillis + Calendar.getInstance().timeInMillis
)
)
}
suspend fun saveWorkForm(workForm: WorkForms) {
var gson = Gson()
var json = gson.toJson(workForm)
mobileApplication.dataStoreWork.edit { preferences ->
preferences[stringPreferencesKey(workForm.name)] = json
}
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
ConstAndValues.BASEURL,
workForm.urlSilex
)
mobileApplication.dataStoreApp.editDataStoreKey(
ConstAndValues.BASEURLSALIX,
workForm.urlSalix
)
}
}
}

View File

@ -14,7 +14,6 @@ import es.verdnatura.presentation.view.feature.delivery.model.SignedTickets
import es.verdnatura.presentation.view.feature.delivery.model.Ticket
import java.util.Date
// Clase que representa la base de datos
@Database(
entities = [ExpeditionInfoLoadUnload::class, ExpeditionInfoPending::class, SignedTickets::class, RouteInfo::class, ClientTicketSalix::class, RouteLoaded::class],
@ -35,12 +34,8 @@ abstract class DeliveryDatabase : RoomDatabase() {
fun getInstance(context: Context): DeliveryDatabase {
return INSTANCE ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
DeliveryDatabase::class.java,
"expedition_database"
)
.fallbackToDestructiveMigration()
.build()
context.applicationContext, DeliveryDatabase::class.java, "expedition_database"
).fallbackToDestructiveMigration().build()
INSTANCE = instance
instance
}
@ -48,7 +43,6 @@ abstract class DeliveryDatabase : RoomDatabase() {
}
}
// Interfaz que define los métodos de acceso a datos para Expedicion
@Dao
interface ExpedicionDao {
@ -71,7 +65,7 @@ interface ExpedicionDao {
fun delete(expedition: ExpeditionInfoLoadUnload)
@Query("DELETE FROM expeditionPending WHERE code = :codeState")
suspend fun getDeleteByState(codeState:String)
suspend fun getDeleteByState(codeState: String)
}
@Dao
@ -79,11 +73,9 @@ interface SignedTicketDao {
@Query("SELECT * FROM signedPending ")
suspend fun getAll(): List<SignedTickets>
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insert(signedTicketPending: SignedTickets)
@Query("DELETE FROM signedPending WHERE fileName = :nameFile")
fun deleteByNameFile(nameFile: String)
}
@ -104,6 +96,7 @@ interface RoutesDao {
@Query("SELECT * FROM routesLoaded ")
suspend fun getAllLoaded(): List<RouteLoaded>
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertLoaded(routeLoaded: RouteLoaded)
@ -111,6 +104,7 @@ interface RoutesDao {
suspend fun deleteLoaded(today: String)
}
@Dao
interface ClientTicketDao {
@Query("SELECT * FROM clientTickets ")
@ -157,10 +151,11 @@ class MapTypeConverter {
}
@TypeConverter
fun toMyLocation(json: String?): MyLocation?{
fun toMyLocation(json: String?): MyLocation? {
val type = object : TypeToken<MyLocation>() {}.type
return gson.fromJson(json, type)
}
@TypeConverter
fun fromPhones(phones: List<String>): String {
return gson.toJson(phones)
@ -171,6 +166,7 @@ class MapTypeConverter {
val type = object : TypeToken<List<String>>() {}.type
return gson.fromJson(json, type)
}
@TypeConverter
fun fromTickets(tickets: MutableList<Ticket?>): String? {
return gson.toJson(tickets)
@ -181,5 +177,4 @@ class MapTypeConverter {
val type = object : TypeToken<MutableList<Ticket>>() {}.type
return gson.fromJson(json, type)
}
}

View File

@ -1,9 +1,12 @@
package es.verdnatura.domain
import android.content.Context
import androidx.preference.PreferenceManager
import com.google.gson.GsonBuilder
import es.verdnatura.MobileApplication
import es.verdnatura.domain.ConstAndValues.BASEURLSALIX
import es.verdnatura.domain.ConstAndValues.BASE_URL_SALIX
import es.verdnatura.presentation.common.InteceptorListener
import kotlinx.coroutines.runBlocking
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
@ -11,51 +14,38 @@ import java.util.concurrent.TimeUnit
class ApiSalixUtils {
companion object {
const val BASE_URL: String = "https://salix.verdnatura.es"
fun getApiService(context: Context,myObserver: InteceptorListener?): SalixService {
fun getApiService(context: Context, myObserver: InteceptorListener?): SalixService {
var salixClient = OkHttpClient.Builder()
.addInterceptor(SalixInterceptor(context, myObserver))
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(40, TimeUnit.SECONDS)
.build()
var salixClient =
OkHttpClient.Builder().addInterceptor(SalixInterceptor(context, myObserver))
.connectTimeout(10, TimeUnit.SECONDS).writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(40, TimeUnit.SECONDS).build()
/* val salixRetrofit = Retrofit.Builder()
.baseUrl(ApiUtils.getBaseUrlLocal(context))
.addConverterFactory(GsonConverterFactory.create())
.client(salixClient)
.build()
return salixRetrofit.create(SalixService::class.java)*/
val salixRetrofit = Retrofit.Builder()
.client(salixClient)
.baseUrl(getBaseUrlLocal(context = context))
.addConverterFactory(
GsonConverterFactory.create(GsonBuilder().serializeNulls().create() )
).build()
val salixRetrofit =
Retrofit.Builder().client(salixClient).baseUrl(getBaseUrlLocal(context = context))
.addConverterFactory(
GsonConverterFactory.create(GsonBuilder().serializeNulls().create())
).build()
return salixRetrofit.create(SalixService::class.java)
}
fun getBaseUrlLocal(context: Context): String {
var url = this.getDefaults("base_urlSalix", context)
private fun getBaseUrlLocal(context: Context): String {
var url =
(context as MobileApplication).dataStoreApp.readDataStoreKey<String>(BASEURLSALIX)
if (url.isNullOrEmpty()) {
ApiUtils.setDefaults("base_urlSalix", BASE_URL, context)
runBlocking {
(context).dataStoreApp.editDataStoreKey(
BASEURLSALIX, BASE_URL_SALIX
)
}
} else {
if (!url.contains("http")) {
url = "https://" + url
}
}
return if (url.isNullOrEmpty()) "$BASE_URL/api/" else "$url/api/"
}
fun getDefaults(key: String?, context: Context?): String? {
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
return preferences.getString(key, null)
return if (url.isNullOrEmpty()) "$BASE_URL_SALIX/api/" else "$url/api/"
}
}
}

View File

@ -1,9 +1,10 @@
package es.verdnatura.domain
import android.content.Context
import android.content.SharedPreferences
//import android.preference.PreferenceManager
import androidx.preference.PreferenceManager
import es.verdnatura.MobileApplication
import es.verdnatura.domain.ConstAndValues.BASEURL
import es.verdnatura.domain.ConstAndValues.BASE_URL
import kotlinx.coroutines.runBlocking
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
@ -11,29 +12,26 @@ import java.util.concurrent.TimeUnit
class ApiUtils {
companion object {
const val BASE_URL: String = "https://app.verdnatura.es/"
fun getApiService(context: Context): VerdnaturaService {
var client = OkHttpClient.Builder()
.addInterceptor(SilexInterceptor(context))
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(40, TimeUnit.SECONDS)
.build()
var client = OkHttpClient.Builder().addInterceptor(SilexInterceptor(context))
.connectTimeout(10, TimeUnit.SECONDS).writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(40, TimeUnit.SECONDS).build()
val retrofit = Retrofit.Builder()
.baseUrl(getBaseUrlLocal(context))
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build()
val retrofit = Retrofit.Builder().baseUrl(getBaseUrlLocal(context))
.addConverterFactory(GsonConverterFactory.create()).client(client).build()
return retrofit.create(VerdnaturaService::class.java)
}
fun getBaseUrlLocal(context: Context): String {
var url = this.getDefaults("base_url", context)
private fun getBaseUrlLocal(context: Context): String {
var url = (context as MobileApplication).dataStoreApp.readDataStoreKey<String>(BASEURL)
if (url.isNullOrEmpty()) {
setDefaults("base_url", BASE_URL, context)
runBlocking {
(context).dataStoreApp.editDataStoreKey(
BASEURL, BASE_URL
)
}
} else {
if (!url.contains("http")) {
url = "https://" + url
@ -42,20 +40,6 @@ class ApiUtils {
return if (url.isNullOrEmpty()) BASE_URL else url
}
fun setDefaults(key: String?, value: String?, context: Context?) {
val preferences: SharedPreferences =
PreferenceManager.getDefaultSharedPreferences(context)
val editor = preferences.edit()
editor.putString(key, value)
editor.commit()
//editor.apply()
}
fun getDefaults(key: String?, context: Context?): String? {
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
return preferences.getString(key, null)
}
}
}

View File

@ -6,15 +6,57 @@ object ConstAndValues {
const val OK = "OK"
const val PREPARED = "PREPARED"
const val ON_PREPARATION = "ON_PREPARATION"
//const val CHECKED = "CHECKED"
const val PRESACADOR = "PRESACADOR" //PREITEMPICKER
const val PREITEMPICKER = "PREITEMPICKER"
const val SERIALNUMBER = "SERIALNUMBER"
const val ON_CHECKING = "ON_CHECKING"
const val PRECHECKER = "PRECHECKER"
const val MAINACTIVITY = "MAIN"
const val VERTICKET = "SHOWTICKET"
const val SECTORFKDEFAULT=0
const val WAREHOUSEFKDEFAULT=60
const val SECTORFKDEFAULT = -1
const val PRINTERFKDEFAULT = -1
const val WAREHOUSEFKDEFAULT = 60
const val SECTORFK = "sectorFk"
const val TAG = "VERDNATURA::"
const val USERFK = "userFk"
const val USER = "user"
const val PASSWORD = "password"
const val TOKEN = "token"
const val TTL = "ttl"
const val TOKENCREATED = "tokenCreated"
const val SECTORDESCRIP = "sectordescrip"
const val NUMBEROFWAGONS = "operatorNumberOfWagons"
const val PRINTERNAME = "printername"
const val PRINTERFK = "printerFk"
const val WAREHOUSEFK = "warehouseFk"
const val REMEMBER = "recordar"
const val ANDROID_ID = "ANDROID_ID"
const val DEVICENAME = "devicename"
const val TRAINNAME = "trainName"
const val TRAINFK = "trainFk"
const val WORKFORMSELECTED = "workFormSelected"
const val SUPPLIERID = "SUPPLIERID"
const val SUPPLIERNAME = "SUPPLIERNAME"
const val ITEMPACKING = "itemPackingType"
const val ITEMPACKINGFK = "itemPackingTypeFk"
const val BUYER = "buyernickname"
const val BUYERID = "buyerid"
const val WAGON = "wagon"
const val TAGSTYPE = "tagstype"
const val WAREHOUSEFK_DEFAULT = 60
const val DATENOVEHICLE = "DATENOVEHICLE"
const val DEPARTMENTMISTAKE = "DEPARTMENTMISTAKE"
const val DEPARTMENTMISTAKEID = "DEPARTMENTMISTAKEID"
const val ENTRYOBSERVATIONS = "ENTRYOBSERVATIONS"
const val ENTRYNUMBERIMAGES = "ENTRYNUMBERIMAGES"
const val ENTRYTYPE = "ENTRYTYPE"
const val BASEURL = "base_url"
const val BASEURLSALIX = "base_urlSalix"
const val BASE_URL_SALIX = "https://salix.verdnatura.es"
const val BASE_URL = "https://app.verdnatura.es"
const val ENTRY = "ENTRY"
const val RENEWINTERVAL="renewInterval"
const val RENEWPERIOD="renewPeriod"
}

View File

@ -1,8 +1,9 @@
package es.verdnatura.domain
import android.content.Context
import android.content.SharedPreferences
import android.view.View
import es.verdnatura.MobileApplication
import es.verdnatura.domain.ConstAndValues.TOKEN
import es.verdnatura.presentation.common.InteceptorListener
import okhttp3.Interceptor
import okhttp3.Response
@ -14,24 +15,25 @@ class SalixInterceptor(private val context: Context, private val listener: Intec
@Throws(IOException::class)
override fun intercept(chain: Interceptor.Chain): Response {
val prefs: SharedPreferences =
this.context.getSharedPreferences("es.verdnatura.user.prefs", 0)
var request = chain.request()
//sergio: condición para que añada o no headers según se vaya quitando de las llamadas
//no quitar condición hasta que estén quitados
if (request.headers().toString().isEmpty()) {
val newRequest = request.newBuilder()
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", prefs.getString("token", ""))
.build()
request = newRequest
.addHeader(
"Authorization",
(context as MobileApplication).dataStoreApp.readDataStoreKey<String>(TOKEN))
.build()
request = newRequest
}
if (request.url().toString().contains("renew")){
if (request.url().toString().contains("renew")) {
return chain.proceed(request)
}else{
listener!!.onInterceptionResult(View.VISIBLE)
val response = chain.proceed(request)
listener!!.onInterceptionResult(View.INVISIBLE)
return response }
} else {
listener!!.onInterceptionResult(View.VISIBLE)
val response = chain.proceed(request)
listener!!.onInterceptionResult(View.INVISIBLE)
return response
}
}
}

View File

@ -409,7 +409,7 @@ interface SalixService {
fun machineGetWorkerPlate(
@Query("params") params: Any? = null,
@Query("schema") schema: String = "vn"
): Call<Any>
): Call<List<JsonObject>>
@POST("Applications/sectorCollection_get/execute-proc")
fun sectorCollectionGet(

View File

@ -2,6 +2,8 @@ package es.verdnatura.domain
import android.content.Context
import android.content.SharedPreferences
import es.verdnatura.MobileApplication
import es.verdnatura.domain.ConstAndValues.TOKEN
import okhttp3.Interceptor
import okhttp3.Response
import java.io.IOException
@ -17,15 +19,13 @@ class SilexInterceptor : Interceptor {
@Throws(IOException::class)
override fun intercept(chain: Interceptor.Chain): Response {
val prefs: SharedPreferences =
this.context.getSharedPreferences("es.verdnatura.user.prefs", 0)
val request = chain.request()
if (request.headers().toString().isEmpty()) {
val newRequest = request.newBuilder()
.addHeader("aplicacion", "json")
.addHeader("version", "1")
.addHeader("Authorization", prefs.getString("token", ""))
.addHeader("Authorization", (context as MobileApplication).dataStoreApp.readDataStoreKey<String>(TOKEN))
.addHeader("Content-Type", "application/json")
.build()
// d("VERDNATURA::", newRequest.headers().toString() + newRequest.url())

View File

@ -17,7 +17,7 @@ import androidx.databinding.ViewDataBinding
import com.google.android.gms.location.FusedLocationProviderClient
import com.google.android.gms.location.LocationCallback
import com.google.android.gms.location.LocationResult
import es.verdnatura.MobileApplication
interface LocationUpdateCallback {
fun onLocationReceived(location: LocationResult)
@ -25,6 +25,7 @@ interface LocationUpdateCallback {
abstract class BaseActivity<T : ViewDataBinding> : AppCompatActivity() {
protected lateinit var mobileApplication: MobileApplication
private val locationCallback = object : LocationCallback() {
override fun onLocationResult(location: LocationResult) {
locationUpdateCallback?.onLocationReceived(location)
@ -49,6 +50,7 @@ abstract class BaseActivity<T : ViewDataBinding> : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(getLayoutId())
initDataBinding()
mobileApplication = application as MobileApplication
init()
}

View File

@ -2,7 +2,6 @@ package es.verdnatura.presentation.base
import android.Manifest
import android.content.Context
import android.content.SharedPreferences
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@ -12,67 +11,22 @@ import androidx.annotation.LayoutRes
import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding
import androidx.fragment.app.Fragment
import androidx.preference.PreferenceManager
import androidx.room.Room
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import es.verdnatura.MobileApplication
import es.verdnatura.R
import es.verdnatura.databinding.ToolbarFragmentBinding
import es.verdnatura.db.DeliveryDatabase
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFKDEFAULT
import es.verdnatura.presentation.view.feature.login.model.OperatorSalix
import es.verdnatura.presentation.view.feature.login.model.WorkForms
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import org.json.JSONObject
import org.koin.androidx.viewmodel.ext.android.viewModel
import timber.log.Timber
import timber.log.Timber.d
import java.util.*
import kotlin.collections.Map.*
import kotlin.reflect.KClass
abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
viewModelClass: KClass<V>
) : Fragment() {
protected lateinit var mobileApplication: MobileApplication
protected val TAG = "VERDNATURA::"
protected val PREFS_USER = "es.verdnatura.user.prefs"
protected val PREFS_SERVER = "es.verdnatura.server.prefs"
protected val USERFK = "userFk"
protected val USER = "user"
protected val PASSWORD = "password"
protected val TOKEN = "token"
protected val TTL = "ttl"
protected val TOKENCREATED = "tokenCreated"
protected val SECTORDESCRIP = "sectordescrip"
protected val SECTORFK = "sectorFk"
protected val NUMBEROFWAGONS = "operatorNumberOfWagons"
protected val PRINTERNAME = "printername"
protected val PRINTERFK = "printerFk"
protected val WAREHOUSEFK = "warehouseFk"
protected val REMEMBER = "recordar"
protected val ANDROID_ID = "ANDROID_ID"
protected val DEVICENAME = "devicename"
protected val TRAINNAME = "trainName"
protected val TRAINFK = "trainFk"
protected val WORKFORMSELECTED = "workFormSelected"
protected val SUPPLIERID = "SUPPLIERID"
protected val ITEMPACKING = "itemPackingType"
protected val ITEMPACKINGFK = "itemPackingTypeFk"
protected val BUYER = "buyernickname"
protected val BUYERID = "buyerid"
protected val WAGON = "wagon"
protected val TAGSTYPE = "tagstype"
protected val WAREHOUSEFK_DEFAULT = 60
protected val DATENOVEHICLE = "DATENOVEHICLE"
protected val DEPARTMENTMISTAKE = "DEPARTMENTMISTAKE"
protected val DEPARTMENTMISTAKEID = "DEPARTMENTMISTAKEID"
protected val viewModel: V by viewModel(viewModelClass)
protected lateinit var binding: T
protected lateinit var ma: MainActivity
@ -97,7 +51,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
initDataBinding()
getBundleArguments()
observeViewModel()
//sergio: para llamadas con SIP
//requestCallPhonePermissionNew()
init()
@ -163,9 +116,7 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
R.drawable.ic_transaction -> getString(R.string.showFilter)
R.drawable.alpha_f_circle_outline -> getString(R.string.showFaults)
R.drawable.alpha_b_circle_outline -> getString(R.string.showTrash)
R.drawable.filter_outline -> getString(R.string.filterFlower)
R.drawable.ic_mode_edit_black_24dp -> getString(R.string.allowChangeShelving)
R.drawable.ic_delete_forever_black_24dp -> getString(R.string.deleteAllitems)
R.drawable.ic_flash_auto_black_24dp -> getString(R.string.allowAutomaticAddItem)
@ -175,11 +126,9 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
R.drawable.ic_ubicator_check -> getString(R.string.checkerUbication)
R.drawable.ic_delivery_truck -> getString(R.string.loadRoute)
R.drawable.ic_confirm -> getString(R.string.confirmDescription)
R.drawable.camion -> getString(R.string.openLoadingConsignee)
R.drawable.exit -> getString(R.string.exitScreen)
R.drawable.ic_image_upload -> getString(R.string.messageUpload)
R.drawable.expedition_find -> getString(R.string.showLogExpedition)
R.drawable.ic_info_refresh -> getString(R.string.udpateRoutes)
R.drawable.ic_info_delivery -> getString(R.string.info)
@ -247,356 +196,6 @@ abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
tool.backButton.visibility = View.INVISIBLE
}
private fun getDefaults(key: String?, context: Context?): String? {
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
return preferences.getString(key, null)
}
fun getDataInt(name: String): Int {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
return when (name) {
SECTORFK -> prefs.getInt(name, SECTORFKDEFAULT)
WAREHOUSEFK -> prefs.getInt(name, WAREHOUSEFKDEFAULT)
PRINTERFK -> prefs.getInt(name, 0)
USERFK -> prefs.getInt(USERFK, 0)
SUPPLIERID -> prefs.getInt(SUPPLIERID, 0)
else -> {
0
}
}
}
fun getData(name: String): String {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
return when (name) {
TOKEN -> prefs.getString(name, "").toString()
ANDROID_ID -> prefs.getString(name, "0").toString()
USERFK -> prefs.getString(USERFK, "").toString() //el id
USER -> prefs.getString(USER, "").toString()
PASSWORD -> prefs.getString(PASSWORD, "").toString()
SECTORFK -> prefs.getInt(name, SECTORFKDEFAULT).toString()
WAREHOUSEFK -> prefs.getInt(name, WAREHOUSEFKDEFAULT).toString()
WAGON -> prefs.getInt(name, 2).toString()
TAGSTYPE -> prefs.getString(name, getString(R.string.stickers)).toString()
SECTORDESCRIP -> prefs.getString(name, getString(R.string.Sinsector)).toString()
SECTORFK -> prefs.getInt(name, SECTORFKDEFAULT).toString()
BUYER -> prefs.getString(name, "").toString()
BUYERID -> prefs.getString(name, "").toString()
DATENOVEHICLE -> prefs.getString(name, "0").toString()
DEPARTMENTMISTAKE -> prefs.getString(name, "").toString()
DEPARTMENTMISTAKEID -> prefs.getInt(name, 0).toString()
PRINTERFK -> prefs.getInt(name, 0).toString()
PRINTERNAME -> prefs.getString(name, getString(R.string.noprinter)).toString()
NUMBEROFWAGONS -> prefs.getInt(name, 1).toString()
TRAINFK -> prefs.getString(name, "").toString()
TRAINNAME -> prefs.getString(name, "").toString()
ITEMPACKING -> prefs.getString(name, "").toString()
ITEMPACKINGFK -> prefs.getString(name, "").toString()
WORKFORMSELECTED -> prefs.getString(name, "Producción").toString()
"SUPPLIERNAME" -> prefs.getString(name, "").toString()
"SUPPLIERID" -> prefs.getInt(name, 0).toString()
"ENTRYTYPE" -> prefs.getString(name, "").toString()
"ENTRYNUMBERIMAGES" -> prefs.getString(name, "0").toString()
"ENTRYOBSERVATIONS" -> prefs.getString(name, "").toString()
"SERIALNUMBER" -> prefs.getString(name, "").toString()
"base_url" -> {
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
preferences.getString(getString(R.string.baseurl), "").toString()
}
"base_urlSalix" -> {
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
var serverSalix =
preferences.getString(getString(R.string.base_urlSalix), "").toString()
if (serverSalix.isNullOrEmpty()) {
serverSalix = "https://salix.verdnatura.es"
}
return serverSalix
}
else -> {
prefs.getString(name, "").toString()
}
}
}
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?) {
val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
val editor = preferences.edit()
editor.putString(key, value)
editor.commit()
}
fun removePrinter() {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
editor.remove(PRINTERFK).commit()
editor.remove(PRINTERNAME).commit()
}
fun saveWorkForm(workForm: WorkForms) {
var prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_SERVER, 0)
var editor = prefs.edit()
var gson = Gson()
var json = gson.toJson(workForm)
editor.putString(workForm.name, json)
editor.commit()
saveData("base_url", workForm.urlSilex)
saveData("base_urlSalix", workForm.urlSalix)
}
fun deleteWorkForm(nameWorkForm: String) {
var prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_SERVER, 0)
var editor = prefs.edit()
if (nameWorkForm == "all") {
editor.clear().apply()
} else {
editor.remove(nameWorkForm).commit()
}
}
fun getWorkForm(): List<WorkForms> {
var listForms: ArrayList<WorkForms> = ArrayList()
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_SERVER, 0)
val editor = prefs.edit()
val keys: Map<String, *> = prefs.all
for (Map in keys) {
var json2 = JSONObject(Map.value.toString())
listForms.add(
WorkForms(
Map.key,
json2.get("urlSilex").toString(),
json2.get("urlSalix").toString(),
json2.get("isShowDelete").toString().toBoolean(),
json2.get("created") as Long
)
)
}
editor.commit()
if (listForms.isEmpty()) {
createWorksDefault()
}
return listForms.sortedBy { it.created }
}
fun createWorksDefault() {
saveWorkForm(
WorkForms(
"Producción",
"https://app.verdnatura.es",
"https://salix.verdnatura.es"
)
)
saveWorkForm(
WorkForms(
"Test",
"https://test-app.verdnatura.es",
urlSalix = "https://test-salix.verdnatura.es"
)
)
var working_in_test = true
if (working_in_test) {
saveWorkForm(
WorkForms(
"TestLocalhost",
"http://10.1.4.42:9000",
urlSalix = "https://test-salix.verdnatura.es"
)
)
saveWorkForm(
WorkForms(
"TestHome",
"http://192.168.1.132:9000",
urlSalix = "https://test-salix.verdnatura.es"
)
)
saveWorkForm(
WorkForms(
"TestLOCAL",
"http://10.1.4.42:9000",
urlSalix = "http://10.1.4.42:3000"
)
)
saveWorkForm(
WorkForms(
"TestLOCALHOME",
"http://192.168.1.132:9000",
urlSalix = "http://192.168.1.132:3000"
)
)
} else {
deleteWorkForm("all")
}
saveWorkForm(
WorkForms(
"Añadir...",
"",
"",
created = Calendar.getInstance().timeInMillis + Calendar.getInstance().timeInMillis
)
)
}
fun saveData(name: String, value: Any) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
when (name) {
"base_url" -> {
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
val editorPref = preferences.edit()
editorPref.putString("base_url", value.toString())
editorPref.commit()
}
"base_urlSalix" -> {
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
val editorPref = preferences.edit()
editorPref.putString("base_urlSalix", value.toString())
editorPref.commit()
}
DEPARTMENTMISTAKEID -> {
editor.putInt(name, value as Int)
}
"SUPPLIERID" -> {
editor.putString(name, value.toString())
}
else -> {
editor.putString(name, value.toString())
}
}
editor.commit()
}
fun saveDataInt(name: String, value: Int) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
when (name) {
name -> editor.putInt(name, value)
ANDROID_ID -> editor.putInt(name, value)
}
editor.apply()
}
fun saveDataOperator(operator: OperatorSalix) {
if (operator.sector == null) {
removeSector()
} else {
saveDataInt(SECTORFK, operator.sector.id)
saveData(SECTORDESCRIP, operator.sector.description)
saveDataInt(WAREHOUSEFK, operator.sector.warehouseFk)
}
if (operator.printer == null) {
removePrinter()
} else {
saveDataInt(PRINTERFK, operator.printer.id)
saveData(PRINTERNAME, operator.printer.name)
}
if (operator.train != null) {
saveData(TRAINNAME, operator.train.name)
}
saveDataInt(NUMBEROFWAGONS, operator.numberOfWagons)
}
fun saveDataLong(name: String, value: Long) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
when (name) {
name -> editor.putLong(name, value)
}
editor.apply()
}
fun saveWorkingForms(list: ArrayList<String>) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
editor.putString("workingForms", list.toString())
editor.apply()
}
fun getWorkingForms(): Array<String> {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val jsonStr: String? = prefs.getString("workingForms", null)
val gson = Gson()
val lista: Array<String> = gson.fromJson(jsonStr, Array<String>::class.java)
return lista
}
fun saveBuyer(buyernickname: String, buyerid: String) {
val prefsEditor: SharedPreferences.Editor = mobileApplication.getPrefsEditor()
prefsEditor.putString(BUYER, buyernickname)
prefsEditor.putString(BUYERID, buyerid)
prefsEditor.apply()
}
fun getMessageFromJSON(json: String): String {
val gson = Gson()
var message = ""
var tutorialMap: Map<String, Any> =
gson.fromJson(json, object : TypeToken<Map<String, Any>>() {}.type)
tutorialMap.forEach {
if (it.key.equals("Message")) {
message = it.value.toString()
}
}
return message
}
fun getListFromJSON(json: String): List<String> {
val gson = Gson()
var list = mutableListOf<String>()
// val mapType = object : TypeToken<Map<String, Any>>() {}.type
var tutorialMap: Map<String, Any> =
gson.fromJson(json, object : TypeToken<Map<String, Any>>() {}.type)
tutorialMap.forEach {
list.add(it.key + ":" + it.value)
}
return list
}
}
fun database(myContext: Context): DeliveryDatabase {

View File

@ -0,0 +1,33 @@
package es.verdnatura.presentation.common
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
class FunctionUtils{
fun getMessageFromJSON(json: String): String {
val gson = Gson()
var message = ""
var tutorialMap: Map<String, Any> =
gson.fromJson(json, object : TypeToken<Map<String, Any>>() {}.type)
tutorialMap.forEach {
if (it.key.equals("Message")) {
message = it.value.toString()
}
}
return message
}
fun getListFromJSON(json: String): List<String> {
val gson = Gson()
var list = mutableListOf<String>()
// val mapType = object : TypeToken<Map<String, Any>>() {}.type
var tutorialMap: Map<String, Any> =
gson.fromJson(json, object : TypeToken<Map<String, Any>>() {}.type)
tutorialMap.forEach {
list.add(it.key + ":" + it.value)
}
return list
}
}

View File

@ -17,6 +17,7 @@ import android.widget.Toast
import androidx.lifecycle.Observer
import es.verdnatura.R
import es.verdnatura.databinding.FragmentTestingPrintBinding
import es.verdnatura.domain.ConstAndValues.TOKEN
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.view.component.CustomDialog
@ -27,7 +28,6 @@ import java.io.File
import java.io.IOException
import java.io.UnsupportedEncodingException
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class testPrint(
var entryPoint: String = ""
@ -42,15 +42,17 @@ class testPrint(
fun newInstance(entryPoint: String) = testPrint(entryPoint)
}
override fun init() {
customDialog = CustomDialog(requireContext())
setToolbar()
setEvents()
val i = Intent()
i.setClassName("verdnatura.es.repartoverdnatura", "verdnatura.es.repartoverdnatura.MainActivity")
i.putExtra("token",getData(TOKEN))
i.setClassName(
"verdnatura.es.repartoverdnatura",
"verdnatura.es.repartoverdnatura.MainActivity"
)
i.putExtra(TOKEN, mobileApplication.dataStoreApp.readDataStoreKey<String>(TOKEN))
startActivity(i)
super.init()
@ -66,7 +68,6 @@ class testPrint(
super.onPause()
}
private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener {
@ -103,7 +104,6 @@ class testPrint(
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0) {
goBack = false
if (!binding.scanInput.text.isNullOrEmpty()) {
itemscaned = binding.scanInput.text.toString()
@ -117,28 +117,29 @@ class testPrint(
// false
}
@Throws(IOException::class)
fun getFileFromAssets(context: Context, fileName: String): File = File(context.cacheDir, fileName)
.also {
if (!it.exists()) {
it.outputStream().use { cache ->
context.assets.open(fileName).use { inputStream ->
inputStream.copyTo(cache)
fun getFileFromAssets(context: Context, fileName: String): File =
File(context.cacheDir, fileName)
.also {
if (!it.exists()) {
it.outputStream().use { cache ->
context.assets.open(fileName).use { inputStream ->
inputStream.copyTo(cache)
}
}
}
}
}
private fun convertImg() {
val path: Uri = Uri.parse("file://android_asset/raw/test.pdf")
//val newPath: String = path.toString()
val filePath = getFileFromAssets(requireContext(), "test.pdf").absolutePath
val filePath = getFileFromAssets(requireContext(), "test.pdf").absolutePath
val input = ParcelFileDescriptor.open(File(filePath), ParcelFileDescriptor.MODE_READ_ONLY)
val renderer = PdfRenderer(input)
val page = renderer.openPage(0)
val bitmap = Bitmap.createBitmap(
200, (200.toFloat() / page.width * page.height).toInt(), Bitmap.Config.ARGB_8888
@ -150,7 +151,6 @@ class testPrint(
page.close()
renderer.close()
// do something with the bitmap, like putting it on an ImageView
binding.imageView.setImageBitmap(bitmap)
page.close()
@ -186,7 +186,6 @@ class testPrint(
return bitmap
}
private fun printZPL() {
var variableData = HashMap<String, String>()
variableData.put("%PRODUCT_NAME%", "Apples")
@ -298,7 +297,6 @@ class testPrint(
""".trimIndent()
var templateBytes: ByteArray? = null
try {
@ -405,7 +403,8 @@ class testPrint(
// Result code 0 indicates success
val printerStatusMap =
resultData!!.getSerializable("PrinterStatusMap") as HashMap<String, String>?
Toast.makeText(context, printerStatusMap.toString(), Toast.LENGTH_LONG).show()
Toast.makeText(context, printerStatusMap.toString(), Toast.LENGTH_LONG)
.show()
} else {
// Handle unsuccessful print
// Error message (null on successful print)
@ -418,8 +417,9 @@ class testPrint(
})
)
requireContext().startService(intent)
}
requireContext().startService(intent)
}
private fun printDisconnect() {
val intent = Intent()
intent.component = ComponentName(
@ -438,7 +438,8 @@ class testPrint(
// Result code 0 indicates success
val printerStatusMap =
resultData!!.getSerializable("PrinterStatusMap") as HashMap<String, String>?
Toast.makeText(context, printerStatusMap.toString(), Toast.LENGTH_LONG).show()
Toast.makeText(context, printerStatusMap.toString(), Toast.LENGTH_LONG)
.show()
} else {
// Handle unsuccessful print
// Error message (null on successful print)
@ -453,6 +454,7 @@ class testPrint(
requireContext().startService(intent)
}
private fun buildIPCSafeReceiver(resultReceiver: ResultReceiver): ResultReceiver? {
val parcel = Parcel.obtain()
resultReceiver.writeToParcel(parcel, 0)
@ -490,6 +492,5 @@ class testPrint(
}
}

View File

@ -4,14 +4,25 @@ import android.app.AlertDialog
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context.CLIPBOARD_SERVICE
import android.content.SharedPreferences
import android.os.Bundle
import android.view.View
import androidx.appcompat.widget.TooltipCompat.setTooltipText
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.MobileApplication
import es.verdnatura.R
import es.verdnatura.databinding.FragmentAjustesBinding
import es.verdnatura.domain.ConstAndValues.ANDROID_ID
import es.verdnatura.domain.ConstAndValues.ITEMPACKING
import es.verdnatura.domain.ConstAndValues.NUMBEROFWAGONS
import es.verdnatura.domain.ConstAndValues.PRINTERFK
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.ConstAndValues.SECTORDESCRIP
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.ConstAndValues.SERIALNUMBER
import es.verdnatura.domain.ConstAndValues.TRAINFK
import es.verdnatura.domain.ConstAndValues.TRAINNAME
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnAjustesItemClickListener
@ -26,6 +37,9 @@ import es.verdnatura.presentation.view.feature.ajustes.model.Train
import es.verdnatura.presentation.view.feature.articulo.model.ItemPackingType
import es.verdnatura.presentation.view.feature.login.fragment.LoginViewModel
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
class AjustesFragment :
BaseFragment<FragmentAjustesBinding, AjustesViewModel>(AjustesViewModel::class) {
@ -35,12 +49,11 @@ class AjustesFragment :
private var sectorListVO: List<SectorItemVO> = listOf()
private var printersList: List<Printers> = listOf()
private var trainsList: List<Train> = listOf()
private var prefs: SharedPreferences? = null
private var ajustesAdapter: AjustesAdapter? = null
private var isWorkerAllowed: Boolean = false
private var itemPackingList: List<ItemPackingType> = listOf()
private var messagePrinter: String? = null
private lateinit var loginViewModel : LoginViewModel
private lateinit var loginViewModel: LoginViewModel
//añadido
private var wagonList: List<String> = listOf()
@ -53,7 +66,6 @@ class AjustesFragment :
override fun getLayoutId(): Int = R.layout.fragment_ajustes
override fun onCreate(savedInstanceState: Bundle?) {
prefs = requireActivity().getSharedPreferences(PREFS_USER, 0)
customDialog = CustomDialog(requireContext())
customDialogInput = CustomDialogInput(requireContext())
super.onCreate(savedInstanceState)
@ -69,15 +81,15 @@ class AjustesFragment :
binding.userText.text = mobileApplication.userName
val versionName = requireActivity().packageManager.getPackageInfo(
requireActivity().packageName,
0
requireActivity().packageName, 0
).versionName!!
binding.itemVersion.text = versionName
binding.androididText.text = getData(ANDROID_ID)
binding.androididText.text =
mobileApplication.dataStoreApp.readDataStoreKey<String>(ANDROID_ID)
// Tarea 4815
binding.serialNumber.text = mobileApplication.serialNumber
// binding.txtserver.setText(getData(getString(R.string.baseurl)))
// binding.txtserver.setText(getData(getString(R.string.baseurl)))
setEvents()
super.init()
@ -90,14 +102,18 @@ class AjustesFragment :
customDialogInput.setTitle(getString(R.string.serialNumberDescrip))
.setDescription(getString(R.string.serialNumber))
.setOkButton(getString(R.string.save)) {
saveData("SERIALNUMBER", customDialogInput.getValue())
lifecycleScope.launch(Dispatchers.IO) {
mobileApplication.dataStoreApp.editDataStoreKey(
SERIALNUMBER, customDialogInput.getValue()
)
}
binding.serialNumber.text = customDialogInput.getValue()
ma.hideKeyboard()
customDialogInput.dismiss()
}.setKoButton(getString(R.string.cancel)) {
customDialogInput.dismiss()
}
.show()
}.show()
customDialogInput.setFocusText()
true
}
@ -117,26 +133,15 @@ class AjustesFragment :
} else if (item.id == 5) {
requireActivity().onBackPressed()
} else if (item.id == 1) {
//Tarea 4351 quitar parte de mostrar los carros y quitar del layout el ">" del final
ma.messageWithSound(
getString(R.string.managerWagon),
true,
true,
"Información",
false
getString(R.string.managerWagon), true, true, "Información", false
)
} else if (item.id == 2) {
messagePrinter = getString(R.string.Selecccionaimpresoara)
viewModel.printer_get()
} else if (item.id == 3) {
val listTagsType: ArrayList<String> = ArrayList()
listTagsType.add(getString(R.string.stickers))
tagsList = listTagsType
val array = arrayOfNulls<String>(listTagsType.size)
showItemPickerType(array = listTagsType.toArray(array))
} else if (item.id == 4) {
ma.onPasillerosItemClickListener(
PasillerosItemVO(
@ -154,17 +159,6 @@ class AjustesFragment :
}
})
operatorGetItemPackingType.observe(viewLifecycleOwner) {
if (it.isError) {
ma.messageWithSound(it.errorMessage, it.isError, true)
} else {
saveData(ITEMPACKING, it.response)
}
setSettings(isWorkerAllowed)
}
workerAllowedResponse.observe(viewLifecycleOwner) {
@ -173,18 +167,17 @@ class AjustesFragment :
} else {
isWorkerAllowed = it.response.toBoolean()
loginViewModel= LoginViewModel(context as MobileApplication)
loginViewModel = LoginViewModel(context as MobileApplication)
loginViewModel.operator_getDataSalix(mobileApplication.userId!!)
loginViewModel.workerOperator.observe(this@AjustesFragment) { it ->
if (!it.isError) {
saveDataOperator(it)
}else{
runBlocking { mobileApplication.dataStoreApp.saveDataOperator(it) }
} else {
ma.messageWithSound(it.errorMessage, it.isError, true)
}
}
}
setSettings(isWorkerAllowed)
@ -352,18 +345,32 @@ class AjustesFragment :
private fun setSettings(actionIsAllowed: Boolean = false) {
viewModel.inititializeDefaultAjusts(
getData(SECTORDESCRIP),
getDataInt(SECTORFK),
getDataInt(WAREHOUSEFK),
getData(NUMBEROFWAGONS),
getDataInt(PRINTERFK),
getData(PRINTERNAME),
getData(TRAINNAME),
getData(ITEMPACKING),
actionIsAllowed = actionIsAllowed
runBlocking {
)
println(
"key FK ${
mobileApplication.dataStoreApp.readDataStoreKey(PRINTERFK) as Int
}"
)
println(
"key NAME ${
mobileApplication.dataStoreApp.readDataStoreKey(PRINTERNAME) as String
}"
)
viewModel.inititializeDefaultAjusts(
mobileApplication.dataStoreApp.readDataStoreKey(SECTORDESCRIP),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK),
(mobileApplication.dataStoreApp.readDataStoreKey(NUMBEROFWAGONS) as Int).toString(),
mobileApplication.dataStoreApp.readDataStoreKey(PRINTERFK),
mobileApplication.dataStoreApp.readDataStoreKey<String>(PRINTERNAME).toString(),
mobileApplication.dataStoreApp.readDataStoreKey<String>(TRAINNAME),
mobileApplication.dataStoreApp.readDataStoreKey<String>(ITEMPACKING),
actionIsAllowed = actionIsAllowed
)
}
binding.splashProgress.visibility = View.GONE
}
@ -377,17 +384,18 @@ class AjustesFragment :
val selected = array[which]
printersList.forEach {
if (it.name.equals(selected)) {
val editor = prefs!!.edit()
editor.putString(PRINTERNAME, it.name)
editor.putInt(PRINTERFK, it.id!!)
editor.apply()
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(PRINTERNAME, it.name)
mobileApplication.dataStoreApp.editDataStoreKey(PRINTERFK, it.id!!)
}
viewModel.ajustesitem.get(2).selected = it.name
viewModel.worker_updateOperatorSalix(
"printer",
mobileApplication.userId!!,
getDataInt(SECTORFK),
it.id!!
entity = "printer",
workerFk = mobileApplication.userId!!,
sectorFk = mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
labelerFk = it.id!!
)
ajustesAdapter!!.notifyDataSetChanged()
ajustesAdapter
@ -410,15 +418,15 @@ class AjustesFragment :
val selected = array[which]
trainsList.forEach {
if (it.name.equals(selected)) {
val editor = prefs!!.edit()
editor.putString(TRAINNAME, it.name)
editor.putInt(TRAINFK, it.id!!)
editor.apply()
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(TRAINNAME, it.name)
mobileApplication.dataStoreApp.editDataStoreKey(TRAINFK, it.id)
}
viewModel.ajustesitem[3].selected = it.name
viewModel.operatorUpdateTrain(
workerId = mobileApplication.userId!!,
trainFk = it.id!!
workerId = mobileApplication.userId!!, trainFk = it.id!!
)
ajustesAdapter!!.notifyDataSetChanged()
@ -441,24 +449,31 @@ class AjustesFragment :
//borra la impresora
viewModel.ajustesitem.get(2).selected = getString(R.string.noprinter)
saveData(PRINTERNAME, getString(R.string.noprinter))
saveDataInt(PRINTERFK, -1)
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
PRINTERNAME, getString(R.string.noprinter)
)
mobileApplication.dataStoreApp.editDataStoreKey(PRINTERFK, -1)
val editor = prefs!!.edit()
editor.putString(SECTORDESCRIP, it.description)
editor.putInt(SECTORFK, it.id)
it.warehouseFk?.let { it1 -> editor.putInt(WAREHOUSEFK, it1) }
editor.apply()
mobileApplication.dataStoreApp.editDataStoreKey(
SECTORDESCRIP, it.description
)
mobileApplication.dataStoreApp.editDataStoreKey(
SECTORFK, it.id
)
it.warehouseFk?.let { it1 ->
mobileApplication.dataStoreApp.editDataStoreKey(
WAREHOUSEFK, it1
)
}
}
viewModel.ajustesitem.get(0).sectorFk = it.id
viewModel.ajustesitem.get(0).warehouse = it.warehouseFk
viewModel.ajustesitem.get(0).selected = it.description
viewModel.worker_updateOperatorSalix(
"sector",
mobileApplication.userId!!,
it.id,
null
"sector", mobileApplication.userId!!, it.id, null
)
ajustesAdapter!!.notifyDataSetChanged()
@ -480,9 +495,12 @@ class AjustesFragment :
val selected = array[which]
itemPackingList.forEach {
if (it.description.equals(selected)) {
val editor = prefs!!.edit()
editor.putString(ITEMPACKING, it.description)
editor.apply()
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
ITEMPACKING, it.description
)
}
viewModel.ajustesitem[4].selected = it.description
viewModel.operator_updateItemPackingType(
it.code
@ -498,56 +516,6 @@ class AjustesFragment :
dialog.show()
}
private fun showDialogCarros(array: Array<String>) {
val builder = AlertDialog.Builder(this.context)
builder.setTitle(getString(R.string.Seleccionauncarro))
builder.setItems(array) { _, which ->
val selected = array[which]
wagonList.forEach {
if (it.equals(selected)) {
val editor = prefs!!.edit()
editor.putInt(WAGON, it.toInt())
editor.apply()
viewModel.ajustesitem.get(1).selected = it
ajustesAdapter!!.notifyDataSetChanged()
return@forEach
}
}
}
val dialog = builder.create()
dialog.show()
}
private fun showItemPickerType(array: Array<String>) {
val builder = AlertDialog.Builder(this.context)
builder.setTitle(getString(R.string.typeTags))
builder.setItems(array) { _, which ->
val selected = array[which]
tagsList.forEach {
if (it.equals(selected)) {
val editor = prefs!!.edit()
editor.putString(TAGSTYPE, it)
editor.apply()
viewModel.ajustesitem.get(3).selected = it
ajustesAdapter!!.notifyDataSetChanged()
return@forEach
}
}
}
val dialog = builder.create()
dialog.show()
}
private fun copyanddrag(string: String): Boolean {
val clipboard = getActivity()?.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clip: ClipData = ClipData.newPlainText(getString(R.string.androidid), string)

View File

@ -64,9 +64,6 @@ class AjustesViewModel(val context: Context) : BaseViewModel(context) {
val operatorGetTrainResponse: LiveData<ResponseItemVO>
get() = _operatorGetTrainResponse
private val _operatorGetItemPackingType by lazy { MutableLiveData<ResponseItemVO>() }
val operatorGetItemPackingType: LiveData<ResponseItemVO>
get() = _operatorGetItemPackingType
private val _workerAllowedResponse by lazy { MutableLiveData<ResponseItemVO>() }
val workerAllowedResponse: LiveData<ResponseItemVO>
@ -86,16 +83,6 @@ class AjustesViewModel(val context: Context) : BaseViewModel(context) {
val loadTrainList = Transformations.map(_trainList) { Event(it) }
val loadUpdatePacking = Transformations.map(_actionUpdatePackingTicket) { Event(it) }
/*
private val _isLoadingProgress by lazy { MutableLiveData<Int>() }
val isLoadingProgress: LiveData<Int>
get() = _isLoadingProgress
fun ProgressLoading(visibility: Int) {
_isLoadingProgress.value = visibility
}
*/
fun inititializeDefaultAjusts(
sectorDescrip: String,
sectorFk: Int,

View File

@ -15,6 +15,8 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.google.gson.Gson
import es.verdnatura.R
import es.verdnatura.databinding.FragmentItemCardBinding
import es.verdnatura.domain.ConstAndValues.BASEURLSALIX
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.*
@ -128,7 +130,11 @@ class ItemCardFragment(
val entryPoint = Gson().toJson(
mutableMapOf(
"entryPoint" to itemId,
"web" to "${getData("base_urlSalix")}/#!/item/$itemId/summary"
"web" to "${
mobileApplication.dataStoreApp.readDataStoreKey<String>(
BASEURLSALIX
)
}/#!/item/$itemId/summary"
)
)
ma.onPasillerosItemClickListener(
@ -192,7 +198,8 @@ class ItemCardFragment(
}
private fun getItemCard(itemFk: String) {
warehouseFk = getDataInt(WAREHOUSEFK)
warehouseFk = mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK) as Int
binding.splashProgressTwo.visibility = View.VISIBLE
viewModel.getItemCard(itemFk.toLong(), warehouseFk!!)
this.itemFk = itemFk

View File

@ -9,6 +9,7 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentItemproposalBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnItemProposalClickListener
import es.verdnatura.presentation.common.OnOptionsSelectedListener
@ -60,7 +61,7 @@ class ItemProposalFragment(
setEvents()
viewModel.itemGetSimilar(
itemFk,
getDataInt(WAREHOUSEFK),
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK),
shipped = currentDay(),
isShowedByType = filter,
)
@ -93,7 +94,7 @@ class ItemProposalFragment(
viewModel.itemGetSimilar(
itemFk,
getDataInt(WAREHOUSEFK),
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK),
isShowedByType = filter,
shipped = currentDay(),
)

View File

@ -12,6 +12,7 @@ import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R
import es.verdnatura.databinding.SaleRowFragmentBinding
import es.verdnatura.domain.ConstAndValues.SACADOR
import es.verdnatura.domain.toast
import es.verdnatura.presentation.common.OnMistakeClickListener
import es.verdnatura.presentation.common.OnPackingClickSaleListener
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
@ -21,7 +22,6 @@ import es.verdnatura.presentation.common.OnTicketClickSaleListener
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import es.verdnatura.presentation.view.feature.sacador.model.Sale
class SaleAdapterNew(
private val items: List<Sale>,
private val onPasillerosItemClickListener: OnPasillerosItemClickListener,
@ -39,7 +39,6 @@ class SaleAdapterNew(
var isExpanded: Boolean = type == "PRECHECKER"
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AjustesItemHolder {
this.context = parent.context
@ -110,7 +109,7 @@ class SaleAdapterNew(
onPackingClick.onPackingClick(sale)
}
quantityReserved.setOnClickListener{
quantityReserved.setOnClickListener {
onQuantityClick.onQuantityClick(sale)
}
@ -128,7 +127,6 @@ class SaleAdapterNew(
false
}
//ERROR
if (sale.originalQuantity != sale.saleQuantity && sale.originalQuantity != null) {
layoutError.visibility = View.VISIBLE
@ -166,20 +164,19 @@ class SaleAdapterNew(
}
if (sale.isParent) {
/* itemArticleItemFk.visibility = View.INVISIBLE
itemPackingText.visibility = View.INVISIBLE
itemPackingItemFk.visibility = View.INVISIBLE
itemArticleCel1.visibility = View.INVISIBLE
itemArticleCel2.visibility = View.INVISIBLE
itemArticleCel3.visibility = View.INVISIBLE
itemArticleQuantity.visibility = View.INVISIBLE
txtdeNew.visibility = View.INVISIBLE
itemArticleQuantityPicked.visibility = View.INVISIBLE
itemArticleQuantityLine3.visibility = View.VISIBLE*/
/* itemArticleItemFk.visibility = View.INVISIBLE
itemPackingText.visibility = View.INVISIBLE
itemPackingItemFk.visibility = View.INVISIBLE
itemArticleCel1.visibility = View.INVISIBLE
itemArticleCel2.visibility = View.INVISIBLE
itemArticleCel3.visibility = View.INVISIBLE
itemArticleQuantity.visibility = View.INVISIBLE
txtdeNew.visibility = View.INVISIBLE
itemArticleQuantityPicked.visibility = View.INVISIBLE
itemArticleQuantityLine3.visibility = View.VISIBLE*/
imageErrorMessage.visibility = View.INVISIBLE
ivArrow.visibility = View.VISIBLE
} else {
/*itemArticleItemFk.visibility = View.VISIBLE
itemPackingText.visibility = View.VISIBLE
@ -222,7 +219,6 @@ class SaleAdapterNew(
ivArrow.setOnClickListener {
if (isExpanded!!) {
ivArrow.setImageResource(R.drawable.ic_arrow_up)
itemArticlePlacements.visibility = View.GONE
@ -246,49 +242,57 @@ class SaleAdapterNew(
var result: Int
var textToConcat: String
result = sale.reservedQuantity % (sale.packing ?: sale.saleQuantity + 1)
if (result != 0) {
textToConcat =
"${sale.reservedQuantity / (sale.grouping ?: 1)} x ${sale.grouping ?: "1"}"
} else {
textToConcat =
"${sale.reservedQuantity / (sale.packing ?: 1)} pack de ${sale.packing ?: "1"}"
}
binding.packingTopicker.text = textToConcat
try {
var result2: Int
var textToConcat2: String
result2 = sale.accumulatedQuantity % (sale.packing ?: sale.saleQuantity + 1)
if (result2 != 0) {
textToConcat2 =
"${(sale.saleQuantity - sale.accumulatedQuantity) / (sale.grouping ?: 1)} x ${sale.grouping ?: "1"}"
} else {
textToConcat2 =
"${(sale.saleQuantity - sale.accumulatedQuantity) / (sale.packing ?: 1)} pack de ${sale.packing ?: "1"}"
}
if (sale.totalItemShelving > 1) {
result = sale.reservedQuantity % (sale.packing ?: sale.saleQuantity + 1)
if (result != 0) {
textToConcat =
"${sale.reservedQuantity / (sale.grouping ?: 1)} x ${sale.grouping ?: "1"}"
} else {
textToConcat =
"${sale.reservedQuantity / (sale.packing ?: 1)} pack de ${sale.packing ?: "1"}"
}
binding.packingTopicker.text = textToConcat
binding.itemSecondToPicker.text = textToConcat2
binding.itemReservedNumber.text =
"${sale.currentItemShelving}/${sale.totalItemShelving}"
binding.itemArticleSecondAccumulate.text =
"${sale.saleQuantity - sale.accumulatedQuantity} de ${sale.saleQuantity}"
binding.selectToPicker.visibility = View.VISIBLE
binding.quantityReserved.text = "${sale.reservedQuantity}/${sale.saleQuantity}"
} else {
binding.quantityReserved.text = "${sale.reservedQuantity}"
var result2: Int
var textToConcat2: String
binding.itemReservedNumber.text = ""
result2 = sale.accumulatedQuantity % (sale.packing ?: sale.saleQuantity + 1)
if (result2 != 0) {
textToConcat2 =
"${(sale.saleQuantity - sale.accumulatedQuantity) / (sale.grouping ?: 1)} x ${sale.grouping ?: "1"}"
} else {
textToConcat2 =
"${(sale.saleQuantity - sale.accumulatedQuantity) / (sale.packing ?: 1)} pack de ${sale.packing ?: "1"}"
}
binding.itemArticleSecondAccumulate.text = ""
binding.itemSecondToPicker.text = ""
binding.selectToPicker.visibility = View.INVISIBLE
} //segona linea començant per d'alt
if (sale.totalItemShelving > 1) {
binding.packingTopicker.text = textToConcat
binding.itemSecondToPicker.text = textToConcat2
binding.itemReservedNumber.text =
"${sale.currentItemShelving}/${sale.totalItemShelving}"
binding.itemArticleSecondAccumulate.text =
"${sale.saleQuantity - sale.accumulatedQuantity} de ${sale.saleQuantity}"
binding.selectToPicker.visibility = View.VISIBLE
binding.quantityReserved.text =
"${sale.reservedQuantity}/${sale.saleQuantity}"
} else {
binding.quantityReserved.text = "${sale.reservedQuantity}"
binding.itemReservedNumber.text = ""
binding.itemArticleSecondAccumulate.text = ""
binding.itemSecondToPicker.text = ""
binding.selectToPicker.visibility = View.INVISIBLE
} //segona linea començant per d'alt
} catch (ex: Exception) {
ex.message!!.toast(context)
}
binding.selectToPicker.text =
"${sale.currentItemShelving}/${sale.totalItemShelving}"
@ -319,7 +323,6 @@ class SaleAdapterNew(
}
}
private fun paintTicketcolor(color: String?, itemView: View, picked: Int) {
if (color.isNullOrBlank()) {
@ -328,7 +331,8 @@ class SaleAdapterNew(
(Color.TRANSPARENT)
} else {
(context!!.getColor(R.color.verdnatura_pumpkin_orange))
})
}
)
} else {
itemView.setBackgroundColor(Color.parseColor(color))
}

View File

@ -30,10 +30,15 @@ import androidx.recyclerview.widget.RecyclerView
import com.google.gson.Gson
import es.verdnatura.R
import es.verdnatura.databinding.FragmentCollectionBinding
import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.CONTROLADOR
import es.verdnatura.domain.ConstAndValues.OK
import es.verdnatura.domain.ConstAndValues.PRECHECKER
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.ConstAndValues.SACADOR
import es.verdnatura.domain.ConstAndValues.SECTORDESCRIP
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
@ -140,7 +145,7 @@ class CollectionFragment(
if (collection.tickets.isEmpty()) {
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -154,6 +159,7 @@ class CollectionFragment(
}
override fun init() {
customDialogList = CustomDialogList(requireContext())
customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext())
@ -258,7 +264,7 @@ class CollectionFragment(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -325,7 +331,7 @@ class CollectionFragment(
if (!buttonPushedGetCollection) {
viewModel.collection_get(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -333,7 +339,7 @@ class CollectionFragment(
} else {
viewModel.collectionTicketGet(
lastScanned,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
@ -419,7 +425,7 @@ class CollectionFragment(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -510,7 +516,9 @@ class CollectionFragment(
it.isError, true
)
} else {
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(
PRINTERNAME
)).toast(
requireContext()
)
}
@ -550,7 +558,7 @@ class CollectionFragment(
if (!it.isError) {
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -568,7 +576,7 @@ class CollectionFragment(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -606,7 +614,7 @@ class CollectionFragment(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -767,7 +775,7 @@ class CollectionFragment(
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
it.response.toInt(),
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -799,7 +807,7 @@ class CollectionFragment(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -822,7 +830,7 @@ class CollectionFragment(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -857,7 +865,7 @@ class CollectionFragment(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -878,17 +886,13 @@ class CollectionFragment(
event.getContentIfNotHandled().notNull {
binding.splashProgress.visibility = GONE
if (it.isError) {
//TEST3
/* if (getDataInt(USERFK) == 18890 || getDataInt(USERFK) == 19591) {
"La línea NO se ha marcado correctamente".toast(context)
}*/
if (!goBack) {
ma.messageWithSound(it.errorMessage, it.isError, true)
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -908,41 +912,6 @@ class CollectionFragment(
}
}
////Tarea #4371
/* responseSaleTracking_mark.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
if (it.isError) {
//TEST3
*//* if (getDataInt(USERFK) == 18890 || getDataInt(USERFK) == 19591) {
"La línea NO se ha marcado correctamente".toast(context)
}*//*
if (!goBack) {
ma.messageWithSound(it.errorMessage, it.isError, true)
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
print = "0",
type
)
}
} else {
// pintar línea
//TEST3
if (getDataInt(USERFK) == 18890 || getDataInt(USERFK) == 19591) {
"La línea se ha marcado correctamente".toast(context)
}
saleAdapter!!.notifyDataSetChanged()
ReviewQuantityForRefreshingAndSorting(
sales[storedPosition].quantity!!.toInt(),
sales[storedPosition].pickedQuantity!!.toInt()
)
goBack = false
}
})*/
responseItemShelvingSaleSupplyAdd.observe(viewLifecycleOwner, Observer {
@ -960,7 +929,6 @@ class CollectionFragment(
}
})
}
}
@ -1098,7 +1066,11 @@ class CollectionFragment(
var entryPoint = Gson().toJson(
mutableMapOf(
"entryPoint" to sale.ticketFk,
"web" to "${getData("base_urlSalix")}/#!/ticket/${sale.ticketFk}/sale"
"web" to "${
mobileApplication.dataStoreApp.readDataStoreKey<String>(
ConstAndValues.BASEURLSALIX
)
}/#!/ticket/${sale.ticketFk}/sale"
)
)
ma.onPasillerosItemClickListener(
@ -1284,7 +1256,7 @@ class CollectionFragment(
try {
viewModel.collectionTicketGet(
txtscan.toInt(),
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -1448,14 +1420,18 @@ class CollectionFragment(
//tarea #4628, se asigna storedBackPosition
storedBackPosition = position
if (type == SACADOR || getData(SECTORDESCRIP).uppercase() == getString(
if (type == SACADOR || mobileApplication.dataStoreApp.readDataStoreKey<String>(
SECTORDESCRIP
).uppercase() == getString(
R.string.sectorALGEMESINEW
)
|| type == PRECHECKER
) {
var myPosition = position
if (type == CONTROLADOR && getData(SECTORDESCRIP).uppercase() == getString(
if (type == CONTROLADOR && mobileApplication.dataStoreApp.readDataStoreKey<String>(
SECTORDESCRIP
).uppercase() == getString(
R.string.sectorALGEMESINEW
)
) {
@ -1806,7 +1782,7 @@ class CollectionFragment(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -1960,7 +1936,7 @@ class CollectionFragment(
itemFk = customDialogList.getValue().toInt(),
ticketFk = ticketSelected,
quantityFk = customDialogList.getValueTwo().toInt(),
warehouseFk = getDataInt(WAREHOUSEFK)
warehouseFk = mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
@ -2026,7 +2002,9 @@ class CollectionFragment(
itemFk = customDialogList.getValue().toInt(),
ticketFk = ticketSelected,
quantityFk = customDialogList.getValueTwo().toInt(),
warehouseFk = getDataInt(WAREHOUSEFK)
warehouseFk = mobileApplication.dataStoreApp.readDataStoreKey(
WAREHOUSEFK
)
)
scanRequest()
customDialogList.dismiss()
@ -2118,9 +2096,12 @@ class CollectionFragment(
private fun ticketCollection_setUsedShelves() {
if (type.equals("CHECKER") && (isMarking && (getData(SECTORDESCRIP).uppercase() != getString(
var sectorDesciption = mobileApplication.dataStoreApp.readDataStoreKey<String>(
SECTORDESCRIP
)
if (type.equals("CHECKER") && (isMarking && (sectorDesciption.uppercase() != getString(
R.string.sectorALGEMESI
) && getData(SECTORDESCRIP).uppercase() != getString(
) && sectorDesciption.uppercase() != getString(
R.string.sectorALGEMESINEW
)
))
@ -2273,7 +2254,7 @@ class CollectionFragment(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -2296,7 +2277,6 @@ class CollectionFragment(
}
private fun increaseQuantity(position: Int, quantity: Int) {
positionIncreaseQuantity = position
quantityIncrease = quantity
@ -2393,7 +2373,9 @@ class CollectionFragment(
collectionFk = collection.collectionFk,
labelCount = (which + 1)
)
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(requireContext())
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(
PRINTERNAME
)).toast(requireContext())
}
val dialog = builder.create()

View File

@ -25,10 +25,15 @@ import androidx.recyclerview.widget.RecyclerView
import com.google.gson.Gson
import es.verdnatura.R
import es.verdnatura.databinding.FragmentCollectionBinding
import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.CONTROLADOR
import es.verdnatura.domain.ConstAndValues.OK
import es.verdnatura.domain.ConstAndValues.PRECHECKER
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.ConstAndValues.SACADOR
import es.verdnatura.domain.ConstAndValues.SECTORDESCRIP
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
@ -135,7 +140,7 @@ class CollectionFragmentPicker(
if (collection.tickets.isEmpty()) {
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -254,7 +259,7 @@ class CollectionFragmentPicker(
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -321,7 +326,7 @@ class CollectionFragmentPicker(
if (!buttonPushedGetCollection) {
viewModel.collection_get(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -329,7 +334,7 @@ class CollectionFragmentPicker(
} else {
viewModel.collectionTicketGet(
lastScanned,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
@ -415,7 +420,7 @@ class CollectionFragmentPicker(
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -506,7 +511,7 @@ class CollectionFragmentPicker(
it.isError, true
)
} else {
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(PRINTERNAME)).toast(
requireContext()
)
}
@ -546,7 +551,7 @@ class CollectionFragmentPicker(
if (!it.isError) {
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -564,7 +569,7 @@ class CollectionFragmentPicker(
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -602,7 +607,7 @@ class CollectionFragmentPicker(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -774,7 +779,7 @@ class CollectionFragmentPicker(
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
it.response.toInt(),
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -806,7 +811,7 @@ class CollectionFragmentPicker(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -829,7 +834,7 @@ class CollectionFragmentPicker(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -863,7 +868,7 @@ class CollectionFragmentPicker(
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -884,17 +889,13 @@ class CollectionFragmentPicker(
event.getContentIfNotHandled().notNull {
binding.splashProgress.visibility = View.GONE
if (it.isError) {
//TEST3
/* if (getDataInt(USERFK) == 18890 || getDataInt(USERFK) == 19591) {
"La línea NO se ha marcado correctamente".toast(context)
}*/
if (!goBack) {
ma.messageWithSound(it.errorMessage, it.isError, true)
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -914,41 +915,7 @@ class CollectionFragmentPicker(
}
}
////Tarea #4371
/* responseSaleTracking_mark.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
if (it.isError) {
//TEST3
*//* if (getDataInt(USERFK) == 18890 || getDataInt(USERFK) == 19591) {
"La línea NO se ha marcado correctamente".toast(context)
}*//*
if (!goBack) {
ma.messageWithSound(it.errorMessage, it.isError, true)
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
print = "0",
type
)
}
} else {
// pintar línea
//TEST3
if (getDataInt(USERFK) == 18890 || getDataInt(USERFK) == 19591) {
"La línea se ha marcado correctamente".toast(context)
}
saleAdapter!!.notifyDataSetChanged()
ReviewQuantityForRefreshingAndSorting(
sales[storedPosition].quantity!!.toInt(),
sales[storedPosition].pickedQuantity!!.toInt()
)
goBack = false
}
})*/
responseItemShelvingSaleSupplyAdd.observe(viewLifecycleOwner, Observer {
@ -976,7 +943,6 @@ class CollectionFragmentPicker(
markLine(positionCollectionSplit, type)
saleAdapter!!.notifyDataSetChanged()
}
private fun callPicker(extensionNumber: String) {
@ -1113,7 +1079,9 @@ class CollectionFragmentPicker(
var entryPoint = Gson().toJson(
mutableMapOf(
"entryPoint" to sale.ticketFk,
"web" to "${getData("base_urlSalix")}/#!/ticket/${sale.ticketFk}/sale"
"web" to "${mobileApplication.dataStoreApp.readDataStoreKey<String>(
ConstAndValues.BASEURLSALIX
)}/#!/ticket/${sale.ticketFk}/sale"
)
)
ma.onPasillerosItemClickListener(
@ -1315,7 +1283,7 @@ class CollectionFragmentPicker(
try {
viewModel.collectionTicketGet(
txtscan.toInt(),
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -1539,7 +1507,7 @@ class CollectionFragmentPicker(
viewModel.saleTrackingReplace(
saleFk = sales[position].saleFk,
isChecked = if (type == SACADOR) sales[position].isPrepared else if (type == CONTROLADOR) sales[position].isControlled else if (type == "PRECHECKER") sales[position].isPreControlled else "1",
originalQuantity = sales[position].pickedQuantity!!,
originalQuantity = sales[position].pickedQuantity!!,
code = if (type == CONTROLADOR) "CHECKED" else if (type == "PRECHECKER") "PREVIOUS_CONTROL" else type,//type.toString(),
buyFk = originalItemScan!!,
isScanned = isScanned
@ -1870,7 +1838,7 @@ class CollectionFragmentPicker(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -2023,7 +1991,7 @@ class CollectionFragmentPicker(
itemFk = customDialogList.getValue().toInt(),
ticketFk = ticketSelected,
quantityFk = customDialogList.getValueTwo().toInt(),
warehouseFk = getDataInt(WAREHOUSEFK)
warehouseFk = mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
@ -2089,7 +2057,9 @@ class CollectionFragmentPicker(
itemFk = customDialogList.getValue().toInt(),
ticketFk = ticketSelected,
quantityFk = customDialogList.getValueTwo().toInt(),
warehouseFk = getDataInt(WAREHOUSEFK)
warehouseFk = mobileApplication.dataStoreApp.readDataStoreKey(
WAREHOUSEFK
)
)
scanRequest()
customDialogList.dismiss()
@ -2234,9 +2204,13 @@ class CollectionFragmentPicker(
private fun ticketCollection_setUsedShelves() {
if (type.equals("CHECKER") && (isMarking && (getData(SECTORDESCRIP).uppercase() != getString(
if (type.equals("CHECKER") && (isMarking && ( mobileApplication.dataStoreApp.readDataStoreKey<String>(
SECTORDESCRIP
).uppercase() != getString(
R.string.sectorALGEMESI
) && getData(SECTORDESCRIP).uppercase() != getString(
) && mobileApplication.dataStoreApp.readDataStoreKey<String>(
SECTORDESCRIP
).uppercase() != getString(
R.string.sectorALGEMESINEW
)
))
@ -2348,7 +2322,7 @@ class CollectionFragmentPicker(
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -2480,7 +2454,7 @@ class CollectionFragmentPicker(
collectionFk = collection.collectionFk,
labelCount = (which + 1)
)
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(requireContext())
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(PRINTERNAME)).toast(requireContext())
}
val dialog = builder.create()

View File

@ -24,8 +24,12 @@ import androidx.recyclerview.widget.RecyclerView
import com.google.gson.Gson
import es.verdnatura.R
import es.verdnatura.databinding.FragmentCollectionNewBinding
import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.BASEURLSALIX
import es.verdnatura.domain.ConstAndValues.CONTROLADOR
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.ConstAndValues.SACADOR
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.*
@ -227,12 +231,18 @@ class CollectionFragmentPickerNew(
binding.splashProgress.visibility = View.VISIBLE
if (!buttonPushedGetCollection) {
viewModel.collection_get(
collection.collectionFk, getDataInt(SECTORFK), print = "0", type
collection.collectionFk,
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
buttonPushedGetCollection = true
} else {
viewModel.collectionTicketGet(
lastScanned, getDataInt(SECTORFK), print = "0", type
lastScanned,
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
buttonPushedGetCollection = false
@ -304,7 +314,10 @@ class CollectionFragmentPickerNew(
binding.collectionSwipe.isRefreshing = false
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk, getDataInt(SECTORFK), print = "0", type
collection.collectionFk,
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
buttonPushedGetCollection = false
binding.collectionSwipe.isRefreshing = false
@ -351,7 +364,11 @@ class CollectionFragmentPickerNew(
if (it.tickets.isNotEmpty()) {
collection = it
createCollectionList()
workerFkFromTicket = it.tickets[0].sales[0].workerFk.toString()
workerFkFromTicket = if (it.tickets[0].sales.isNotEmpty()) {
it.tickets[0].sales[0].workerFk.toString()
} else {
""
}
} else {
binding.mainToolbar.toolbarSubtitle.text = "0/0"
@ -383,7 +400,10 @@ class CollectionFragmentPickerNew(
responseCollectionAddItem.observe(viewLifecycleOwner, Observer {
if (!goBack) {
viewModel.collectionTicketGet(
collection.collectionFk, getDataInt(SECTORFK), print = "0", type
collection.collectionFk,
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
goBack = false
@ -401,7 +421,9 @@ class CollectionFragmentPickerNew(
it.errorMessage, it.isError, true
)
} else {
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(
PRINTERNAME
)).toast(
requireContext()
)
}
@ -544,7 +566,8 @@ class CollectionFragmentPickerNew(
//quitar comentarios FALTA AGRUPAR LAS PREVIAS
myGroupList =
groupSaleGroup(salesList).sortedWith(compareBy<Sale> { it.pickingOrder }.thenBy { it.itemFk })
saleAdapter = SaleAdapterNew(myGroupList,
saleAdapter = SaleAdapterNew(
myGroupList,
pasillerosItemClickListener!!,
object : OnQuantityClickSaleListener {
@ -570,22 +593,31 @@ class CollectionFragmentPickerNew(
override fun onSaleClick(mysale: Sale) {
sales.forEachIndexed { index, sale ->
println("Sacador la sale es ${sale.saleFk}")
println("Sacador la sale picked es ${sale.isPicked}")
println("Sacador la sale group es ${sale.saleGroupFk}")
println("Sacador la sale reserved es ${sale.reservedQuantity}")
if (sale.itemShelvingSaleFk == mysale.itemShelvingSaleFk) {
println("Sacador la sale es ${sale.saleFk}")
println("Sacador la sale picked es ${sale.isPicked}")
println("Sacador la sale group es ${sale.saleGroupFk}")
println("Sacador la sale reserved es ${sale.reservedQuantity}")
println("Sacador la sale dentro es ${sale.saleFk}")
if (sale.isPicked != 1 && sale.saleGroupFk == null) {
showScanner(index, sale)
} else {
unMarkLine(index, sales[index])
}
// println("Sacador la sale es ${sale.saleFk}")
// println("Sacador la sale picked es ${sale.isPicked}")
// println("Sacador la sale group es ${sale.saleGroupFk}")
// println("Sacador la sale reserved es ${sale.reservedQuantity}")
if (sale.itemShelvingSaleFk == 0) {
println("Sacador Que hacemos en este caso ?? ")
} else {
if (sale.itemShelvingSaleFk == mysale.itemShelvingSaleFk) {
println("Sacador **** itemShelvingSale es ${sale.itemShelvingSaleFk}")
println("Sacador **** isPicked es ${sale.isPicked}")
println("Sacador **** saleGroup es ${sale.saleGroupFk}")
//println("Sacador la sale es ${sale.saleFk}")
//println("Sacador la sale picked es ${sale.isPicked}")
//println("Sacador la sale group es ${sale.saleGroupFk}")
//println("Sacador la sale reserved es ${sale.reservedQuantity}")
//println("Sacador la sale dentro es ${sale.saleFk}")
if (sale.isPicked != 1 && sale.saleGroupFk == null) {
println("Sacador **** showScanner")
showScanner(index, sale)
} else {
println("Sacador **** desmarcar")
unMarkLine(index, sales[index])
}
}
}
}
@ -611,7 +643,9 @@ class CollectionFragmentPickerNew(
var entryPoint = Gson().toJson(
mutableMapOf(
"entryPoint" to sale.ticketFk,
"web" to "${getData("base_urlSalix")}/#!/ticket/${sale.ticketFk}/sale"
"web" to "${ mobileApplication.dataStoreApp.readDataStoreKey<String>(
BASEURLSALIX
)}/#!/ticket/${sale.ticketFk}/sale"
)
)
ma.onPasillerosItemClickListener(
@ -787,31 +821,31 @@ class CollectionFragmentPickerNew(
private fun unMarkLine(position: Int, sale: Sale) {
state = 0
customDialog.setTitle(getString(R.string.unmarkLine)).setDescription(
getString(R.string.goUnmark) + sale.itemFk + getString(
R.string.sure
)
).setOkButton(getString(R.string.unmark)) {
sale.isPicked = 0
saleAdapter!!.notifyDataSetChanged()
var mySale = sale.saleFk
for (indice in myGroupList.indices) {
if (!myGroupList[indice].isParent && myGroupList[indice].saleFk == mySale) {
d("VERDNATURA::", "la pos del index de la sale es" + indice)
storedBackPosition = indice
}
getString(R.string.goUnmark) + sale.itemFk + getString(
R.string.sure
)
).setOkButton(getString(R.string.unmark)) {
sale.isPicked = 0
saleAdapter!!.notifyDataSetChanged()
var mySale = sale.saleFk
for (indice in myGroupList.indices) {
if (!myGroupList[indice].isParent && myGroupList[indice].saleFk == mySale) {
d("VERDNATURA::", "la pos del index de la sale es" + indice)
storedBackPosition = indice
}
storedBackPosition = position
setListPosition(position, false)
viewModel.itemShelvingSaleUnpicked(sales[position].itemShelvingSaleFk)
}
storedBackPosition = position
setListPosition(position, false)
viewModel.itemShelvingSaleUnpicked(sales[position].itemShelvingSaleFk)
println("itemshelvingSale ${sales[position].itemShelvingSaleFk}")
positionUnmarked = position
setTotalLines()
scanRequest()
customDialog.dismiss()
}.setKoButton(getString(R.string.cancel)) {
scanRequest()
customDialog.dismiss()
}.show()
positionUnmarked = position
setTotalLines()
scanRequest()
customDialog.dismiss()
}.setKoButton(getString(R.string.cancel)) {
scanRequest()
customDialog.dismiss()
}.show()
}
@ -961,9 +995,9 @@ class CollectionFragmentPickerNew(
customDialogThreeButtonsQuantity.dismiss()
markLine(position, quantity, true)
}.setKoButton("CANCELAR") {
scanRequest()
customDialogThreeButtonsQuantity.dismiss()
}.show()
scanRequest()
customDialogThreeButtonsQuantity.dismiss()
}.show()
customDialogThreeButtons.setFocusDialogValue()
}
@ -1177,8 +1211,8 @@ class CollectionFragmentPickerNew(
private fun showErrorMessage(title: String = getString(R.string.errorMarkLine), text: String) {
customDialog.setTitle(title).setDescription(text).setKoButton(getString(R.string.close)) {
customDialog.dismiss()
}.show()
customDialog.dismiss()
}.show()
}
private fun showDialogLabelCount() {
@ -1197,7 +1231,9 @@ class CollectionFragmentPickerNew(
viewModel.collectionStickerPrint(
collectionFk = collection.collectionFk, labelCount = (which + 1)
)
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(requireContext())
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(
PRINTERNAME
)).toast(requireContext())
}
val dialog = builder.create()

View File

@ -30,10 +30,15 @@ import androidx.recyclerview.widget.RecyclerView
import com.google.gson.Gson
import es.verdnatura.R
import es.verdnatura.databinding.FragmentCollectionBinding
import es.verdnatura.domain.ConstAndValues.BASEURLSALIX
import es.verdnatura.domain.ConstAndValues.CONTROLADOR
import es.verdnatura.domain.ConstAndValues.OK
import es.verdnatura.domain.ConstAndValues.PRECHECKER
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.ConstAndValues.SACADOR
import es.verdnatura.domain.ConstAndValues.SECTORDESCRIP
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
@ -140,7 +145,7 @@ class CollectionFragmentPreChecker(
if (collection.tickets.isEmpty()) {
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -258,7 +263,7 @@ class CollectionFragmentPreChecker(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -325,7 +330,7 @@ class CollectionFragmentPreChecker(
if (!buttonPushedGetCollection) {
viewModel.collection_get(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -333,7 +338,7 @@ class CollectionFragmentPreChecker(
} else {
viewModel.collectionTicketGet(
lastScanned,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
@ -437,7 +442,7 @@ class CollectionFragmentPreChecker(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -528,7 +533,7 @@ class CollectionFragmentPreChecker(
it.isError, true
)
} else {
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(PRINTERNAME)).toast(
requireContext()
)
}
@ -568,7 +573,7 @@ class CollectionFragmentPreChecker(
if (!it.isError) {
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -586,7 +591,7 @@ class CollectionFragmentPreChecker(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -624,7 +629,7 @@ class CollectionFragmentPreChecker(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -798,7 +803,7 @@ class CollectionFragmentPreChecker(
binding.splashProgress.visibility = View.VISIBLE
viewModel.collectionTicketGet(
it.response.toInt(),
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -830,7 +835,7 @@ class CollectionFragmentPreChecker(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -853,7 +858,7 @@ class CollectionFragmentPreChecker(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -888,7 +893,7 @@ class CollectionFragmentPreChecker(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -909,17 +914,13 @@ class CollectionFragmentPreChecker(
event.getContentIfNotHandled().notNull {
binding.splashProgress.visibility = GONE
if (it.isError) {
//TEST3
/* if (getDataInt(USERFK) == 18890 || getDataInt(USERFK) == 19591) {
"La línea NO se ha marcado correctamente".toast(context)
}*/
if (!goBack) {
ma.messageWithSound(it.errorMessage, it.isError, true)
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -939,42 +940,6 @@ class CollectionFragmentPreChecker(
}
}
////Tarea #4371
/* responseSaleTracking_mark.observe(viewLifecycleOwner, Observer {
binding.splashProgress.visibility = GONE
if (it.isError) {
//TEST3
*//* if (getDataInt(USERFK) == 18890 || getDataInt(USERFK) == 19591) {
"La línea NO se ha marcado correctamente".toast(context)
}*//*
if (!goBack) {
ma.messageWithSound(it.errorMessage, it.isError, true)
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
print = "0",
type
)
}
} else {
// pintar línea
//TEST3
if (getDataInt(USERFK) == 18890 || getDataInt(USERFK) == 19591) {
"La línea se ha marcado correctamente".toast(context)
}
saleAdapter!!.notifyDataSetChanged()
ReviewQuantityForRefreshingAndSorting(
sales[storedPosition].quantity!!.toInt(),
sales[storedPosition].pickedQuantity!!.toInt()
)
goBack = false
}
})*/
responseItemShelvingSaleSupplyAdd.observe(viewLifecycleOwner, Observer {
@ -1066,7 +1031,7 @@ class CollectionFragmentPreChecker(
if (type == CONTROLADOR || type == PRECHECKER) {
//Tarea5734
if (salesList.filter { it.sectorFk != null && it.sectorFk!! > 0 }.isNotEmpty()) {
sales = salesList.filter { it.sectorFk == getDataInt(SECTORFK) }
sales = salesList.filter { it.sectorFk == mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK) }
.sortedWith(compareBy({ it.picked }))
} else {
sales = salesList.sortedWith(compareBy({ it.picked }))
@ -1140,7 +1105,9 @@ class CollectionFragmentPreChecker(
var entryPoint = Gson().toJson(
mutableMapOf(
"entryPoint" to sale.ticketFk,
"web" to "${getData("base_urlSalix")}/#!/ticket/${sale.ticketFk}/sale"
"web" to "${mobileApplication.dataStoreApp.readDataStoreKey<String>(
BASEURLSALIX
)}/#!/ticket/${sale.ticketFk}/sale"
)
)
ma.onPasillerosItemClickListener(
@ -1327,7 +1294,7 @@ class CollectionFragmentPreChecker(
try {
viewModel.collectionTicketGet(
txtscan.toInt(),
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -1490,14 +1457,18 @@ class CollectionFragmentPreChecker(
//tarea #4628, se asigna storedBackPosition
storedBackPosition = position
if (type == SACADOR || getData(SECTORDESCRIP).uppercase() == getString(
if (type == SACADOR || mobileApplication.dataStoreApp.readDataStoreKey<String>(
SECTORDESCRIP
).uppercase() == getString(
R.string.sectorALGEMESINEW
)
|| type == PRECHECKER
) {
var myPosition = position
if (type == CONTROLADOR && getData(SECTORDESCRIP).uppercase() == getString(
if (type == CONTROLADOR && mobileApplication.dataStoreApp.readDataStoreKey<String>(
SECTORDESCRIP
).uppercase() == getString(
R.string.sectorALGEMESINEW
)
) {
@ -1841,7 +1812,7 @@ class CollectionFragmentPreChecker(
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -1995,7 +1966,7 @@ class CollectionFragmentPreChecker(
itemFk = customDialogList.getValue().toInt(),
ticketFk = ticketSelected,
quantityFk = customDialogList.getValueTwo().toInt(),
warehouseFk = getDataInt(WAREHOUSEFK)
warehouseFk = mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
@ -2061,7 +2032,7 @@ class CollectionFragmentPreChecker(
itemFk = customDialogList.getValue().toInt(),
ticketFk = ticketSelected,
quantityFk = customDialogList.getValueTwo().toInt(),
warehouseFk = getDataInt(WAREHOUSEFK)
warehouseFk = mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
scanRequest()
customDialogList.dismiss()
@ -2152,9 +2123,13 @@ class CollectionFragmentPreChecker(
private fun ticketCollection_setUsedShelves() {
if (type.equals("CHECKER") && (isMarking && (getData(SECTORDESCRIP).uppercase() != getString(
var sectorDescrip = mobileApplication.dataStoreApp.readDataStoreKey<String>(
SECTORDESCRIP
)
if (type.equals("CHECKER") && (isMarking && (sectorDescrip.uppercase() != getString(
R.string.sectorALGEMESI
) && getData(SECTORDESCRIP).uppercase() != getString(
) && sectorDescrip.uppercase() != getString(
R.string.sectorALGEMESINEW
)
))
@ -2294,7 +2269,7 @@ class CollectionFragmentPreChecker(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -2411,7 +2386,7 @@ class CollectionFragmentPreChecker(
collectionFk = collection.collectionFk,
labelCount = (which + 1)
)
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(requireContext())
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(PRINTERNAME)).toast(requireContext())
}
val dialog = builder.create()

View File

@ -15,6 +15,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentCollectionBinding
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.ConstAndValues.VERTICKET
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
@ -63,7 +65,7 @@ class CollectionShowTicketFragment(
if (collection.tickets.isEmpty()) {
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -124,7 +126,7 @@ class CollectionShowTicketFragment(
if (!buttonPushedGetCollection) {
viewModel.collection_get(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -132,7 +134,7 @@ class CollectionShowTicketFragment(
} else {
viewModel.collectionTicketGet(
lastScanned,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
@ -170,7 +172,6 @@ class CollectionShowTicketFragment(
labelCount = null
)
}
}
@ -185,19 +186,18 @@ class CollectionShowTicketFragment(
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {//ID=0 ACTION_NEXT ID=5 ACTION_UNESPECEFIED)
if (!binding.scanInput.text.toString().isNullOrEmpty()) {
try{
try {
viewModel.collectionTicketGet(
binding.scanInput.text.toString().toInt(),
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
binding.splashProgress.visibility = VISIBLE
}catch (ex:Exception){
} catch (ex: Exception) {
getString(R.string.scanLabelTicket).toast(requireContext())
}
}
binding.scanInput.setText("")
hideKeyboards()
@ -216,7 +216,7 @@ class CollectionShowTicketFragment(
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
collection.collectionFk,
getDataInt(SECTORFK),
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
print = "0",
type
)
@ -243,7 +243,6 @@ class CollectionShowTicketFragment(
collection = it
createCollectionList()
} else {
binding.mainToolbar.toolbarSubtitle.text = "0/0"
}
@ -264,15 +263,13 @@ class CollectionShowTicketFragment(
it.isError, true
)
} else {
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(requireContext())
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(PRINTERNAME)).toast(requireContext())
}
})
}
}
private fun createCollectionList() {
binding.mainToolbar.toolbarTitle.text = collection.collectionFk.toString()
@ -322,7 +319,6 @@ class CollectionShowTicketFragment(
binding.scanInput.requestFocus()
}
private fun printObservations(observations: String) {
if (observations.trim().isNotEmpty()) {
customDialog.setTitle(getString(R.string.observations)).setDescription(observations)
@ -333,7 +329,6 @@ class CollectionShowTicketFragment(
}
}
private fun setTotalLines() {
var totalMark = 0
sales.forEach {
@ -351,5 +346,4 @@ class CollectionShowTicketFragment(
}
}
}

View File

@ -8,6 +8,7 @@ import androidx.lifecycle.Observer
import es.verdnatura.R
import es.verdnatura.databinding.FragmentGeneralBlackBinding
import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
@ -45,7 +46,6 @@ class ControladorFragment :
super.onPause()
}
private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener {
requireActivity().onBackPressed()
@ -62,7 +62,7 @@ class ControladorFragment :
binding.scanInput.setText(textScanned_filterDouble(binding.scanInput.text!!.toString()))
viewModel.collectionTicketGet(
sectorFk = getDataInt(SECTORFK),
sectorFk = mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
collectionFk = binding.scanInput.text.toString().toInt(),
print = "0",
type = ConstAndValues.CONTROLADOR
@ -98,5 +98,4 @@ class ControladorFragment :
onCollectionSelectedListener?.onCollectionSelected(collection, ConstAndValues.CONTROLADOR)
}
}

View File

@ -11,6 +11,9 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentVehiclecontrolUserBinding
import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.ANDROID_ID
import es.verdnatura.domain.ConstAndValues.TOKEN
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnOptionsSelectedListener
@ -83,12 +86,13 @@ class ControlVehiculoUsuarioFragment(
userFk = mobileApplication.userId!!
if (userFk == vUserFK) {
var androidId: String = mobileApplication.dataStoreApp.readDataStoreKey(ANDROID_ID)
viewModel.machineGetWorkerPlate(mobileApplication.userId!!)
viewModel.deviceProduction_getnameDevice(
getData(ANDROID_ID)
androidId
)
viewModel.deviceProductionUserGetWorker(
getData(ANDROID_ID)
androidId
)
} else {
userFk = vUserFK
@ -99,8 +103,10 @@ class ControlVehiculoUsuarioFragment(
}
binding.userImage.loadUrl(
getData("base_urlSalix") + "/api/Images/user/160x160/$userFk/download?access_token=${
getData(
mobileApplication.dataStoreApp.readDataStoreKey<String>(
ConstAndValues.BASEURLSALIX
) + "/api/Images/user/160x160/$userFk/download?access_token=${
mobileApplication.dataStoreApp.readDataStoreKey<String>(
TOKEN
)
}"

View File

@ -39,10 +39,10 @@ class ControlVehiculoViewModel(val context: Context) : BaseViewModel(context) {
fun machineWorker_add(
plateNumber: String
) {
//tarea 6276
//salix.machineWorkerAdd(plateNumber)
//tarea 6276 vehiculo
//salix.machineWorkerUpdateInTime(plateNumber)
silex.machineWorker_add(plateNumber)
.enqueue(object : SalixCallback<Any>(context) {
.enqueue(object : SilexCallback<Any>(context) {
override fun onError(t: Throwable) {
_responseinsert.value = ResponseItemVO(
isError = true,
@ -80,7 +80,7 @@ class ControlVehiculoViewModel(val context: Context) : BaseViewModel(context) {
fun machineWorker_update(
plate: String
) {
//Tarea 6276
//Tarea 6276 //vehiculo
//salix.machineWorkerUpdateInTime(plate)
silex.machineWorker_update(plate)
.enqueue(object : SilexCallback<Any>(context) {
@ -199,16 +199,16 @@ class ControlVehiculoViewModel(val context: Context) : BaseViewModel(context) {
fun machineGetWorkerPlate(userId: Int) {
salix.machineGetWorkerPlate(
arrayListOf(userId)
).enqueue(object : SalixCallback<Any>(context) {
override fun onSuccess(response: Response<Any>) {
var myArray = response.body() as ArrayList<Any>
).enqueue(object : SalixCallback<List<JsonObject>>(context) {
override fun onSuccess(response: Response<List<JsonObject>>) {
var myArray = response.body()
_responsemachine.value =
ResponseItemMachineControl(
isError = false,
response = if (myArray.isEmpty()) {
response = if (myArray!!.isEmpty()) {
""
} else {
response.body()!!.toString()
myArray[0].entrySet().first().value.toString().replace("\"", "")
},
type = "getWorkerPlate"
)

View File

@ -22,6 +22,8 @@ import com.google.gson.Gson
import es.verdnatura.R
import es.verdnatura.databinding.FragmentTicketsBinding
import es.verdnatura.db.DeliveryDatabase
import es.verdnatura.domain.ConstAndValues.BASEURLSALIX
import es.verdnatura.domain.ConstAndValues.TOKEN
import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
@ -143,7 +145,11 @@ class TicketsFragment(
), entryPoint = Gson().toJson(
mutableMapOf(
"entryPoint" to route.id,
"web" to "${getData("base_urlSalix")}#!/route/${route.id}/tickets"
"web" to "${
mobileApplication.dataStoreApp.readDataStoreKey<String>(
BASEURLSALIX
)
}#!/route/${route.id}/tickets"
)
)
)
@ -248,7 +254,7 @@ class TicketsFragment(
with(viewModel) {
loadRouteList.observe(viewLifecycleOwner) { event ->
event.getContentIfNotHandled().notNull {
// createListRoutes(it.list)
// createListRoutes(it.list)
}
}
@ -387,8 +393,12 @@ class TicketsFragment(
), entryPoint = Gson().toJson(
mutableMapOf(
"entryPoint" to route.id,
"web" to "${getData("base_urlSalix")}/api/Routes/${item.cmrFk}/cmr?access_token=${
getData(
"web" to "${
mobileApplication.dataStoreApp.readDataStoreKey<String>(
BASEURLSALIX
)
}/api/Routes/${item.cmrFk}/cmr?access_token=${
mobileApplication.dataStoreApp.readDataStoreKey<String>(
TOKEN
)
}"

View File

@ -12,6 +12,7 @@ import es.verdnatura.R
import es.verdnatura.R.color.verdnatura_pumpkin_orange
import es.verdnatura.R.color.verdnatura_white
import es.verdnatura.databinding.FragmentHistoricoBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnOptionsSelectedListener
@ -43,7 +44,11 @@ class HistoricoArticuloFragment(
ma.hideBottomNavigation(View.GONE)
filter = "all"
itemFk?.let { viewModel.itemGetBalance(it, getDataInt(WAREHOUSEFK)) }
itemFk?.let {
viewModel.itemGetBalance(
it, mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
}
binding.mainToolbar.toolbarTitle.text = getString(R.string.itemdiary) + ":" + itemFk
setToolBar()
setEvents()
@ -104,7 +109,11 @@ class HistoricoArticuloFragment(
private fun viewModelwithFilter(keyfilter: String) {
filter = keyfilter
itemFk?.let { viewModel.itemGetBalance(it, getDataInt(WAREHOUSEFK)) }
itemFk?.let {
viewModel.itemGetBalance(
it, mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
}
}
private fun setEvents() {

View File

@ -7,6 +7,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.google.gson.Gson
import es.verdnatura.R
import es.verdnatura.databinding.FragmentShelvinglogBinding
import es.verdnatura.domain.ConstAndValues.BASEURLSALIX
import es.verdnatura.domain.notNull
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.view.component.CustomDialog
@ -91,7 +92,9 @@ class ShelvingLogFragment(
entryPoint = Gson().toJson(
mutableMapOf(
"entryPoint" to itemId,
"web" to "${getData("base_urlSalix")}/#!/shelving/$itemId/log"
"web" to "${mobileApplication.dataStoreApp.readDataStoreKey<String>(
BASEURLSALIX
)}/#!/shelving/$itemId/log"
)
)
)

View File

@ -6,9 +6,13 @@ import android.graphics.drawable.Drawable
import android.os.Build
import android.view.View
import android.widget.ImageView
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentInventaryBinding
import es.verdnatura.domain.ConstAndValues.BUYER
import es.verdnatura.domain.ConstAndValues.BUYERID
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnInvetoryNichoClickListener
@ -22,6 +26,7 @@ import es.verdnatura.presentation.view.feature.inventario.adapter.InventoryAdapt
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
import ir.mirrajabi.searchdialog.core.SearchResultListener
import kotlinx.coroutines.launch
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class InventaryFragment :
@ -54,10 +59,13 @@ class InventaryFragment :
override fun init() {
viewModel.itemShelvingBuyerGet()
binding.filterBuyer.text = getData(BUYER)
buyerId = getData(BUYERID)
binding.filterBuyer.text = mobileApplication.dataStoreApp.readDataStoreKey<String>((BUYER))
buyerId = mobileApplication.dataStoreApp.readDataStoreKey((BUYERID))
if (buyerId.isNotBlank()) {
viewModel.getInventory(buyerId.toInt(), getDataInt(WAREHOUSEFK))
viewModel.getInventory(
buyerId.toInt(),
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
}
binding.filterBuyer.setOnClickListener {
SimpleSearchDialogCompat(context,
@ -69,10 +77,21 @@ class InventaryFragment :
binding.filterBuyer.text = (nombre.title)
buyerId = nombre.getBuyerId()
saveBuyer(nombre.getBuyerNickname(), nombre.getBuyerId())
lifecycleScope.launch {
mobileApplication.dataStoreApp.editDataStoreKey(
BUYER,
nombre.getBuyerNickname()
)
mobileApplication.dataStoreApp.editDataStoreKey(
BUYERID,
nombre.getBuyerId()
)
}
// saveBuyer(nombre.getBuyerNickname(), nombre.getBuyerId())
viewModel.getInventory(
nombre.getBuyerId().toInt(),
getDataInt(WAREHOUSEFK)
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
baseSearchDialogCompat.dismiss()
}).show()
@ -104,7 +123,7 @@ class InventaryFragment :
if (buyerId.isNotBlank()) {
viewModel.getInventory(
buyerId.toInt(),
getDataInt(WAREHOUSEFK)
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
} else {
ma.messageWithSound(
@ -145,14 +164,11 @@ class InventaryFragment :
listInvetory.addAll(listInvetoryAux.filter {
it.itemFk!!.toString().contains(
binding.filterItemFk.text.toString(),
true
binding.filterItemFk.text.toString(), true
) || it.producer?.contains(
binding.filterItemFk.text.toString(),
true
binding.filterItemFk.text.toString(), true
) == true || it.longName?.contains(
binding.filterItemFk.text.toString(),
ignoreCase = true
binding.filterItemFk.text.toString(), ignoreCase = true
) == true
})
@ -198,7 +214,7 @@ class InventaryFragment :
.setOkButton(getString(R.string.pull)) {
viewModel.itemTrash(
item.itemFk!!.toInt(),
getDataInt(WAREHOUSEFK),
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK),
item.nicho!!,
false
)
@ -243,10 +259,9 @@ class InventaryFragment :
private fun createBuyerList(list: List<BuyerVO>) {
items.clear()
if (list.isNotEmpty())
list.forEach { buyer ->
items.add(SearchBuyerModel(buyer.nickname, buyer.userFk))
}
if (list.isNotEmpty()) list.forEach { buyer ->
items.add(SearchBuyerModel(buyer.nickname, buyer.userFk))
}
}
}

View File

@ -2,7 +2,6 @@ package es.verdnatura.presentation.view.feature.login.fragment
import android.annotation.SuppressLint
import android.content.Intent
import android.content.SharedPreferences
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.net.Uri
@ -11,6 +10,7 @@ import android.os.Environment
import android.provider.Settings
import android.util.Log.d
import androidx.annotation.RequiresApi
import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.firebase.crashlytics.ktx.crashlytics
@ -18,6 +18,16 @@ import com.google.firebase.ktx.Firebase
import es.verdnatura.MobileApplication
import es.verdnatura.R
import es.verdnatura.databinding.FragmentLoginBinding
import es.verdnatura.domain.ConstAndValues.ANDROID_ID
import es.verdnatura.domain.ConstAndValues.PASSWORD
import es.verdnatura.domain.ConstAndValues.REMEMBER
import es.verdnatura.domain.ConstAndValues.RENEWINTERVAL
import es.verdnatura.domain.ConstAndValues.RENEWPERIOD
import es.verdnatura.domain.ConstAndValues.TOKEN
import es.verdnatura.domain.ConstAndValues.TOKENCREATED
import es.verdnatura.domain.ConstAndValues.TTL
import es.verdnatura.domain.ConstAndValues.USER
import es.verdnatura.domain.ConstAndValues.WORKFORMSELECTED
import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
@ -29,6 +39,7 @@ import es.verdnatura.presentation.view.component.CustomDialogList
import es.verdnatura.presentation.view.feature.login.adapter.WorkFormAdapter
import es.verdnatura.presentation.view.feature.login.model.WorkForms
import es.verdnatura.presentation.view.feature.main.activity.MainActivity
import kotlinx.coroutines.runBlocking
import java.io.File
import java.util.*
import kotlin.system.exitProcess
@ -63,7 +74,9 @@ class LoginFragment(var imageUri: Uri?) :
)
}
if (getData(TOKEN).isNotBlank() && binding.switchRemember.isChecked) {
if (mobileApplication.dataStoreApp.readDataStoreKey<String>(TOKEN)
.isNotBlank() && binding.switchRemember.isChecked
) {
viewModel.operator_add()
}
@ -71,10 +84,21 @@ class LoginFragment(var imageUri: Uri?) :
binding.edittextUsername.setText("")
binding.edittextPassword.setText("")
binding.switchRemember.isChecked = false
saveRemember(false)
runBlocking { mobileApplication.dataStoreApp.editDataStoreKey(REMEMBER, false) }
}
binding.edittextServer.setText(getData(WORKFORMSELECTED))
var myWorkFormSlected =
mobileApplication.dataStoreApp.readDataStoreKey(WORKFORMSELECTED) as String
if (myWorkFormSlected.isBlank()) {
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
WORKFORMSELECTED, "Producción"
)
}
}
binding.edittextServer.setText(
mobileApplication.dataStoreApp.readDataStoreKey(WORKFORMSELECTED) as String
)
if (binding.edittextServer.text.toString() == "TestLOCAL") {
@ -83,7 +107,7 @@ class LoginFragment(var imageUri: Uri?) :
}
// se crean/listan las opciones de formas de trabajo
//deleteWorkForm("all")
listForms = getWorkForm().sortedBy { it.created }
listForms = runBlocking { mobileApplication.dataStoreApp.getWorkForm() }
binding.edittextServer.keyListener = null
binding.edittextServer.setOnLongClickListener {
showWorkingForms()
@ -96,8 +120,7 @@ class LoginFragment(var imageUri: Uri?) :
private fun createFolderSerial() {
val directory = File(
requireContext().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS),
"/dataSerial"
requireContext().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS), "/dataSerial"
)
if (!directory.exists()) {
@ -106,7 +129,6 @@ class LoginFragment(var imageUri: Uri?) :
try {
val filename = "serial.txt"
val file = File(directory, filename)
//saveData("SERIALNUMBER", file.readText())
mobileApplication.serialNumber = file.readText()
} catch (ex: Exception) {
d("VERDNATURA:", getString(R.string.errorFile))
@ -127,9 +149,20 @@ class LoginFragment(var imageUri: Uri?) :
else -> {
binding.edittextServer.setText(item.name)
saveData("base_url", item.urlSilex)
saveData("base_urlSalix", item.urlSalix)
saveData(WORKFORMSELECTED, item.name)
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
"base_url", item.urlSilex
)
mobileApplication.dataStoreApp.editDataStoreKey(
"base_urlSalix", item.urlSalix
)
}
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
WORKFORMSELECTED, item.name
)
}
customDialogList.dismiss()
exitProcess(1)
@ -144,18 +177,22 @@ class LoginFragment(var imageUri: Uri?) :
.setDescription(getString(R.string.deleteWorkFormConfirmation))
.setOkButton(getString(R.string.cancel)) {
customDialog.dismiss()
}
.setOkButton(getString(R.string.ok)) {
deleteWorkForm(workForm.name)
workFormAdapter!!.notifyDataSetChanged()
}.setOkButton(getString(R.string.ok)) {
val workFormNameKey = stringPreferencesKey(workForm.name)
runBlocking {
mobileApplication.dataStoreApp.deleteWorkForm(
workFormNameKey
)
}
// deleteWorkForm(workForm.name)
workFormAdapter!!.notifyDataSetChanged()
customDialog.dismiss()
customDialogList.dismiss()
saveData(WORKFORMSELECTED, "Producción")
exitProcess(1)
}
.show()
}.show()
}
})
@ -166,37 +203,36 @@ class LoginFragment(var imageUri: Uri?) :
LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
customDialogList.setTitle(getString(R.string.selectWorkingForm))
.hideDescription()
.hideDialog()
.setOkButton(getString(R.string.cancel)) {
customDialogList.setTitle(getString(R.string.selectWorkingForm)).hideDescription()
.hideDialog().setOkButton(getString(R.string.cancel)) {
customDialogList.dismiss()
}
.show()
}.show()
}
@SuppressLint("HardwareIds")
private fun saveIdentifiers() {
val AndroidId: String =
val androidId: String =
Settings.Secure.getString(requireActivity().contentResolver, Settings.Secure.ANDROID_ID)
mobileApplication.androidId = AndroidId
saveData(ANDROID_ID, AndroidId)
mobileApplication.androidId = androidId
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(ANDROID_ID, androidId)
}
}
private fun showWorkingForms() {
listForms = getWorkForm().sortedBy { it.created }
var listForms = runBlocking { mobileApplication.dataStoreApp.getWorkForm() }
setAdapter(listForms)
}
private fun showNewForm() {
customNewForm = CustomDialogInputThreeValues(requireContext())
.setTitle(getString(R.string.workFormAdd))
.setDescription(getString(R.string.workFormDescrip))
customNewForm =
CustomDialogInputThreeValues(requireContext()).setTitle(getString(R.string.workFormAdd))
.setDescription(getString(R.string.workFormDescrip))
customNewForm.setInfoTex(
getString(R.string.name),
getString(R.string.silexServer),
@ -204,17 +240,23 @@ class LoginFragment(var imageUri: Uri?) :
)
customNewForm.setFocusText()
customNewForm.setOkButton(getString(R.string.save)) {
saveWorkForm(
WorkForms(
customNewForm.getValue(),
customNewForm.getValueTwo(),
customNewForm.getValueThree(),
true
runBlocking {
mobileApplication.dataStoreApp.saveWorkForm(
WorkForms(
customNewForm.getValue(),
customNewForm.getValueTwo(),
customNewForm.getValueThree(),
true
)
)
)
}
binding.edittextServer.setText(customNewForm.getValue())
saveData(WORKFORMSELECTED, customNewForm.getValue())
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
WORKFORMSELECTED, customNewForm.getValue()
)
}
customNewForm.dismiss()
customDialogList.dismiss()
exitProcess(1)
@ -229,12 +271,19 @@ class LoginFragment(var imageUri: Uri?) :
private fun checkUser() {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
if (prefs.getBoolean(REMEMBER, false)) {
binding.edittextUsername.setText(prefs.getString(USER, ""))
binding.edittextPassword.setText(prefs.getString(PASSWORD, ""))
if (mobileApplication.dataStoreApp.readDataStoreKey(REMEMBER)) {
if (prefs.getString("token", "") != "") {
binding.edittextUsername.setText(
mobileApplication.dataStoreApp.readDataStoreKey<String>(
USER
)
)
binding.edittextPassword.setText(
mobileApplication.dataStoreApp.readDataStoreKey<String>(
PASSWORD
)
)
if (mobileApplication.dataStoreApp.readDataStoreKey<String>(TOKEN) != "") {
binding.switchRemember.isChecked = true
}
}
@ -265,8 +314,7 @@ class LoginFragment(var imageUri: Uri?) :
) {
try {
val openURL = Intent(Intent.ACTION_VIEW)
openURL.data =
Uri.parse(it.url)
openURL.data = Uri.parse(it.url)
startActivity(openURL)
} catch (ex: Exception) {
getString(R.string.problemUpdate).toast(requireActivity())
@ -299,19 +347,21 @@ class LoginFragment(var imageUri: Uri?) :
if (it.vIsAuthorized == "0") {
customDialog.setTitle(getString(R.string.error))
.setDescription(it.vMessage!!)
.setOkButton(getString(R.string.close)) {
.setDescription(it.vMessage!!).setOkButton(getString(R.string.close)) {
customDialog.dismiss()
}.show()
} else {
if (binding.switchRemember.isChecked) {
saveRemember(true)
} else {
saveRemember(false)
runBlocking {
if (binding.switchRemember.isChecked) {
mobileApplication.dataStoreApp.editDataStoreKey(REMEMBER, true)
//saveRemember(true)
} else {
mobileApplication.dataStoreApp.editDataStoreKey(REMEMBER, false)
//saveRemember(false)
}
}
if (it.vIsAuthorized == "1") {
if (it.vMessage.isNullOrEmpty()) {
@ -335,21 +385,26 @@ class LoginFragment(var imageUri: Uri?) :
workerOperator.observe(viewLifecycleOwner) {
if (it.isError) {
customDialog.setTitle(getString(R.string.info))
.setDescription(it.errorMessage)
customDialog.setTitle(getString(R.string.info)).setDescription(it.errorMessage)
.setOkButton(getString(R.string.close)) {
customDialog.dismiss()
}.show()
} else {
saveDataOperator(it)
runBlocking {
mobileApplication.dataStoreApp.saveDataOperator(
it
)
}
//saveDataOperator(it)
}
}
operatorAdd.observe(viewLifecycleOwner) {
if (it.isError) {
customDialog.setTitle(getString(R.string.info))
.setDescription(it.errorMessage)
customDialog.setTitle(getString(R.string.info)).setDescription(it.errorMessage)
.setOkButton(getString(R.string.close)) {
customDialog.dismiss()
}.show()
@ -358,7 +413,7 @@ class LoginFragment(var imageUri: Uri?) :
viewModel.getCurrentUserData(
getString(R.string.logAppName),
getInfoVersionNameApp(),
getData(ANDROID_ID)
mobileApplication.dataStoreApp.readDataStoreKey(ANDROID_ID)
)
// viewModel.operator_getNumberOfWagons()
}
@ -366,8 +421,7 @@ class LoginFragment(var imageUri: Uri?) :
devicelogresponse.observe(viewLifecycleOwner) {
if (it.isError) {
customDialog.setTitle(getString(R.string.error))
.setDescription(it.errorMessage)
customDialog.setTitle(getString(R.string.error)).setDescription(it.errorMessage)
.setOkButton(
getString(R.string.accept)
) {
@ -390,8 +444,7 @@ class LoginFragment(var imageUri: Uri?) :
} else {
it.errorMessage
}
)
.setOkButton(
).setOkButton(
getString(R.string.accept)
) {
customDialog.dismiss()
@ -419,8 +472,15 @@ class LoginFragment(var imageUri: Uri?) :
} else {
if (!it.list[0].isError) {
saveDataLong("renewPeriod", it.list[0].renewPeriod)
saveDataLong("renewInterval", it.list[0].renewInterval)
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
RENEWPERIOD, it.list[0].renewPeriod
)
mobileApplication.dataStoreApp.editDataStoreKey(
RENEWINTERVAL, it.list[0].renewInterval
)
}
viewModel.operator_add()
} else {
@ -447,18 +507,13 @@ class LoginFragment(var imageUri: Uri?) :
}
private fun saveTokenPref(token: String, ttl: Long) {
val prefs: SharedPreferences = requireActivity().getSharedPreferences(PREFS_USER, 0)
val editor = prefs.edit()
editor.putString(TOKEN, token)
editor.putLong(TTL, ttl)
editor.putLong(TOKENCREATED, Date().time)
editor.apply()
}
private fun saveRemember(remember: Boolean) {
val prefsEditor = (mobileApplication).getPrefsEditor()
prefsEditor.putBoolean(REMEMBER, remember)
prefsEditor.apply()
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(TOKEN, token)
mobileApplication.dataStoreApp.editDataStoreKey(TTL, ttl)
mobileApplication.dataStoreApp.editDataStoreKey(TOKENCREATED, Date().time)
}
}
private fun goToMain() {

View File

@ -7,6 +7,10 @@ import androidx.lifecycle.Transformations
import com.google.gson.Gson
import com.google.gson.JsonObject
import com.google.gson.reflect.TypeToken
import es.verdnatura.MobileApplication
import es.verdnatura.domain.ConstAndValues.TOKEN
import es.verdnatura.domain.ConstAndValues.TOKENCREATED
import es.verdnatura.domain.ConstAndValues.TTL
import es.verdnatura.domain.SalixCallback
import es.verdnatura.domain.SilexCallback
import es.verdnatura.domain.formatWithQuotes
@ -25,6 +29,7 @@ import es.verdnatura.presentation.view.feature.login.model.accessConfigSalix
import es.verdnatura.presentation.view.feature.login.model.accessConfigSalixList
import es.verdnatura.presentation.view.feature.login.model.versionApp
import es.verdnatura.presentation.view.feature.paletizador.model.itemsExpeditionDynamics
import kotlinx.coroutines.runBlocking
import retrofit2.Response
import java.util.Date
@ -62,8 +67,8 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
val loadAccessConfigSalixList = Transformations.map(_accessConfigSalixList) { Event(it) }
fun loginSalix(user: String, password: String) {
salix.login(LoginSalixVO(user, password)).enqueue(
object : SalixCallback<LoginSalixVO>(context) {
salix.login(LoginSalixVO(user, password))
.enqueue(object : SalixCallback<LoginSalixVO>(context) {
override fun onSuccess(response: Response<LoginSalixVO>) {
val loginSalixVO: LoginSalixVO?
@ -96,17 +101,15 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
}
override fun onError(t: Throwable) {
val loginSalixVO =
LoginSalixVO(
user,
password,
"",
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
t.message!!
)
val loginSalixVO = LoginSalixVO(
user,
password,
"",
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this), t.message!!
)
)
_loginSalixItem.value = loginSalixVO
}
})
@ -121,33 +124,23 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
override fun onSuccess(response: Response<List<LoginDevice>>) {
response.body()?.get(0).let {
_logindevice.value = LoginDevice(
it!!.vMessage, it.vIsAuthorized,
isError = false,
errorMessage = ""
it!!.vMessage, it.vIsAuthorized, isError = false, errorMessage = ""
)
}
}
override fun onError(t: Throwable) {
_logindevice.value =
LoginDevice(
"",
"",
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
t.message!!
)
_logindevice.value = LoginDevice(
"", "", isError = true, errorMessage = getMessageFromAllResponse(
nameofFunction(this), t.message!!
)
)
}
})
}
fun getCurrentUserData(
appName: String,
versionApp: String,
android_id: String,
serialnumber: String? = null
appName: String, versionApp: String, androidId: String, serialnumber: String? = null
) {
salix.getCurrentUserData().enqueue(object : SalixCallback<DataUserSalix>(context) {
override fun onSuccess(response: Response<DataUserSalix>) {
@ -156,13 +149,13 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
deviceLog_addSalix(
app = appName,
versionApp = versionApp,
android_id = android_id,
android_id = androidId,
userFk = app.userId!!,
serialnumber = serialnumber
)
//Tarea 5870
operator_getDataSalix(app.userId!!)
deviceCheckLogin(app.userId!!, android_id)
deviceCheckLogin(app.userId!!, androidId)
}
})
}
@ -193,8 +186,7 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
versionApp = versionApp,
serialNumber = serialnumber
)
)
.enqueue(object : SalixCallback<Unit>(context) {
).enqueue(object : SalixCallback<Unit>(context) {
override fun onSuccess(response: Response<Unit>) {
}
@ -205,9 +197,8 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
fun checkVersion(nameApp: String) {
//Tarea 6276
//salix.getVersion(nameApp)
silex.getVersion(nameApp)
.enqueue(object : SilexCallback<versionApp>(context) {
// salix.getVersion(nameApp)
silex.getVersion(nameApp).enqueue(object : SilexCallback<versionApp>(context) {
override fun onSuccess(response: Response<versionApp>) {
if (response.body() != null) {
_versionappitem.value = response.body()?.let {
@ -224,28 +215,19 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
} else {
_versionappitem.value = versionApp(
"",
"",
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
response.message()
"", "", isError = true, errorMessage = getMessageFromAllResponse(
nameofFunction(this), response.message()
)
)
}
}
override fun onError(t: Throwable) {
_versionappitem.value =
versionApp(
nameApp,
"",
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
t.message!!
)
_versionappitem.value = versionApp(
nameApp, "", isError = true, errorMessage = getMessageFromAllResponse(
nameofFunction(this), t.message!!
)
)
}
})
}
@ -265,8 +247,8 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
fun operator_add() {
//Tarea 6276
// salix.operatorAdd().enqueue(object : SalixCallback<Any>(context) {
silex.operator_add().enqueue(object : SilexCallback<Any>(context) {
//salix.operatorAdd().enqueue(object : SalixCallback<Any>(context) {
silex.operator_add().enqueue(object : SilexCallback<Any>(context) {
override fun onError(t: Throwable) {
_operatorAdd.value = ResponseItemVO(
isError = true,
@ -291,10 +273,8 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
override fun onError(t: Throwable) {
_workerOperator.value = OperatorSalix(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
t.message!!
isError = true, errorMessage = getMessageFromAllResponse(
nameofFunction(this), t.message!!
)
)
@ -306,10 +286,8 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
} else {
_workerOperator.value = response.body()?.let {
OperatorSalix(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
response.message()
isError = true, errorMessage = getMessageFromAllResponse(
nameofFunction(this), response.message()
)
)
}
@ -329,10 +307,8 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
val listError: ArrayList<accessConfigSalix> = ArrayList()
listError.add(
accessConfigSalix(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
t.message!!
isError = true, errorMessage = getMessageFromAllResponse(
nameofFunction(this), t.message!!
)
)
)
@ -350,10 +326,8 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
val listError: ArrayList<accessConfigSalix> = ArrayList()
listError.add(
accessConfigSalix(
isError = true,
errorMessage = getMessageFromAllResponse(
nameofFunction(this),
response.message()
isError = true, errorMessage = getMessageFromAllResponse(
nameofFunction(this), response.message()
)
)
)
@ -368,17 +342,24 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
fun renewToken(
) {
salix.renewToken()
.enqueue(object : SalixCallback<RenewToken>(context) {
salix.renewToken().enqueue(object : SalixCallback<RenewToken>(context) {
override fun onSuccess(response: Response<RenewToken>) {
val RenewToken = response.body()
val prefs = app.getPrefsEditor()
prefs.putString("token", RenewToken!!.id)
prefs.putLong("ttl", RenewToken!!.ttl)
prefs.putLong("tokenCreated", Date().time)
_renewTokenResponse.value = RenewToken
val renewToken = response.body()
runBlocking {
(context as MobileApplication).dataStoreApp.editDataStoreKey(
TOKEN, renewToken!!.id
)
(context).dataStoreApp.editDataStoreKey(
TTL, renewToken!!.ttl
)
(context).dataStoreApp.editDataStoreKey(
TOKENCREATED, Date().time
)
}
_renewTokenResponse.value = renewToken
}
@ -386,8 +367,7 @@ class LoginViewModel(val context: Context) : BaseViewModel(context) {
_renewTokenResponse.value = RenewToken(
"", 0, true, getMessageFromAllResponse(
nameofFunction(this),
t.message!!
nameofFunction(this), t.message!!
)
)

View File

@ -3,7 +3,6 @@ package es.verdnatura.presentation.view.feature.main.activity
import NetworkUtils
import PhotosFragment
import android.content.Intent
import android.content.SharedPreferences
import android.media.MediaPlayer
import android.net.Uri
import android.os.Build
@ -20,6 +19,15 @@ import es.verdnatura.R
import es.verdnatura.databinding.ActivityMainBinding
import es.verdnatura.domain.ConstAndValues.MAINACTIVITY
import es.verdnatura.domain.ConstAndValues.PREITEMPICKER
import es.verdnatura.domain.ConstAndValues.PRINTERFK
import es.verdnatura.domain.ConstAndValues.PRINTERFKDEFAULT
import es.verdnatura.domain.ConstAndValues.RENEWINTERVAL
import es.verdnatura.domain.ConstAndValues.RENEWPERIOD
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.ConstAndValues.SECTORFKDEFAULT
import es.verdnatura.domain.ConstAndValues.TOKEN
import es.verdnatura.domain.ConstAndValues.TOKENCREATED
import es.verdnatura.domain.ConstAndValues.TTL
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseActivity
import es.verdnatura.presentation.common.*
@ -80,7 +88,7 @@ import es.verdnatura.presentation.view.feature.sacador.fragment.showticket.ShowT
import es.verdnatura.presentation.view.feature.sacador.model.CollectionTicket
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
import es.verdnatura.presentation.view.feature.ticket.fragment.TicketAdvanceFragment
import es.verdnatura.presentation.view.feature.ubicador.fragment.AutomaticAddItemFragmentTEST
import es.verdnatura.presentation.view.feature.ubicador.fragment.AutomaticAddItemFragment
import es.verdnatura.presentation.view.feature.ubicador.fragment.UbicadorFragment
import es.verdnatura.presentation.view.feature.workermistake.fragment.PackingMistakeFragment
import es.verdnatura.presentation.view.feature.workermistake.fragment.WorkermistakeFragment
@ -88,6 +96,7 @@ import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import timber.log.Timber.d
import java.util.Date
import java.util.concurrent.Executors
@ -97,7 +106,7 @@ import java.util.concurrent.TimeUnit
class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickListener,
OnTruckClickListener, OnPalletClickListener, OnComprobarPalletViewClickListener,
OnCollectionSelectedListener, OnCollectionTicketSelectedListener,MainActivityListener {
OnCollectionSelectedListener, OnCollectionTicketSelectedListener, MainActivityListener {
private var lastBottomMenuItemSelected: ItemMenuVO? = null
private lateinit var customDialog: CustomDialogMainActivity
@ -125,8 +134,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
super.onResume()
try {
if (scheduledFuture?.isCancelled == true) {
var prefs = (application as MobileApplication).getPrefsShared()
startRepeatingTask(prefs.getLong("renewInterval", 0))
startRepeatingTask(mobileApplication.dataStoreApp.readDataStoreKey(RENEWINTERVAL))
}
networkUtils.registerNetworkCallback()
} catch (e: Exception) {
@ -141,7 +149,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
mperror = MediaPlayer.create((this), R.raw.error)
mpok = MediaPlayer.create((this), R.raw.ok)
mpErrorRepeat = MediaPlayer.create((this), R.raw.errorrepeat)
mpok
customDialog = CustomDialogMainActivity(this)
setFragments()
setBottomMenuFragment()
@ -181,10 +188,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
runOnUiThread {
checkTokenRenew()
}
},
0,
myInterval,
TimeUnit.SECONDS
}, 0, myInterval, TimeUnit.SECONDS
)
}
@ -199,7 +203,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
try {
val uriImage = intent.data
startRepeatingTask(
(application as MobileApplication).getPrefsShared().getLong("renewInterval", 0)
mobileApplication.dataStoreApp.readDataStoreKey(RENEWINTERVAL)
)
if (uriImage != null && uriImage is Uri) {
onPasillerosItemClickListener(
@ -237,17 +241,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
fun haveSector(): Boolean {
val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0)
val sectorFk = prefs.getInt("sectorFk", -1)
return sectorFk != -1
return mobileApplication.dataStoreApp.readDataStoreKey<Int>(SECTORFK) != SECTORFKDEFAULT
}
fun havePrinter(): Boolean {
val prefs: SharedPreferences = getSharedPreferences("es.verdnatura.user.prefs", 0)
val printerFk = prefs.getInt("printerFk", -1)
return printerFk != -1
return mobileApplication.dataStoreApp.readDataStoreKey<Int>(PRINTERFK) != PRINTERFKDEFAULT
}
@DelicateCoroutinesApi
@ -394,8 +392,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
true
}
/* sergio: de esta manera no repinta el icono del menu seleccionado */
}/* sergio: de esta manera no repinta el icono del menu seleccionado */
bottomMenu.setOnNavigationItemReselectedListener {
when (it.title) {
@ -421,16 +418,13 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
private fun delete_Fragments() {
fm.getFragments().forEach {
val fragment: Fragment? = supportFragmentManager.findFragmentByTag(it.tag.toString())
if (fragment != null) supportFragmentManager
.beginTransaction().remove(fragment)
if (fragment != null) supportFragmentManager.beginTransaction().remove(fragment)
.commit()
}
}
override fun onPasillerosItemClickListener(
item: PasillerosItemVO,
entryPoint: String,
param: Any?
item: PasillerosItemVO, entryPoint: String, param: Any?
) {
when (item.title) {
@ -444,8 +438,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
addFragmentOnTop(
PasilleroFragment.newInstance(
getString(R.string.titlePalletizers),
isInitMenu = false
getString(R.string.titlePalletizers), isInitMenu = false
)
)
@ -497,8 +490,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
getString(R.string.titleBufferManegement) -> {
addFragmentOnTop(
PasilleroFragment.newInstance(
item.title,
isInitMenu = false
item.title, isInitMenu = false
)
)
}
@ -506,8 +498,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
getString(R.string.titleClaims) -> {
addFragmentOnTop(
PasilleroFragment.newInstance(
item.title,
isInitMenu = false
item.title, isInitMenu = false
)
)
@ -575,12 +566,12 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
getString(R.string.titleAuto) -> {
addFragmentOnTop(AutomaticAddItemFragmentTEST.newInstance(entryPoint, item.title))
addFragmentOnTop(AutomaticAddItemFragment.newInstance(entryPoint, item.title))
}
/* getString(R.string.titleControllersAction) -> {
addFragmentOnTop(AutomaticAddItemFragment.newInstance(entryPoint, item.title))
}*/
/* getString(R.string.titleControllersAction) -> {
addFragmentOnTop(AutomaticAddItemFragment.newInstance(entryPoint, item.title))
}*/
getString(R.string.titlePickers) -> {
//addFragmentOnTop(SacadorFragment.newInstance())
@ -706,8 +697,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
getString(R.string.titleInfo) -> {
addFragmentOnTop(
InfoFragment.newInstance(item.title),
if (comeFromDelivery == true) {
InfoFragment.newInstance(item.title), if (comeFromDelivery == true) {
getString(R.string.titleInfo)
} else {
null
@ -719,8 +709,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
getString(R.string.titleLog) -> {
addFragmentOnTop(
LogExpeditionFragment.newInstance(item.title),
if (comeFromDelivery == true) {
LogExpeditionFragment.newInstance(item.title), if (comeFromDelivery == true) {
getString(R.string.titleLog)
} else {
null
@ -745,16 +734,12 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
addFragmentOnTop(
LoadUnloadFragment.newInstance(
item.title,
"DELIVERED",
entryPoint,
if (param != null) {
item.title, "DELIVERED", entryPoint, if (param != null) {
param as ArrayList<ClientTicket>
} else {
null
}
),
if (comeFromDelivery == true) {
), if (comeFromDelivery == true) {
getString(R.string.titleUnLoadTruck)
} else {
getString(R.string.titleUnLoadTruck)
@ -779,8 +764,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
getString(R.string.titleDeliveryRoute) -> {
addFragmentOnTop(
RoutesFragment.newInstance(item.title),
if (comeFromDelivery == true) {
RoutesFragment.newInstance(item.title), if (comeFromDelivery == true) {
getString(R.string.titleDeliverySummary)
} else {
null
@ -830,11 +814,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
}
}
supportFragmentManager
.beginTransaction()
.replace(R.id.main_frame_layout, fragment!!)
.addToBackStack(name)
.commitAllowingStateLoss()
supportFragmentManager.beginTransaction().replace(R.id.main_frame_layout, fragment!!)
.addToBackStack(name).commitAllowingStateLoss()
}
@ -901,9 +882,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
.setOkButton(getString(R.string.exit)) {
customDialog.dismiss()
//Borrar Token
var getPrefs = (application as MobileApplication).getPrefsEditor()
getPrefs.putString("token", "")
getPrefs.commit()
runBlocking { mobileApplication.dataStoreApp.editDataStoreKey(TOKEN, "") }
finish()
}.setKoButton(getString(R.string.cancel)) {
@ -918,16 +897,14 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
override fun onPalletClickListener(
itemTruck: ItemExpeditionTruckVO,
itemPallet: ItemPalletVO
itemTruck: ItemExpeditionTruckVO, itemPallet: ItemPalletVO
) {
addFragmentOnTop(ExpeditionScanFragment.newInstance(itemTruck, itemPallet))
}
override fun onComprobarPalletViewClickListener(
itemTruck: ItemExpeditionTruckVO,
itemPallet: ItemPalletVO
itemTruck: ItemExpeditionTruckVO, itemPallet: ItemPalletVO
) {
addFragmentOnTop(ExpeditionPalletDetailFragment.newInstance(itemTruck, itemPallet))
@ -935,8 +912,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
fun onComprobarPalletFromPalletScan(
itemTruck: ItemExpeditionTruckVO,
itemPallet: ItemPalletVO
itemTruck: ItemExpeditionTruckVO, itemPallet: ItemPalletVO
) {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
@ -999,9 +975,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
fun openSummaryFragment(route: Int, state: String) {
addFragmentOnTop(
SummaryFragment.newInstance(
getString(R.string.titleDeliverySummary),
state,
route
getString(R.string.titleDeliverySummary), state, route
)
)
}
@ -1105,20 +1079,20 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
@RequiresApi(Build.VERSION_CODES.O)
fun checkTokenRenew() {
val prefs = (application as MobileApplication).getPrefsShared()
val renewPeriod = prefs.getLong("renewPeriod", 0)
val renewPeriod = mobileApplication.dataStoreApp.readDataStoreKey<Long>(RENEWPERIOD)
val min = minOf(mobileApplication.dataStoreApp.readDataStoreKey(TTL), renewPeriod) * 1000
if (Date().time < (min + mobileApplication.dataStoreApp.readDataStoreKey<Long>(TOKENCREATED))) {
val min = minOf(prefs.getLong("ttl", 0), renewPeriod) * 1000
if (Date().time < (min + prefs.getLong("tokenCreated", 0))) {
val loginViewModel = LoginViewModel(application as MobileApplication)
loginViewModel.renewTokenResponse.observe(this) { renewToken ->
if (!renewToken.isError) {
val prefsEditor = (application as MobileApplication).getPrefsEditor()
prefsEditor.putString("token", renewToken.id)
prefsEditor.putLong("ttl", renewToken.ttl)
prefsEditor.putLong("tokenCreated", Date().time)
prefsEditor.apply()
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(TOKEN, renewToken.id)
mobileApplication.dataStoreApp.editDataStoreKey(TTL, renewToken.ttl)
mobileApplication.dataStoreApp.editDataStoreKey(TOKENCREATED, Date().time)
}
}
}
loginViewModel.renewToken()
@ -1126,7 +1100,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), OnPasillerosItemClickL
}
}
override fun onApplicationEventAnimation(visibility:Int) {
override fun onApplicationEventAnimation(visibility: Int) {
binding.splashAnimation.visibility = visibility
}

View File

@ -7,12 +7,17 @@ import android.os.Build
import android.util.Log.d
import android.view.View
import android.widget.ImageView
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import com.esafirm.imagepicker.features.ImagePickerConfig
import com.esafirm.imagepicker.features.registerImagePicker
import com.esafirm.imagepicker.model.Image
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPackagingObsBinding
import es.verdnatura.domain.ConstAndValues.ENTRYNUMBERIMAGES
import es.verdnatura.domain.ConstAndValues.ENTRYOBSERVATIONS
import es.verdnatura.domain.ConstAndValues.ENTRYTYPE
import es.verdnatura.domain.ConstAndValues.SUPPLIERNAME
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.*
import es.verdnatura.presentation.view.component.CustomDialog
@ -20,7 +25,9 @@ import es.verdnatura.presentation.view.component.CustomDialogList
import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel
import es.verdnatura.presentation.view.feature.packaging.adapter.ListImageAdapter
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class ObservFragment(
@ -58,7 +65,12 @@ class ObservFragment(
private fun setToolBar() {
binding.mainToolbar.toolbarTitle.text = getData("ENTRYTYPE") + ":" + getData("SUPPLIERNAME")
binding.mainToolbar.toolbarTitle.text =
runBlocking {
mobileApplication.dataStoreApp.readDataStoreKey<String>(ENTRYTYPE) + ":" + mobileApplication.dataStoreApp.readDataStoreKey<String>(
SUPPLIERNAME
)
}
val listIcons: ArrayList<ImageView> = ArrayList()
val iconNext = ImageView(context)
@ -72,23 +84,27 @@ class ObservFragment(
override fun onOptionsItemSelected(item: Drawable) {
when (item) {
iconNext.drawable -> {
saveData(
"ENTRYNUMBERIMAGES",
if (listImages.isNullOrEmpty()) "0" else {
listImages!!.size.toString()
}
)
saveData("ENTRYOBSERVATIONS",binding.observations.text.toString())
lifecycleScope.launch(Dispatchers.IO) {
mobileApplication.dataStoreApp.editDataStoreKey(
ENTRYNUMBERIMAGES, if (listImages.isNullOrEmpty()) 0 else {
listImages!!.size.toString()
}
)
mobileApplication.dataStoreApp.editDataStoreKey(
ENTRYOBSERVATIONS,
binding.observations.text.toString()
)
}
ma.onPasillerosItemClickListener(
PasillerosItemVO(title = getString(R.string.titlePackagingSummary)),
getString(R.string.titlePackagingSummary)
)
}
}
}
})
@ -139,7 +155,6 @@ class ObservFragment(
launcher.launch(config)
}
}
override fun observeViewModel() {
@ -152,7 +167,6 @@ class ObservFragment(
adapterListImage =
ListImageAdapter(list, object : OnImageUpdateClickListener {
override fun OnImageUpdateClickListener(item: Any) {
d("VERDNATURA::", "Seleccionado update" + (item as Image).name)
}

View File

@ -9,6 +9,8 @@ import android.widget.ImageView
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPackagingCountBinding
import es.verdnatura.domain.ConstAndValues.ENTRYTYPE
import es.verdnatura.domain.ConstAndValues.SUPPLIERNAME
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.*
import es.verdnatura.presentation.view.component.CustomDialog
@ -18,7 +20,6 @@ import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingViewM
import es.verdnatura.presentation.view.feature.packaging.model.ItemSupplier
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class PackagingCountFragment(
var entryPoint: String = ""
@ -41,14 +42,13 @@ class PackagingCountFragment(
override fun onCreate(savedInstanceState: Bundle?) {
/* viewModel.supplier_getItemsSalix(
2, 1
)*/
/* viewModel.supplier_getItemsSalix(
2, 1
)*/
super.onCreate(savedInstanceState)
}
override fun init() {
binding.quantityPackaging.setOnClickListener {
ma.onPasillerosItemClickListener(
@ -66,7 +66,10 @@ class PackagingCountFragment(
private fun setToolBar() {
binding.mainToolbar.toolbarTitle.text = getData("ENTRYTYPE") + ":" + getData("SUPPLIERNAME")
binding.mainToolbar.toolbarTitle.text =
mobileApplication.dataStoreApp.readDataStoreKey<String>(ENTRYTYPE) + ":" + mobileApplication.dataStoreApp.readDataStoreKey(
SUPPLIERNAME
)
val listIcons: ArrayList<ImageView> = ArrayList()
val iconNext = ImageView(context)
@ -104,7 +107,6 @@ class PackagingCountFragment(
}
override fun observeViewModel() {
with(viewModel) {
@ -123,7 +125,10 @@ class PackagingCountFragment(
}, object : OnEditSubQuantityListener {
override fun OnEditSubQuantityListener(item: Any, text: String) {
d("VERDNATURA::", "la subquantity es " + (item as ItemSupplier).name+"el valor es :"+text)
d(
"VERDNATURA::",
"la subquantity es " + (item as ItemSupplier).name + "el valor es :" + text
)
hideKeyboard()
}
})
@ -138,6 +143,5 @@ class PackagingCountFragment(
}
}
}

View File

@ -7,6 +7,10 @@ import android.widget.ImageView
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPackagingSummaryBinding
import es.verdnatura.domain.ConstAndValues.ENTRYNUMBERIMAGES
import es.verdnatura.domain.ConstAndValues.ENTRYOBSERVATIONS
import es.verdnatura.domain.ConstAndValues.ENTRYTYPE
import es.verdnatura.domain.ConstAndValues.SUPPLIERNAME
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.*
import es.verdnatura.presentation.view.component.CustomDialog
@ -20,6 +24,7 @@ import es.verdnatura.presentation.view.feature.workermistake.adapter.Workermista
import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake
import es.verdnatura.presentation.view.feature.workermistake.model.MistakeType
import es.verdnatura.presentation.view.feature.workermistake.model.WorkerFromMistake
import kotlinx.coroutines.runBlocking
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class PackagingSummaryFragment(
@ -55,16 +60,15 @@ class PackagingSummaryFragment(
override fun init() {
binding.totalImages.text = getData("ENTRYNUMBERIMAGES")
binding.observations.text = getData("ENTRYOBSERVATIONS")
departmentId = getData(DEPARTMENTMISTAKEID)
binding.totalImages.text = mobileApplication.dataStoreApp.readDataStoreKey(ENTRYNUMBERIMAGES)
binding.observations.text = mobileApplication.dataStoreApp.readDataStoreKey(ENTRYOBSERVATIONS)
customDialogList = CustomDialogList(requireContext())
/*
if (!departmentId.isEmpty()) {
viewModel.workerGetFromHasMistake(
getData(DEPARTMENTMISTAKEID).toInt()
)
}
}*/
customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext())
@ -76,7 +80,11 @@ class PackagingSummaryFragment(
private fun setToolBar() {
binding.mainToolbar.toolbarTitle.text = getData("ENTRYTYPE") + ":" + getData("SUPPLIERNAME")
binding.mainToolbar.toolbarTitle.text = runBlocking {
mobileApplication.dataStoreApp.readDataStoreKey<String>(ENTRYTYPE) + ":" + mobileApplication.dataStoreApp.readDataStoreKey<String>(
SUPPLIERNAME
)
}
val listIcons: ArrayList<ImageView> = ArrayList()
val iconConfirm = ImageView(context)

View File

@ -6,6 +6,10 @@ import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPackagingBinding
import es.verdnatura.domain.ConstAndValues.ENTRY
import es.verdnatura.domain.ConstAndValues.ENTRYTYPE
import es.verdnatura.domain.ConstAndValues.SUPPLIERID
import es.verdnatura.domain.ConstAndValues.SUPPLIERNAME
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
import es.verdnatura.presentation.view.feature.inventario.fragment.SearchSupplierModel
@ -13,6 +17,7 @@ import es.verdnatura.presentation.view.feature.packaging.fragment.PackagingViewM
import es.verdnatura.presentation.view.feature.packaging.model.Supplier
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
import kotlinx.coroutines.runBlocking
import okhttp3.MediaType
import okhttp3.MultipartBody
import okhttp3.RequestBody
@ -98,8 +103,14 @@ class SupplierFragment(
) { baseSearchDialogCompat, nombre, position ->
binding.filterSupplier.setText((nombre.getName()))
binding.radiobuttonTypePackaging.visibility = View.VISIBLE
saveData("SUPPLIERNAME", nombre.getName())
saveDataInt("SUPPLIERID", nombre.getId().toInt())
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(SUPPLIERNAME, nombre.getName())
mobileApplication.dataStoreApp.editDataStoreKey(
SUPPLIERID,
nombre.getId() as Int
)
}
baseSearchDialogCompat.dismiss()
}.show()
}
@ -124,13 +135,22 @@ class SupplierFragment(
binding.radiobuttonTypePackaging.setOnCheckedChangeListener { buttonView, isChecked ->
when (isChecked) {
R.id.radioButtonRec -> {
saveData("ENTRYTYPE", "Rec")
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
ENTRYTYPE,
"Rec"
)
}
}
R.id.radioButtonDev -> {
saveData("ENTRYTYPE", "Dev")
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
ENTRYTYPE,
"Dev"
)
}
}
}
@ -162,7 +182,7 @@ class SupplierFragment(
ma.messageWithSound(it.errorMessage, true, false)
} else {
saveDataInt("ENTRY", it.id!!)
runBlocking { mobileApplication.dataStoreApp.editDataStoreKey(ENTRY, it.id!!) }
ma.onPasillerosItemClickListener(
PasillerosItemVO(title = getString(R.string.titlePackagingCount)),
getString(R.string.titlePackagingCount)

View File

@ -7,6 +7,7 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentExpeditionPalletDetailBinding
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.notNull
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
@ -119,7 +120,7 @@ class ExpeditionPalletDetailFragment(
} else if (item == iconPrint) {
if (ma.havePrinter() && ma.haveSector()) {
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(PRINTERNAME)).toast(
requireContext()
)
viewModel.expeditionPalletPrintSet(

View File

@ -9,11 +9,11 @@ import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPasilleroBinding
import es.verdnatura.domain.ConstAndValues.WORKFORMSELECTED
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnPasillerosItemClickListener
import es.verdnatura.presentation.view.feature.pasillero.adapter.PasillerosAdapter
class PasilleroFragment(
private var tagName: String = "",
var isInitMenu: Boolean
@ -34,7 +34,6 @@ class PasilleroFragment(
if (context is OnPasillerosItemClickListener) pasillerosItemClickListener = context
}
override fun getLayoutId(): Int = R.layout.fragment_pasillero
override fun init() {
@ -42,10 +41,15 @@ class PasilleroFragment(
if (getString(R.string.main) == tagName) {
if (getData(WORKFORMSELECTED) != "Producción") {
var myWorkSelected: String = mobileApplication.dataStoreApp.readDataStoreKey(
WORKFORMSELECTED
)
if (myWorkSelected != "Producción") {
binding.mainToolbarDesign.toolbarTitle.setBackgroundColor(Color.RED)
binding.mainToolbarDesign.toolbarTitle.text =
String.format(getString(R.string.mode, getData(WORKFORMSELECTED)))
String.format(getString(R.string.mode, myWorkSelected))
binding.mainToolbarDesign.backButton.visibility = View.GONE
} else {
binding.mainToolbarDesign.imageViewMenu.visibility = View.VISIBLE

View File

@ -16,6 +16,7 @@ import androidx.core.net.toUri
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPhotosBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnOptionsSelectedListener
@ -116,7 +117,7 @@ class PhotosFragment(
try {
viewModel.getItemCard(
originalItem, getDataInt(WAREHOUSEFK)
originalItem, mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
} catch (Ex: Exception) {

View File

@ -9,6 +9,7 @@ import androidx.lifecycle.Observer
import es.verdnatura.R
import es.verdnatura.databinding.FragmentGeneralBlackBinding
import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener
import es.verdnatura.presentation.view.feature.sacador.model.CollectionVO
@ -65,7 +66,7 @@ class PreControladorFragment :
binding.splashProgress.visibility = VISIBLE
viewModel.collectionTicketGet(
sectorFk = getDataInt(SECTORFK),
sectorFk = mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
collectionFk = binding.scanInput.text.toString().toInt(),
print="0",
type = type

View File

@ -19,6 +19,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import es.verdnatura.R
import es.verdnatura.databinding.FragmentPreSacadorBinding
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.toInt
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
@ -164,8 +165,10 @@ class EndSacadorFragment(
//LISTA =========
binding.collectionSwipe.setOnRefreshListener {
sales.clear()
saleAdapter!!.notifyDataSetChanged()
if (::sales.isInitialized) {
sales.clear()
saleAdapter!!.notifyDataSetChanged()
}
searchSaleCollection()
binding.collectionSwipe.isRefreshing = false
}
@ -269,7 +272,7 @@ class EndSacadorFragment(
} else {
viewModel.sectorCollection_getSale(
collection.collectionFk,
getDataInt(SECTORFK)
mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK)
)
}
}
@ -390,7 +393,6 @@ class EndSacadorFragment(
markLine(positionCollectionSplit)
saleAdapter!!.notifyDataSetChanged()
}
private fun incresaseSuccesful() {
@ -413,7 +415,7 @@ class EndSacadorFragment(
binding.splashProgress.visibility = VISIBLE
viewModel.sectorCollection_getSale(
collection.collectionFk,
sectorFk = getDataInt(SECTORFK)
sectorFk = mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK)
)
}

View File

@ -12,6 +12,8 @@ import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentSacadorBinding
import es.verdnatura.domain.ConstAndValues.PREITEMPICKER
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener
@ -91,7 +93,7 @@ class InitPreSacadorFragment(
when (item) {
iconAdd.drawable -> {
viewModel.sectorCollection_new(getDataInt(SECTORFK))
viewModel.sectorCollection_new(mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK))
}
iconPrint.drawable -> {
@ -107,7 +109,7 @@ class InitPreSacadorFragment(
private fun print() {
if (ma.havePrinter()) {
viewModel.ticketPrintLabelPrevious(customDialogInput.getValue().toInt())
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(PRINTERNAME)).toast(
requireContext()
)
} else {

View File

@ -66,7 +66,6 @@ class PreSacadorViewModel(val context: Context) : BaseViewModel(context) {
val responseIncQuantity: LiveData<ResponseItemVO>
get() = _responseIncQuantity
private val _responseItemShelvingUpdate by lazy { MutableLiveData<ResponseItemVO>() }
val responseItemShelvingUpdate: LiveData<ResponseItemVO>
get() = _responseItemShelvingUpdate
@ -172,29 +171,29 @@ class PreSacadorViewModel(val context: Context) : BaseViewModel(context) {
})
}
/* fun saleTrackingReplace(
saleFk: String,
vOriginalQuantity: String,
vStateFk: String,
vIsChecked: String,
vBuyFk: String
) {
/* fun saleTrackingReplace(
saleFk: String,
vOriginalQuantity: String,
vStateFk: String,
vIsChecked: String,
vBuyFk: String
) {
silex.saleTrackingReplace(
saleFk, vOriginalQuantity, vStateFk, vIsChecked, vBuyFk
).enqueue(object : SilexCallback<Any>(context) {
override fun onError(t: Throwable) {
_response.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
)
}
silex.saleTrackingReplace(
saleFk, vOriginalQuantity, vStateFk, vIsChecked, vBuyFk
).enqueue(object : SilexCallback<Any>(context) {
override fun onError(t: Throwable) {
_response.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
)
}
override fun onSuccess(response: Response<Any>) {
_response.value = ResponseItemVO(isError = false, response = "")
}
})
}*/
override fun onSuccess(response: Response<Any>) {
_response.value = ResponseItemVO(isError = false, response = "")
}
})
}*/
fun getIdFromCode(code: String) {
salix.barcodes_toitem(code).enqueue(object : SalixCallback<String?>(context) {
@ -221,22 +220,22 @@ class PreSacadorViewModel(val context: Context) : BaseViewModel(context) {
})
}
/* fun saleTrackingDel(saleFk: String) {
silex.saleTrackingDel(saleFk).enqueue(object : SilexCallback<Any>(context) {
override fun onError(t: Throwable) {
_response.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
)
}
/* fun saleTrackingDel(saleFk: String) {
silex.saleTrackingDel(saleFk).enqueue(object : SilexCallback<Any>(context) {
override fun onError(t: Throwable) {
_response.value = ResponseItemVO(
isError = true,
errorMessage = getMessageFromAllResponse(nameofFunction(this), t.message!!)
)
}
override fun onSuccess(response: Response<Any>) {
override fun onSuccess(response: Response<Any>) {
_response.value = ResponseItemVO(isError = false, response = response.message())
_response.value = ResponseItemVO(isError = false, response = response.message())
}
})
}*/
}
})
}*/
fun collectionIncreaseQuantity(
saleFk: Int, quantity: Int
@ -302,23 +301,24 @@ class PreSacadorViewModel(val context: Context) : BaseViewModel(context) {
sectorCollectionFK: Int, sectorFk: Int
) {
//Tarea 6276
//salix.sectorCollectionGetSale(sectorCollectionFK, sectorFk)
// salix.sectorCollectionGetSale( sectorFk = sectorFk, sectorCollectionFk = sectorCollectionFK)
silex.sectorCollection_getSale(
sectorCollectionFK, sectorFk.toString()
).enqueue(object : SilexCallback<List<PreSacadorItemVO>>(context) {
override fun onError(t: Throwable) {
_salesList.value = listOf()
}
override fun onSuccess(response: Response<List<PreSacadorItemVO>>) {
if (response.body() != null) {
_salesList.value = response.body()?.let { it }
} else {
)
.enqueue(object : SilexCallback<List<PreSacadorItemVO>>(context) {
override fun onError(t: Throwable) {
_salesList.value = listOf()
}
}
})
override fun onSuccess(response: Response<List<PreSacadorItemVO>>) {
if (response.body() != null) {
_salesList.value = response.body()?.let { it }
} else {
_salesList.value = listOf()
}
}
})
}
fun sectorCollectionSaleGroupAdd(
@ -424,40 +424,40 @@ class PreSacadorViewModel(val context: Context) : BaseViewModel(context) {
})
}
/* fun transferSalesSalix(
ticketFk: String,
saleFk: Int,
quantity: String,
/* fun transferSalesSalix(
ticketFk: String,
saleFk: Int,
quantity: String,
) {
var saleTransfer =
listSaleSalix(arrayListOf(saleSalix(id = saleFk, quantity = quantity.toInt())))
salix.transferSalesSalix(
ticketFk, saleTransfer
) {
var saleTransfer =
listSaleSalix(arrayListOf(saleSalix(id = saleFk, quantity = quantity.toInt())))
salix.transferSalesSalix(
ticketFk, saleTransfer
).enqueue(object : SilexCallback<Any>(context) {
override fun onError(t: Throwable) {
_responseSplit.value = ResponseItemVO(
isError = true, errorMessage = getMessageFromAllResponse(
nameofFunction(this), t.message!!
)
)
}
override fun onResponse(call: Call<Any>, response: Response<Any>) {
//segio: salix devuelve id
if (response.body() == null) {
).enqueue(object : SilexCallback<Any>(context) {
override fun onError(t: Throwable) {
_responseSplit.value = ResponseItemVO(
isError = true, errorMessage = getMessageFromAllResponse(
nameofFunction(this), response.message()
nameofFunction(this), t.message!!
)
)
} else {
_responseSplit.value =
ResponseItemVO(isError = false, response = response.message())
}
}
})
}*/
override fun onResponse(call: Call<Any>, response: Response<Any>) {
//segio: salix devuelve id
if (response.body() == null) {
_responseSplit.value = ResponseItemVO(
isError = true, errorMessage = getMessageFromAllResponse(
nameofFunction(this), response.message()
)
)
} else {
_responseSplit.value =
ResponseItemVO(isError = false, response = response.message())
}
}
})
}*/
}

View File

@ -11,6 +11,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentSacadorBinding
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener
@ -121,7 +123,7 @@ class SacadorFragment(
viewModel.collection_assign(
)
} else {
viewModel.sectorCollectionNew(getDataInt(SECTORFK))
viewModel.sectorCollectionNew(mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK))
}
}
@ -171,7 +173,7 @@ class SacadorFragment(
) {
if (ma.havePrinter()) {
viewModel.ticketPrintLabelPrevious(customDialogInput.getValue().toInt())
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(PRINTERNAME)).toast(
requireContext()
)
} else {
@ -206,6 +208,9 @@ class SacadorFragment(
if (goBack) {
if (!it.response.isNullOrBlank()) addCollectionToList(it.response.toInt())
}
if (it.isError){
ma.messageWithSound(it.errorMessage,true,true,"", isToasted = true)
}
goBack = false
callBack(type)
})

View File

@ -11,6 +11,8 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentSacadorBinding
import es.verdnatura.domain.ConstAndValues.PRINTERNAME
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionTicketSelectedListener
@ -122,7 +124,7 @@ class SacadorFragmentNew(
viewModel.collection_assignNew(
)
} else {
viewModel.sectorCollectionNew(getDataInt(SECTORFK))
viewModel.sectorCollectionNew(mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK))
}
}
@ -173,7 +175,7 @@ class SacadorFragmentNew(
) {
if (ma.havePrinter()) {
viewModel.ticketPrintLabelPrevious(customDialogInput.getValue().toInt())
(getString(R.string.Imprimiendo) + getData(PRINTERNAME)).toast(
(getString(R.string.Imprimiendo) + mobileApplication.dataStoreApp.readDataStoreKey<String>(PRINTERNAME)).toast(
requireContext()
)
} else {

View File

@ -8,6 +8,7 @@ import android.view.inputmethod.EditorInfo
import es.verdnatura.R
import es.verdnatura.databinding.FragmentGeneralBlackBinding
import es.verdnatura.domain.ConstAndValues
import es.verdnatura.domain.ConstAndValues.SECTORFK
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnCollectionSelectedListener
import es.verdnatura.presentation.view.feature.precontrol.ShowTicketViewModel
@ -24,7 +25,6 @@ class ShowTicketFragment(var menuOrigin: String) :
override fun getLayoutId(): Int = R.layout.fragment_general_black
private var type = ""
companion object {
fun newInstance(menuOrigin: String) = ShowTicketFragment(menuOrigin = menuOrigin)
}
@ -75,7 +75,7 @@ class ShowTicketFragment(var menuOrigin: String) :
try {
viewModel.collectionTicketGet(
sectorFk = getDataInt(SECTORFK),
sectorFk = mobileApplication.dataStoreApp.readDataStoreKey(SECTORFK),
collectionFk = binding.scanInput.text.toString().toInt(),
print = "0",
type = type
@ -111,10 +111,8 @@ class ShowTicketFragment(var menuOrigin: String) :
}
}
}
private fun navigateToCollectionList(collection: CollectionVO) {

View File

@ -38,7 +38,7 @@ data class Sale(
val packing: Int?=null,
val grouping: Int?=null,
val isAdded: Int=0,
val workerFk: Int,
val workerFk: Int = 0,
val packingShelve: Int = 0,
val hasMistake: Boolean?,
val originalQuantity: Int?,

View File

@ -6,25 +6,23 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentAutomaticAddItemBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnAutomaticItemClickListener
import es.verdnatura.presentation.common.itemScanValue
import es.verdnatura.presentation.view.feature.ubicador.adapter.AutomaticAdapter
import es.verdnatura.presentation.view.feature.ubicador.model.ItemEscanerVO
import es.verdnatura.presentation.view.feature.ubicador.adapter.AutomaticAdapterTEST
import java.lang.Boolean.TRUE
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class AutomaticAddItemFragment(
var shelvingFk: String = "",
var titleAction: String? = null
private var shelvingFk: String = "",
private var titleAction: String? = null
) : BaseFragment<FragmentAutomaticAddItemBinding, AutomaticAddItemViewModel>(
AutomaticAddItemViewModel::class
) {
private var adapter: AutomaticAdapter? = null
private var listItems: ArrayList<ItemEscanerVO> = ArrayList()
private var deep: Int = 1
private var adapter: AutomaticAdapterTEST? = null
private var listItems: ArrayList<Long> = ArrayList()
private var contador = 0
companion object {
@ -52,7 +50,7 @@ class AutomaticAddItemFragment(
}
private fun setViews() {
adapter = AutomaticAdapter(listItems, object : OnAutomaticItemClickListener {
adapter = AutomaticAdapterTEST(listItems, object : OnAutomaticItemClickListener {
override fun onAutomaticItemClickListener(position: Int) {
contador -= 1
setSubtitle()
@ -72,21 +70,21 @@ class AutomaticAddItemFragment(
binding.editMatricula.requestFocus()
binding.editMatricula.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE ||actionId == 0 || actionId == 5) {
if (!binding.editMatricula.text.toString().isNullOrEmpty()) {
contador += 1
setSubtitle()
try {
listItems.add(
0, ItemEscanerVO(
itemScanValue(
textScanned_filterDouble(binding.editMatricula.text.toString()),
"buy",
"more"
).toString().toLong()
)
listItems.add(
0,
itemScanValue(
textScanned_filterDouble(binding.editMatricula.text.toString()),
"buy",
"more"
).toString().toLong()
)
adapter!!.notifyDataSetChanged()
adapter!!.notifyItemInserted(0)
} catch (ex: Exception) {
ma.messageWithSound(ex.message.toString(), true, true)
}
@ -94,6 +92,9 @@ class AutomaticAddItemFragment(
binding.editMatricula.setText("")
ma.hideKeyboard(binding.editMatricula)
return@setOnEditorActionListener true
} else {
ma.messageWithSound("ACTION ID DIFERENTE", true, true)
}
return@setOnEditorActionListener false
@ -103,23 +104,25 @@ class AutomaticAddItemFragment(
val listString: ArrayList<Long> = ArrayList()
val listInt: ArrayList<Long> = ArrayList()
listItems.forEach {
listString.add(it.item)
listInt.add(it.item)
listString.add(it)
listInt.add(it)
}
if (binding.mainToolbar.toolbarTitle.text.equals(getString(R.string.titleChecker))) {
viewModel.itemShelvingAddList(
shelvingFk,
"" + listInt + "",
TRUE,
getDataInt(WAREHOUSEFK)
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
} else {
binding.splashAnimation.visibility = View.VISIBLE
viewModel.itemShelvingMakeMulti(
shelvingFk,
listString,
getDataInt(WAREHOUSEFK)
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
}
}
@ -131,9 +134,9 @@ class AutomaticAddItemFragment(
override fun observeViewModel() {
with(viewModel) {
binding.splashAnimation.visibility = View.INVISIBLE
response.observe(viewLifecycleOwner, Observer {
requireActivity().onBackPressed()
requireActivity().onBackPressed()
})
}
}

View File

@ -1,32 +1,36 @@
package es.verdnatura.presentation.view.feature.ubicador.fragment
import android.view.View
import android.view.inputmethod.EditorInfo
import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentAutomaticAddItemBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnAutomaticItemClickListener
import es.verdnatura.presentation.common.itemScanValue
import es.verdnatura.presentation.view.feature.ubicador.adapter.AutomaticAdapterTEST
import es.verdnatura.presentation.view.feature.ubicador.adapter.AutomaticAdapter
import es.verdnatura.presentation.view.feature.ubicador.model.ItemEscanerVO
import java.lang.Boolean.TRUE
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class AutomaticAddItemFragmentTEST(
private var shelvingFk: String = "",
private var titleAction: String? = null
class AutomaticAddItemFragmentOld(
var shelvingFk: String = "",
var titleAction: String? = null
) : BaseFragment<FragmentAutomaticAddItemBinding, AutomaticAddItemViewModel>(
AutomaticAddItemViewModel::class
) {
private var adapter: AutomaticAdapterTEST? = null
private var listItems: ArrayList<Long> = ArrayList()
private var adapter: AutomaticAdapter? = null
private var listItems: ArrayList<ItemEscanerVO> = ArrayList()
private var deep: Int = 1
private var contador = 0
companion object {
fun newInstance(entryPoint: String, titleAction: String) =
AutomaticAddItemFragmentTEST(entryPoint, titleAction)
AutomaticAddItemFragmentOld(entryPoint, titleAction)
}
override fun getLayoutId(): Int = R.layout.fragment_automatic_add_item
@ -49,7 +53,7 @@ class AutomaticAddItemFragmentTEST(
}
private fun setViews() {
adapter = AutomaticAdapterTEST(listItems, object : OnAutomaticItemClickListener {
adapter = AutomaticAdapter(listItems, object : OnAutomaticItemClickListener {
override fun onAutomaticItemClickListener(position: Int) {
contador -= 1
setSubtitle()
@ -69,23 +73,21 @@ class AutomaticAddItemFragmentTEST(
binding.editMatricula.requestFocus()
binding.editMatricula.setOnEditorActionListener { v, actionId, event ->
if (actionId == 0 || actionId == 5 || actionId == 6 ) {
if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || actionId == 0 || actionId == 5) {
if (!binding.editMatricula.text.toString().isNullOrEmpty()) {
contador += 1
setSubtitle()
try {
listItems.add(
0,
0, ItemEscanerVO(
itemScanValue(
textScanned_filterDouble(binding.editMatricula.text.toString()),
"buy",
"more"
).toString().toLong()
)
)
contador += 1
setSubtitle()
adapter!!.notifyItemInserted(0)
adapter!!.notifyDataSetChanged()
} catch (ex: Exception) {
ma.messageWithSound(ex.message.toString(), true, true)
}
@ -93,9 +95,6 @@ class AutomaticAddItemFragmentTEST(
binding.editMatricula.setText("")
ma.hideKeyboard(binding.editMatricula)
return@setOnEditorActionListener true
}else{
ma.messageWithSound("ACTION ID DIFERENTE", true, true)
}
return@setOnEditorActionListener false
@ -105,25 +104,23 @@ class AutomaticAddItemFragmentTEST(
val listString: ArrayList<Long> = ArrayList()
val listInt: ArrayList<Long> = ArrayList()
listItems.forEach {
listString.add(it)
listInt.add(it)
listString.add(it.item)
listInt.add(it.item)
}
if (binding.mainToolbar.toolbarTitle.text.equals(getString(R.string.titleChecker))) {
viewModel.itemShelvingAddList(
shelvingFk,
"" + listInt + "",
TRUE,
getDataInt(WAREHOUSEFK)
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
} else {
viewModel.itemShelvingMakeMulti(
shelvingFk,
listString,
getDataInt(WAREHOUSEFK)
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
}
}
@ -137,6 +134,7 @@ class AutomaticAddItemFragmentTEST(
with(viewModel) {
response.observe(viewLifecycleOwner, Observer {
requireActivity().onBackPressed()
})
}
}

View File

@ -17,6 +17,7 @@ import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentUbicadorBinding
import es.verdnatura.domain.ConstAndValues.WAREHOUSEFK
import es.verdnatura.domain.notNull
import es.verdnatura.domain.toInt
import es.verdnatura.domain.toast
@ -442,7 +443,7 @@ class UbicadorFragment(
shelvingFk,
"" + listInt + "",
TRUE,
getDataInt(WAREHOUSEFK)
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
adapter!!.notifyDataSetChanged()
@ -820,7 +821,7 @@ class UbicadorFragment(
itemFk,
visible,
packing,
getDataInt(WAREHOUSEFK),
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK),
groupingPack
)
@ -838,7 +839,7 @@ class UbicadorFragment(
item = itemFk,
quantity = visible_calc,
packing = packing,
warehouse = getDataInt(WAREHOUSEFK),
warehouse = mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK),
grouping = groupingPack
)

View File

@ -296,8 +296,11 @@ class UbicadorViewModel(val context: Context) : BaseViewModel(context) {
salix.itemShelvingTransfer(arrayListOf(itemFk, shelvingFk).formatWithQuotes())
.enqueue(object : SalixCallback<Any>(context) {
override fun onSuccess(response: Response<Any>) {
_response.value =
ResponseItemVO(isError = false, response = response.message()!!)
super.onSuccess(response)
}
override fun onError(t: Throwable) {

View File

@ -4,9 +4,12 @@ import android.content.Context
import android.os.Bundle
import android.view.View
import androidx.core.widget.addTextChangedListener
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
import es.verdnatura.databinding.FragmentWorkermistakeBinding
import es.verdnatura.domain.ConstAndValues.DEPARTMENTMISTAKE
import es.verdnatura.domain.ConstAndValues.DEPARTMENTMISTAKEID
import es.verdnatura.domain.toast
import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnBarcodeRowClickListener
@ -24,6 +27,9 @@ import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMis
import es.verdnatura.presentation.view.feature.workermistake.model.MistakeType
import es.verdnatura.presentation.view.feature.workermistake.model.WorkerFromMistake
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class WorkermistakeFragment(
@ -44,7 +50,6 @@ class WorkermistakeFragment(
private var listMistakesAdapter: BarcodeAdapter? = null
private var workerMistakeName: WorkerFromMistake? = null
private val departments = ArrayList<SearchDepartmentModel>()
private lateinit var departmentId: String
companion object {
fun newInstance(entryPoint: String) = WorkermistakeFragment(entryPoint)
@ -64,16 +69,18 @@ class WorkermistakeFragment(
override fun init() {
binding.filterDepartment.text = getData(DEPARTMENTMISTAKE)
departmentId = getData(DEPARTMENTMISTAKEID)
customDialogList = CustomDialogList(requireContext())
if (departmentId.isNotEmpty()) {
viewModel.workerGetFromHasMistake(
getData(DEPARTMENTMISTAKEID).toInt()
)
runBlocking {
binding.filterDepartment.text =
mobileApplication.dataStoreApp.readDataStoreKey<String>("DEPARTMENTMISTAKE")
var departmentId = mobileApplication.dataStoreApp.readDataStoreKey<Int>("DEPARTMENTMISTAKEID")
if (departmentId != 0) {
viewModel.workerGetFromHasMistake(
departmentId!!
)
}
}
customDialogList = CustomDialogList(requireContext())
binding.filterDepartment.setOnClickListener {
SimpleSearchDialogCompat(
context,
@ -84,8 +91,17 @@ class WorkermistakeFragment(
) { baseSearchDialogCompat, nombre, position ->
binding.filterDepartment.text = (nombre.title)
saveData(DEPARTMENTMISTAKE, nombre.getDepartmentName())
saveData(DEPARTMENTMISTAKEID, nombre.getDepartmentId())
lifecycleScope.launch(Dispatchers.IO) {
mobileApplication.dataStoreApp.editDataStoreKey(
DEPARTMENTMISTAKE,
nombre.getDepartmentName()
)
mobileApplication.dataStoreApp.editDataStoreKey(
DEPARTMENTMISTAKEID,
nombre.getDepartmentId()
)
}
viewModel.workerGetFromHasMistake(
nombre.getDepartmentId()
)
@ -178,7 +194,7 @@ class WorkermistakeFragment(
override fun onBarcodeRowClickListener(item: BarcodeVO) {
list.forEach {
if (it.description == item.code) {
viewModel.workerMistakeAdd(
viewModel.workerMistakeAdd(
vUserFk = workerMistakeName!!.id!!,
vTypeFk = it.code
)

View File

@ -84,5 +84,28 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:id="@+id/splash_animation"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/verdnatura_black_8_alpha_6"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:gravity="center"
>
<com.airbnb.lottie.LottieAnimationView
android:layout_width="wrap_content"
android:layout_height="@dimen/verdnatura_logo_large_height"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/orange_loading"
app:lottie_speed="2" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@ -35,7 +35,7 @@
<LinearLayout
android:id="@+id/splash_progress"
android:visibility="visible"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"

View File

@ -401,7 +401,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="1/2"
android:text="11/22"
android:textSize="22sp"
android:gravity="left"
android:textColor="@color/verdnatura_white">

View File

@ -23,4 +23,5 @@ android.useAndroidX=true
android.enableJetifier=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
org.gradle.unsafe.configuration-cache=false
#org.gradle.warning.mode=all