Finish v1_9_0(94)
This commit is contained in:
commit
e6bfadeb26
156
.gitignore
vendored
156
.gitignore
vendored
@ -1,9 +1,151 @@
|
||||
### Android ###
|
||||
# Built application files
|
||||
*.apk
|
||||
*.ap_
|
||||
*.aab
|
||||
# Files for the ART/Dalvik VM
|
||||
*.dex
|
||||
# Java class files
|
||||
*.class
|
||||
# Generated files
|
||||
bin/
|
||||
gen/
|
||||
out/
|
||||
release/
|
||||
# Gradle files
|
||||
.gradle/
|
||||
build/
|
||||
# Local configuration file (sdk path, etc)
|
||||
local.properties
|
||||
# Proguard folder generated by Eclipse
|
||||
proguard/
|
||||
# Log Files
|
||||
*.log
|
||||
# Android Studio Navigation editor temp files
|
||||
.navigation/
|
||||
# Android Studio captures folder
|
||||
captures/
|
||||
# IntelliJ
|
||||
*.iml
|
||||
.gradle
|
||||
/local.properties
|
||||
/.idea/workspace.xml
|
||||
/.idea/libraries
|
||||
.DS_Store
|
||||
/build
|
||||
/captures
|
||||
.idea/workspace.xml
|
||||
.idea/tasks.xml
|
||||
.idea/gradle.xml
|
||||
.idea/assetWizardSettings.xml
|
||||
.idea/dictionaries
|
||||
.idea/libraries
|
||||
# Android Studio 3 in .gitignore file.
|
||||
.idea/caches
|
||||
.idea/modules.xml
|
||||
# Comment next line if keeping position of elements in Navigation Editor is relevant for you
|
||||
.idea/navEditor.xml
|
||||
# Keystore files
|
||||
# Uncomment the following lines if you do not want to check your keystore files in.
|
||||
#*.jks
|
||||
#*.keystore
|
||||
# External native build folder generated in Android Studio 2.2 and later
|
||||
.externalNativeBuild
|
||||
# Google Services (e.g. APIs or Firebase)
|
||||
# google-services.json
|
||||
# Freeline
|
||||
freeline.py
|
||||
freeline/
|
||||
freeline_project_description.json
|
||||
# fastlane
|
||||
fastlane/report.xml
|
||||
fastlane/Preview.html
|
||||
fastlane/screenshots
|
||||
fastlane/test_output
|
||||
fastlane/readme.md
|
||||
# Version control
|
||||
vcs.xml
|
||||
# lint
|
||||
lint/intermediates/
|
||||
lint/generated/
|
||||
lint/outputs/
|
||||
lint/tmp/
|
||||
# lint/reports/
|
||||
### Android Patch ###
|
||||
gen-external-apklibs
|
||||
output.json
|
||||
# Replacement of .externalNativeBuild directories introduced
|
||||
# with Android Studio 3.5.
|
||||
.cxx/
|
||||
### AndroidStudio ###
|
||||
# Covers files to be ignored for android development using Android Studio.
|
||||
# Built application files
|
||||
# Files for the ART/Dalvik VM
|
||||
# Java class files
|
||||
# Generated files
|
||||
# Gradle files
|
||||
.gradle
|
||||
# Signing files
|
||||
.signing/
|
||||
# Local configuration file (sdk path, etc)
|
||||
# Proguard folder generated by Eclipse
|
||||
# Log Files
|
||||
# Android Studio
|
||||
/*/build/
|
||||
/*/local.properties
|
||||
/*/out
|
||||
/*/*/build
|
||||
/*/*/production
|
||||
*.ipr
|
||||
*~
|
||||
*.swp
|
||||
# Android Patch
|
||||
# External native build folder generated in Android Studio 2.2 and later
|
||||
# NDK
|
||||
obj/
|
||||
# IntelliJ IDEA
|
||||
*.iws
|
||||
/out/
|
||||
# User-specific configurations
|
||||
.idea/caches/
|
||||
.idea/libraries/
|
||||
.idea/shelf/
|
||||
.idea/.name
|
||||
.idea/compiler.xml
|
||||
.idea/copyright/profiles_settings.xml
|
||||
.idea/encodings.xml
|
||||
.idea/misc.xml
|
||||
.idea/scopes/scope_settings.xml
|
||||
.idea/vcs.xml
|
||||
.idea/jsLibraryMappings.xml
|
||||
.idea/datasources.xml
|
||||
.idea/dataSources.ids
|
||||
.idea/sqlDataSources.xml
|
||||
.idea/dynamic.xml
|
||||
.idea/uiDesigner.xml
|
||||
# OS-specific files
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
# Legacy Eclipse project files
|
||||
.classpath
|
||||
.project
|
||||
.cproject
|
||||
.settings/
|
||||
# Mobile Tools for Java (J2ME)
|
||||
.mtj.tmp/
|
||||
# Package Files #
|
||||
*.war
|
||||
*.ear
|
||||
# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
|
||||
hs_err_pid*
|
||||
## Plugin-specific files:
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
# Mongo Explorer plugin
|
||||
.idea/mongoSettings.xml
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
### AndroidStudio Patch ###
|
||||
!/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
165
.idea/assetWizardSettings.xml
generated
165
.idea/assetWizardSettings.xml
generated
@ -1,165 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="WizardSettings">
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="imageWizard">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="imageAssetPanel">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="actionbar">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="clipArt">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="color" value="000000" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="theme" value="HOLO_DARK" />
|
||||
<entry key="themeColor" value="ffffff" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="launcher">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="foregroundImage">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="color" value="000000" />
|
||||
<entry key="trimmed" value="true" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="backgroundAssetType" value="COLOR" />
|
||||
<entry key="backgroundColor" value="ffffff" />
|
||||
<entry key="foregroundImage" value="C:\Work\Prod_Android\WMS_Native\ext_sources\RoundLogoWithText.png" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="launcherLegacy">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="clipArt">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="color" value="000000" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="notification">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="clipArt">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="color" value="000000" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="vectorWizard">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="vectorAssetStep">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="clipartAsset">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="url" value="jar:file:/C:/Program%20Files/Android/Android%20Studio/plugins/android/lib/android.jar!/images/material_design_icons/file/ic_file_upload_black_24dp.xml" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="assetSourceType" value="FILE" />
|
||||
<entry key="outputName" value="ic_icons8_deliver_food_reverse" />
|
||||
<entry key="sourceFile" value="C:\Work\Prod_Android\WMS_Native\ext_sources\ICONS\icons8-deliver-food-reverse.svg" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
27
.idea/codeStyles/Project.xml
generated
27
.idea/codeStyles/Project.xml
generated
@ -1,33 +1,6 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<DBN-PSQL>
|
||||
<case-options enabled="true">
|
||||
<option name="KEYWORD_CASE" value="lower" />
|
||||
<option name="FUNCTION_CASE" value="lower" />
|
||||
<option name="PARAMETER_CASE" value="lower" />
|
||||
<option name="DATATYPE_CASE" value="lower" />
|
||||
<option name="OBJECT_CASE" value="preserve" />
|
||||
</case-options>
|
||||
<formatting-settings enabled="false" />
|
||||
</DBN-PSQL>
|
||||
<DBN-SQL>
|
||||
<case-options enabled="true">
|
||||
<option name="KEYWORD_CASE" value="lower" />
|
||||
<option name="FUNCTION_CASE" value="lower" />
|
||||
<option name="PARAMETER_CASE" value="lower" />
|
||||
<option name="DATATYPE_CASE" value="lower" />
|
||||
<option name="OBJECT_CASE" value="preserve" />
|
||||
</case-options>
|
||||
<formatting-settings enabled="false">
|
||||
<option name="STATEMENT_SPACING" value="one_line" />
|
||||
<option name="CLAUSE_CHOP_DOWN" value="chop_down_if_statement_long" />
|
||||
<option name="ITERATION_ELEMENTS_WRAPPING" value="chop_down_if_not_single" />
|
||||
</formatting-settings>
|
||||
</DBN-SQL>
|
||||
<codeStyleSettings language="XML">
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</indentOptions>
|
||||
<arrangement>
|
||||
<rules>
|
||||
<section>
|
||||
|
||||
456
.idea/dbnavigator.xml
generated
456
.idea/dbnavigator.xml
generated
@ -1,456 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DBNavigator.Project.DataEditorManager">
|
||||
<record-view-column-sorting-type value="BY_INDEX" />
|
||||
<value-preview-text-wrapping value="false" />
|
||||
<value-preview-pinned value="false" />
|
||||
</component>
|
||||
<component name="DBNavigator.Project.DataExportManager">
|
||||
<export-instructions>
|
||||
<create-header value="true" />
|
||||
<quote-values-containing-separator value="true" />
|
||||
<quote-all-values value="false" />
|
||||
<value-separator value="" />
|
||||
<file-name value="" />
|
||||
<file-location value="" />
|
||||
<scope value="GLOBAL" />
|
||||
<destination value="FILE" />
|
||||
<format value="EXCEL" />
|
||||
<charset value="windows-1252" />
|
||||
</export-instructions>
|
||||
</component>
|
||||
<component name="DBNavigator.Project.DatabaseBrowserManager">
|
||||
<autoscroll-to-editor value="false" />
|
||||
<autoscroll-from-editor value="true" />
|
||||
<show-object-properties value="true" />
|
||||
<loaded-nodes />
|
||||
</component>
|
||||
<component name="DBNavigator.Project.DatabaseFileManager">
|
||||
<open-files />
|
||||
</component>
|
||||
<component name="DBNavigator.Project.EditorStateManager">
|
||||
<last-used-providers />
|
||||
</component>
|
||||
<component name="DBNavigator.Project.MethodExecutionManager">
|
||||
<method-browser />
|
||||
<execution-history>
|
||||
<group-entries value="true" />
|
||||
<execution-inputs />
|
||||
</execution-history>
|
||||
<argument-values-cache />
|
||||
</component>
|
||||
<component name="DBNavigator.Project.ObjectDependencyManager">
|
||||
<last-used-dependency-type value="INCOMING" />
|
||||
</component>
|
||||
<component name="DBNavigator.Project.ObjectQuickFilterManager">
|
||||
<last-used-operator value="EQUAL" />
|
||||
<filters />
|
||||
</component>
|
||||
<component name="DBNavigator.Project.ScriptExecutionManager" clear-outputs="true">
|
||||
<recently-used-interfaces />
|
||||
</component>
|
||||
<component name="DBNavigator.Project.Settings">
|
||||
<connections />
|
||||
<browser-settings>
|
||||
<general>
|
||||
<display-mode value="TABBED" />
|
||||
<navigation-history-size value="100" />
|
||||
<show-object-details value="false" />
|
||||
</general>
|
||||
<filters>
|
||||
<object-type-filter>
|
||||
<object-type name="SCHEMA" enabled="true" />
|
||||
<object-type name="USER" enabled="true" />
|
||||
<object-type name="ROLE" enabled="true" />
|
||||
<object-type name="PRIVILEGE" enabled="true" />
|
||||
<object-type name="CHARSET" enabled="true" />
|
||||
<object-type name="TABLE" enabled="true" />
|
||||
<object-type name="VIEW" enabled="true" />
|
||||
<object-type name="MATERIALIZED_VIEW" enabled="true" />
|
||||
<object-type name="NESTED_TABLE" enabled="true" />
|
||||
<object-type name="COLUMN" enabled="true" />
|
||||
<object-type name="INDEX" enabled="true" />
|
||||
<object-type name="CONSTRAINT" enabled="true" />
|
||||
<object-type name="DATASET_TRIGGER" enabled="true" />
|
||||
<object-type name="DATABASE_TRIGGER" enabled="true" />
|
||||
<object-type name="SYNONYM" enabled="true" />
|
||||
<object-type name="SEQUENCE" enabled="true" />
|
||||
<object-type name="PROCEDURE" enabled="true" />
|
||||
<object-type name="FUNCTION" enabled="true" />
|
||||
<object-type name="PACKAGE" enabled="true" />
|
||||
<object-type name="TYPE" enabled="true" />
|
||||
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
|
||||
<object-type name="ARGUMENT" enabled="true" />
|
||||
<object-type name="DIMENSION" enabled="true" />
|
||||
<object-type name="CLUSTER" enabled="true" />
|
||||
<object-type name="DBLINK" enabled="true" />
|
||||
</object-type-filter>
|
||||
</filters>
|
||||
<sorting>
|
||||
<object-type name="COLUMN" sorting-type="NAME" />
|
||||
<object-type name="FUNCTION" sorting-type="NAME" />
|
||||
<object-type name="PROCEDURE" sorting-type="NAME" />
|
||||
<object-type name="ARGUMENT" sorting-type="POSITION" />
|
||||
</sorting>
|
||||
<default-editors>
|
||||
<object-type name="VIEW" editor-type="SELECTION" />
|
||||
<object-type name="PACKAGE" editor-type="SELECTION" />
|
||||
<object-type name="TYPE" editor-type="SELECTION" />
|
||||
</default-editors>
|
||||
</browser-settings>
|
||||
<navigation-settings>
|
||||
<lookup-filters>
|
||||
<lookup-objects>
|
||||
<object-type name="SCHEMA" enabled="true" />
|
||||
<object-type name="USER" enabled="false" />
|
||||
<object-type name="ROLE" enabled="false" />
|
||||
<object-type name="PRIVILEGE" enabled="false" />
|
||||
<object-type name="CHARSET" enabled="false" />
|
||||
<object-type name="TABLE" enabled="true" />
|
||||
<object-type name="VIEW" enabled="true" />
|
||||
<object-type name="MATERIALIZED VIEW" enabled="true" />
|
||||
<object-type name="NESTED TABLE" enabled="false" />
|
||||
<object-type name="COLUMN" enabled="false" />
|
||||
<object-type name="INDEX" enabled="true" />
|
||||
<object-type name="CONSTRAINT" enabled="true" />
|
||||
<object-type name="DATASET TRIGGER" enabled="true" />
|
||||
<object-type name="DATABASE TRIGGER" enabled="true" />
|
||||
<object-type name="SYNONYM" enabled="false" />
|
||||
<object-type name="SEQUENCE" enabled="true" />
|
||||
<object-type name="PROCEDURE" enabled="true" />
|
||||
<object-type name="FUNCTION" enabled="true" />
|
||||
<object-type name="PACKAGE" enabled="true" />
|
||||
<object-type name="TYPE" enabled="true" />
|
||||
<object-type name="TYPE ATTRIBUTE" enabled="false" />
|
||||
<object-type name="ARGUMENT" enabled="false" />
|
||||
<object-type name="DIMENSION" enabled="false" />
|
||||
<object-type name="CLUSTER" enabled="false" />
|
||||
<object-type name="DBLINK" enabled="true" />
|
||||
</lookup-objects>
|
||||
<force-database-load value="false" />
|
||||
<prompt-connection-selection value="true" />
|
||||
<prompt-schema-selection value="true" />
|
||||
</lookup-filters>
|
||||
</navigation-settings>
|
||||
<dataset-grid-settings>
|
||||
<general>
|
||||
<enable-zooming value="true" />
|
||||
<enable-column-tooltip value="true" />
|
||||
</general>
|
||||
<sorting>
|
||||
<nulls-first value="true" />
|
||||
<max-sorting-columns value="4" />
|
||||
</sorting>
|
||||
<tracking-columns>
|
||||
<columnNames value="" />
|
||||
<visible value="true" />
|
||||
<editable value="false" />
|
||||
</tracking-columns>
|
||||
</dataset-grid-settings>
|
||||
<dataset-editor-settings>
|
||||
<text-editor-popup>
|
||||
<active value="false" />
|
||||
<active-if-empty value="false" />
|
||||
<data-length-threshold value="100" />
|
||||
<popup-delay value="1000" />
|
||||
</text-editor-popup>
|
||||
<values-actions-popup>
|
||||
<show-popup-button value="true" />
|
||||
<element-count-threshold value="1000" />
|
||||
<data-length-threshold value="250" />
|
||||
</values-actions-popup>
|
||||
<general>
|
||||
<fetch-block-size value="100" />
|
||||
<fetch-timeout value="30" />
|
||||
<trim-whitespaces value="true" />
|
||||
<convert-empty-strings-to-null value="true" />
|
||||
<select-content-on-cell-edit value="true" />
|
||||
<large-value-preview-active value="true" />
|
||||
</general>
|
||||
<filters>
|
||||
<prompt-filter-dialog value="true" />
|
||||
<default-filter-type value="BASIC" />
|
||||
</filters>
|
||||
<qualified-text-editor text-length-threshold="300">
|
||||
<content-types>
|
||||
<content-type name="Text" enabled="true" />
|
||||
<content-type name="Properties" enabled="true" />
|
||||
<content-type name="XML" enabled="true" />
|
||||
<content-type name="DTD" enabled="true" />
|
||||
<content-type name="HTML" enabled="true" />
|
||||
<content-type name="XHTML" enabled="true" />
|
||||
<content-type name="Java" enabled="true" />
|
||||
<content-type name="SQL" enabled="true" />
|
||||
<content-type name="PL/SQL" enabled="true" />
|
||||
<content-type name="Groovy" enabled="true" />
|
||||
<content-type name="AIDL" enabled="true" />
|
||||
<content-type name="YAML" enabled="true" />
|
||||
<content-type name="Manifest" enabled="true" />
|
||||
</content-types>
|
||||
</qualified-text-editor>
|
||||
<record-navigation>
|
||||
<navigation-target value="VIEWER" />
|
||||
</record-navigation>
|
||||
</dataset-editor-settings>
|
||||
<code-editor-settings>
|
||||
<general>
|
||||
<show-object-navigation-gutter value="false" />
|
||||
<show-spec-declaration-navigation-gutter value="true" />
|
||||
<enable-spellchecking value="true" />
|
||||
<enable-reference-spellchecking value="false" />
|
||||
</general>
|
||||
<confirmations>
|
||||
<save-changes value="false" />
|
||||
<revert-changes value="true" />
|
||||
</confirmations>
|
||||
</code-editor-settings>
|
||||
<code-completion-settings>
|
||||
<filters>
|
||||
<basic-filter>
|
||||
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="function" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
|
||||
<filter-element type="OBJECT" id="schema" selected="true" />
|
||||
<filter-element type="OBJECT" id="role" selected="true" />
|
||||
<filter-element type="OBJECT" id="user" selected="true" />
|
||||
<filter-element type="OBJECT" id="privilege" selected="true" />
|
||||
<user-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="true" />
|
||||
<filter-element type="OBJECT" id="view" selected="true" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||
<filter-element type="OBJECT" id="index" selected="true" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="false" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||
<filter-element type="OBJECT" id="function" selected="true" />
|
||||
<filter-element type="OBJECT" id="package" selected="true" />
|
||||
<filter-element type="OBJECT" id="type" selected="true" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||
</user-schema>
|
||||
<public-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="false" />
|
||||
<filter-element type="OBJECT" id="view" selected="false" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="false" />
|
||||
<filter-element type="OBJECT" id="index" selected="false" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="false" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="false" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="false" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="false" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="false" />
|
||||
<filter-element type="OBJECT" id="function" selected="false" />
|
||||
<filter-element type="OBJECT" id="package" selected="false" />
|
||||
<filter-element type="OBJECT" id="type" selected="false" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="false" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="false" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="false" />
|
||||
</public-schema>
|
||||
<any-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="true" />
|
||||
<filter-element type="OBJECT" id="view" selected="true" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||
<filter-element type="OBJECT" id="index" selected="true" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||
<filter-element type="OBJECT" id="function" selected="true" />
|
||||
<filter-element type="OBJECT" id="package" selected="true" />
|
||||
<filter-element type="OBJECT" id="type" selected="true" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||
</any-schema>
|
||||
</basic-filter>
|
||||
<extended-filter>
|
||||
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="function" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
|
||||
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
|
||||
<filter-element type="OBJECT" id="schema" selected="true" />
|
||||
<filter-element type="OBJECT" id="user" selected="true" />
|
||||
<filter-element type="OBJECT" id="role" selected="true" />
|
||||
<filter-element type="OBJECT" id="privilege" selected="true" />
|
||||
<user-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="true" />
|
||||
<filter-element type="OBJECT" id="view" selected="true" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||
<filter-element type="OBJECT" id="index" selected="true" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||
<filter-element type="OBJECT" id="function" selected="true" />
|
||||
<filter-element type="OBJECT" id="package" selected="true" />
|
||||
<filter-element type="OBJECT" id="type" selected="true" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||
</user-schema>
|
||||
<public-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="true" />
|
||||
<filter-element type="OBJECT" id="view" selected="true" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||
<filter-element type="OBJECT" id="index" selected="true" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||
<filter-element type="OBJECT" id="function" selected="true" />
|
||||
<filter-element type="OBJECT" id="package" selected="true" />
|
||||
<filter-element type="OBJECT" id="type" selected="true" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||
</public-schema>
|
||||
<any-schema>
|
||||
<filter-element type="OBJECT" id="table" selected="true" />
|
||||
<filter-element type="OBJECT" id="view" selected="true" />
|
||||
<filter-element type="OBJECT" id="materialized view" selected="true" />
|
||||
<filter-element type="OBJECT" id="index" selected="true" />
|
||||
<filter-element type="OBJECT" id="constraint" selected="true" />
|
||||
<filter-element type="OBJECT" id="trigger" selected="true" />
|
||||
<filter-element type="OBJECT" id="synonym" selected="true" />
|
||||
<filter-element type="OBJECT" id="sequence" selected="true" />
|
||||
<filter-element type="OBJECT" id="procedure" selected="true" />
|
||||
<filter-element type="OBJECT" id="function" selected="true" />
|
||||
<filter-element type="OBJECT" id="package" selected="true" />
|
||||
<filter-element type="OBJECT" id="type" selected="true" />
|
||||
<filter-element type="OBJECT" id="dimension" selected="true" />
|
||||
<filter-element type="OBJECT" id="cluster" selected="true" />
|
||||
<filter-element type="OBJECT" id="dblink" selected="true" />
|
||||
</any-schema>
|
||||
</extended-filter>
|
||||
</filters>
|
||||
<sorting enabled="true">
|
||||
<sorting-element type="RESERVED_WORD" id="keyword" />
|
||||
<sorting-element type="RESERVED_WORD" id="datatype" />
|
||||
<sorting-element type="OBJECT" id="column" />
|
||||
<sorting-element type="OBJECT" id="table" />
|
||||
<sorting-element type="OBJECT" id="view" />
|
||||
<sorting-element type="OBJECT" id="materialized view" />
|
||||
<sorting-element type="OBJECT" id="index" />
|
||||
<sorting-element type="OBJECT" id="constraint" />
|
||||
<sorting-element type="OBJECT" id="trigger" />
|
||||
<sorting-element type="OBJECT" id="synonym" />
|
||||
<sorting-element type="OBJECT" id="sequence" />
|
||||
<sorting-element type="OBJECT" id="procedure" />
|
||||
<sorting-element type="OBJECT" id="function" />
|
||||
<sorting-element type="OBJECT" id="package" />
|
||||
<sorting-element type="OBJECT" id="type" />
|
||||
<sorting-element type="OBJECT" id="dimension" />
|
||||
<sorting-element type="OBJECT" id="cluster" />
|
||||
<sorting-element type="OBJECT" id="dblink" />
|
||||
<sorting-element type="OBJECT" id="schema" />
|
||||
<sorting-element type="OBJECT" id="role" />
|
||||
<sorting-element type="OBJECT" id="user" />
|
||||
<sorting-element type="RESERVED_WORD" id="function" />
|
||||
<sorting-element type="RESERVED_WORD" id="parameter" />
|
||||
</sorting>
|
||||
<format>
|
||||
<enforce-code-style-case value="true" />
|
||||
</format>
|
||||
</code-completion-settings>
|
||||
<execution-engine-settings>
|
||||
<statement-execution>
|
||||
<fetch-block-size value="100" />
|
||||
<execution-timeout value="20" />
|
||||
<debug-execution-timeout value="600" />
|
||||
<focus-result value="false" />
|
||||
<prompt-execution value="false" />
|
||||
</statement-execution>
|
||||
<script-execution>
|
||||
<command-line-interfaces />
|
||||
<execution-timeout value="300" />
|
||||
</script-execution>
|
||||
<method-execution>
|
||||
<execution-timeout value="30" />
|
||||
<debug-execution-timeout value="600" />
|
||||
<parameter-history-size value="10" />
|
||||
</method-execution>
|
||||
</execution-engine-settings>
|
||||
<operation-settings>
|
||||
<transactions>
|
||||
<uncommitted-changes>
|
||||
<on-project-close value="ASK" />
|
||||
<on-disconnect value="ASK" />
|
||||
<on-autocommit-toggle value="ASK" />
|
||||
</uncommitted-changes>
|
||||
<multiple-uncommitted-changes>
|
||||
<on-commit value="ASK" />
|
||||
<on-rollback value="ASK" />
|
||||
</multiple-uncommitted-changes>
|
||||
</transactions>
|
||||
<session-browser>
|
||||
<disconnect-session value="ASK" />
|
||||
<kill-session value="ASK" />
|
||||
<reload-on-filter-change value="false" />
|
||||
</session-browser>
|
||||
<compiler>
|
||||
<compile-type value="KEEP" />
|
||||
<compile-dependencies value="ASK" />
|
||||
<always-show-controls value="false" />
|
||||
</compiler>
|
||||
<debugger>
|
||||
<debugger-type value="ASK" />
|
||||
<use-generic-runners value="true" />
|
||||
</debugger>
|
||||
</operation-settings>
|
||||
<ddl-file-settings>
|
||||
<extensions>
|
||||
<mapping file-type-id="VIEW" extensions="vw" />
|
||||
<mapping file-type-id="TRIGGER" extensions="trg" />
|
||||
<mapping file-type-id="PROCEDURE" extensions="prc" />
|
||||
<mapping file-type-id="FUNCTION" extensions="fnc" />
|
||||
<mapping file-type-id="PACKAGE" extensions="pkg" />
|
||||
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
|
||||
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
|
||||
<mapping file-type-id="TYPE" extensions="tpe" />
|
||||
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
|
||||
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
|
||||
</extensions>
|
||||
<general>
|
||||
<lookup-ddl-files value="true" />
|
||||
<create-ddl-files value="false" />
|
||||
<synchronize-ddl-files value="true" />
|
||||
<use-qualified-names value="false" />
|
||||
<make-scripts-rerunnable value="true" />
|
||||
</general>
|
||||
</ddl-file-settings>
|
||||
<general-settings>
|
||||
<regional-settings>
|
||||
<date-format value="MEDIUM" />
|
||||
<number-format value="UNGROUPED" />
|
||||
<locale value="SYSTEM_DEFAULT" />
|
||||
<use-custom-formats value="false" />
|
||||
</regional-settings>
|
||||
<environment>
|
||||
<environment-types>
|
||||
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
|
||||
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
|
||||
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
|
||||
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
|
||||
</environment-types>
|
||||
<visibility-settings>
|
||||
<connection-tabs value="true" />
|
||||
<dialog-headers value="true" />
|
||||
<object-editor-tabs value="true" />
|
||||
<script-editor-tabs value="false" />
|
||||
<execution-result-tabs value="true" />
|
||||
</visibility-settings>
|
||||
</environment>
|
||||
</general-settings>
|
||||
</component>
|
||||
<component name="DBNavigator.Project.StatementExecutionManager">
|
||||
<execution-variables />
|
||||
</component>
|
||||
</project>
|
||||
4
.idea/encodings.xml
generated
4
.idea/encodings.xml
generated
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
|
||||
</project>
|
||||
27
.idea/gradle.xml
generated
27
.idea/gradle.xml
generated
@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
<option value="$PROJECT_DIR$/barcode_base_library" />
|
||||
<option value="$PROJECT_DIR$/dynamic__base" />
|
||||
<option value="$PROJECT_DIR$/dynamic_frudis" />
|
||||
<option value="$PROJECT_DIR$/dynamic_ime" />
|
||||
<option value="$PROJECT_DIR$/dynamic_vgalimenti" />
|
||||
<option value="$PROJECT_DIR$/honeywellscannerlibrary" />
|
||||
<option value="$PROJECT_DIR$/pointmobilescannerlibrary" />
|
||||
<option value="$PROJECT_DIR$/zebrascannerlibrary" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveModulePerSourceSet" value="false" />
|
||||
<option name="testRunner" value="PLATFORM" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
48
.idea/misc.xml
generated
48
.idea/misc.xml
generated
@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="NullableNotNullManager">
|
||||
<option name="myDefaultNullable" value="android.support.annotation.Nullable" />
|
||||
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
|
||||
<option name="myNullables">
|
||||
<value>
|
||||
<list size="12">
|
||||
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
|
||||
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
|
||||
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
|
||||
<item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
|
||||
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
|
||||
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
|
||||
<item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
|
||||
<item index="7" class="java.lang.String" itemvalue="android.annotation.Nullable" />
|
||||
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
|
||||
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
|
||||
<item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
|
||||
<item index="11" class="java.lang.String" itemvalue="com.android.annotations.Nullable" />
|
||||
</list>
|
||||
</value>
|
||||
</option>
|
||||
<option name="myNotNulls">
|
||||
<value>
|
||||
<list size="11">
|
||||
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
|
||||
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
|
||||
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
|
||||
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
|
||||
<item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
|
||||
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
|
||||
<item index="6" class="java.lang.String" itemvalue="android.annotation.NonNull" />
|
||||
<item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
|
||||
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
|
||||
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
|
||||
<item index="10" class="java.lang.String" itemvalue="com.android.annotations.NonNull" />
|
||||
</list>
|
||||
</value>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
<option name="id" value="Android" />
|
||||
</component>
|
||||
</project>
|
||||
18
.idea/modules.xml
generated
18
.idea/modules.xml
generated
@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/WMS.iml" filepath="$PROJECT_DIR$/WMS.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/WMS_Native.iml" filepath="$PROJECT_DIR$/WMS_Native.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/barcode_base_library/barcode_base_library.iml" filepath="$PROJECT_DIR$/barcode_base_library/barcode_base_library.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/dynamic__base/dynamic__base.iml" filepath="$PROJECT_DIR$/dynamic__base/dynamic__base.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/dynamic_frudis/dynamic_frudis.iml" filepath="$PROJECT_DIR$/dynamic_frudis/dynamic_frudis.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/dynamic_ime/dynamic_ime.iml" filepath="$PROJECT_DIR$/dynamic_ime/dynamic_ime.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" filepath="$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/honeywellscannerlibrary/honeywellscannerlibrary.iml" filepath="$PROJECT_DIR$/honeywellscannerlibrary/honeywellscannerlibrary.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" filepath="$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/zebrascannerlibrary/zebrascannerlibrary.iml" filepath="$PROJECT_DIR$/zebrascannerlibrary/zebrascannerlibrary.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/runConfigurations/app.xml
generated
6
.idea/runConfigurations/app.xml
generated
@ -6,7 +6,7 @@
|
||||
<option name="DEPLOY_AS_INSTANT" value="false" />
|
||||
<option name="ARTIFACT_NAME" value="" />
|
||||
<option name="PM_INSTALL_OPTIONS" value="" />
|
||||
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="dynamic_frudis,dynamic_ime,dynamic_vgalimenti" />
|
||||
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="dynamic_frudis,dynamic_ime,dynamic_saporiveri_pv,dynamic_vgalimenti" />
|
||||
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
||||
<option name="MODE" value="default_activity" />
|
||||
<option name="CLEAR_LOGCAT" value="true" />
|
||||
@ -14,7 +14,7 @@
|
||||
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
|
||||
<option name="FORCE_STOP_RUNNING_APP" value="true" />
|
||||
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
|
||||
<option name="USE_LAST_SELECTED_DEVICE" value="true" />
|
||||
<option name="USE_LAST_SELECTED_DEVICE" value="false" />
|
||||
<option name="PREFERRED_AVD" value="" />
|
||||
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
|
||||
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
|
||||
@ -43,7 +43,7 @@
|
||||
</Native>
|
||||
<Profilers>
|
||||
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
|
||||
<option name="STARTUP_CPU_PROFILING_ENABLED" value="true" />
|
||||
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
|
||||
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Sample Java Methods" />
|
||||
</Profilers>
|
||||
<option name="DEEP_LINK" value="" />
|
||||
|
||||
55
.idea/runConfigurations/app_saporiveri_pv.xml
generated
Normal file
55
.idea/runConfigurations/app_saporiveri_pv.xml
generated
Normal file
@ -0,0 +1,55 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="app_saporiveri_pv" type="AndroidRunConfigurationType" factoryName="Android App">
|
||||
<module name="app" />
|
||||
<option name="DEPLOY" value="true" />
|
||||
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
||||
<option name="DEPLOY_AS_INSTANT" value="false" />
|
||||
<option name="ARTIFACT_NAME" value="" />
|
||||
<option name="PM_INSTALL_OPTIONS" value="" />
|
||||
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="dynamic__base,dynamic_frudis,dynamic_ime,dynamic_vgalimenti" />
|
||||
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
||||
<option name="MODE" value="default_activity" />
|
||||
<option name="CLEAR_LOGCAT" value="true" />
|
||||
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
|
||||
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
|
||||
<option name="FORCE_STOP_RUNNING_APP" value="true" />
|
||||
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
|
||||
<option name="USE_LAST_SELECTED_DEVICE" value="false" />
|
||||
<option name="PREFERRED_AVD" value="" />
|
||||
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
|
||||
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
|
||||
<option name="DEBUGGER_TYPE" value="Auto" />
|
||||
<Auto>
|
||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
||||
<option name="SHOW_STATIC_VARS" value="true" />
|
||||
<option name="WORKING_DIR" value="" />
|
||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||
</Auto>
|
||||
<Hybrid>
|
||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
||||
<option name="SHOW_STATIC_VARS" value="true" />
|
||||
<option name="WORKING_DIR" value="" />
|
||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||
</Hybrid>
|
||||
<Java />
|
||||
<Native>
|
||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
||||
<option name="SHOW_STATIC_VARS" value="true" />
|
||||
<option name="WORKING_DIR" value="" />
|
||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||
</Native>
|
||||
<Profilers>
|
||||
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
|
||||
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
|
||||
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Sample Java Methods" />
|
||||
</Profilers>
|
||||
<option name="DEEP_LINK" value="" />
|
||||
<option name="ACTIVITY_CLASS" value="" />
|
||||
<method v="2">
|
||||
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
||||
6
.idea/vcs.xml
generated
6
.idea/vcs.xml
generated
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
|
||||
|
||||
android {
|
||||
|
||||
def appVersionCode = 93
|
||||
def appVersionName = '1.8.6'
|
||||
def appVersionCode = 94
|
||||
def appVersionName = '1.9.0'
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
@ -83,7 +83,7 @@ android {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
dynamicFeatures = [":dynamic__base",":dynamic_vgalimenti",":dynamic_ime",":dynamic_frudis"]
|
||||
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti", ":dynamic_ime", ":dynamic_frudis", ":dynamic_saporiveri_pv"]
|
||||
|
||||
|
||||
}
|
||||
@ -95,16 +95,16 @@ dependencies {
|
||||
})
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
implementation 'com.orhanobut:logger:2.2.0'
|
||||
implementation 'com.google.firebase:firebase-core:17.2.0'
|
||||
implementation 'com.google.firebase:firebase-core:17.2.1'
|
||||
implementation 'com.google.firebase:firebase-crash:16.2.1'
|
||||
implementation 'com.google.firebase:firebase-perf:19.0.1'
|
||||
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
|
||||
implementation 'androidx.appcompat:appcompat:1.1.0'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
implementation 'com.google.android.material:material:1.1.0-beta01'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta3'
|
||||
implementation 'androidx.cardview:cardview:1.0.0'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.1.0-beta05'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.1.0-rc01'
|
||||
implementation 'androidx.preference:preference:1.1.0'
|
||||
implementation 'com.squareup.okhttp3:okhttp:4.2.2'
|
||||
implementation 'com.squareup.retrofit2:retrofit:2.6.2'
|
||||
@ -113,6 +113,7 @@ dependencies {
|
||||
implementation 'androidx.lifecycle:lifecycle-runtime:2.1.0'
|
||||
implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
|
||||
implementation 'androidx.lifecycle:lifecycle-common-java8:2.1.0'
|
||||
implementation 'org.apache.commons:commons-text:1.6'
|
||||
//kapt "androidx.lifecycle:lifecycle-compiler:2.0.0"
|
||||
implementation 'com.danielpuiu:ghostfish:2.0.0'
|
||||
annotationProcessor "com.danielpuiu:ghostfish-compiler:2.0.0"
|
||||
@ -141,14 +142,21 @@ dependencies {
|
||||
implementation 'com.github.zhukic:sectioned-recyclerview:1.2.3'
|
||||
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
|
||||
|
||||
//SQLite ROOM
|
||||
def room_version = "2.2.1"
|
||||
|
||||
implementation "androidx.room:room-runtime:$room_version"
|
||||
annotationProcessor "androidx.room:room-compiler:$room_version"
|
||||
|
||||
//AppUpdate
|
||||
implementation 'com.github.javiersantos:AppUpdater:2.7'
|
||||
|
||||
//Barcode
|
||||
implementation project(':pointmobilescannerlibrary')
|
||||
implementation project(':zebrascannerlibrary')
|
||||
implementation project(path: ':barcode_base_library')
|
||||
implementation project(path: ':barcode_base_android_library')
|
||||
implementation project(path: ':honeywellscannerlibrary')
|
||||
implementation project(':keyobardemulatorscannerlibrary')
|
||||
}
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme"
|
||||
android:usesCleartextTraffic="true">
|
||||
<activity android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity"></activity>
|
||||
<activity
|
||||
android:name=".gest.picking_resi.PickingResiActivity"
|
||||
android:label="@string/activity_ultime_consegne_title"
|
||||
|
||||
@ -15,14 +15,15 @@ import androidx.appcompat.app.ActionBarDrawerToggle;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.SearchView;
|
||||
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.SubMenu;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -31,6 +32,7 @@ import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
|
||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||
@ -41,25 +43,12 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.update.UpdatesManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilitySettings;
|
||||
import it.integry.integrywmsnative.databinding.ActivityMainBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentMainMenuGroupLayoutBinding;
|
||||
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.gest.login.LoginActivity;
|
||||
import it.integry.integrywmsnative.gest.main.MainFragment;
|
||||
import it.integry.integrywmsnative.gest.main.MenuListAdapter;
|
||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
||||
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.ProdOrdineLavorazioneElencoFragment;
|
||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
|
||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
||||
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
|
||||
import it.integry.integrywmsnative.gest.ultime_arrivi_fornitore.UltimiArriviFornitoreFragment;
|
||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
|
||||
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
|
||||
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
||||
|
||||
public class MainActivity extends AppCompatActivity
|
||||
public class MainActivity extends BaseActivity
|
||||
implements NavigationView.OnNavigationItemSelectedListener, IPoppableActivity {
|
||||
|
||||
private ActivityMainBinding mBinding;
|
||||
|
||||
@ -5,12 +5,20 @@ import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
|
||||
import it.integry.integrywmsnative.core.context.AppContext;
|
||||
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
|
||||
|
||||
public class MainApplication extends Application {
|
||||
|
||||
public static Resources res;
|
||||
|
||||
private AppContext appContext = new AppContext(this);
|
||||
|
||||
private static AppDatabase appDb;
|
||||
|
||||
|
||||
// Called when the application is starting, before any other application objects have been created.
|
||||
// Overriding this method is totally optional!
|
||||
@ -20,6 +28,7 @@ public class MainApplication extends Application {
|
||||
|
||||
appContext.init();
|
||||
|
||||
appDb = AppDatabase.getDatabase(this);
|
||||
//Stash.init(this);
|
||||
|
||||
res = getResources();
|
||||
@ -39,4 +48,26 @@ public class MainApplication extends Application {
|
||||
public void onLowMemory() {
|
||||
super.onLowMemory();
|
||||
}
|
||||
|
||||
|
||||
// DATABASE REPOSITORY FUNCTIONS
|
||||
public static GrigliaDao getGrigliaRepository() {
|
||||
return appDb.grigliaDao();
|
||||
}
|
||||
|
||||
public static ArticoloGrigliaDao getArticoliGrigliaRepository() {
|
||||
return appDb.articoloGrigliaDao();
|
||||
}
|
||||
|
||||
public static OrdineDao getOrdiniRepository() {
|
||||
return appDb.ordineDao();
|
||||
}
|
||||
|
||||
public static ArticoloOrdineDao getArticoliOrdineRepository() {
|
||||
return appDb.articoloOrdineDao();
|
||||
}
|
||||
|
||||
public static void clearDB() {
|
||||
new Thread(() -> appDb.clearAllTables()).start();
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import it.integry.integrywmsnative.core.context.MainContext;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.PermissionsHelper;
|
||||
@ -22,7 +23,7 @@ import it.integry.integrywmsnative.databinding.ActivitySplashBinding;
|
||||
import it.integry.integrywmsnative.gest.login.LoginActivity;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
|
||||
public class SplashActivity extends AppCompatActivity {
|
||||
public class SplashActivity extends BaseActivity {
|
||||
|
||||
|
||||
private ActivitySplashBinding mBinding;
|
||||
|
||||
@ -26,7 +26,8 @@ public class CommonConst {
|
||||
public static class Mail {
|
||||
|
||||
public static String[] forErrorsDebug = {
|
||||
"g.scorrano@integry.it"
|
||||
"g.scorrano@integry.it",
|
||||
"v.castellana@integry.it"
|
||||
};
|
||||
|
||||
public static String[] forErrors = {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package it.integry.integrywmsnative.core.barcode_reader;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
|
||||
public class BarcodeCallbackDTO {
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package it.integry.integrywmsnative.core.barcode_reader;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.KeyEvent;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
@ -8,11 +8,12 @@ import java.lang.reflect.Constructor;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.barcode_base_android_library.exception.BarcodeAdapterNotFoundException;
|
||||
import it.integry.barcode_base_android_library.interfaces.BarcodeReaderInterface;
|
||||
import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||
import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException;
|
||||
import it.integry.plugins.barcode_base_library.interfaces.BarcodeReaderInterface;
|
||||
import it.integry.keyobardemulatorscannerlibrary.KeyboardEmulatorBarcodeReader;
|
||||
import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader;
|
||||
import it.integry.zebrascannerlibrary.ZebraBarcodeReader;
|
||||
|
||||
@ -29,7 +30,8 @@ public class BarcodeManager {
|
||||
private static Class<? extends BarcodeReaderInterface>[] registeredBarcodeReaderInterfaces = new Class[]{
|
||||
PointMobileBarcodeReader.class,
|
||||
ZebraBarcodeReader.class,
|
||||
HoneyWellBarcodeReader.class
|
||||
HoneyWellBarcodeReader.class,
|
||||
KeyboardEmulatorBarcodeReader.class
|
||||
};
|
||||
|
||||
|
||||
@ -55,7 +57,7 @@ public class BarcodeManager {
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
UtilityLogger.errorMe(e);
|
||||
UtilityExceptions.defaultException(context,e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -97,6 +99,11 @@ public class BarcodeManager {
|
||||
|
||||
}
|
||||
|
||||
public static boolean onKeyDown(int keyCode, KeyEvent keyEvent){
|
||||
mCurrentBarcodeInterface.onKeyEvent(keyEvent);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static BarcodeReaderInterface getCurrentBarcodeInterface() {
|
||||
return mCurrentBarcodeInterface;
|
||||
}
|
||||
@ -146,4 +153,5 @@ public class BarcodeManager {
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@ import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.ProdOrdineLavo
|
||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
||||
import it.integry.integrywmsnative.gest.ultime_arrivi_fornitore.UltimiArriviFornitoreFragment;
|
||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.UltimiArriviFornitoreFragment;
|
||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
|
||||
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
|
||||
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
||||
|
||||
@ -0,0 +1,51 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.room.Database;
|
||||
import androidx.room.Room;
|
||||
import androidx.room.RoomDatabase;
|
||||
import androidx.room.TypeConverters;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.converter.DateConverter;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
|
||||
@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class}, version = 1, exportSchema = false)
|
||||
@TypeConverters({
|
||||
DateConverter.class
|
||||
})
|
||||
public abstract class AppDatabase extends RoomDatabase {
|
||||
|
||||
private static volatile AppDatabase INSTANCE;
|
||||
|
||||
public abstract ArticoloGrigliaDao articoloGrigliaDao();
|
||||
|
||||
public abstract GrigliaDao grigliaDao();
|
||||
|
||||
public abstract OrdineDao ordineDao();
|
||||
|
||||
public abstract ArticoloOrdineDao articoloOrdineDao();
|
||||
|
||||
public static AppDatabase getDatabase(final Context context) {
|
||||
if (INSTANCE == null) {
|
||||
synchronized (AppDatabase.class) {
|
||||
if (INSTANCE == null) {
|
||||
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
|
||||
AppDatabase.class, "integry_wms")
|
||||
.fallbackToDestructiveMigration()
|
||||
.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.converter;
|
||||
|
||||
import androidx.room.TypeConverter;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class DateConverter {
|
||||
@TypeConverter
|
||||
public static Date fromTimestamp(Long value) {
|
||||
return value == null ? null : new Date(value);
|
||||
}
|
||||
|
||||
@TypeConverter
|
||||
public static Long dateToTimestamp(Date date) {
|
||||
return date == null ? null : date.getTime();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||
|
||||
import androidx.room.Dao;
|
||||
import androidx.room.Insert;
|
||||
import androidx.room.Query;
|
||||
import androidx.room.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
|
||||
@Dao
|
||||
public interface ArticoloGrigliaDao {
|
||||
@Query("SELECT * from articoli_griglia")
|
||||
List<ArticoloGriglia> getAll();
|
||||
@Query("SELECT articolo_griglia_id FROM articoli_griglia WHERE cod_mart = :codMart AND id_griglia = :idGriglia")
|
||||
Integer getIdArticoloByGrigliaAndCodMart(int idGriglia, String codMart);
|
||||
|
||||
@Insert
|
||||
void insertAll(List<ArticoloGriglia> articoli);
|
||||
@Insert
|
||||
Long insert(ArticoloGriglia articolo);
|
||||
@Update
|
||||
void updateAll(List<ArticoloGriglia> articoli);
|
||||
@Update
|
||||
void update(ArticoloGriglia articolo);
|
||||
|
||||
@Query("SELECT * FROM articoli_griglia WHERE bar_code = :barcode AND id_griglia = :idGriglia LIMIT 1")
|
||||
ArticoloGriglia findArticoloByBarcodeAndGriglia(String barcode, int idGriglia);
|
||||
|
||||
@Query("SELECT * FROM articoli_griglia WHERE cod_mart = :codMart AND id_griglia = :idGriglia LIMIT 1")
|
||||
ArticoloGriglia findArticoloByCodMartAndGriglia(String codMart, int idGriglia);
|
||||
|
||||
@Query("SELECT * FROM articoli_griglia WHERE (cod_mart = :scan OR bar_code =:scan )AND id_griglia = :idGriglia LIMIT 1")
|
||||
ArticoloGriglia findArticoloByScanAndGriglia(String scan, int idGriglia);
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||
|
||||
import androidx.room.Dao;
|
||||
import androidx.room.Insert;
|
||||
import androidx.room.Query;
|
||||
import androidx.room.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
|
||||
@Dao
|
||||
public interface ArticoloOrdineDao {
|
||||
|
||||
@Query("SELECT * from articoli_ordine")
|
||||
List<ArticoloOrdine> getAll();
|
||||
|
||||
@Insert
|
||||
void insertAll(List<ArticoloOrdine> toInsert);
|
||||
|
||||
@Insert
|
||||
void insert(ArticoloOrdine articolo);
|
||||
|
||||
@Query("SELECT * FROM articoli_ordine where bar_code = :barcode and id_ordine = :ordine LIMIT 1")
|
||||
ArticoloOrdine findArticoloByOrdineAndBarcode(int ordine, String barcode);
|
||||
|
||||
|
||||
@Update
|
||||
void updateAll(List<ArticoloOrdine> toUpdate);
|
||||
|
||||
@Update
|
||||
void update(ArticoloOrdine articolo);
|
||||
|
||||
@Query("SELECT * FROM articoli_ordine where id_ordine = :ordineId")
|
||||
List<ArticoloOrdine> findArticoliByOrdine(int ordineId);
|
||||
|
||||
@Query("SELECt * from articoli_ordine where cod_mart = :codMart and id_ordine = :ordineId LIMIT 1")
|
||||
ArticoloOrdine findArticoloByCodMartAndOrdine(int ordineId, String codMart);
|
||||
|
||||
@Query( " SELECT articoli_ordine.* " +
|
||||
" FROM articoli_ordine " +
|
||||
" LEFT OUTER JOIN articoli_griglia on articoli_ordine.cod_mart = articoli_griglia.cod_mart " +
|
||||
" WHERE " +
|
||||
" (" +
|
||||
" articoli_ordine.bar_code = :barcode" +
|
||||
" OR articoli_griglia.bar_code = :barcode" +
|
||||
" )" +
|
||||
" AND articoli_ordine.id_ordine = :ordineId " +
|
||||
" LIMIT 1")
|
||||
ArticoloOrdine findArticoloByBarcodeAndOrdine(int ordineId, String barcode);
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||
|
||||
import androidx.room.Dao;
|
||||
import androidx.room.Delete;
|
||||
import androidx.room.Insert;
|
||||
import androidx.room.Query;
|
||||
import androidx.room.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
|
||||
|
||||
@Dao
|
||||
public interface GrigliaDao {
|
||||
@Query("SELECT * from griglie")
|
||||
List<Griglia> getAll();
|
||||
|
||||
@Query("SELECT *, COUNT(articoli_griglia.articolo_griglia_id) as countArticoli from griglie LEFT JOIN articoli_griglia ON (griglie.griglia_id = articoli_griglia.id_griglia) where cod_alis = :codAlis GROUP BY griglie.griglia_id")
|
||||
GrigliaWrapper findByCodAlis(String codAlis);
|
||||
|
||||
@Insert
|
||||
long insert(Griglia griglia);
|
||||
|
||||
@Update
|
||||
void update(Griglia griglia);
|
||||
|
||||
@Insert
|
||||
void insertAll(Griglia... griglie);
|
||||
|
||||
@Update
|
||||
void updateAll(Griglia... griglie);
|
||||
|
||||
@Delete
|
||||
void delete(Griglia griglia);
|
||||
|
||||
@Query("SELECT * from griglie where griglia_id = :idGriglia")
|
||||
Griglia findGrigliaById(int idGriglia);
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||
|
||||
import androidx.room.Dao;
|
||||
import androidx.room.Insert;
|
||||
import androidx.room.Query;
|
||||
import androidx.room.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||
|
||||
@Dao
|
||||
public interface OrdineDao {
|
||||
@Query("SELECT * from ordini ")
|
||||
List<Ordine> getAll();
|
||||
|
||||
@Query("SELECT ordini.*, griglie.* from ordini inner join griglie ON id_griglia = griglie.griglia_id where ordini.transmitted = 1")
|
||||
List<OrdineWithGriglia> getAllTrasnmitted();
|
||||
|
||||
@Query("SELECT ordini.*, count(articolo_ordine_id) as countArticoli from ordini left join articoli_ordine ON ordini.ordine_id = articoli_ordine.id_ordine where ordini.transmitted = 0 and ordini.id_griglia = :idGriglia group by ordini.ordine_id")
|
||||
List<OrdineWrapper> getAllOpenOrdersByGriglia(int idGriglia);
|
||||
|
||||
@Insert
|
||||
Long insert(Ordine ordine);
|
||||
|
||||
@Update
|
||||
void update(Ordine ordine);
|
||||
}
|
||||
@ -0,0 +1,167 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.entity;
|
||||
|
||||
import androidx.room.ColumnInfo;
|
||||
import androidx.room.Entity;
|
||||
import androidx.room.ForeignKey;
|
||||
import androidx.room.Index;
|
||||
import androidx.room.PrimaryKey;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Entity(
|
||||
tableName = "articoli_griglia",
|
||||
indices = {
|
||||
@Index(value = "id_griglia"),
|
||||
},
|
||||
foreignKeys = {
|
||||
@ForeignKey(
|
||||
entity = Griglia.class,
|
||||
parentColumns = "griglia_id",
|
||||
childColumns = "id_griglia",
|
||||
onDelete = ForeignKey.CASCADE
|
||||
)
|
||||
}
|
||||
)
|
||||
public class ArticoloGriglia {
|
||||
@PrimaryKey(autoGenerate = true)
|
||||
@ColumnInfo(name = "articolo_griglia_id")
|
||||
private int articoloGrigliaId;
|
||||
|
||||
@ColumnInfo(name = "cod_mart")
|
||||
private String codMart;
|
||||
|
||||
@ColumnInfo(name = "descrizione")
|
||||
private String descrizione;
|
||||
|
||||
@ColumnInfo(name = "unt_mis")
|
||||
private String untMis;
|
||||
|
||||
@ColumnInfo(name = "qta_cnf")
|
||||
private float qtaCnf;
|
||||
|
||||
@ColumnInfo(name = "bar_code")
|
||||
private String barCode;
|
||||
|
||||
@ColumnInfo(name = "merce_da_ric")
|
||||
private float merceDaRic;
|
||||
|
||||
@ColumnInfo(name = "media_sett")
|
||||
private float mediaSett;
|
||||
|
||||
@ColumnInfo(name = "flag_qta_multipla")
|
||||
private String flagQtaMultipla;
|
||||
|
||||
@ColumnInfo(name = "qta_min_ordinabile")
|
||||
private float qtaMinOrdinabile;
|
||||
|
||||
@ColumnInfo(name = "id_griglia")
|
||||
private int idGriglia;
|
||||
|
||||
public int getArticoloGrigliaId() {
|
||||
return articoloGrigliaId;
|
||||
}
|
||||
|
||||
public void setArticoloGrigliaId(int articoloGrigliaId) {
|
||||
this.articoloGrigliaId = articoloGrigliaId;
|
||||
}
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public void setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
}
|
||||
|
||||
public String getDescrizione() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
public void setDescrizione(String descrizione) {
|
||||
this.descrizione = descrizione;
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public void setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
}
|
||||
|
||||
public float getQtaCnf() {
|
||||
return qtaCnf;
|
||||
}
|
||||
|
||||
public void setQtaCnf(float qtaCnf) {
|
||||
this.qtaCnf = qtaCnf;
|
||||
}
|
||||
|
||||
public String getBarCode() {
|
||||
return barCode;
|
||||
}
|
||||
|
||||
public void setBarCode(String barCode) {
|
||||
this.barCode = barCode;
|
||||
}
|
||||
|
||||
public float getMerceDaRic() {
|
||||
return merceDaRic;
|
||||
}
|
||||
|
||||
public void setMerceDaRic(float merceDaRic) {
|
||||
this.merceDaRic = merceDaRic;
|
||||
}
|
||||
|
||||
public float getMediaSett() {
|
||||
return mediaSett;
|
||||
}
|
||||
|
||||
public void setMediaSett(float mediaSett) {
|
||||
this.mediaSett = mediaSett;
|
||||
}
|
||||
|
||||
public String getFlagQtaMultipla() {
|
||||
return flagQtaMultipla;
|
||||
}
|
||||
|
||||
public void setFlagQtaMultipla(String flagQtaMultipla) {
|
||||
this.flagQtaMultipla = flagQtaMultipla;
|
||||
}
|
||||
|
||||
public float getQtaMinOrdinabile() {
|
||||
return qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
public void setQtaMinOrdinabile(float qtaMinOrdinabile) {
|
||||
this.qtaMinOrdinabile = qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
public int getIdGriglia() {
|
||||
return idGriglia;
|
||||
}
|
||||
|
||||
public void setIdGriglia(int idGriglia) {
|
||||
this.idGriglia = idGriglia;
|
||||
}
|
||||
|
||||
public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
|
||||
ArticoloOrdine articolo = new ArticoloOrdine();
|
||||
|
||||
articolo.setIdOrdine(ordine.getOrdineId());
|
||||
|
||||
articolo.setBarCode(this.getBarCode());
|
||||
articolo.setCodMart(this.getCodMart());
|
||||
articolo.setMediaSett(this.getMediaSett());
|
||||
articolo.setFlagQtaMultipla(this.getFlagQtaMultipla());
|
||||
articolo.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
|
||||
articolo.setMerceDaRic(this.getMerceDaRic());
|
||||
articolo.setQtaCnf(this.getQtaCnf());
|
||||
articolo.setUntMis(this.getUntMis());
|
||||
articolo.setDescrizione(this.getDescrizione());
|
||||
articolo.setDataIns(new Date());
|
||||
articolo.setQtaOrd(0);
|
||||
|
||||
return articolo;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,170 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.entity;
|
||||
|
||||
import androidx.room.ColumnInfo;
|
||||
import androidx.room.Entity;
|
||||
import androidx.room.ForeignKey;
|
||||
import androidx.room.Index;
|
||||
import androidx.room.PrimaryKey;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Entity(
|
||||
tableName = "articoli_ordine",
|
||||
indices = {
|
||||
@Index(value = "id_ordine"),
|
||||
@Index(value = {"id_ordine","cod_mart"}, unique = true)
|
||||
},
|
||||
foreignKeys = {
|
||||
@ForeignKey(
|
||||
entity = Ordine.class,
|
||||
parentColumns = "ordine_id",
|
||||
childColumns = "id_ordine",
|
||||
onDelete = ForeignKey.CASCADE
|
||||
)
|
||||
}
|
||||
)
|
||||
public class ArticoloOrdine {
|
||||
@PrimaryKey(autoGenerate = true)
|
||||
@ColumnInfo(name = "articolo_ordine_id")
|
||||
private int articoloOrdineId;
|
||||
|
||||
@ColumnInfo(name = "cod_mart")
|
||||
private String codMart;
|
||||
|
||||
@ColumnInfo(name = "descrizione")
|
||||
private String descrizione;
|
||||
|
||||
@ColumnInfo(name = "unt_mis")
|
||||
private String untMis;
|
||||
|
||||
@ColumnInfo(name = "qta_cnf")
|
||||
private float qtaCnf;
|
||||
|
||||
@ColumnInfo(name = "bar_code")
|
||||
private String barCode;
|
||||
|
||||
@ColumnInfo(name = "merce_da_ric")
|
||||
private float merceDaRic;
|
||||
|
||||
@ColumnInfo(name = "media_sett")
|
||||
private float mediaSett;
|
||||
|
||||
@ColumnInfo(name = "flag_qta_multipla")
|
||||
private String flagQtaMultipla;
|
||||
|
||||
@ColumnInfo(name = "qta_min_ordinabile")
|
||||
private float qtaMinOrdinabile;
|
||||
|
||||
@ColumnInfo(name = "id_ordine")
|
||||
private int idOrdine;
|
||||
|
||||
@ColumnInfo(name = "qta_ord")
|
||||
private float qtaOrd;
|
||||
|
||||
@ColumnInfo(name = "data_ins")
|
||||
private Date dataIns;
|
||||
|
||||
public int getArticoloOrdineId() {
|
||||
return articoloOrdineId;
|
||||
}
|
||||
|
||||
public void setArticoloOrdineId(int articoloOrdineId) {
|
||||
this.articoloOrdineId = articoloOrdineId;
|
||||
}
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public void setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
}
|
||||
|
||||
public String getDescrizione() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
public void setDescrizione(String descrizione) {
|
||||
this.descrizione = descrizione;
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public void setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
}
|
||||
|
||||
public float getQtaCnf() {
|
||||
return qtaCnf;
|
||||
}
|
||||
|
||||
public void setQtaCnf(float qtaCnf) {
|
||||
this.qtaCnf = qtaCnf;
|
||||
}
|
||||
|
||||
public String getBarCode() {
|
||||
return barCode;
|
||||
}
|
||||
|
||||
public void setBarCode(String barCode) {
|
||||
this.barCode = barCode;
|
||||
}
|
||||
|
||||
public float getMerceDaRic() {
|
||||
return merceDaRic;
|
||||
}
|
||||
|
||||
public void setMerceDaRic(float merceDaRic) {
|
||||
this.merceDaRic = merceDaRic;
|
||||
}
|
||||
|
||||
public float getMediaSett() {
|
||||
return mediaSett;
|
||||
}
|
||||
|
||||
public void setMediaSett(float mediaSett) {
|
||||
this.mediaSett = mediaSett;
|
||||
}
|
||||
|
||||
public String getFlagQtaMultipla() {
|
||||
return flagQtaMultipla;
|
||||
}
|
||||
|
||||
public void setFlagQtaMultipla(String flagQtaMultipla) {
|
||||
this.flagQtaMultipla = flagQtaMultipla;
|
||||
}
|
||||
|
||||
public float getQtaMinOrdinabile() {
|
||||
return qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
public void setQtaMinOrdinabile(float qtaMinOrdinabile) {
|
||||
this.qtaMinOrdinabile = qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
public int getIdOrdine() {
|
||||
return idOrdine;
|
||||
}
|
||||
|
||||
public void setIdOrdine(int idOrdine) {
|
||||
this.idOrdine = idOrdine;
|
||||
}
|
||||
|
||||
public float getQtaOrd() {
|
||||
return qtaOrd;
|
||||
}
|
||||
|
||||
public void setQtaOrd(float qtaOrd) {
|
||||
this.qtaOrd = qtaOrd;
|
||||
}
|
||||
|
||||
public Date getDataIns() {
|
||||
return dataIns;
|
||||
}
|
||||
|
||||
public void setDataIns(Date dataIns) {
|
||||
this.dataIns = dataIns;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.entity;
|
||||
|
||||
import androidx.room.ColumnInfo;
|
||||
import androidx.room.Entity;
|
||||
import androidx.room.Ignore;
|
||||
import androidx.room.Index;
|
||||
import androidx.room.PrimaryKey;
|
||||
|
||||
@Entity(tableName ="griglie",
|
||||
indices = {
|
||||
@Index(value = "cod_alis", unique = true)
|
||||
}
|
||||
)
|
||||
public class Griglia {
|
||||
@PrimaryKey(autoGenerate = true)
|
||||
@ColumnInfo(name = "griglia_id")
|
||||
private int grigliaId;
|
||||
@ColumnInfo(name = "cod_alis")
|
||||
private String codAlis;
|
||||
@ColumnInfo(name = "descr_lisa")
|
||||
private String descrLisa;
|
||||
@ColumnInfo(name = "descr_depo")
|
||||
private String descrDepo;
|
||||
@Ignore
|
||||
private int countArticoli = 0;
|
||||
|
||||
|
||||
public int getGrigliaId() {
|
||||
return grigliaId;
|
||||
}
|
||||
|
||||
public void setGrigliaId(int grigliaId) {
|
||||
this.grigliaId = grigliaId;
|
||||
}
|
||||
|
||||
public String getCodAlis() {
|
||||
return codAlis;
|
||||
}
|
||||
|
||||
public void setCodAlis(String codAlis) {
|
||||
this.codAlis = codAlis;
|
||||
}
|
||||
|
||||
public String getDescrLisa() {
|
||||
return descrLisa;
|
||||
}
|
||||
|
||||
public void setDescrLisa(String descrLisa) {
|
||||
this.descrLisa = descrLisa;
|
||||
}
|
||||
|
||||
public String getDescrDepo() {
|
||||
return descrDepo;
|
||||
}
|
||||
|
||||
public void setDescrDepo(String descrDepo) {
|
||||
this.descrDepo = descrDepo;
|
||||
}
|
||||
|
||||
public int getCountArticoli() {
|
||||
return countArticoli;
|
||||
}
|
||||
|
||||
public void setCountArticoli(int countArticoli) {
|
||||
this.countArticoli = countArticoli;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,151 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.entity;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.room.ColumnInfo;
|
||||
import androidx.room.Entity;
|
||||
import androidx.room.Ignore;
|
||||
import androidx.room.PrimaryKey;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
|
||||
@Entity(tableName = "ordini")
|
||||
|
||||
public class Ordine {
|
||||
|
||||
@PrimaryKey(autoGenerate = true)
|
||||
@ColumnInfo(name = "ordine_id")
|
||||
private int ordineId;
|
||||
|
||||
@ColumnInfo(name = "data_ins")
|
||||
private Date dataIns;
|
||||
|
||||
@ColumnInfo(name = "annotazioni")
|
||||
private String annotazioni;
|
||||
|
||||
@ColumnInfo(name = "transmitted")
|
||||
private boolean transmitted = false;
|
||||
|
||||
@ColumnInfo(name = "transmission_date")
|
||||
@Nullable
|
||||
private Date transmissionDate;
|
||||
|
||||
@ColumnInfo(name = "gestione")
|
||||
@Nullable
|
||||
private String gestione;
|
||||
|
||||
@ColumnInfo(name = "data_ord")
|
||||
@Nullable
|
||||
private Date dataOrd;
|
||||
|
||||
@ColumnInfo(name = "num_ord")
|
||||
@Nullable
|
||||
private Integer numOrd;
|
||||
|
||||
@ColumnInfo(name = "cod_mdep")
|
||||
@Nullable
|
||||
private String codMdep;
|
||||
|
||||
@Ignore
|
||||
private int countArticoli = 0;
|
||||
|
||||
@ColumnInfo(name = "id_griglia")
|
||||
private int idGriglia;
|
||||
|
||||
public int getOrdineId() {
|
||||
return ordineId;
|
||||
}
|
||||
|
||||
public void setOrdineId(int ordineId) {
|
||||
this.ordineId = ordineId;
|
||||
}
|
||||
|
||||
public Date getDataIns() {
|
||||
return dataIns;
|
||||
}
|
||||
|
||||
public void setDataIns(Date dataIns) {
|
||||
this.dataIns = dataIns;
|
||||
}
|
||||
|
||||
public String getAnnotazioni() {
|
||||
return annotazioni;
|
||||
}
|
||||
|
||||
public void setAnnotazioni(String annotazioni) {
|
||||
this.annotazioni = annotazioni;
|
||||
}
|
||||
|
||||
public int getIdGriglia() {
|
||||
return idGriglia;
|
||||
}
|
||||
|
||||
public void setIdGriglia(int idGriglia) {
|
||||
this.idGriglia = idGriglia;
|
||||
}
|
||||
|
||||
public boolean isTransmitted() {
|
||||
return transmitted;
|
||||
}
|
||||
|
||||
public void setTransmitted(boolean transmitted) {
|
||||
this.transmitted = transmitted;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Date getTransmissionDate() {
|
||||
return transmissionDate;
|
||||
}
|
||||
|
||||
public void setTransmissionDate(@Nullable Date transmissionDate) {
|
||||
this.transmissionDate = transmissionDate;
|
||||
}
|
||||
|
||||
public int getCountArticoli() {
|
||||
return countArticoli;
|
||||
}
|
||||
|
||||
public void setCountArticoli(int countArticoli) {
|
||||
this.countArticoli = countArticoli;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
}
|
||||
|
||||
public void setGestione(@Nullable String gestione) {
|
||||
this.gestione = gestione;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Date getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public void setDataOrd(@Nullable Date dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getNumOrd() {
|
||||
return numOrd;
|
||||
}
|
||||
|
||||
public void setNumOrd(@Nullable Integer numOrd) {
|
||||
this.numOrd = numOrd;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getCodMdep() {
|
||||
return codMdep;
|
||||
}
|
||||
|
||||
public void setCodMdep(@Nullable String codMdep) {
|
||||
this.codMdep = codMdep; }
|
||||
|
||||
public void setDataOrdS(String dataOrd) {
|
||||
setDataOrd(UtilityDate.recognizeDateWithExceptionHandler(dataOrd));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,79 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.repository;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
|
||||
public class ArticoliGrigliaRepository extends Repository{
|
||||
|
||||
ArticoloGrigliaDao mRepository;
|
||||
|
||||
public ArticoliGrigliaRepository() {
|
||||
this.mRepository = MainApplication.getArticoliGrigliaRepository();
|
||||
}
|
||||
|
||||
public void saveArticoliToGriglia(List<ArticoloGriglia> articoli, Runnable onSuccess, RunnableArgs<Exception> onFail) {
|
||||
execute(()->{
|
||||
try{
|
||||
List<ArticoloGriglia> toUpdate = new ArrayList<>();
|
||||
List<ArticoloGriglia> toInsert = new ArrayList<>();
|
||||
for (ArticoloGriglia art : articoli){
|
||||
Integer id = mRepository.getIdArticoloByGrigliaAndCodMart(art.getIdGriglia(),art.getCodMart());
|
||||
if (id != null){
|
||||
art.setArticoloGrigliaId(id);
|
||||
toUpdate.add(art);
|
||||
}else{
|
||||
toInsert.add(art);
|
||||
}
|
||||
}
|
||||
mRepository.insertAll(toInsert);
|
||||
mRepository.updateAll(toUpdate);
|
||||
onSuccess.run();
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia,RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail ){
|
||||
execute(()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.findArticoloByBarcodeAndGriglia(barcode, idGriglia));
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
public void findArticoloByCodMartAndGriglia(String codMart, int idGriglia,RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail ){
|
||||
execute(()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.findArticoloByCodMartAndGriglia(codMart, idGriglia));
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
public void findArticoloByScanAndGriglia(String scan, int idGriglia,RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail ){
|
||||
execute(()->{
|
||||
try{
|
||||
ArticoloGriglia articolo = mRepository.findArticoloByCodMartAndGriglia(scan, idGriglia);
|
||||
if (articolo == null){
|
||||
articolo = mRepository.findArticoloByBarcodeAndGriglia(scan,idGriglia);
|
||||
if (articolo==null){
|
||||
String barcode= StringUtils.leftPad(scan,13,"0");
|
||||
articolo = mRepository.findArticoloByBarcodeAndGriglia(barcode,idGriglia);
|
||||
}
|
||||
}
|
||||
onSuccess.run(articolo);
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,97 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.repository;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
|
||||
public class ArticoliOrdineRepository extends Repository {
|
||||
|
||||
ArticoloOrdineDao mRepository;
|
||||
|
||||
public ArticoliOrdineRepository() {
|
||||
this.mRepository = MainApplication.getArticoliOrdineRepository();
|
||||
}
|
||||
|
||||
public void saveArticoliToOrdine(List<ArticoloOrdine> articoli, Runnable onSuccess, RunnableArgs<Exception> onFail) {
|
||||
execute(() -> {
|
||||
try {
|
||||
List<ArticoloOrdine> toUpdate = new ArrayList<>();
|
||||
List<ArticoloOrdine> toInsert = new ArrayList<>();
|
||||
for (ArticoloOrdine art : articoli) {
|
||||
if (art.getArticoloOrdineId() > 0) {
|
||||
toUpdate.add(art);
|
||||
} else {
|
||||
toInsert.add(art);
|
||||
}
|
||||
}
|
||||
mRepository.insertAll(toInsert);
|
||||
mRepository.updateAll(toUpdate);
|
||||
onSuccess.run();
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs<Exception> onFail) {
|
||||
execute(() -> {
|
||||
try {
|
||||
if (articolo.getArticoloOrdineId() > 0) {
|
||||
mRepository.update(articolo);
|
||||
} else {
|
||||
mRepository.insert(articolo);
|
||||
}
|
||||
onSuccess.run();
|
||||
} catch (Exception e) {
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
|
||||
execute(() -> {
|
||||
try {
|
||||
ArticoloOrdine articolo = mRepository.findArticoloByOrdineAndBarcode(ordine.getOrdineId(), barcode);
|
||||
onSuccess.run(articolo);
|
||||
} catch (Exception e) {
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
public void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
|
||||
execute(() -> {
|
||||
try {
|
||||
String scannedCode = barcode;
|
||||
ArticoloOrdine articolo = mRepository.findArticoloByCodMartAndOrdine(ordine.getOrdineId(), scannedCode);
|
||||
if (articolo == null){
|
||||
articolo = mRepository.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode);
|
||||
if (articolo == null){
|
||||
scannedCode= StringUtils.leftPad(scannedCode,13,'0');
|
||||
articolo = mRepository.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode);
|
||||
}
|
||||
}
|
||||
onSuccess.run(articolo);
|
||||
} catch (Exception e) {
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void findArticoliByOrdine(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onLoad, RunnableArgs<Exception> onError) {
|
||||
execute(() -> {
|
||||
try {
|
||||
onLoad.run(mRepository.findArticoliByOrdine(ordine.getOrdineId()));
|
||||
} catch (Exception e) {
|
||||
onError.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
|
||||
public class GrigliaRepository extends Repository{
|
||||
|
||||
private GrigliaDao mRepository;
|
||||
|
||||
public GrigliaRepository() {
|
||||
this.mRepository = MainApplication.getGrigliaRepository();
|
||||
}
|
||||
|
||||
public void selectAll(RunnableArgs<List<Griglia>> onSuccess, RunnableArgs<Exception> onError){
|
||||
Runnable query = ()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.getAll());
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
};
|
||||
execute(query);
|
||||
}
|
||||
|
||||
public void findByCodAlis(String codAlis , RunnableArgs<GrigliaWrapper> onSuccess, RunnableArgs<Exception> onError){
|
||||
Runnable query = ()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.findByCodAlis(codAlis));
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
};
|
||||
execute(query);
|
||||
}
|
||||
|
||||
|
||||
public void saveGriglia(Griglia griglia, RunnableArgs<Integer> onSuccess,RunnableArgs<Exception> onFail) {
|
||||
execute(()->{
|
||||
try{
|
||||
if (griglia.getGrigliaId() <= 0){
|
||||
griglia.setGrigliaId((int) mRepository.insert(griglia));
|
||||
}else{
|
||||
mRepository.update(griglia);
|
||||
}
|
||||
onSuccess.run(griglia.getGrigliaId());
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void findGrigliaById(int idGriglia, RunnableArgs<Griglia> onLoad, RunnableArgs<Exception> onFail) {
|
||||
execute(()->{
|
||||
try{
|
||||
onLoad.run(mRepository.findGrigliaById(idGriglia));
|
||||
}catch (Exception e){
|
||||
onFail.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
|
||||
public class OrdineRepository extends Repository{
|
||||
|
||||
private OrdineDao mRepository;
|
||||
|
||||
public OrdineRepository() {
|
||||
this.mRepository = MainApplication.getOrdiniRepository();
|
||||
}
|
||||
|
||||
public void selectAll(RunnableArgs<List<Ordine>> onSuccess, RunnableArgs<Exception> onError){
|
||||
Runnable query = ()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.getAll());
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
};
|
||||
execute(query);
|
||||
}
|
||||
public void selectAllTransmitted(RunnableArgs<List<OrdineWithGriglia>> onSuccess, RunnableArgs<Exception> onError){
|
||||
Runnable query = ()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.getAllTrasnmitted());
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
};
|
||||
execute(query);
|
||||
}
|
||||
|
||||
public void selectAllOpenOrders(Griglia griglia, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError){
|
||||
Runnable query = ()->{
|
||||
try{
|
||||
onSuccess.run(mRepository.getAllOpenOrdersByGriglia(griglia.getGrigliaId()));
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
};
|
||||
execute(query);
|
||||
}
|
||||
|
||||
public void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError){
|
||||
execute(()->{
|
||||
try{
|
||||
Long id = mRepository.insert(ordine);
|
||||
onSuccess.run(id.intValue());
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void updateOrder(Ordine ordine, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {
|
||||
execute(()->{
|
||||
try{
|
||||
mRepository.update(ordine);
|
||||
onSuccess.run(ordine);
|
||||
}catch (Exception e){
|
||||
onError.run(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.repository;
|
||||
|
||||
public class Repository {
|
||||
|
||||
|
||||
public void execute(Runnable query){
|
||||
new Thread(query).start();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,119 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
|
||||
public class ArticoloDTO {
|
||||
|
||||
private String codMart;
|
||||
|
||||
|
||||
private String descrizione;
|
||||
|
||||
|
||||
private String untMis;
|
||||
|
||||
|
||||
private float qtaCnf;
|
||||
|
||||
|
||||
private String barcode;
|
||||
|
||||
|
||||
private float merceDaRic;
|
||||
|
||||
|
||||
private float mediaSett;
|
||||
|
||||
|
||||
private String flagQtaMultipla;
|
||||
|
||||
private float qtaMinOrdinabile;
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public void setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
}
|
||||
|
||||
public String getDescrizione() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
public void setDescrizione(String descrizione) {
|
||||
this.descrizione = descrizione;
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public void setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
}
|
||||
|
||||
public float getQtaCnf() {
|
||||
return qtaCnf;
|
||||
}
|
||||
|
||||
public void setQtaCnf(float qtaCnf) {
|
||||
this.qtaCnf = qtaCnf;
|
||||
}
|
||||
|
||||
public String getBarCode() {
|
||||
return barcode;
|
||||
}
|
||||
|
||||
public void setBarCode(String barCode) {
|
||||
this.barcode = barCode;
|
||||
}
|
||||
|
||||
public float getMerceDaRic() {
|
||||
return merceDaRic;
|
||||
}
|
||||
|
||||
public void setMerceDaRic(float merceDaRic) {
|
||||
this.merceDaRic = merceDaRic;
|
||||
}
|
||||
|
||||
public float getMediaSett() {
|
||||
return mediaSett;
|
||||
}
|
||||
|
||||
public void setMediaSett(float mediaSett) {
|
||||
this.mediaSett = mediaSett;
|
||||
}
|
||||
|
||||
public String getFlagQtaMultipla() {
|
||||
return flagQtaMultipla;
|
||||
}
|
||||
|
||||
public void setFlagQtaMultipla(String flagQtaMultipla) {
|
||||
this.flagQtaMultipla = flagQtaMultipla;
|
||||
}
|
||||
|
||||
public float getQtaMinOrdinabile() {
|
||||
return qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
public void setQtaMinOrdinabile(float qtaMinOrdinabile) {
|
||||
this.qtaMinOrdinabile = qtaMinOrdinabile;
|
||||
}
|
||||
|
||||
|
||||
public ArticoloGriglia toArticoloGriglia(){
|
||||
ArticoloGriglia result = new ArticoloGriglia();
|
||||
result.setBarCode(this.getBarCode());
|
||||
result.setDescrizione(this.getDescrizione());
|
||||
result.setCodMart(this.getCodMart());
|
||||
result.setUntMis(this.getUntMis());
|
||||
result.setQtaCnf(this.getQtaCnf());
|
||||
result.setMerceDaRic(this.getMerceDaRic());
|
||||
result.setMediaSett(this.getMediaSett());
|
||||
result.setFlagQtaMultipla(this.getFlagQtaMultipla());
|
||||
result.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
|
||||
public class GrigliaDTO {
|
||||
private String descrLisa;
|
||||
private String descrDepo;
|
||||
private List<ArticoloDTO> grigliaAcquistiChild;
|
||||
|
||||
|
||||
public String getDescrLisa() {
|
||||
return descrLisa;
|
||||
}
|
||||
|
||||
public void setDescrLisa(String descrLisa) {
|
||||
this.descrLisa = descrLisa;
|
||||
}
|
||||
|
||||
public String getDescrDepo() {
|
||||
return descrDepo;
|
||||
}
|
||||
|
||||
public void setDescrDepo(String descrDepo) {
|
||||
this.descrDepo = descrDepo;
|
||||
}
|
||||
|
||||
public List<ArticoloDTO> getGrigliaAcquistiChild() {
|
||||
return grigliaAcquistiChild;
|
||||
}
|
||||
|
||||
public void setGrigliaAcquistiChild(List<ArticoloDTO> grigliaAcquistiChild) {
|
||||
this.grigliaAcquistiChild = grigliaAcquistiChild;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
||||
|
||||
import androidx.room.Embedded;
|
||||
import androidx.room.Ignore;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
|
||||
public class OrdineWithGriglia {
|
||||
|
||||
@Embedded
|
||||
private Ordine ordine;
|
||||
@Embedded
|
||||
private Griglia griglia;
|
||||
|
||||
|
||||
public Ordine getOrdine() {
|
||||
return ordine;
|
||||
}
|
||||
|
||||
public void setOrdine(Ordine ordine) {
|
||||
this.ordine = ordine;
|
||||
}
|
||||
|
||||
public Griglia getGriglia() {
|
||||
return griglia;
|
||||
}
|
||||
|
||||
public void setGriglia(Griglia griglia) {
|
||||
this.griglia = griglia;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.wrappers;
|
||||
|
||||
import androidx.room.Embedded;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
|
||||
public class GrigliaWrapper {
|
||||
@Embedded
|
||||
private Griglia griglia;
|
||||
|
||||
private int countArticoli = 0;
|
||||
|
||||
public Griglia getGriglia() {
|
||||
return griglia;
|
||||
}
|
||||
|
||||
public void setGriglia(Griglia griglia) {
|
||||
this.griglia = griglia;
|
||||
}
|
||||
|
||||
public int getCountArticoli() {
|
||||
return countArticoli;
|
||||
}
|
||||
|
||||
public void setCountArticoli(int countArticoli) {
|
||||
this.countArticoli = countArticoli;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package it.integry.integrywmsnative.core.data_store.db.wrappers;
|
||||
|
||||
import androidx.room.Embedded;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
|
||||
public class OrdineWrapper {
|
||||
|
||||
@Embedded
|
||||
private Ordine ordine;
|
||||
|
||||
private int countArticoli = 0;
|
||||
|
||||
public Ordine getOrdine() {
|
||||
return ordine;
|
||||
}
|
||||
|
||||
public void setOrdine(Ordine ordine) {
|
||||
this.ordine = ordine;
|
||||
}
|
||||
|
||||
public int getCountArticoli() {
|
||||
return countArticoli;
|
||||
}
|
||||
|
||||
public void setCountArticoli(int countArticoli) {
|
||||
this.countArticoli = countArticoli;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package it.integry.integrywmsnative.core.expansion;
|
||||
|
||||
import android.view.KeyEvent;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
|
||||
public class BaseActivity extends AppCompatActivity {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean dispatchKeyEvent(KeyEvent event) {
|
||||
if (event.getDeviceId() != -1 && event.getDeviceId() != 0 && event.getAction() == KeyEvent.ACTION_DOWN){
|
||||
BarcodeManager.onKeyDown(event.getKeyCode(),event);
|
||||
return false;
|
||||
}
|
||||
return super.dispatchKeyEvent(event);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package it.integry.integrywmsnative.core.expansion;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.view.KeyEvent;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
|
||||
public class BaseDialog extends Dialog {
|
||||
|
||||
|
||||
public BaseDialog(@NonNull Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dispatchKeyEvent(KeyEvent event) {
|
||||
if (event.getDeviceId() != -1 && event.getDeviceId() != 0 && event.getAction() == KeyEvent.ACTION_DOWN){
|
||||
BarcodeManager.onKeyDown(event.getKeyCode(),event);
|
||||
return false;
|
||||
}
|
||||
return super.dispatchKeyEvent(event);
|
||||
}
|
||||
}
|
||||
@ -1,10 +1,10 @@
|
||||
package it.integry.integrywmsnative.core.rest.consumers;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package it.integry.integrywmsnative.core.rest.consumers;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
@ -15,10 +14,8 @@ import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.core.CommonConst;
|
||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||
import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
|
||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
@ -26,11 +23,13 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||
import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
|
||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
@ -0,0 +1,146 @@
|
||||
package it.integry.integrywmsnative.core.rest.consumers;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.GrigliaDTO;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.ArtDTO;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.OrdineDTO;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.SaveDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
import static br.com.zbra.androidlinq.Linq.stream;
|
||||
|
||||
public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
||||
|
||||
|
||||
public static void getArticoliListino(String codAlis, RunnableArgs<GrigliaDTO> onSuccess, RunnableArgs<Exception> onFailed) {
|
||||
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class);
|
||||
ordiniARestService
|
||||
.getArticoliListino(codAlis, SettingsManager.i().userSession.profileDB, SettingsManager.i().user.username, SettingsManager.i().user.password)
|
||||
.enqueue(new Callback<ServiceRESTResponse<GrigliaDTO>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ServiceRESTResponse<GrigliaDTO>> call, Response<ServiceRESTResponse<GrigliaDTO>> response) {
|
||||
analyzeAnswer(response, "getArticoliListino", griglia -> {
|
||||
|
||||
List<ArticoloDTO> listaArticoli = new ArrayList<>();
|
||||
Stream.of(griglia.getGrigliaAcquistiChild())
|
||||
.map(ArticoloDTO::getCodMart)
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.forEach(art -> {
|
||||
List<ArticoloDTO> inList = Stream.of(griglia.getGrigliaAcquistiChild()).filter(x -> x.getCodMart().equalsIgnoreCase(art)).toList();
|
||||
if (inList.size() > 1) {
|
||||
for (ArticoloDTO articolo : inList) {
|
||||
if (!articolo.getBarCode().endsWith(articolo.getCodMart())) {
|
||||
listaArticoli.add(articolo);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
listaArticoli.add(inList.get(0));
|
||||
}
|
||||
});
|
||||
griglia.setGrigliaAcquistiChild(listaArticoli);
|
||||
onSuccess.run(griglia);
|
||||
}, onFailed);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<ServiceRESTResponse<GrigliaDTO>> call, Throwable t) {
|
||||
Log.e("getArticoliListino_pv", t.toString());
|
||||
UtilityLogger.errorMe(new Exception(t));
|
||||
onFailed.run(new Exception(t));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void saveOrdine(Ordine ordine, List<ArticoloOrdine> articoli, Griglia griglia, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onFailed) {
|
||||
SaveDTO saveDTO = new SaveDTO();
|
||||
OrdineDTO ordineDTO = new OrdineDTO();
|
||||
List<ArtDTO> artRows = new ArrayList<>();
|
||||
|
||||
int i = 0;
|
||||
for (ArticoloOrdine art : articoli) {
|
||||
i++;
|
||||
artRows.add(convertArtToDTO(art,i));
|
||||
}
|
||||
|
||||
ordineDTO.setChiaveGriglia(griglia.getCodAlis());
|
||||
ordineDTO.setDataConsD(new Date());
|
||||
ordineDTO.setArtRows(artRows);
|
||||
saveDTO.setGestione("O");
|
||||
saveDTO.setOrdineDTO(ordineDTO);
|
||||
|
||||
|
||||
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class);
|
||||
ordiniARestService
|
||||
.saveOrdine(saveDTO, SettingsManager.i().userSession.profileDB, SettingsManager.i().user.username, SettingsManager.i().user.password)
|
||||
.enqueue(new Callback<List<ServiceRESTResponse<DtbOrdt>>>() {
|
||||
@Override
|
||||
public void onResponse(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Response<List<ServiceRESTResponse<DtbOrdt>>> response) {
|
||||
if (response.body() != null && response.body().size() > 0){
|
||||
analyzeListOfAnswers(response, "getArticoliListino", dtoList-> {
|
||||
if (dtoList.size() > 0){
|
||||
DtbOrdt dto = dtoList.get(0);
|
||||
ordine.setTransmitted(true);
|
||||
ordine.setTransmissionDate(new Date());
|
||||
ordine.setGestione(dto.getGestione());
|
||||
ordine.setDataOrdS(dto.getDataOrd());
|
||||
ordine.setCodMdep(dto.getCodMdep());
|
||||
ordine.setNumOrd(dto.getNumOrd());
|
||||
OrdineRepository repository = new OrdineRepository();
|
||||
repository.updateOrder(ordine,onSuccess,onFailed);
|
||||
}else{
|
||||
onFailed.run(new Exception("Nessun ordine generato"));
|
||||
}
|
||||
}, onFailed);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<List<ServiceRESTResponse<DtbOrdt>>>call, Throwable t) {
|
||||
Log.e("saveOrdineTerminale_pv", t.toString());
|
||||
UtilityLogger.errorMe(new Exception(t));
|
||||
onFailed.run(new Exception(t));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private static ArtDTO convertArtToDTO(ArticoloOrdine art, int rigaOrd) {
|
||||
ArtDTO dto = new ArtDTO();
|
||||
dto.setRigaOrd(rigaOrd);
|
||||
dto.setCodMart(art.getCodMart());
|
||||
dto.setBarcode(art.getBarCode());
|
||||
dto.setDescrizione(art.getDescrizione());
|
||||
dto.setDataInsD(art.getDataIns());
|
||||
dto.setUntMis(art.getUntMis());
|
||||
dto.setQta(BigDecimal.valueOf(art.getQtaOrd()));
|
||||
dto.setQtaCnf(BigDecimal.valueOf(art.getQtaCnf()));
|
||||
dto.setColli(BigDecimal.ZERO);
|
||||
return dto;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package it.integry.integrywmsnative.core.rest.consumers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.GrigliaDTO;
|
||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.SaveDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.Header;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
public interface PVOrdiniAcquistoRESTConsumerService {
|
||||
|
||||
@POST("SM2GetElencoArticoli")
|
||||
Call<ServiceRESTResponse<GrigliaDTO>> getArticoliListino(@Query("chiaveGriglia") String codAlis, @Query("profileDb") String profileDb, @Header("username") String username, @Header("password") String password);
|
||||
|
||||
@POST("SM2SaveTerminalino")
|
||||
Call<List<ServiceRESTResponse<DtbOrdt>>> saveOrdine(@Body SaveDTO saveDTO, @Query("profileDb") String profileDb, @Header("username") String username, @Header("password") String password);
|
||||
}
|
||||
@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.rest.consumers;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.rest.CommonRESTException;
|
||||
@ -98,4 +99,35 @@ public class _BaseRESTConsumer {
|
||||
});
|
||||
}
|
||||
|
||||
public static <T> void analyzeListOfAnswers(Response<List<ServiceRESTResponse<T>>> responseList, String logTitle, RunnableArgs<List<T>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
if (responseList.isSuccessful()) {
|
||||
if (responseList.body() != null) {
|
||||
List<T> analyzedList = new ArrayList<>();
|
||||
for (ServiceRESTResponse<T> response : responseList.body()){
|
||||
if (response.getEsito() == EsitoType.OK) {
|
||||
if (!UtilityString.isNullOrEmpty(response.getErrorMessage())) {
|
||||
onFailed.run(new Exception(response.getErrorMessage()));
|
||||
} else {
|
||||
T dataObj = response.getDto() != null ?
|
||||
response.getDto() :
|
||||
response.getEntity();
|
||||
if (dataObj !=null ) analyzedList.add(dataObj);
|
||||
|
||||
}
|
||||
} else {
|
||||
Log.e(logTitle, response.getErrorMessage());
|
||||
onFailed.run(CommonRESTException.tryRecognizeException(response.getErrorMessage()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
onComplete.run(analyzedList);
|
||||
} else {
|
||||
Log.e(logTitle, responseList.message());
|
||||
onFailed.run(new Exception(responseList.message()));
|
||||
}
|
||||
} else {
|
||||
Log.e(logTitle, "Status " + responseList.code() + ": " + responseList.message());
|
||||
onFailed.run(new Exception("Status " + responseList.code() + ": " + responseList.message()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,10 +4,10 @@ import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeType;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeType;
|
||||
|
||||
public class UtilityBarcode {
|
||||
|
||||
|
||||
@ -20,6 +20,11 @@ public class UtilityProgress {
|
||||
progress.show();
|
||||
return progress;
|
||||
}
|
||||
public static Dialog createDefaultProgressDialog(Context mContext,String subtitle) {
|
||||
Dialog progress = DialogProgress.make(mContext,subtitle);
|
||||
progress.show();
|
||||
return progress;
|
||||
}
|
||||
|
||||
|
||||
public static Thread makeProgressBarIndeterminate(ProgressBar progressBar) {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package it.integry.integrywmsnative.core.utility;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsModel;
|
||||
|
||||
@ -9,7 +10,7 @@ public class UtilitySettings {
|
||||
public static void logout(){
|
||||
SettingsManager.i().user = null;
|
||||
SettingsManager.i().userSession = null;
|
||||
|
||||
MainApplication.clearDB();
|
||||
SettingsManager.update();
|
||||
}
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
@ -26,7 +27,7 @@ import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.Ac
|
||||
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||
|
||||
public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
|
||||
public class AccettazioneOrdineInevasoActivity extends BaseActivity {
|
||||
|
||||
public ActivityAccettazioneOrdineInevasoBinding bindings;
|
||||
private AccettazioneOrdineAccettazioneInevasoViewModel mAccettazioneOrdineInevasoViewModel;
|
||||
|
||||
@ -9,7 +9,7 @@ public class AccettazioneOrdineInevasoOrderBy {
|
||||
public static String[] descriptions = new String[] {
|
||||
"Cod articolo fornitore",
|
||||
"Descrizione articolo",
|
||||
"Commessa - Articolo"
|
||||
"Commessa - ArticoloGriglia"
|
||||
};
|
||||
|
||||
public enum Enum {
|
||||
|
||||
@ -54,7 +54,7 @@ import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBot
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
|
||||
import static br.com.zbra.androidlinq.Linq.stream;
|
||||
|
||||
|
||||
@ -8,13 +8,14 @@ import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.databinding.ActivityContenutoBancaleBinding;
|
||||
import it.integry.integrywmsnative.gest.contenuto_bancale.viewmodel.ContenutoBancaleViewModel;
|
||||
|
||||
public class ContenutoBancaleActivity extends AppCompatActivity {
|
||||
public class ContenutoBancaleActivity extends BaseActivity {
|
||||
|
||||
public ActivityContenutoBancaleBinding bindings;
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
@ -17,7 +18,7 @@ import it.integry.integrywmsnative.databinding.ActivityListaBancaliBinding;
|
||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
|
||||
import it.integry.integrywmsnative.gest.lista_bancali.viewmodel.ListaBancaliViewModel;
|
||||
|
||||
public class ListaBancaliActivity extends AppCompatActivity {
|
||||
public class ListaBancaliActivity extends BaseActivity {
|
||||
|
||||
private static class Key {
|
||||
private static final String MtbColtsKey = "mtbColtsKey";
|
||||
|
||||
@ -6,11 +6,12 @@ import android.os.Bundle;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.context.MainContext;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityWindow;
|
||||
import it.integry.integrywmsnative.databinding.ActivityLoginBinding;
|
||||
import it.integry.integrywmsnative.gest.login.viewmodel.LoginViewModel;
|
||||
|
||||
public class LoginActivity extends AppCompatActivity {
|
||||
public class LoginActivity extends BaseActivity {
|
||||
|
||||
private MainContext mainContext = new MainContext(this);
|
||||
|
||||
|
||||
@ -58,7 +58,7 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
|
||||
public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
||||
|
||||
|
||||
@ -21,6 +21,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
@ -48,9 +49,9 @@ import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShould
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
|
||||
public class PickingResiActivity extends AppCompatActivity implements IOnColloClosedCallback {
|
||||
public class PickingResiActivity extends BaseActivity implements IOnColloClosedCallback {
|
||||
|
||||
private List<DocumentoResoDTO> mDocumentiResiList;
|
||||
public ObservableList<WithdrawableDtbDocr> mDtbDocrList;
|
||||
@ -281,47 +282,6 @@ public class PickingResiActivity extends AppCompatActivity implements IOnColloC
|
||||
.setCanPartitaMagBeChanged(false)
|
||||
.setMaxQta(qtaDaEvadere);
|
||||
|
||||
// if(item.getTempPickData() != null) {
|
||||
// PickingObjectDTO.PickData tmpPickData = item.getTempPickData();
|
||||
//
|
||||
// if(!UtilityString.isNullOrEmpty(tmpPickData.getBatchLot())) {
|
||||
// dto.setBatchLot(tmpPickData.getBatchLot());
|
||||
// }
|
||||
//
|
||||
// if(tmpPickData.getDataScad() != null){
|
||||
// dto.setDataScad(tmpPickData.getDataScad());
|
||||
// dto.setShouldAskDataScad(true);
|
||||
// }
|
||||
//
|
||||
// boolean useQtaDaEvadere;
|
||||
//
|
||||
// if(tmpPickData.getQtaTot() != null) {
|
||||
// useQtaDaEvadere = qtaDaEvadere.floatValue() < tmpPickData.getQtaTot().floatValue() && item.getMtbAart().isFlagQtaCnfFissa();
|
||||
// if(useQtaDaEvadere){
|
||||
// dto.setQtaTot(qtaDaEvadere);
|
||||
// dto.setMaxQta(qtaDaEvadere);
|
||||
// } else {
|
||||
// dto.setQtaTot(tmpPickData.getQtaTot());
|
||||
// dto.setMaxQta(tmpPickData.getQtaTot());
|
||||
// dto.setQtaCnf(tmpPickData.getQtaTot());
|
||||
// }
|
||||
//
|
||||
//
|
||||
// if (tmpPickData.getQtaCnf() != null && useQtaDaEvadere) {
|
||||
// dto.setQtaCnf(tmpPickData.getQtaCnf());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// if(dto.getQtaTot() != null && dto.getQtaTot().floatValue() > 0 && dto.getQtaCnf() != null && dto.getQtaCnf().floatValue() > 0) {
|
||||
// dto.setNumCnf(dto.getQtaTot().divide(dto.getQtaCnf()).intValue());
|
||||
// }
|
||||
//
|
||||
//
|
||||
// dto.setCanPartitaMagBeChanged(false);
|
||||
// dto.setCanDataScadBeChanged(false);
|
||||
//
|
||||
// }
|
||||
|
||||
DialogInputQuantity.makeBase(this, dto, false, (quantityDTO, closeUL) -> {
|
||||
onOrdineRowDispatched(item, quantityDTO, closeUL);
|
||||
@ -350,7 +310,8 @@ public class PickingResiActivity extends AppCompatActivity implements IOnColloC
|
||||
.setSerDoc(item.getSerDoc())
|
||||
.setNumDoc(item.getNumDoc())
|
||||
.setDataDoc(item.getDataDocS())
|
||||
.setIdRigaDoc(item.getIdRiga());
|
||||
.setIdRigaDoc(item.getIdRiga())
|
||||
.setCodJcom(item.getCodJcom());
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
@ -111,6 +111,7 @@ public class DialogOrdineProduzioneFiltroAvanzato {
|
||||
|
||||
|
||||
viewModel.numOrds.refresh();
|
||||
viewModel.codJcoms.refresh();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -151,7 +151,7 @@ public class ProdOrdineLavorazioneElencoFragment extends Fragment implements ITi
|
||||
public void refreshOrdini(List<OrdineVenditaInevasoDTO> ordini) {
|
||||
|
||||
mRenderedOrderList.clear();
|
||||
mRenderedOrderList.addAll(ordini);
|
||||
if (ordini != null && ordini.size() > 0) mRenderedOrderList.addAll(ordini);
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
|
||||
@ -49,7 +49,7 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
|
||||
public class ProdRecuperoMaterialeViewModel {
|
||||
|
||||
|
||||
@ -0,0 +1,179 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.os.Bundle;
|
||||
import android.text.Html;
|
||||
import android.text.SpannableString;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.ActivityPvordineAcquistoEditBinding;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.adapter.OrdineAcquistoArtListAdapter;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.EditArticoloDialog;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
|
||||
public class PVOrdineAcquistoEditActivity extends BaseActivity {
|
||||
|
||||
private Ordine mOrdine;
|
||||
private Griglia mGriglia;
|
||||
private List<ArticoloOrdine> mArticoli = new ArrayList<>();
|
||||
private PVEditOrderHelper mhelper;
|
||||
private ActivityPvordineAcquistoEditBinding mBinding;
|
||||
private int mBarcodeScannerIstanceID;
|
||||
private OrdineAcquistoArtListAdapter mAdapter;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mhelper = new PVEditOrderHelper(this);
|
||||
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_pvordine_acquisto_edit);
|
||||
mBinding.setViewModel(this);
|
||||
mOrdine = DataCache.retrieveItem(getIntent().getStringExtra("keyOrdine"));
|
||||
if (mOrdine.isTransmitted()){
|
||||
Toast.makeText(this, "Impossibile modificare ordine esportato", Toast.LENGTH_SHORT).show();
|
||||
closeEdit();
|
||||
}
|
||||
String testataOrdString = String.format(this.getString(R.string.ord_acq_testata), String.valueOf(mOrdine.getOrdineId()), UtilityDate.formatDate(mOrdine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
mBinding.orderIdentifier.setText(Html.fromHtml(testataOrdString));
|
||||
initRecyclerView();
|
||||
fetchDetails();
|
||||
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||
.setOnScanSuccessfull(this::onScanSuccessful)
|
||||
.setOnScanFailed(this::handleException));
|
||||
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
mBinding.articoliOrdineList.setHasFixedSize(true);
|
||||
|
||||
mBinding.articoliOrdineList.setLayoutManager(new LinearLayoutManager(this));
|
||||
|
||||
DividerItemDecoration itemDecorator = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
|
||||
itemDecorator.setDrawable(ContextCompat.getDrawable(this, R.drawable.divider));
|
||||
mBinding.articoliOrdineList.addItemDecoration(itemDecorator);
|
||||
mAdapter = new OrdineAcquistoArtListAdapter(this, mArticoli, this::addArticolo);
|
||||
mBinding.articoliOrdineList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private void handleException(Exception ex) {
|
||||
runOnUiThread(()->{
|
||||
BarcodeManager.enable();
|
||||
UtilityExceptions.defaultException(this, ex, false);
|
||||
});
|
||||
}
|
||||
|
||||
private void onScanSuccessful(BarcodeScanDTO dto) {
|
||||
BarcodeManager.disable();
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
||||
mhelper.checkArticolo(
|
||||
mOrdine,
|
||||
dto.getStringValue(),
|
||||
articoloOrdine -> {
|
||||
progress.dismiss();
|
||||
addArticolo(articoloOrdine);
|
||||
},
|
||||
e -> {
|
||||
progress.dismiss();
|
||||
handleException(e);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
private void addArticolo(ArticoloOrdine articoloOrdine) {
|
||||
runOnUiThread(()->{
|
||||
EditArticoloDialog.make(this, articoloOrdine, articolo -> {
|
||||
BarcodeManager.enable();
|
||||
if (articolo == null) {
|
||||
Toast.makeText(this, "Inserimento articolo annullato", Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
fetchArticoli();
|
||||
}
|
||||
}).show();
|
||||
});
|
||||
}
|
||||
|
||||
private void fetchDetails() {
|
||||
fetchGriglia();
|
||||
fetchArticoli();
|
||||
}
|
||||
|
||||
private void fetchGriglia() {
|
||||
mhelper.loadGriglia(mOrdine.getIdGriglia(), griglia -> {
|
||||
runOnUiThread(()->{
|
||||
mGriglia = griglia;
|
||||
mBinding.codAlis.setText(mGriglia.getCodAlis());
|
||||
});
|
||||
}, this::handleException);
|
||||
}
|
||||
|
||||
private void fetchArticoli() {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
||||
mhelper.loadArticoli(mOrdine, articoli -> {
|
||||
progress.dismiss();
|
||||
mArticoli = articoli;
|
||||
runOnUiThread(()->{
|
||||
mAdapter.updateItems(mArticoli);
|
||||
mBinding.countArtOrd.setText(String.valueOf(mArticoli.size()));
|
||||
mBinding.pvOrdineExport.setVisibility(mArticoli.size() > 0 ? View.VISIBLE : View.GONE);
|
||||
});
|
||||
}, this::handleException);
|
||||
}
|
||||
|
||||
public void closeEdit() {
|
||||
onBackPressed();
|
||||
}
|
||||
|
||||
public void exportOrdine() {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
||||
PVOrdiniAcquistoRESTConsumer.saveOrdine(mOrdine , mArticoli,mGriglia,(ordine)->{
|
||||
progress.dismiss();
|
||||
runOnUiThread(()-> {
|
||||
Toast.makeText(this, "Ordine salvato con successo", Toast.LENGTH_SHORT).show();
|
||||
onBackPressed();
|
||||
});
|
||||
},e-> runOnUiThread(()-> {
|
||||
progress.dismiss();
|
||||
UtilityExceptions.defaultException(this,e);
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
||||
super.onBackPressed();
|
||||
}
|
||||
|
||||
private void showDataSavedDialog() {
|
||||
|
||||
DialogSimpleMessageHelper.makeSuccessDialog(
|
||||
this,
|
||||
getString(R.string.completed),
|
||||
new SpannableString(getString(R.string.data_saved)),
|
||||
null, null).show();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvArticoliOrdineAcquistoListSingleItemBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoListHeaderBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoListSingleItemBinding;
|
||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
||||
|
||||
public class OrdineAcquistoArtListAdapter extends SectionedRecyclerViewAdapter<OrdineAcquistoArtListAdapter.SubheaderHolder, OrdineAcquistoArtListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
||||
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private List<ArticoloOrdine> mDataset;
|
||||
RunnableArgs<ArticoloOrdine> mOnItemSelect;
|
||||
|
||||
|
||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FragmentPvOrdiniAcquistoListHeaderBinding binding;
|
||||
|
||||
SubheaderHolder(FragmentPvOrdiniAcquistoListHeaderBinding binding) {
|
||||
super(binding.getRoot());
|
||||
this.binding = binding;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FragmentPvArticoliOrdineAcquistoListSingleItemBinding binding;
|
||||
|
||||
SingleItemViewHolder(FragmentPvArticoliOrdineAcquistoListSingleItemBinding binding) {
|
||||
super(binding.getRoot());
|
||||
this.binding = binding;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public OrdineAcquistoArtListAdapter(Context context, List<ArticoloOrdine> myDataset, RunnableArgs<ArticoloOrdine> onItemSelect) {
|
||||
mContext = context;
|
||||
mDataset = orderItems(myDataset);
|
||||
mOnItemSelect = onItemSelect;
|
||||
}
|
||||
|
||||
public void updateItems(List<ArticoloOrdine> updatedDataset) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll(orderItems(updatedDataset));
|
||||
notifyDataSetChanged();
|
||||
notifyDataChanged();
|
||||
}
|
||||
|
||||
|
||||
private List<ArticoloOrdine> orderItems(List<ArticoloOrdine> dataset) {
|
||||
return Stream.of(dataset)
|
||||
.distinctBy(ArticoloOrdine::getArticoloOrdineId)
|
||||
.sortBy(x -> UtilityDate.formatDate(x.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
|
||||
.toList();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||
FragmentPvOrdiniAcquistoListHeaderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_pv_ordini_acquisto__list_header, parent, false);
|
||||
return new SubheaderHolder(binding);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||
FragmentPvArticoliOrdineAcquistoListSingleItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_pv_articoli_ordine_acquisto__list_single_item, parent, false);
|
||||
return new SingleItemViewHolder(binding);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBindSubheaderViewHolder(OrdineAcquistoArtListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||
subheaderHolder.binding.title.setText(mContext.getString(R.string.ordini_a_aperti));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindItemViewHolder(OrdineAcquistoArtListAdapter.SingleItemViewHolder h, int itemPosition) {
|
||||
final ArticoloOrdine articoloOrdine = mDataset.get(itemPosition);
|
||||
final OrdineAcquistoArtListAdapter.SingleItemViewHolder holder = h;
|
||||
|
||||
holder.binding.setArticolo(articoloOrdine);
|
||||
holder.binding.getRoot().setOnClickListener(v -> mOnItemSelect.run(articoloOrdine));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemSize() {
|
||||
return mDataset.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSectionTitle(int position) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,149 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseDialog;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.DialogPvEditArticoloBinding;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper;
|
||||
|
||||
public class EditArticoloDialog {
|
||||
|
||||
private Activity mContext;
|
||||
|
||||
private Dialog mDialog;
|
||||
|
||||
private DialogPvEditArticoloBinding mBinding;
|
||||
|
||||
private PVEditOrderHelper mHelper;
|
||||
|
||||
private ArticoloOrdine mArticolo;
|
||||
|
||||
private ArticoloOrdine mSavedArt;
|
||||
|
||||
private boolean mLockedInput = false;
|
||||
|
||||
private EditArticoloDialog(Activity context, ArticoloOrdine articolo, RunnableArgs<ArticoloOrdine> onDialogDismiss) {
|
||||
mContext = context;
|
||||
mArticolo = articolo;
|
||||
mHelper = new PVEditOrderHelper(context);
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_pv_edit_articolo, null, false);
|
||||
mBinding.setViewmodel(this);
|
||||
|
||||
mDialog = new BaseDialog(context);
|
||||
mDialog.setContentView(mBinding.getRoot());
|
||||
UtilityDialog.setTo90PercentSize(mContext, mDialog);
|
||||
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
mBinding.qtaTot.setText(String.valueOf(mArticolo.getQtaOrd()));
|
||||
mSavedArt = null;
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
onDialogDismiss.run(mSavedArt);
|
||||
});
|
||||
setListeners();
|
||||
}
|
||||
|
||||
private void setListeners() {
|
||||
mBinding.qtaTot.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
setQtaOrd(s.toString().length() >0 ? Float.parseFloat(s.toString()) : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
}
|
||||
});
|
||||
mBinding.qtaCnf.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
setQtaCnf(s.toString().length() >0 ? Float.parseFloat(s.toString()) : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
public void setQtaCnf(float qtaCnf){
|
||||
if (mLockedInput){
|
||||
mLockedInput = false;
|
||||
}else{
|
||||
mLockedInput = true;
|
||||
|
||||
float qtaTot = qtaCnf * mArticolo.getQtaCnf();
|
||||
mBinding.qtaTot.setText(String.valueOf(qtaTot));
|
||||
}
|
||||
}
|
||||
public void setQtaOrd(float qtaOrd){
|
||||
mArticolo.setQtaOrd(qtaOrd);
|
||||
if (mLockedInput){
|
||||
mLockedInput = false;
|
||||
}else{
|
||||
mLockedInput = true;
|
||||
float qtaCnf = qtaOrd / mArticolo.getQtaCnf();
|
||||
mBinding.qtaCnf.setText(String.valueOf(qtaCnf));
|
||||
}
|
||||
}
|
||||
|
||||
public static Dialog make(Activity context, ArticoloOrdine articolo, RunnableArgs<ArticoloOrdine> onDialogDismiss) {
|
||||
return new EditArticoloDialog(context, articolo, onDialogDismiss).mDialog;
|
||||
}
|
||||
|
||||
public void saveAndExit(){
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
try{
|
||||
float qtaOrd = Float.parseFloat(mBinding.qtaTot.getText().toString());
|
||||
if (qtaOrd <= 0){
|
||||
throw new Exception("La quantità ordinata deve essere maggiore di 0");
|
||||
}
|
||||
mArticolo.setQtaOrd(qtaOrd);
|
||||
|
||||
}catch (Exception e){
|
||||
mContext.runOnUiThread(()-> UtilityExceptions.defaultException(mContext,e));
|
||||
}
|
||||
mHelper.saveArticoloToOrdine(mArticolo, ()->{
|
||||
mSavedArt = mArticolo;
|
||||
progress.dismiss();
|
||||
mDialog.dismiss();
|
||||
},e-> mContext.runOnUiThread(()-> UtilityExceptions.defaultException(mContext,e)));
|
||||
}
|
||||
|
||||
public ArticoloOrdine getArticolo() {
|
||||
return mArticolo;
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
mArticolo = null;
|
||||
mDialog.dismiss();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,134 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
|
||||
public class ArtDTO {
|
||||
private Integer rigaOrd;
|
||||
|
||||
private String codMart;
|
||||
|
||||
private String barcode;
|
||||
|
||||
private String descrizione;
|
||||
|
||||
private String dataIns;
|
||||
|
||||
private String untMis;
|
||||
|
||||
private BigDecimal qta;
|
||||
|
||||
private BigDecimal qtaCnf;
|
||||
|
||||
private BigDecimal colli;
|
||||
|
||||
private String partitaMag;
|
||||
|
||||
private String dataScad;
|
||||
|
||||
public Integer getRigaOrd() {
|
||||
return rigaOrd;
|
||||
}
|
||||
|
||||
public void setRigaOrd(Integer rigaOrd) {
|
||||
this.rigaOrd = rigaOrd;
|
||||
}
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public void setCodMart(String codMart) {
|
||||
this.codMart = codMart;
|
||||
}
|
||||
|
||||
public String getBarcode() {
|
||||
return barcode;
|
||||
}
|
||||
|
||||
public void setBarcode(String barcode) {
|
||||
this.barcode = barcode;
|
||||
}
|
||||
|
||||
public String getDescrizione() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
public void setDescrizione(String descrizione) {
|
||||
this.descrizione = descrizione;
|
||||
}
|
||||
|
||||
public String getDataIns() {
|
||||
return dataIns;
|
||||
}
|
||||
public Date getDataInsD() {
|
||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataIns());
|
||||
}
|
||||
|
||||
public void setDataIns(String dataIns) {
|
||||
this.dataIns = dataIns;
|
||||
}
|
||||
public void setDataInsD(Date dataIns) {
|
||||
setDataIns(UtilityDate.formatDate(dataIns, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
|
||||
}
|
||||
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public void setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
}
|
||||
|
||||
public BigDecimal getQta() {
|
||||
return qta;
|
||||
}
|
||||
|
||||
public void setQta(BigDecimal qta) {
|
||||
this.qta = qta;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaCnf() {
|
||||
return qtaCnf;
|
||||
}
|
||||
|
||||
public void setQtaCnf(BigDecimal qtaCnf) {
|
||||
this.qtaCnf = qtaCnf;
|
||||
}
|
||||
|
||||
public BigDecimal getColli() {
|
||||
return colli;
|
||||
}
|
||||
|
||||
public void setColli(BigDecimal colli) {
|
||||
this.colli = colli;
|
||||
}
|
||||
|
||||
public String getPartitaMag() {
|
||||
return partitaMag;
|
||||
}
|
||||
|
||||
public void setPartitaMag(String partitaMag) {
|
||||
this.partitaMag = partitaMag;
|
||||
}
|
||||
|
||||
public String getDataScad() {
|
||||
return dataScad;
|
||||
}
|
||||
|
||||
public void setDataScad(String dataScad) {
|
||||
this.dataScad = dataScad;
|
||||
}
|
||||
public Date getDataScadD() {
|
||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataScad());
|
||||
}
|
||||
|
||||
public void setDataScadD(Date dataScad) {
|
||||
setDataScad(UtilityDate.formatDate(dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
|
||||
public class OrdineDTO {
|
||||
private String chiaveGriglia;
|
||||
private String dataCons;
|
||||
|
||||
private List<ArtDTO> artRows;
|
||||
|
||||
public String getChiaveGriglia() {
|
||||
return chiaveGriglia;
|
||||
}
|
||||
|
||||
public void setChiaveGriglia(String chiaveGriglia) {
|
||||
this.chiaveGriglia = chiaveGriglia;
|
||||
}
|
||||
|
||||
public String getDataCons() {
|
||||
return dataCons;
|
||||
}
|
||||
|
||||
public void setDataCons(String dataCons) {
|
||||
this.dataCons = dataCons;
|
||||
}
|
||||
|
||||
public List<ArtDTO> getArtRows() {
|
||||
return artRows;
|
||||
}
|
||||
|
||||
public void setArtRows(List<ArtDTO> artRows) {
|
||||
this.artRows = artRows;
|
||||
}
|
||||
public Date getDataConsD() {
|
||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataCons());
|
||||
}
|
||||
|
||||
public void setDataConsD(Date dataCons) {
|
||||
setDataCons(UtilityDate.formatDate(dataCons, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto;
|
||||
|
||||
public class SaveDTO {
|
||||
private String gestione = "O";
|
||||
|
||||
|
||||
private OrdineDTO ordineDTO;
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
}
|
||||
|
||||
public void setGestione(String gestione) {
|
||||
this.gestione = gestione;
|
||||
}
|
||||
|
||||
public OrdineDTO getOrdineDTO() {
|
||||
return ordineDTO;
|
||||
}
|
||||
|
||||
public void setOrdineDTO(OrdineDTO ordineDTO) {
|
||||
this.ordineDTO = ordineDTO;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliGrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
||||
|
||||
public class PVEditOrderHelper {
|
||||
private Context mContext;
|
||||
private GrigliaRepository mGrigliaRepository;
|
||||
private ArticoliOrdineRepository mArticoliOrdineRepository;
|
||||
private ArticoliGrigliaRepository mArticoliGrigliaRepository;
|
||||
|
||||
public PVEditOrderHelper(Context mContext) {
|
||||
this.mContext = mContext;
|
||||
mGrigliaRepository = new GrigliaRepository();
|
||||
mArticoliOrdineRepository = new ArticoliOrdineRepository();
|
||||
mArticoliGrigliaRepository = new ArticoliGrigliaRepository();
|
||||
}
|
||||
|
||||
public void checkArticolo(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
|
||||
try {
|
||||
mArticoliOrdineRepository.findArticoloByScanAndOrdine(ordine, barcode, (articolo) -> {
|
||||
if (articolo != null) {
|
||||
onSuccess.run(articolo);
|
||||
} else {
|
||||
mArticoliGrigliaRepository.findArticoloByScanAndGriglia(barcode, ordine.getIdGriglia(), artGrid -> {
|
||||
if (artGrid != null) {
|
||||
onSuccess.run(artGrid.convertToArticoloOrdine(ordine));
|
||||
} else {
|
||||
onFail.run(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia"));
|
||||
}
|
||||
}, onFail);
|
||||
}
|
||||
}, onFail);
|
||||
|
||||
} catch (Exception e) {
|
||||
onFail.run(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void loadGriglia(int idGriglia, RunnableArgs<Griglia> onLoad, RunnableArgs<Exception> onError) {
|
||||
try {
|
||||
mGrigliaRepository.findGrigliaById(idGriglia, onLoad, onError);
|
||||
} catch (Exception e) {
|
||||
onError.run(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void loadArticoli(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onLoad, RunnableArgs<Exception> onError) {
|
||||
try {
|
||||
mArticoliOrdineRepository.findArticoliByOrdine(ordine, onLoad, onError);
|
||||
} catch (Exception e) {
|
||||
onError.run(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSave, RunnableArgs<Exception> onFail) {
|
||||
mArticoliOrdineRepository.saveArticoloToOrdine(articolo, onSave, onFail);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,182 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordini_acquisto;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoBinding;
|
||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.core.OrdineAcquistoPvOpenListAdapter;
|
||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanLisA;
|
||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity;
|
||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
|
||||
public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitledFragment, IScrollableFragment {
|
||||
|
||||
private FragmentPvOrdiniAcquistoBinding mBinding;
|
||||
private OrdineAcquistoPvHelper mHelper;
|
||||
private Griglia mGriglia;
|
||||
private OrdineAcquistoPvOpenListAdapter mAdapter;
|
||||
private List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
||||
|
||||
|
||||
public PVOrdiniAcquistoGrigliaFragment() {
|
||||
mHelper = new OrdineAcquistoPvHelper(getActivity());
|
||||
}
|
||||
|
||||
public static PVOrdiniAcquistoGrigliaFragment newInstance() {
|
||||
PVOrdiniAcquistoGrigliaFragment fragment = new PVOrdiniAcquistoGrigliaFragment();
|
||||
Bundle args = new Bundle();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_pv_ordini_acquisto, container, false);
|
||||
mBinding.setViewmodel(this);
|
||||
|
||||
init();
|
||||
initRecyclerView();
|
||||
return mBinding.getRoot();
|
||||
}
|
||||
|
||||
private void init() {
|
||||
|
||||
BarcodeManager.enable();
|
||||
DialogScanLisA.make(getActivity(), griglia -> {
|
||||
if (griglia == null) {
|
||||
((IPoppableActivity) getActivity()).pop();
|
||||
} else {
|
||||
setGriglia(griglia);
|
||||
}
|
||||
}).show();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
||||
}
|
||||
|
||||
private void setGriglia(Griglia griglia) {
|
||||
mGriglia = griglia;
|
||||
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
|
||||
mBinding.codAlis.setText(griglia.getCodAlis());
|
||||
mBinding.descrLis.setText(griglia.getDescrLisa());
|
||||
mBinding.descrDepo.setText(griglia.getDescrDepo());
|
||||
mBinding.countArtLis.setText(String.valueOf(griglia.getCountArticoli()));
|
||||
|
||||
fetchOrders();
|
||||
}
|
||||
|
||||
private void fetchOrders() {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity(), getString(R.string.ordini_a_aperti_progress));
|
||||
OrdineRepository repository = new OrdineRepository();
|
||||
repository.selectAllOpenOrders(mGriglia, (ordini) -> getActivity().runOnUiThread(() -> {
|
||||
progress.dismiss();
|
||||
setOrdini(ordini);
|
||||
}), (e) -> {
|
||||
progress.dismiss();
|
||||
String errorMessage = e.getMessage();
|
||||
getActivity().runOnUiThread(() -> DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show());
|
||||
});
|
||||
}
|
||||
|
||||
private void setOrdini(List<OrdineWrapper> ordini) {
|
||||
mBinding.ordiniAApertiMainList.setVisibility(ordini != null && ordini.size() > 0 ? View.VISIBLE : View.GONE);
|
||||
mBinding.ordiniAEmptyView.setVisibility(ordini == null || ordini.size() <= 0 ? View.VISIBLE : View.GONE);
|
||||
refreshRenderedOrdini(ordini);
|
||||
mAdapter.updateItems(mRenderedOrderList);
|
||||
}
|
||||
|
||||
public Griglia getGriglia() {
|
||||
return mGriglia;
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
mBinding.ordiniAApertiMainList.setHasFixedSize(true);
|
||||
|
||||
mBinding.ordiniAApertiMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
|
||||
DividerItemDecoration itemDecorator = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
|
||||
itemDecorator.setDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.divider));
|
||||
mBinding.ordiniAApertiMainList.addItemDecoration(itemDecorator);
|
||||
mAdapter = new OrdineAcquistoPvOpenListAdapter(getActivity(), mRenderedOrderList, selectOrdine);
|
||||
mBinding.ordiniAApertiMainList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private RunnableArgs<Ordine> selectOrdine = ordine -> {
|
||||
|
||||
Intent myIntent = new Intent(getActivity(), PVOrdineAcquistoEditActivity.class);
|
||||
|
||||
String keyOrdine = DataCache.addItem(ordine);
|
||||
myIntent.putExtra("keyOrdine", keyOrdine);
|
||||
|
||||
getActivity().startActivity(myIntent);
|
||||
|
||||
};
|
||||
|
||||
private void refreshRenderedOrdini(List<OrdineWrapper> ordini) {
|
||||
mRenderedOrderList.clear();
|
||||
if (ordini != null) mRenderedOrderList.addAll(ordini);
|
||||
}
|
||||
|
||||
public void createNewOrder() {
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity(), getString(R.string.ordini_a_aperti_progress));
|
||||
mHelper.createNewOrder(mGriglia, order -> {
|
||||
progress.dismiss();
|
||||
getActivity().runOnUiThread(()-> selectOrdine.run(order));
|
||||
|
||||
}, e -> getActivity().runOnUiThread(() -> UtilityExceptions.defaultException(getActivity(), e, progress)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (mGriglia != null){
|
||||
fetchOrders();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,112 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordini_acquisto;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniATrasmessiElencoBinding;
|
||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.core.OrdineAcquistoPvTransmittedListAdapter;
|
||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzato;
|
||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
|
||||
public class PVOrdiniAcquistoTransmittedListFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
||||
|
||||
private FragmentPvOrdiniATrasmessiElencoBinding mBinding;
|
||||
private OrdineAcquistoPvTransmittedListAdapter mAdapter;
|
||||
|
||||
private List<OrdineWithGriglia> mOriginalOrderList;
|
||||
private List<OrdineWithGriglia> mRenderedOrderList = new ArrayList<>();
|
||||
|
||||
private DialogOrdineProduzioneFiltroAvanzato.DialogOrdineProduzioneFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
||||
|
||||
public PVOrdiniAcquistoTransmittedListFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
public static PVOrdiniAcquistoTransmittedListFragment newInstance() {
|
||||
PVOrdiniAcquistoTransmittedListFragment fragment = new PVOrdiniAcquistoTransmittedListFragment();
|
||||
Bundle args = new Bundle();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_pv_ordini_a_trasmessi_elenco, container, false);
|
||||
mBinding.setView(this);
|
||||
|
||||
|
||||
//init();
|
||||
return mBinding.getRoot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFilterClick() {
|
||||
|
||||
}
|
||||
|
||||
private void init(){
|
||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||
|
||||
OrdineRepository repository = new OrdineRepository();
|
||||
|
||||
repository.selectAllTransmitted((ordini)->{
|
||||
mOriginalOrderList = ordini;
|
||||
mBinding.ordiniAEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
|
||||
refreshRenderedOrdini(ordini);
|
||||
initRecyclerView();
|
||||
progress.dismiss();
|
||||
},(e)->{
|
||||
progress.dismiss();
|
||||
String errorMessage = e.getMessage();
|
||||
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
mAdapter = new OrdineAcquistoPvTransmittedListAdapter(getActivity(), mRenderedOrderList);
|
||||
mBinding.ordineAMainList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private void refreshRenderedOrdini(List<OrdineWithGriglia> ordini) {
|
||||
mRenderedOrderList.clear();
|
||||
if(ordini != null) mRenderedOrderList.addAll(ordini);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,132 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordini_acquisto.core;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoListHeaderBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoListSingleItemBinding;
|
||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
||||
|
||||
public class OrdineAcquistoPvOpenListAdapter extends SectionedRecyclerViewAdapter<OrdineAcquistoPvOpenListAdapter.SubheaderHolder, OrdineAcquistoPvOpenListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
||||
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private List<OrdineWrapper> mDataset;
|
||||
RunnableArgs<Ordine> mOnItemSelect;
|
||||
|
||||
|
||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FragmentPvOrdiniAcquistoListHeaderBinding binding;
|
||||
|
||||
SubheaderHolder(FragmentPvOrdiniAcquistoListHeaderBinding binding) {
|
||||
super(binding.getRoot());
|
||||
this.binding = binding;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FragmentPvOrdiniAcquistoListSingleItemBinding binding;
|
||||
|
||||
SingleItemViewHolder(FragmentPvOrdiniAcquistoListSingleItemBinding binding) {
|
||||
super(binding.getRoot());
|
||||
this.binding = binding;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public OrdineAcquistoPvOpenListAdapter(Context context, List<OrdineWrapper> myDataset, RunnableArgs<Ordine> onItemSelect) {
|
||||
mContext = context;
|
||||
mDataset = orderItems(myDataset);
|
||||
mOnItemSelect = onItemSelect;
|
||||
}
|
||||
|
||||
public void updateItems(List<OrdineWrapper> updatedDataset) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll(orderItems(updatedDataset));
|
||||
notifyDataSetChanged();
|
||||
notifyDataChanged();
|
||||
}
|
||||
|
||||
|
||||
private List<OrdineWrapper> orderItems(List<OrdineWrapper> dataset) {
|
||||
return Stream.of(dataset)
|
||||
.distinctBy(OrdineWrapper::getOrdine)
|
||||
.sortBy(x -> UtilityDate.formatDate(x.getOrdine().getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
|
||||
.toList();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||
FragmentPvOrdiniAcquistoListHeaderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_pv_ordini_acquisto__list_header, parent, false);
|
||||
return new SubheaderHolder(binding);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||
FragmentPvOrdiniAcquistoListSingleItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_pv_ordini_acquisto__list_single_item, parent, false);
|
||||
return new SingleItemViewHolder(binding);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBindSubheaderViewHolder(OrdineAcquistoPvOpenListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||
subheaderHolder.binding.title.setText(mContext.getString(R.string.ordini_a_aperti));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindItemViewHolder(OrdineAcquistoPvOpenListAdapter.SingleItemViewHolder h, int itemPosition) {
|
||||
final OrdineWrapper ordineWrapper = mDataset.get(itemPosition);
|
||||
final Ordine ordine = ordineWrapper.getOrdine();
|
||||
final OrdineAcquistoPvOpenListAdapter.SingleItemViewHolder holder = h;
|
||||
|
||||
|
||||
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdineId()), UtilityDate.formatDate(ordine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
holder.binding.numArts.setText(String.format(mContext.getString(R.string.ord_acq_num_articoli), String.valueOf(ordineWrapper.getCountArticoli())));
|
||||
|
||||
holder.binding.orderIdentifier.setText(Html.fromHtml(testataOrdString));
|
||||
|
||||
holder.binding.getRoot().setOnClickListener(v -> {
|
||||
mOnItemSelect.run(ordine);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemSize() {
|
||||
return mDataset.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSectionTitle(int position) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,133 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordini_acquisto.core;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.databinding.FragmentOrdineAPvTransmittedListModelBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentOrdiniAPvListSingleItemBinding;
|
||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
||||
|
||||
public class OrdineAcquistoPvTransmittedListAdapter extends SectionedRecyclerViewAdapter<OrdineAcquistoPvTransmittedListAdapter.SubheaderHolder, OrdineAcquistoPvTransmittedListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
||||
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private List<OrdineWithGriglia> mOriginalDataset;
|
||||
private List<OrdineWithGriglia> mDataset;
|
||||
|
||||
|
||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FragmentOrdineAPvTransmittedListModelBinding binding;
|
||||
|
||||
SubheaderHolder(FragmentOrdineAPvTransmittedListModelBinding binding) {
|
||||
super(binding.getRoot());
|
||||
this.binding = binding;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FragmentOrdiniAPvListSingleItemBinding binding;
|
||||
|
||||
SingleItemViewHolder(FragmentOrdiniAPvListSingleItemBinding binding) {
|
||||
super(binding.getRoot());
|
||||
this.binding = binding;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public OrdineAcquistoPvTransmittedListAdapter(Context context, List<OrdineWithGriglia> myDataset) {
|
||||
mContext = context;
|
||||
mOriginalDataset = myDataset;
|
||||
mDataset = orderItems(myDataset);
|
||||
}
|
||||
|
||||
public void updateItems(List<OrdineWithGriglia> updatedDataset) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll(orderItems(updatedDataset));
|
||||
notifyDataSetChanged();
|
||||
notifyDataChanged();
|
||||
}
|
||||
|
||||
|
||||
private List<OrdineWithGriglia> orderItems(List<OrdineWithGriglia> dataset) {
|
||||
return Stream.of(dataset)
|
||||
.distinctBy(OrdineWithGriglia::getGriglia)
|
||||
.sortBy(x -> UtilityDate.formatDate(x.getOrdine().getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
|
||||
.toList();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||
FragmentOrdineAPvTransmittedListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_ordine_a_pv_transmitted__list_model, parent, false);
|
||||
return new SubheaderHolder(binding);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||
FragmentOrdiniAPvListSingleItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_ordini_a_pv__list_single_item, parent, false);
|
||||
return new SingleItemViewHolder(binding);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBindSubheaderViewHolder(OrdineAcquistoPvTransmittedListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||
subheaderHolder.binding.ordineAPvMainListGroupHeader.setText(mDataset.get(nextItemPosition).getGriglia().getCodAlis());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindItemViewHolder(OrdineAcquistoPvTransmittedListAdapter.SingleItemViewHolder h, int itemPosition) {
|
||||
final OrdineWithGriglia ordine = mDataset.get(itemPosition);
|
||||
final OrdineAcquistoPvTransmittedListAdapter.SingleItemViewHolder holder = h;
|
||||
|
||||
|
||||
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdine().getOrdineId()), UtilityDate.formatDate(ordine.getOrdine().getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
holder.binding.badge1.setText(ordine.getOrdine().isTransmitted() ? "TRASMESSO" : "NON TRASMESSO");
|
||||
|
||||
holder.binding.descriptionMain.setText(Html.fromHtml(testataOrdString));
|
||||
|
||||
|
||||
holder.binding.getRoot().setOnClickListener(v -> {
|
||||
//TODO: aprire descrizione Ordine
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
||||
return !(this.mDataset.get(position).getGriglia().getGrigliaId() == this.mDataset.get(position + 1).getGriglia().getGrigliaId());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemSize() {
|
||||
return mDataset.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSectionTitle(int position) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,111 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseDialog;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.DialogScanCodiceGrigliaBinding;
|
||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper;
|
||||
|
||||
public class DialogScanLisA {
|
||||
|
||||
private Activity mContext;
|
||||
|
||||
private Dialog mDialog;
|
||||
|
||||
private DialogScanCodiceGrigliaBinding mBinding;
|
||||
|
||||
private RunnableArgs<Griglia> mOnDialogDismiss;
|
||||
|
||||
private OrdineAcquistoPvHelper mHelper;
|
||||
private Griglia mGriglia;
|
||||
|
||||
private DialogScanLisA(Activity context, RunnableArgs<Griglia> onDialogDismiss) {
|
||||
mOnDialogDismiss = null;
|
||||
mContext = context;
|
||||
mHelper = new OrdineAcquistoPvHelper(context);
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||
mGriglia = null;
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_scan_codice_griglia, null, false);
|
||||
|
||||
mDialog = new BaseDialog(context);
|
||||
mDialog.setContentView(mBinding.getRoot());
|
||||
mDialog.setCanceledOnTouchOutside(false);
|
||||
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
mOnDialogDismiss = onDialogDismiss;
|
||||
initBarcode();
|
||||
}
|
||||
|
||||
public static Dialog make(Activity context, RunnableArgs<Griglia> onDialogDismiss) {
|
||||
return new DialogScanLisA(context, onDialogDismiss).mDialog;
|
||||
}
|
||||
|
||||
private void initBarcode() {
|
||||
|
||||
int barcodeIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||
.setOnScanSuccessfull(onScanSuccessfull)
|
||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false)));
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
BarcodeManager.removeCallback(barcodeIstanceID);
|
||||
BarcodeManager.enable();
|
||||
mOnDialogDismiss.run(mGriglia);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||
BarcodeManager.disable();
|
||||
|
||||
final Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
Context context = mContext;
|
||||
RunnableArgs<Exception> mOnError = exception -> {
|
||||
mContext.runOnUiThread(()->{
|
||||
progressDialog.dismiss();
|
||||
UtilityExceptions.defaultException(context,exception);
|
||||
BarcodeManager.enable();
|
||||
});
|
||||
};
|
||||
|
||||
RunnableArgs<Griglia> onGrigliaAvaialable = griglia->{
|
||||
mContext.runOnUiThread(()->{
|
||||
progressDialog.dismiss();
|
||||
mGriglia = griglia;
|
||||
mDialog.dismiss();
|
||||
});
|
||||
};
|
||||
|
||||
GrigliaRepository repository = new GrigliaRepository();
|
||||
|
||||
repository.findByCodAlis(data.getStringValue(),griglia->{
|
||||
if (griglia != null){
|
||||
griglia.getGriglia().setCountArticoli(griglia.getCountArticoli());
|
||||
if (griglia.getCountArticoli() >0){
|
||||
onGrigliaAvaialable.run(griglia.getGriglia());
|
||||
}else{
|
||||
mHelper.updateGriglia(griglia.getGriglia(), onGrigliaAvaialable,mOnError);
|
||||
}
|
||||
}else{
|
||||
mHelper.downloadAndSaveLisA(data.getStringValue(), onGrigliaAvaialable,mOnError);
|
||||
}
|
||||
},mOnError);
|
||||
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
package it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliGrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
||||
|
||||
public class OrdineAcquistoPvHelper {
|
||||
|
||||
private Context mContext;
|
||||
private GrigliaRepository mGrigliaRepository;
|
||||
private ArticoliGrigliaRepository mArticoliGrigliaRepository;
|
||||
private OrdineRepository mOrdineRepository;
|
||||
public OrdineAcquistoPvHelper(Context mContext) {
|
||||
this.mContext = mContext;
|
||||
this.mGrigliaRepository = new GrigliaRepository();
|
||||
this.mArticoliGrigliaRepository = new ArticoliGrigliaRepository();
|
||||
this.mOrdineRepository = new OrdineRepository();
|
||||
|
||||
}
|
||||
|
||||
public void downloadAndSaveLisA(String codAlis, RunnableArgs<Griglia> onSave, RunnableArgs<Exception> onFail) {
|
||||
Griglia griglia = new Griglia();
|
||||
griglia.setCodAlis(codAlis);
|
||||
updateGriglia(griglia, onSave, onFail);
|
||||
}
|
||||
|
||||
public void updateGriglia(Griglia griglia, RunnableArgs<Griglia> onSave, RunnableArgs<Exception> onFail) {
|
||||
PVOrdiniAcquistoRESTConsumer.getArticoliListino(griglia.getCodAlis(), dto -> {
|
||||
if (dto.getGrigliaAcquistiChild().size() <= 0) {
|
||||
Exception e = new Exception("La griglia selezionata (" + griglia.getCodAlis() + ") non esiste o non presenta articoli");
|
||||
onFail.run(e);
|
||||
return;
|
||||
}
|
||||
griglia.setDescrLisa(dto.getDescrLisa());
|
||||
griglia.setDescrDepo(dto.getDescrDepo());
|
||||
griglia.setCountArticoli(dto.getGrigliaAcquistiChild().size());
|
||||
mGrigliaRepository.saveGriglia(griglia, id -> {
|
||||
saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSave, onFail);
|
||||
}, onFail);
|
||||
|
||||
}, onFail);
|
||||
}
|
||||
|
||||
private void saveLisAToGriglia(List<ArticoloDTO> articoli, Griglia griglia, RunnableArgs<Griglia> onSave, RunnableArgs<Exception> onFail) {
|
||||
List<ArticoloGriglia> articoliGriglia = new ArrayList<>();
|
||||
for (ArticoloDTO articolo : articoli) {
|
||||
ArticoloGriglia toSave = articolo.toArticoloGriglia();
|
||||
toSave.setIdGriglia(griglia.getGrigliaId());
|
||||
articoliGriglia.add(toSave);
|
||||
}
|
||||
mArticoliGrigliaRepository.saveArticoliToGriglia(articoliGriglia, () -> onSave.run(griglia), onFail);
|
||||
}
|
||||
|
||||
public void createNewOrder(Griglia griglia, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {
|
||||
Ordine ordine = new Ordine();
|
||||
ordine.setDataIns(new Date());
|
||||
ordine.setIdGriglia(griglia.getGrigliaId());
|
||||
mOrdineRepository.insert(ordine,id->{
|
||||
ordine.setOrdineId(id);
|
||||
onSuccess.run(ordine);
|
||||
},onError);
|
||||
}
|
||||
}
|
||||
@ -64,8 +64,8 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuanti
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeType;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeType;
|
||||
|
||||
public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr> {
|
||||
|
||||
|
||||
@ -11,17 +11,22 @@ import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
|
||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzato;
|
||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel.UltimeConsegneClienteViewModel;
|
||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||
|
||||
public class UltimeConsegneClienteFragment extends Fragment implements ITitledFragment, IScrollableFragment {
|
||||
public class UltimeConsegneClienteFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
||||
|
||||
private Runnable mOnPreDestroy;
|
||||
private ElevatedToolbar mToolbar;
|
||||
|
||||
private UltimeConsegneClienteViewModel mViewModel;
|
||||
|
||||
public UltimeConsegneClienteFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
@ -41,7 +46,9 @@ public class UltimeConsegneClienteFragment extends Fragment implements ITitledFr
|
||||
|
||||
FragmentMainUltimeConsegneClienteBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_main_ultime_consegne_cliente, container, false);
|
||||
|
||||
mBinding.setViewmodel(new UltimeConsegneClienteViewModel(getActivity(), mBinding));
|
||||
mViewModel = new UltimeConsegneClienteViewModel(getActivity(), mBinding);
|
||||
|
||||
mBinding.setViewmodel(mViewModel);
|
||||
|
||||
mToolbar.setRecyclerView(mBinding.recyclerView);
|
||||
|
||||
@ -69,4 +76,9 @@ public class UltimeConsegneClienteFragment extends Fragment implements ITitledFr
|
||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
||||
mOnPreDestroy = onPreDestroy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFilterClick() {
|
||||
mViewModel.openFilterDialog();
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,203 @@
|
||||
package it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import android.app.DatePickerDialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.annimon.stream.function.Predicate;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.di.BindableString;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogUltimeConsegneFiltroAvanzatoBinding;
|
||||
|
||||
public class DialogUltimeConsegneFiltroAvanzato {
|
||||
|
||||
private AlertDialog mAlert;
|
||||
private Context mContext;
|
||||
private DialogUltimeConsegneFiltroAvanzatoViewModel mBaseViewModel;
|
||||
private RunnableArgss<List<DocumentoResoDTO>, DialogUltimeConsegneFiltroAvanzatoViewModel> mOnDismiss;
|
||||
|
||||
|
||||
|
||||
private ArrayAdapter<String> arrayAdapterRagSoc;
|
||||
|
||||
private List<DocumentoResoDTO> mItems;
|
||||
private List<DocumentoResoDTO> mFilteredItems;
|
||||
|
||||
private Predicate<DocumentoResoDTO> currentRagSocPredicate = null;
|
||||
private Predicate<DocumentoResoDTO> currentDataDocPredicate = null;
|
||||
|
||||
public static AlertDialog make(final Context context,
|
||||
final List<DocumentoResoDTO> items,
|
||||
DialogUltimeConsegneFiltroAvanzatoViewModel baseViewModel,
|
||||
RunnableArgss<List<DocumentoResoDTO>, DialogUltimeConsegneFiltroAvanzatoViewModel> onDismiss) {
|
||||
return new DialogUltimeConsegneFiltroAvanzato(context, items, baseViewModel, onDismiss).mAlert;
|
||||
}
|
||||
|
||||
|
||||
public DialogUltimeConsegneFiltroAvanzato(final Context context,
|
||||
final List<DocumentoResoDTO> items,
|
||||
DialogUltimeConsegneFiltroAvanzatoViewModel baseViewModel,
|
||||
RunnableArgss<List<DocumentoResoDTO>, DialogUltimeConsegneFiltroAvanzatoViewModel> onDismiss) {
|
||||
mContext = context;
|
||||
mItems = items;
|
||||
mBaseViewModel = baseViewModel;
|
||||
mOnDismiss = onDismiss;
|
||||
|
||||
DialogUltimeConsegneFiltroAvanzatoViewModel viewModel = baseViewModel != null ? baseViewModel : new DialogUltimeConsegneFiltroAvanzatoViewModel();
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
DialogUltimeConsegneFiltroAvanzatoBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_ultime_consegne_filtro_avanzato, null, false);
|
||||
|
||||
final AlertDialog.Builder dialog = new AlertDialog.Builder(context)
|
||||
.setView(binding.getRoot());
|
||||
|
||||
binding.setViewmodel(viewModel);
|
||||
initViewModelNew(viewModel);
|
||||
initView(binding, viewModel);
|
||||
|
||||
mAlert = dialog.create();
|
||||
mAlert.setCanceledOnTouchOutside(false);
|
||||
|
||||
mAlert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
mAlert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
binding.positiveBtn.setOnClickListener(view -> {
|
||||
mAlert.dismiss();
|
||||
});
|
||||
|
||||
binding.neutralBtn.setOnClickListener(view -> {
|
||||
resetAll(viewModel);
|
||||
});
|
||||
|
||||
|
||||
mAlert.setOnDismissListener(dialogInterface -> {
|
||||
if(mOnDismiss != null) mOnDismiss.run(mFilteredItems, viewModel);
|
||||
});
|
||||
|
||||
refreshList();
|
||||
|
||||
}
|
||||
|
||||
private void resetAll(DialogUltimeConsegneFiltroAvanzatoViewModel viewModel) {
|
||||
viewModel.ragSoc.set(null);
|
||||
viewModel.dataDoc.set(null);
|
||||
}
|
||||
|
||||
private void initView(DialogUltimeConsegneFiltroAvanzatoBinding bindings, DialogUltimeConsegneFiltroAvanzatoViewModel viewModel) {
|
||||
|
||||
arrayAdapterRagSoc = new ArrayAdapter(mContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterRagSoc.addAll(getAvailableRagSocs(false));
|
||||
bindings.filledExposedDropdownRagSoc.setAdapter(arrayAdapterRagSoc);
|
||||
|
||||
bindings.filledExposedDropdownDataDoc.setOnClickListener(view -> {
|
||||
Calendar c = UtilityDate.getCalendarInstance();
|
||||
|
||||
if(viewModel.dataDocDate != null) {
|
||||
c.setTime(viewModel.dataDocDate);
|
||||
}
|
||||
|
||||
int mYear = c.get(Calendar.YEAR);
|
||||
int mMonth = c.get(Calendar.MONTH);
|
||||
int mDay = c.get(Calendar.DAY_OF_MONTH);
|
||||
|
||||
DatePickerDialog datePickerDialog = new DatePickerDialog(mContext,
|
||||
(view2, year, month, day) -> {
|
||||
|
||||
viewModel.dataDocDate = new GregorianCalendar(year, month, day).getTime();
|
||||
viewModel.dataDoc.set(UtilityDate.formatDate(viewModel.dataDocDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
}, mYear, mMonth, mDay);
|
||||
datePickerDialog.show();
|
||||
});
|
||||
|
||||
|
||||
viewModel.ragSoc.refresh();
|
||||
viewModel.dataDoc.refresh();
|
||||
}
|
||||
|
||||
private void initViewModelNew(DialogUltimeConsegneFiltroAvanzatoViewModel viewModel) {
|
||||
|
||||
BindableString.resetListeners(viewModel.ragSoc);
|
||||
BindableString.registerListener(viewModel.ragSoc, value -> {
|
||||
if (UtilityString.isNullOrEmpty(value)) currentRagSocPredicate = null;
|
||||
else {
|
||||
currentRagSocPredicate = o -> o.getRagSoc().equalsIgnoreCase(viewModel.ragSoc.get());
|
||||
}
|
||||
|
||||
refreshList();
|
||||
});
|
||||
|
||||
BindableString.resetListeners(viewModel.dataDoc);
|
||||
BindableString.registerListener(viewModel.dataDoc, value -> {
|
||||
if (UtilityString.isNullOrEmpty(value)) currentDataDocPredicate = null;
|
||||
else {
|
||||
currentDataDocPredicate = o -> o.getDataDocD().equals(viewModel.dataDocDate);
|
||||
}
|
||||
|
||||
refreshList();
|
||||
|
||||
arrayAdapterRagSoc.clear();
|
||||
arrayAdapterRagSoc.addAll(getAvailableRagSocs(true));
|
||||
});
|
||||
}
|
||||
|
||||
private List<String> getAvailableRagSocs(boolean skipRecalc) {
|
||||
if(currentDataDocPredicate == null){
|
||||
mFilteredItems = mItems;
|
||||
} else if(!skipRecalc){
|
||||
Stream<DocumentoResoDTO> tmpStream = Stream.of(mItems)
|
||||
.filter(x ->
|
||||
(currentDataDocPredicate == null || (currentDataDocPredicate.test(x)))
|
||||
);
|
||||
|
||||
mFilteredItems = tmpStream.toList();
|
||||
}
|
||||
|
||||
return Stream.of(mFilteredItems).map(DocumentoResoDTO::getRagSoc).distinct().withoutNulls().toList();
|
||||
}
|
||||
|
||||
|
||||
private void refreshList() {
|
||||
|
||||
if(currentRagSocPredicate == null && currentDataDocPredicate == null){
|
||||
mFilteredItems = mItems;
|
||||
} else {
|
||||
Stream<DocumentoResoDTO> tmpStream = Stream.of(mItems)
|
||||
.filter(x ->
|
||||
(currentRagSocPredicate == null || (currentRagSocPredicate.test(x))) &&
|
||||
(currentDataDocPredicate== null || (currentDataDocPredicate.test(x)))
|
||||
);
|
||||
|
||||
mFilteredItems = tmpStream.toList();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class DialogUltimeConsegneFiltroAvanzatoViewModel {
|
||||
|
||||
public BindableString ragSoc = new BindableString();
|
||||
public BindableString dataDoc = new BindableString();
|
||||
|
||||
public Date dataDocDate;
|
||||
}
|
||||
|
||||
}
|
||||
@ -3,6 +3,7 @@ package it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel;
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
@ -16,6 +17,7 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
|
||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzato;
|
||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
|
||||
import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity;
|
||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||
@ -25,7 +27,11 @@ public class UltimeConsegneClienteViewModel {
|
||||
private Context mContext;
|
||||
private FragmentMainUltimeConsegneClienteBinding mBinding;
|
||||
|
||||
private UltimeConsegneMainListAdapter mAdapter;
|
||||
private List<DocumentoResoDTO> mItems;
|
||||
private List<DocumentoResoDTO> mRenderedItems = new ArrayList<>();
|
||||
|
||||
private DialogUltimeConsegneFiltroAvanzato.DialogUltimeConsegneFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
||||
|
||||
public UltimeConsegneClienteViewModel(Context context, FragmentMainUltimeConsegneClienteBinding binding) {
|
||||
this.mContext = context;
|
||||
@ -39,6 +45,17 @@ public class UltimeConsegneClienteViewModel {
|
||||
});
|
||||
}
|
||||
|
||||
public void openFilterDialog() {
|
||||
DialogUltimeConsegneFiltroAvanzato.make(mContext, mItems, mAppliedFilterViewModel, (filteredOrderList, filter) -> {
|
||||
mAppliedFilterViewModel = filter;
|
||||
|
||||
if(filteredOrderList != null){
|
||||
|
||||
refreshItems(filteredOrderList);
|
||||
}
|
||||
|
||||
}).show();
|
||||
}
|
||||
|
||||
private void initList() {
|
||||
|
||||
@ -50,7 +67,9 @@ public class UltimeConsegneClienteViewModel {
|
||||
null,
|
||||
consegne -> {
|
||||
this.mItems = consegne;
|
||||
|
||||
this.initDataAdapter(consegne);
|
||||
refreshItems(consegne);
|
||||
|
||||
progressDialog.dismiss();
|
||||
}, ex -> {
|
||||
@ -59,16 +78,23 @@ public class UltimeConsegneClienteViewModel {
|
||||
}
|
||||
|
||||
private void initDataAdapter(ArrayList<DocumentoResoDTO> dataset) {
|
||||
UltimeConsegneMainListAdapter adapter = new UltimeConsegneMainListAdapter(mContext, dataset);
|
||||
adapter.setOnSelectionChanged(this::onSingleSelectionChanged);
|
||||
mAdapter = new UltimeConsegneMainListAdapter(mContext, dataset);
|
||||
mAdapter.setOnSelectionChanged(this::onSingleSelectionChanged);
|
||||
|
||||
mBinding.recyclerView.setHasFixedSize(true);
|
||||
mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
mBinding.recyclerView.setAdapter(adapter);
|
||||
mBinding.recyclerView.setAdapter(mAdapter);
|
||||
mBinding.fastscroll.setRecyclerView(mBinding.recyclerView);
|
||||
|
||||
}
|
||||
|
||||
private void refreshItems(List<DocumentoResoDTO> items){
|
||||
mBinding.emptyView.setVisibility((items != null && items.size() > 0) ? View.GONE : View.VISIBLE);
|
||||
|
||||
mRenderedItems.clear();
|
||||
if(items != null) mRenderedItems.addAll(items);
|
||||
mAdapter.updateItems(mRenderedItems);
|
||||
}
|
||||
|
||||
private void onSingleSelectionChanged(DocumentoResoDTO dto) {
|
||||
List<DocumentoResoDTO> selectedOrders = getSelectedItems();
|
||||
|
||||
@ -36,10 +36,6 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
|
||||
|
||||
private RunnableArgs<DocumentoResoDTO> mOnSelectionChanged;
|
||||
|
||||
private TextDrawable.IShapeBuilder smallIconBuilder;
|
||||
private TextDrawable.IShapeBuilder mediumIconBuilder;
|
||||
private TextDrawable.IShapeBuilder largeIconBuilder;
|
||||
|
||||
@Override
|
||||
public String getSectionTitle(int position) {
|
||||
return mSectionTitleItems.get(position);
|
||||
@ -74,56 +70,8 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
|
||||
super();
|
||||
this.mContext = context;
|
||||
this.mDataset = new ArrayList<>();
|
||||
this.mSectionTitleItems = new ArrayList<>();
|
||||
|
||||
this.mDataset = Stream.of(dataset)
|
||||
.sortBy(DocumentoResoDTO::getRagSoc)
|
||||
.toList();
|
||||
|
||||
|
||||
Stream.of(mDataset)
|
||||
.map(DocumentoResoDTO::getRagSoc)
|
||||
.distinct()
|
||||
.forEach(x -> {
|
||||
this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
|
||||
|
||||
long count = Stream.of(dataset)
|
||||
.filter(y -> y.getRagSoc().equalsIgnoreCase(x))
|
||||
.count();
|
||||
|
||||
|
||||
for(int i = 0; i < count; i++) this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
|
||||
});
|
||||
|
||||
long count = Stream.of(dataset)
|
||||
.filter(x -> UtilityString.isNullOrEmpty(x.getRagSoc()))
|
||||
.count();
|
||||
|
||||
|
||||
smallIconBuilder = TextDrawable.builder()
|
||||
.beginConfig()
|
||||
.width(40)
|
||||
.height(40)
|
||||
.fontSize(24)
|
||||
.useFont(ResourcesCompat.getFont(mContext, R.font.google_sans_regular))
|
||||
.endConfig();
|
||||
|
||||
mediumIconBuilder = TextDrawable.builder()
|
||||
.beginConfig()
|
||||
.width(40)
|
||||
.height(40)
|
||||
.fontSize(20)
|
||||
.useFont(ResourcesCompat.getFont(mContext, R.font.google_sans_regular))
|
||||
.endConfig();
|
||||
|
||||
largeIconBuilder = TextDrawable.builder()
|
||||
.beginConfig()
|
||||
.width(40)
|
||||
.height(40)
|
||||
.fontSize(16)
|
||||
.useFont(ResourcesCompat.getFont(mContext, R.font.google_sans_regular))
|
||||
.endConfig();
|
||||
|
||||
updateItems(sort(dataset));
|
||||
}
|
||||
|
||||
|
||||
@ -151,15 +99,7 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
|
||||
holder.mBinding.subDescriptionMain.setText(String.format(mContext.getText(R.string.shipped_on).toString(), UtilityDate.formatDate(consegna.getDataInizTraspD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
||||
}
|
||||
|
||||
String numDoc = "" + consegna.getNumDoc();
|
||||
|
||||
if(numDoc.length() <= 2) {
|
||||
holder.mBinding.startIcon.setImageDrawable(smallIconBuilder.buildRound(numDoc, ContextCompat.getColor(mContext, R.color.colorPrimary)));
|
||||
} else if(numDoc.length() == 3) {
|
||||
holder.mBinding.startIcon.setImageDrawable(mediumIconBuilder.buildRound(numDoc, ContextCompat.getColor(mContext, R.color.colorPrimary)));
|
||||
} else if(numDoc.length() == 4) {
|
||||
holder.mBinding.startIcon.setImageDrawable(largeIconBuilder.buildRound(numDoc, ContextCompat.getColor(mContext, R.color.colorPrimary)));
|
||||
}
|
||||
holder.mBinding.badge1.setText(String.valueOf(consegna.getNumDoc()));
|
||||
|
||||
try {
|
||||
Calendar calendarNow = UtilityDate.getCalendarInstance();
|
||||
@ -213,6 +153,40 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void updateItems(List<DocumentoResoDTO> updatedDataset) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll(sort(updatedDataset));
|
||||
notifyDataSetChanged();
|
||||
notifyDataChanged();
|
||||
}
|
||||
|
||||
|
||||
private List<DocumentoResoDTO> sort(List<DocumentoResoDTO> dataset) {
|
||||
this.mSectionTitleItems = new ArrayList<>();
|
||||
|
||||
List<DocumentoResoDTO> sortedDataset = Stream.of(dataset)
|
||||
.sortBy(DocumentoResoDTO::getRagSoc)
|
||||
.toList();
|
||||
|
||||
|
||||
Stream.of(sortedDataset)
|
||||
.map(DocumentoResoDTO::getRagSoc)
|
||||
.distinct()
|
||||
.forEach(x -> {
|
||||
this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
|
||||
|
||||
long count = Stream.of(dataset)
|
||||
.filter(y -> y.getRagSoc().equalsIgnoreCase(x))
|
||||
.count();
|
||||
|
||||
|
||||
for(int i = 0; i < count; i++) this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
|
||||
});
|
||||
|
||||
return sortedDataset;
|
||||
}
|
||||
|
||||
public void setOnSelectionChanged(RunnableArgs<DocumentoResoDTO> mSelectionChanged) {
|
||||
this.mOnSelectionChanged = mSelectionChanged;
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package it.integry.integrywmsnative.gest.ultime_arrivi_fornitore;
|
||||
package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore;
|
||||
|
||||
|
||||
import android.app.Dialog;
|
||||
@ -20,29 +20,36 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.FragmentUltimeConsegneFornitoreBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreBinding;
|
||||
import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity;
|
||||
import it.integry.integrywmsnative.gest.ultime_arrivi_fornitore.core.UltimiArriviFornitoreListAdapter;
|
||||
import it.integry.integrywmsnative.gest.ultime_arrivi_fornitore.rest.UltimiArriviFornitoreRESTConsumer;
|
||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core.UltimiArriviFornitoreListAdapter;
|
||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.dialog.DialogUltimiArriviFornitoreFiltroAvanzato;
|
||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.rest.UltimiArriviFornitoreRESTConsumer;
|
||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
*/
|
||||
public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFragment, IScrollableFragment {
|
||||
public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
||||
|
||||
private Runnable mOnPreDestroy;
|
||||
private ElevatedToolbar mToolbar;
|
||||
|
||||
private FragmentUltimeConsegneFornitoreBinding mBinding;
|
||||
private FragmentUltimiArriviFornitoreBinding mBinding;
|
||||
|
||||
private List<DocumentoResoDTO> mItems;
|
||||
private List<DocumentoResoDTO> mRenderedItems = new ArrayList<>();
|
||||
|
||||
private UltimiArriviFornitoreListAdapter mAdapter;
|
||||
|
||||
private DialogUltimiArriviFornitoreFiltroAvanzato.DialogUltimiArriviFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
||||
|
||||
public UltimiArriviFornitoreFragment() {
|
||||
// Required empty public constructor
|
||||
@ -61,7 +68,7 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
mBinding = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_ultime_consegne_fornitore, container, false);
|
||||
mBinding = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_ultimi_arrivi_fornitore, container, false);
|
||||
|
||||
mBinding.setViewmodel(this);
|
||||
|
||||
@ -116,7 +123,9 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
|
||||
null,
|
||||
consegne -> {
|
||||
this.mItems = consegne;
|
||||
|
||||
this.initDataAdapter(consegne);
|
||||
refreshItems(consegne);
|
||||
|
||||
progressDialog.dismiss();
|
||||
}, ex -> {
|
||||
@ -124,13 +133,15 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void initDataAdapter(ArrayList<DocumentoResoDTO> dataset) {
|
||||
UltimiArriviFornitoreListAdapter adapter = new UltimiArriviFornitoreListAdapter(getActivity(), dataset);
|
||||
adapter.setOnSelectionChanged(this::onSingleSelectionChanged);
|
||||
mAdapter = new UltimiArriviFornitoreListAdapter(getActivity(), dataset);
|
||||
mAdapter.setOnSelectionChanged(this::onSingleSelectionChanged);
|
||||
|
||||
mBinding.recyclerView.setHasFixedSize(true);
|
||||
mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
mBinding.recyclerView.setAdapter(adapter);
|
||||
mBinding.recyclerView.setAdapter(mAdapter);
|
||||
mBinding.fastscroll.setRecyclerView(mBinding.recyclerView);
|
||||
|
||||
}
|
||||
@ -166,4 +177,25 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
|
||||
PickingResiActivity.startActivity(getActivity(), getText(R.string.ultime_arrivi_fornitore_title).toString(), selectedConsegne, -1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFilterClick() {
|
||||
DialogUltimiArriviFornitoreFiltroAvanzato.make(getActivity(), mItems, mAppliedFilterViewModel, (filteredOrderList, filter) -> {
|
||||
mAppliedFilterViewModel = filter;
|
||||
|
||||
if(filteredOrderList != null){
|
||||
|
||||
refreshItems(filteredOrderList);
|
||||
}
|
||||
|
||||
}).show();
|
||||
}
|
||||
|
||||
|
||||
private void refreshItems(List<DocumentoResoDTO> items){
|
||||
mBinding.emptyView.setVisibility((items != null && items.size() > 0) ? View.GONE : View.VISIBLE);
|
||||
|
||||
mRenderedItems.clear();
|
||||
if(items != null) mRenderedItems.addAll(items);
|
||||
mAdapter.updateItems(mRenderedItems);
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package it.integry.integrywmsnative.gest.ultime_arrivi_fornitore.core;
|
||||
package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
@ -21,8 +21,8 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.FragmentUltimeConsegneFornitoreListHeaderBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentUltimeConsegneFornitoreListSingleItemBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreListHeaderBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreListSingleItemBinding;
|
||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
||||
|
||||
public class UltimiArriviFornitoreListAdapter extends SectionedRecyclerViewAdapter<UltimiArriviFornitoreListAdapter.SubheaderHolder, UltimiArriviFornitoreListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
||||
@ -41,9 +41,9 @@ public class UltimiArriviFornitoreListAdapter extends SectionedRecyclerViewAdapt
|
||||
|
||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FragmentUltimeConsegneFornitoreListHeaderBinding mBinding;
|
||||
FragmentUltimiArriviFornitoreListHeaderBinding mBinding;
|
||||
|
||||
SubheaderHolder(FragmentUltimeConsegneFornitoreListHeaderBinding binding) {
|
||||
SubheaderHolder(FragmentUltimiArriviFornitoreListHeaderBinding binding) {
|
||||
super(binding.getRoot());
|
||||
this.mBinding = binding;
|
||||
}
|
||||
@ -52,9 +52,9 @@ public class UltimiArriviFornitoreListAdapter extends SectionedRecyclerViewAdapt
|
||||
|
||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
FragmentUltimeConsegneFornitoreListSingleItemBinding mBinding;
|
||||
FragmentUltimiArriviFornitoreListSingleItemBinding mBinding;
|
||||
|
||||
SingleItemViewHolder(FragmentUltimeConsegneFornitoreListSingleItemBinding binding) {
|
||||
SingleItemViewHolder(FragmentUltimiArriviFornitoreListSingleItemBinding binding) {
|
||||
super(binding.getRoot());
|
||||
this.mBinding = binding;
|
||||
}
|
||||
@ -70,41 +70,19 @@ public class UltimiArriviFornitoreListAdapter extends SectionedRecyclerViewAdapt
|
||||
this.mDataset = new ArrayList<>();
|
||||
this.mSectionTitleItems = new ArrayList<>();
|
||||
|
||||
this.mDataset = Stream.of(dataset)
|
||||
.sortBy(DocumentoResoDTO::getRagSoc)
|
||||
.toList();
|
||||
|
||||
|
||||
Stream.of(mDataset)
|
||||
.map(DocumentoResoDTO::getRagSoc)
|
||||
.distinct()
|
||||
.forEach(x -> {
|
||||
this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
|
||||
|
||||
long count = Stream.of(dataset)
|
||||
.filter(y -> y.getRagSoc().equalsIgnoreCase(x))
|
||||
.count();
|
||||
|
||||
|
||||
for(int i = 0; i < count; i++) this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
|
||||
});
|
||||
|
||||
long count = Stream.of(dataset)
|
||||
.filter(x -> UtilityString.isNullOrEmpty(x.getRagSoc()))
|
||||
.count();
|
||||
|
||||
mDataset.addAll(sort(dataset));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||
FragmentUltimeConsegneFornitoreListSingleItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_ultime_consegne_fornitore__list_single_item, parent, false);
|
||||
FragmentUltimiArriviFornitoreListSingleItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_ultimi_arrivi_fornitore__list_single_item, parent, false);
|
||||
return new SingleItemViewHolder(binding);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||
FragmentUltimeConsegneFornitoreListHeaderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_ultime_consegne_fornitore__list_header, parent, false);
|
||||
FragmentUltimiArriviFornitoreListHeaderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_ultimi_arrivi_fornitore__list_header, parent, false);
|
||||
return new SubheaderHolder(binding);
|
||||
}
|
||||
|
||||
@ -171,9 +149,42 @@ public class UltimiArriviFornitoreListAdapter extends SectionedRecyclerViewAdapt
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void updateItems(List<DocumentoResoDTO> updatedDataset) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll(sort(updatedDataset));
|
||||
notifyDataSetChanged();
|
||||
notifyDataChanged();
|
||||
}
|
||||
|
||||
|
||||
public void setOnSelectionChanged(RunnableArgs<DocumentoResoDTO> mSelectionChanged) {
|
||||
this.mOnSelectionChanged = mSelectionChanged;
|
||||
}
|
||||
|
||||
|
||||
private List<DocumentoResoDTO> sort(List<DocumentoResoDTO> dataset) {
|
||||
List<DocumentoResoDTO> items = Stream.of(dataset)
|
||||
.sortBy(DocumentoResoDTO::getRagSoc)
|
||||
.toList();
|
||||
|
||||
|
||||
Stream.of(items)
|
||||
.map(DocumentoResoDTO::getRagSoc)
|
||||
.distinct()
|
||||
.forEach(x -> {
|
||||
this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
|
||||
|
||||
long count = Stream.of(dataset)
|
||||
.filter(y -> y.getRagSoc().equalsIgnoreCase(x))
|
||||
.count();
|
||||
|
||||
|
||||
for(int i = 0; i < count; i++) this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
|
||||
});
|
||||
return items;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,206 @@
|
||||
package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.dialog;
|
||||
|
||||
import android.app.DatePickerDialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.annimon.stream.function.Predicate;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.di.BindableString;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogUltimeConsegneFiltroAvanzatoBinding;
|
||||
import it.integry.integrywmsnative.databinding.DialogUltimiArriviFornitoreFiltroAvanzatoBinding;
|
||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzato;
|
||||
|
||||
public class DialogUltimiArriviFornitoreFiltroAvanzato {
|
||||
|
||||
private AlertDialog mAlert;
|
||||
private Context mContext;
|
||||
private DialogUltimiArriviFiltroAvanzatoViewModel mBaseViewModel;
|
||||
private RunnableArgss<List<DocumentoResoDTO>, DialogUltimiArriviFiltroAvanzatoViewModel> mOnDismiss;
|
||||
|
||||
|
||||
|
||||
private ArrayAdapter<String> arrayAdapterRagSoc;
|
||||
|
||||
private List<DocumentoResoDTO> mItems;
|
||||
private List<DocumentoResoDTO> mFilteredItems;
|
||||
|
||||
private Predicate<DocumentoResoDTO> currentRagSocPredicate = null;
|
||||
private Predicate<DocumentoResoDTO> currentDataDocPredicate = null;
|
||||
|
||||
public static AlertDialog make(final Context context,
|
||||
final List<DocumentoResoDTO> items,
|
||||
DialogUltimiArriviFiltroAvanzatoViewModel baseViewModel,
|
||||
RunnableArgss<List<DocumentoResoDTO>, DialogUltimiArriviFiltroAvanzatoViewModel> onDismiss) {
|
||||
return new DialogUltimiArriviFornitoreFiltroAvanzato(context, items, baseViewModel, onDismiss).mAlert;
|
||||
}
|
||||
|
||||
public DialogUltimiArriviFornitoreFiltroAvanzato(final Context context,
|
||||
final List<DocumentoResoDTO> items,
|
||||
DialogUltimiArriviFiltroAvanzatoViewModel baseViewModel,
|
||||
RunnableArgss<List<DocumentoResoDTO>, DialogUltimiArriviFiltroAvanzatoViewModel> onDismiss) {
|
||||
mContext = context;
|
||||
mItems = items;
|
||||
mBaseViewModel = baseViewModel;
|
||||
mOnDismiss = onDismiss;
|
||||
|
||||
DialogUltimiArriviFiltroAvanzatoViewModel viewModel = baseViewModel != null ? baseViewModel : new DialogUltimiArriviFiltroAvanzatoViewModel();
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
DialogUltimiArriviFornitoreFiltroAvanzatoBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_ultimi_arrivi_fornitore_filtro_avanzato, null, false);
|
||||
|
||||
final AlertDialog.Builder dialog = new AlertDialog.Builder(context)
|
||||
.setView(binding.getRoot());
|
||||
|
||||
binding.setViewmodel(viewModel);
|
||||
initViewModelNew(viewModel);
|
||||
initView(binding, viewModel);
|
||||
|
||||
mAlert = dialog.create();
|
||||
mAlert.setCanceledOnTouchOutside(false);
|
||||
|
||||
mAlert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
mAlert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
binding.positiveBtn.setOnClickListener(view -> {
|
||||
mAlert.dismiss();
|
||||
});
|
||||
|
||||
binding.neutralBtn.setOnClickListener(view -> {
|
||||
resetAll(viewModel);
|
||||
});
|
||||
|
||||
|
||||
mAlert.setOnDismissListener(dialogInterface -> {
|
||||
if(mOnDismiss != null) mOnDismiss.run(mFilteredItems, viewModel);
|
||||
});
|
||||
|
||||
refreshList();
|
||||
|
||||
}
|
||||
|
||||
private void resetAll(DialogUltimiArriviFiltroAvanzatoViewModel viewModel) {
|
||||
viewModel.ragSoc.set(null);
|
||||
viewModel.dataDoc.set(null);
|
||||
}
|
||||
|
||||
private void initView(DialogUltimiArriviFornitoreFiltroAvanzatoBinding bindings, DialogUltimiArriviFiltroAvanzatoViewModel viewModel) {
|
||||
|
||||
arrayAdapterRagSoc = new ArrayAdapter(mContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterRagSoc.addAll(getAvailableRagSocs(false));
|
||||
bindings.filledExposedDropdownRagSoc.setAdapter(arrayAdapterRagSoc);
|
||||
|
||||
bindings.filledExposedDropdownDataDoc.setOnClickListener(view -> {
|
||||
Calendar c = UtilityDate.getCalendarInstance();
|
||||
|
||||
if(viewModel.dataDocDate != null) {
|
||||
c.setTime(viewModel.dataDocDate);
|
||||
}
|
||||
|
||||
int mYear = c.get(Calendar.YEAR);
|
||||
int mMonth = c.get(Calendar.MONTH);
|
||||
int mDay = c.get(Calendar.DAY_OF_MONTH);
|
||||
|
||||
DatePickerDialog datePickerDialog = new DatePickerDialog(mContext,
|
||||
(view2, year, month, day) -> {
|
||||
|
||||
viewModel.dataDocDate = new GregorianCalendar(year, month, day).getTime();
|
||||
viewModel.dataDoc.set(UtilityDate.formatDate(viewModel.dataDocDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
}, mYear, mMonth, mDay);
|
||||
datePickerDialog.show();
|
||||
});
|
||||
|
||||
|
||||
viewModel.ragSoc.refresh();
|
||||
viewModel.dataDoc.refresh();
|
||||
}
|
||||
|
||||
private void initViewModelNew(DialogUltimiArriviFiltroAvanzatoViewModel viewModel) {
|
||||
|
||||
BindableString.resetListeners(viewModel.ragSoc);
|
||||
BindableString.registerListener(viewModel.ragSoc, value -> {
|
||||
if (UtilityString.isNullOrEmpty(value)) currentRagSocPredicate = null;
|
||||
else {
|
||||
currentRagSocPredicate = o -> o.getRagSoc().equalsIgnoreCase(viewModel.ragSoc.get());
|
||||
}
|
||||
|
||||
refreshList();
|
||||
});
|
||||
|
||||
BindableString.resetListeners(viewModel.dataDoc);
|
||||
BindableString.registerListener(viewModel.dataDoc, value -> {
|
||||
if (UtilityString.isNullOrEmpty(value)) currentDataDocPredicate = null;
|
||||
else {
|
||||
currentDataDocPredicate = o -> o.getDataDocD().equals(viewModel.dataDocDate);
|
||||
}
|
||||
|
||||
refreshList();
|
||||
|
||||
arrayAdapterRagSoc.clear();
|
||||
arrayAdapterRagSoc.addAll(getAvailableRagSocs(true));
|
||||
});
|
||||
}
|
||||
|
||||
private List<String> getAvailableRagSocs(boolean skipRecalc) {
|
||||
if(currentDataDocPredicate == null){
|
||||
mFilteredItems = mItems;
|
||||
} else if(!skipRecalc){
|
||||
Stream<DocumentoResoDTO> tmpStream = Stream.of(mItems)
|
||||
.filter(x ->
|
||||
(currentDataDocPredicate == null || (currentDataDocPredicate.test(x)))
|
||||
);
|
||||
|
||||
mFilteredItems = tmpStream.toList();
|
||||
}
|
||||
|
||||
return Stream.of(mFilteredItems).map(DocumentoResoDTO::getRagSoc).distinct().withoutNulls().toList();
|
||||
}
|
||||
|
||||
|
||||
private void refreshList() {
|
||||
|
||||
if(currentRagSocPredicate == null && currentDataDocPredicate == null){
|
||||
mFilteredItems = mItems;
|
||||
} else {
|
||||
Stream<DocumentoResoDTO> tmpStream = Stream.of(mItems)
|
||||
.filter(x ->
|
||||
(currentRagSocPredicate == null || (currentRagSocPredicate.test(x))) &&
|
||||
(currentDataDocPredicate== null || (currentDataDocPredicate.test(x)))
|
||||
);
|
||||
|
||||
mFilteredItems = tmpStream.toList();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class DialogUltimiArriviFiltroAvanzatoViewModel {
|
||||
|
||||
public BindableString ragSoc = new BindableString();
|
||||
public BindableString dataDoc = new BindableString();
|
||||
|
||||
public Date dataDocDate;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package it.integry.integrywmsnative.gest.ultime_arrivi_fornitore.rest;
|
||||
package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.rest;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package it.integry.integrywmsnative.gest.vendita.dialogs;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import android.app.DatePickerDialog;
|
||||
import android.content.Context;
|
||||
|
||||
@ -91,7 +91,7 @@ public class DialogVenditaFiltroAvanzato {
|
||||
.setView(binding.getRoot());
|
||||
|
||||
binding.setViewmodel(viewModel);
|
||||
initViewModelNew(viewModel, binding);
|
||||
initViewModelNew(viewModel);
|
||||
initView(binding, viewModel);
|
||||
|
||||
currentAlert = alertDialog.create();
|
||||
@ -209,7 +209,7 @@ public class DialogVenditaFiltroAvanzato {
|
||||
|
||||
}
|
||||
|
||||
private void initViewModelNew(DialogVenditaFiltroAvanzatoViewModel viewModel, DialogVenditaFiltroAvanzatoBinding bindings) {
|
||||
private void initViewModelNew(DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
||||
BindableString.registerListener(viewModel.idViaggio, value -> {
|
||||
if(UtilityString.isNullOrEmpty(value)) currentIdViaggioPredicate = null;
|
||||
else {
|
||||
|
||||
@ -28,7 +28,7 @@ import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
|
||||
import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
|
||||
public class VenditaViewModel {
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ import android.view.MenuItem;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
@ -24,7 +25,7 @@ import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel.VenditaOrdineInevasoViewModel;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||
|
||||
public class VenditaOrdineInevasoActivity extends AppCompatActivity {
|
||||
public class VenditaOrdineInevasoActivity extends BaseActivity {
|
||||
|
||||
|
||||
private ActivityVenditaOrdineInevasoBinding mBindings;
|
||||
|
||||
@ -69,7 +69,7 @@ import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShould
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArt;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
|
||||
public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IOnOrdineVenditaRowDispatched {
|
||||
|
||||
|
||||
@ -2,13 +2,13 @@ package it.integry.integrywmsnative.gest.versamento_merce.viewmodel;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableField;
|
||||
import android.text.Html;
|
||||
import android.text.SpannableString;
|
||||
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableField;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@ -16,10 +16,9 @@ import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeType;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||
@ -28,6 +27,9 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
@ -42,8 +44,6 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeType;
|
||||
|
||||
public class VersamentoMerceViewModel {
|
||||
|
||||
@ -72,6 +72,8 @@ public class VersamentoMerceViewModel {
|
||||
((IPoppableActivity)mContext).pop();
|
||||
} else if((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)){
|
||||
setMtbColt(mtbColt);
|
||||
} else if(mtbColt.getGestioneEnum() == GestioneEnum.VENDITA && mtbColt.getSegno().equals(+1)){
|
||||
setMtbColt(mtbColt);
|
||||
} else {
|
||||
DialogSimpleMessageHelper.makeWarningDialog(mContext,
|
||||
new SpannableString(Html.fromHtml("Sono accettate solamente UL di <b>Acquisto</b> o <b>Lavorazione</b> di <b>CARICO</b>")),
|
||||
@ -305,6 +307,10 @@ public class VersamentoMerceViewModel {
|
||||
.setDataColloRif(cloneMtbColr.getDataColloS());
|
||||
}
|
||||
|
||||
if(sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA && sourceMtbColt.getSegno() == +1){
|
||||
cloneMtbColr.setCodJcom(null);
|
||||
}
|
||||
|
||||
cloneMtbColr
|
||||
.setGestione((String) null)
|
||||
.setSerCollo(null)
|
||||
|
||||
@ -9,39 +9,48 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.DialogProgressBinding;
|
||||
|
||||
public class DialogProgress {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private DialogProgressBinding mBinding;
|
||||
|
||||
private Dialog mDialog;
|
||||
|
||||
public static Dialog make(Context context,String subtitle) {
|
||||
DialogProgress progress = new DialogProgress(context);
|
||||
progress.setSubtitle(subtitle);
|
||||
return progress.mDialog;
|
||||
}
|
||||
|
||||
public static Dialog make(Context context) {
|
||||
return new DialogProgress(context).mDialog;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public DialogProgress(Context context) {
|
||||
private DialogProgress(Context context) {
|
||||
mContext = context;
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||
View currentView = inflater.inflate(R.layout.dialog_progress, null, false);
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_progress, null, false);
|
||||
|
||||
final Thread[] progressBarThread = new Thread[1];
|
||||
|
||||
mDialog = new Dialog(mContext);
|
||||
mDialog.setContentView(currentView);
|
||||
mDialog.setContentView(mBinding.getRoot());
|
||||
mDialog.setCanceledOnTouchOutside(false);
|
||||
mDialog.setCancelable(false);
|
||||
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
mDialog.setOnShowListener(dialog -> {
|
||||
// ((ProgressBar) currentView.findViewById(R.id.progressBar)).setIndeterminate(true);
|
||||
progressBarThread[0] = UtilityProgress.makeProgressBarIndeterminate(currentView.findViewById(R.id.progressBar));
|
||||
progressBarThread[0] = UtilityProgress.makeProgressBarIndeterminate(mBinding.progressBar);
|
||||
});
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
@ -49,4 +58,8 @@ public class DialogProgress {
|
||||
});
|
||||
}
|
||||
|
||||
private void setSubtitle(String subtitle){
|
||||
mBinding.subtitleText.setText(subtitle);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.databinding.DialogAskPositionOfLuBinding;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
|
||||
public class DialogAskPositionOfLU {
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.base;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.res.ColorStateList;
|
||||
|
||||
@ -34,7 +34,7 @@ import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsLayoutBinding;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
|
||||
public class DialogChooseArtsFromListaArts {
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.input_quantity;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import android.app.DatePickerDialog;
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
@ -47,7 +47,7 @@ import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogInputQuantityArticoloBinding;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
|
||||
public class DialogInputQuantity {
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogScanArtBinding;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
|
||||
public class DialogScanArt {
|
||||
|
||||
|
||||
@ -1,28 +1,28 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.scan_or_create_lu;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.text.SpannableString;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
@ -30,7 +30,6 @@ import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogScanOrCreateLuBinding;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
|
||||
public class DialogScanOrCreateLU {
|
||||
|
||||
|
||||
BIN
app/src/main/res/drawable/ic_dashboard_purchase_orders_pv.png
Normal file
BIN
app/src/main/res/drawable/ic_dashboard_purchase_orders_pv.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 9.3 KiB |
9
app/src/main/res/drawable/ic_purchasing_orders.xml
Normal file
9
app/src/main/res/drawable/ic_purchasing_orders.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M7,18c-1.1,0 -1.99,0.9 -1.99,2S5.9,22 7,22s2,-0.9 2,-2 -0.9,-2 -2,-2zM1,2v2h2l3.6,7.59 -1.35,2.45c-0.16,0.28 -0.25,0.61 -0.25,0.96 0,1.1 0.9,2 2,2h12v-2L7.42,15c-0.14,0 -0.25,-0.11 -0.25,-0.25l0.03,-0.12 0.9,-1.63h7.45c0.75,0 1.41,-0.41 1.75,-1.03l3.58,-6.49c0.08,-0.14 0.12,-0.31 0.12,-0.48 0,-0.55 -0.45,-1 -1,-1L5.21,4l-0.94,-2L1,2zM17,18c-1.1,0 -1.99,0.9 -1.99,2s0.89,2 1.99,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/ic_save_24.xml
Normal file
9
app/src/main/res/drawable/ic_save_24.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M17,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,7l-4,-4zM12,19c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3 3,1.34 3,3 -1.34,3 -3,3zM15,9L5,9L5,5h10v4z"/>
|
||||
</vector>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user