Compare commits
146 Commits
v1.40.07(4
...
v1.41.06(4
| Author | SHA1 | Date | |
|---|---|---|---|
| 7201e5c8f8 | |||
| 929c52b94c | |||
| 2adfda5f30 | |||
| 421accaf15 | |||
| 574ad6176b | |||
| 290d737ff7 | |||
| 4b0fbd0b6b | |||
| 6327089a55 | |||
| 807c3a8cde | |||
| 665c261b9a | |||
| bdd6f21522 | |||
| 2a0465dc0f | |||
| 3ebe311728 | |||
| 95a51ecc7a | |||
| 342753aeac | |||
| 845a4c8faa | |||
| 0328ebad85 | |||
| c42a597bb4 | |||
| 77c5252bf6 | |||
| b40781db84 | |||
| f5a0bf67c8 | |||
| 044d60fb66 | |||
| 7999e98bd9 | |||
| 7c14688ef3 | |||
| 8039d1942d | |||
| 03e2f4390b | |||
| 08656ae276 | |||
| 9f2ba56c59 | |||
| 34e1ba8f95 | |||
| 4e95f4f9c9 | |||
| 1463510b08 | |||
| a771335ff1 | |||
| 7b1f58412a | |||
| d897c83165 | |||
| 44b9bc3fc1 | |||
| fa95ed1391 | |||
| 26ca580ba4 | |||
| f65e69b745 | |||
| 5a147fb0de | |||
| 64e38ce05a | |||
| 6c79a1781d | |||
| 6177d84131 | |||
| c6975badce | |||
| c548c6484f | |||
| 9aae16521f | |||
| 559ff4e94c | |||
| 7b11f503d8 | |||
| bc788c3a34 | |||
| f936c71188 | |||
| 25a7982a87 | |||
| 74a3749e44 | |||
| 074fb10b44 | |||
| 4f490eb737 | |||
| 2b981b6c40 | |||
| bec80d980f | |||
| 8a5c8f5c94 | |||
| da301ec6b2 | |||
| a5a9cb1c50 | |||
| cef74ab71f | |||
| 3f647952c0 | |||
| 9bf55aae85 | |||
| f9a31faa78 | |||
| 9a643837d4 | |||
| f458a52b18 | |||
| 132437d134 | |||
| 022841c195 | |||
| bdbecfb037 | |||
| 1a501af172 | |||
| fe558a8be8 | |||
| 05d930d8f7 | |||
| 267aa85e01 | |||
| 89a98cac8b | |||
| efc052d622 | |||
| 6f61f3af9b | |||
| e7d06c9752 | |||
| 81e3c70960 | |||
| 76a0fe9b6f | |||
| a9bab6db56 | |||
| 85197c1f9b | |||
| ece434806f | |||
| 0962192144 | |||
| 38139a1ec9 | |||
| 56e5603256 | |||
| b5c2efa9e2 | |||
| 26f9f0e16c | |||
| 9abba0ce82 | |||
| c616a9d31a | |||
| e45a980ce3 | |||
| 46c9fa184d | |||
| 3a31fba1b4 | |||
| 6cded1d2d1 | |||
| 027d0e891b | |||
| 93abea0823 | |||
| 5c5216e207 | |||
| 7a20ff6ddc | |||
| 048b7d7f56 | |||
| f009726cf0 | |||
| fb213cbdbb | |||
| 971dcaed87 | |||
| 7b132def2a | |||
| 998dc54292 | |||
| 157eaf8760 | |||
| 10ffcf7806 | |||
| 392dd18338 | |||
| d4c7cdf400 | |||
| cde96ae694 | |||
| e49d35fdbc | |||
| 55db6d362d | |||
| 925cb6ae07 | |||
| c4f1d53199 | |||
| e18ac7a390 | |||
| cc454aea1a | |||
| 5cf275e43c | |||
| 53fe1db488 | |||
| 64082fc5ee | |||
| f9c642ad13 | |||
| bd7edf2357 | |||
| b7605bd28c | |||
| ad01283511 | |||
| adeab93b17 | |||
| 51480c2b06 | |||
| d04b3797ce | |||
| 518a00becf | |||
| c808cf7ce3 | |||
| 8cb488d81f | |||
| ed3f84d0ea | |||
| d9b02c4402 | |||
| 23522c9370 | |||
| f79b40c574 | |||
| 835915b46a | |||
| e643f25aa3 | |||
| 230a32139d | |||
| b0272cd9e0 | |||
| fa9947f22b | |||
| 5d3bb333e1 | |||
| 9f7085dfed | |||
| 95f765756c | |||
| a846ec00d7 | |||
| 6edc1917e1 | |||
| 1b864253b5 | |||
| f212987547 | |||
| 76f9c7030b | |||
| 05bc6e3fbe | |||
| 38dc5e134c | |||
| 76cf6c7d66 | |||
| 21100d517c |
18
.idea/deploymentTargetSelector.xml
generated
Normal file
18
.idea/deploymentTargetSelector.xml
generated
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="deploymentTargetSelector">
|
||||||
|
<selectionStates>
|
||||||
|
<SelectionState runConfigName="app">
|
||||||
|
<option name="selectionMode" value="DROPDOWN" />
|
||||||
|
<DropdownSelection timestamp="2024-09-13T09:26:42.884931500Z">
|
||||||
|
<Target type="DEFAULT_BOOT">
|
||||||
|
<handle>
|
||||||
|
<DeviceId pluginId="PhysicalDevice" identifier="serial=R52T60AZ93A" />
|
||||||
|
</handle>
|
||||||
|
</Target>
|
||||||
|
</DropdownSelection>
|
||||||
|
<DialogSelection />
|
||||||
|
</SelectionState>
|
||||||
|
</selectionStates>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
9
.idea/fileTemplates/Android Dialog.java
generated
9
.idea/fileTemplates/Android Dialog.java
generated
@@ -84,6 +84,11 @@ Create the following layout resource file [dialog_${dashName}.xml]
|
|||||||
|
|
||||||
private Dialog${NAME}View() {
|
private Dialog${NAME}View() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialog${NAME}Component()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -105,10 +110,6 @@ Create the following layout resource file [dialog_${dashName}.xml]
|
|||||||
[b] into interface body
|
[b] into interface body
|
||||||
Dialog${NAME}Component.Factory dialog${NAME}Component();
|
Dialog${NAME}Component.Factory dialog${NAME}Component();
|
||||||
*/
|
*/
|
||||||
MainApplication.appComponent
|
|
||||||
.dialog${NAME}Component()
|
|
||||||
.create()
|
|
||||||
.inject(this);
|
|
||||||
|
|
||||||
setCancelable(false);
|
setCancelable(false);
|
||||||
|
|
||||||
|
|||||||
2
.idea/kotlinc.xml
generated
2
.idea/kotlinc.xml
generated
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="KotlinJpsPluginSettings">
|
<component name="KotlinJpsPluginSettings">
|
||||||
<option name="version" value="1.9.0" />
|
<option name="version" value="1.9.20" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
17
.idea/runConfigurations.xml
generated
Normal file
17
.idea/runConfigurations.xml
generated
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RunConfigurationProducerService">
|
||||||
|
<option name="ignoredProducers">
|
||||||
|
<set>
|
||||||
|
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
|
||||||
|
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
|
||||||
|
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
|
||||||
|
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
|
||||||
|
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
|
||||||
|
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
|
||||||
|
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
|
||||||
|
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
2
.idea/runConfigurations/app.xml
generated
2
.idea/runConfigurations/app.xml
generated
@@ -1,6 +1,6 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="app" type="AndroidRunConfigurationType" factoryName="Android App">
|
<configuration default="false" name="app" type="AndroidRunConfigurationType" factoryName="Android App">
|
||||||
<module name="WMS_Native.app.main" />
|
<module name="WMS.app.main" />
|
||||||
<option name="DEPLOY" value="true" />
|
<option name="DEPLOY" value="true" />
|
||||||
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
||||||
<option name="DEPLOY_AS_INSTANT" value="false" />
|
<option name="DEPLOY_AS_INSTANT" value="false" />
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 424
|
def appVersionCode = 454
|
||||||
def appVersionName = '1.40.07'
|
def appVersionName = '1.41.06'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
@@ -103,17 +103,16 @@ dependencies {
|
|||||||
//Firebase
|
//Firebase
|
||||||
|
|
||||||
// Import the Firebase BoM
|
// Import the Firebase BoM
|
||||||
implementation platform('com.google.firebase:firebase-bom:29.1.0')
|
implementation platform('com.google.firebase:firebase-bom:32.8.1')
|
||||||
implementation 'com.google.firebase:firebase-analytics'
|
implementation 'com.google.firebase:firebase-analytics'
|
||||||
implementation 'com.google.firebase:firebase-core'
|
|
||||||
implementation 'com.google.firebase:firebase-crashlytics'
|
implementation 'com.google.firebase:firebase-crashlytics'
|
||||||
implementation 'com.google.firebase:firebase-perf'
|
implementation 'com.google.firebase:firebase-perf'
|
||||||
implementation 'com.google.android.gms:play-services-basement:18.2.0'
|
implementation 'com.google.android.gms:play-services-basement:18.3.0'
|
||||||
|
|
||||||
|
|
||||||
implementation 'androidx.appcompat:appcompat:1.6.1'
|
implementation 'androidx.appcompat:appcompat:1.6.1'
|
||||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||||
implementation 'com.google.android.material:material:1.10.0'
|
implementation 'com.google.android.material:material:1.11.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||||
implementation 'androidx.cardview:cardview:1.0.0'
|
implementation 'androidx.cardview:cardview:1.0.0'
|
||||||
implementation 'androidx.recyclerview:recyclerview:1.3.2'
|
implementation 'androidx.recyclerview:recyclerview:1.3.2'
|
||||||
@@ -128,7 +127,7 @@ dependencies {
|
|||||||
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
|
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
|
||||||
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
|
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
|
||||||
implementation 'com.annimon:stream:1.2.2'
|
implementation 'com.annimon:stream:1.2.2'
|
||||||
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.2'
|
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.7.0'
|
||||||
// implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
// implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
||||||
implementation 'org.apache.commons:commons-text:1.9'
|
implementation 'org.apache.commons:commons-text:1.9'
|
||||||
|
|
||||||
|
|||||||
@@ -33,31 +33,25 @@
|
|||||||
android:requestLegacyExternalStorage="true">
|
android:requestLegacyExternalStorage="true">
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.spedizione.SpedizioneActivity"
|
android:name=".gest.spedizione.SpedizioneActivity"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:windowSoftInputMode="adjustNothing"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden" />
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity"
|
android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:windowSoftInputMode="adjustNothing"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden" />
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.prod_dettaglio_linea.ProdDettaglioLineaActivity"
|
android:name=".gest.prod_dettaglio_linea.ProdDettaglioLineaActivity"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:windowSoftInputMode="adjustNothing"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden" />
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.contab_doc_interni.edit_form.DocInterniEditFormActivity"
|
android:name=".gest.contab_doc_interni.edit_form.DocInterniEditFormActivity"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:windowSoftInputMode="adjustNothing"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden" />
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.picking_resi.PickingResiActivity"
|
android:name=".gest.picking_resi.PickingResiActivity"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden" />
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.main.MainActivity"
|
android:name=".gest.main.MainActivity"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:windowSoftInputMode="adjustNothing"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
@@ -68,28 +62,23 @@
|
|||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.login.LoginActivity"
|
android:name=".gest.login.LoginActivity"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden" />
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.accettazione_ordini_picking.AccettazioneOrdiniPickingActivity"
|
android:name=".gest.accettazione_ordini_picking.AccettazioneOrdiniPickingActivity"
|
||||||
android:theme="@style/Light"
|
android:windowSoftInputMode="adjustPan"
|
||||||
android:windowSoftInputMode="adjustNothing"
|
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden" />
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.lista_bancali.ListaBancaliActivity"
|
android:name=".gest.lista_bancali.ListaBancaliActivity"
|
||||||
android:label="@string/activity_lista_bancali_title"
|
android:label="@string/activity_lista_bancali_title"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden" />
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.contenuto_bancale.ContenutoBancaleActivity"
|
android:name=".gest.contenuto_bancale.ContenutoBancaleActivity"
|
||||||
android:label="@string/activity_contenuto_bancale_title"
|
android:label="@string/activity_contenuto_bancale_title"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden" />
|
android:configChanges="orientation|screenSize|keyboardHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.inventario.picking.PickingInventarioActivity"
|
android:name=".gest.inventario.picking.PickingInventarioActivity"
|
||||||
android:label="@string/activity_picking_inventario_title"
|
android:label="@string/activity_picking_inventario_title"
|
||||||
android:windowSoftInputMode="adjustNothing"
|
android:windowSoftInputMode="adjustNothing"
|
||||||
android:theme="@style/Light"
|
|
||||||
android:configChanges="orientation|screenSize|keyboardHidden"/>
|
android:configChanges="orientation|screenSize|keyboardHidden"/>
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
@@ -110,8 +99,7 @@
|
|||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.accettazione_bolla_picking.AccettazioneBollaPickingActivity"
|
android:name=".gest.accettazione_bolla_picking.AccettazioneBollaPickingActivity"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait" />
|
||||||
android:theme="@style/Light" />
|
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name=".core.update.GenericFileProvider"
|
android:name=".core.update.GenericFileProvider"
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazi
|
|||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoModule;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoModule;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingComponent;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingComponent;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingModule;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingModule;
|
||||||
|
import it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaModule;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniComponent;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniComponent;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniModule;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniModule;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoComponent;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoComponent;
|
||||||
@@ -27,10 +29,10 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniE
|
|||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniEditFormModule;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniEditFormModule;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsComponent;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsComponent;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsModule;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsModule;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiModule;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleComponent;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleComponent;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleModule;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleModule;
|
||||||
import it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaComponent;
|
|
||||||
import it.integry.integrywmsnative.gest.articoli_in_giacenza.ArticoliInGiacenzaModule;
|
|
||||||
import it.integry.integrywmsnative.gest.inventario.ElencoInventariComponent;
|
import it.integry.integrywmsnative.gest.inventario.ElencoInventariComponent;
|
||||||
import it.integry.integrywmsnative.gest.inventario.ElencoInventariModule;
|
import it.integry.integrywmsnative.gest.inventario.ElencoInventariModule;
|
||||||
import it.integry.integrywmsnative.gest.inventario.bottom_sheet__inventario_actions.BottomSheetInventarioActionsComponent;
|
import it.integry.integrywmsnative.gest.inventario.bottom_sheet__inventario_actions.BottomSheetInventarioActionsComponent;
|
||||||
@@ -114,6 +116,8 @@ import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaPro
|
|||||||
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdModule;
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesComponent;
|
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesModule;
|
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_vettore.DialogAskVettoreComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_vettore.DialogAskVettoreModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageComponent;
|
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageModule;
|
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListComponent;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListComponent;
|
||||||
@@ -138,6 +142,8 @@ import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtComponent;
|
|||||||
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule;
|
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUComponent;
|
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUModule;
|
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.DialogTracciamentoImballiComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.DialogTracciamentoImballiModule;
|
||||||
|
|
||||||
// Definition of the Application graph
|
// Definition of the Application graph
|
||||||
@Singleton
|
@Singleton
|
||||||
@@ -182,6 +188,7 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
DialogSelectDocInfoModule.class,
|
DialogSelectDocInfoModule.class,
|
||||||
DocInterniEditFormModule.class,
|
DocInterniEditFormModule.class,
|
||||||
DialogSelectDocRowsModule.class,
|
DialogSelectDocRowsModule.class,
|
||||||
|
DialogSelectLottiModule.class,
|
||||||
DialogAskClienteModule.class,
|
DialogAskClienteModule.class,
|
||||||
DialogEditArticoloModule.class,
|
DialogEditArticoloModule.class,
|
||||||
DialogPrintOrderSSCCListModule.class,
|
DialogPrintOrderSSCCListModule.class,
|
||||||
@@ -209,7 +216,9 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
DialogAskLineaProdModule.class,
|
DialogAskLineaProdModule.class,
|
||||||
ProdRiposizionamentoDaProdModule.class,
|
ProdRiposizionamentoDaProdModule.class,
|
||||||
DialogInfoGiacenzaModule.class,
|
DialogInfoGiacenzaModule.class,
|
||||||
ArticoliInGiacenzaModule.class
|
ArticoliInGiacenzaModule.class,
|
||||||
|
DialogTracciamentoImballiModule.class,
|
||||||
|
DialogAskVettoreModule.class
|
||||||
})
|
})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
@@ -326,6 +335,7 @@ public interface MainApplicationComponent {
|
|||||||
DialogInfoSituazioneArticoloComponent.Factory dialogInfoSituazioneArticoloComponent();
|
DialogInfoSituazioneArticoloComponent.Factory dialogInfoSituazioneArticoloComponent();
|
||||||
|
|
||||||
DialogSelectDocRowsComponent.Factory dialogSelectDocRowsNewComponent();
|
DialogSelectDocRowsComponent.Factory dialogSelectDocRowsNewComponent();
|
||||||
|
DialogSelectLottiComponent.Factory dialogSelectLottiComponent();
|
||||||
|
|
||||||
DialogSelectArtToOrderComponent.Factory dialogSelectArtToOrderNewComponent();
|
DialogSelectArtToOrderComponent.Factory dialogSelectArtToOrderNewComponent();
|
||||||
|
|
||||||
@@ -351,6 +361,10 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
ArticoliInGiacenzaComponent.Factory controlloGiacenzeComponent();
|
ArticoliInGiacenzaComponent.Factory controlloGiacenzeComponent();
|
||||||
|
|
||||||
|
DialogTracciamentoImballiComponent.Factory dialogTracciamentoImballiComponent();
|
||||||
|
|
||||||
|
DialogAskVettoreComponent.Factory dialogAskVettoreComponent();
|
||||||
|
|
||||||
void inject(MainApplication mainApplication);
|
void inject(MainApplication mainApplication);
|
||||||
|
|
||||||
void inject(AppContext mainApplication);
|
void inject(AppContext mainApplication);
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import it.integry.integrywmsnative.core.rest.consumers.DocumentRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.EntityRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.EntityRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoBufferRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoBufferRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||||
@@ -42,6 +43,7 @@ import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ProductionLinesRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ProductionLinesRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.VettoriRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.services.inventario.InventarioService;
|
import it.integry.integrywmsnative.core.services.inventario.InventarioService;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.sound.SoundAlertService;
|
import it.integry.integrywmsnative.core.sound.SoundAlertService;
|
||||||
@@ -172,8 +174,8 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
MagazzinoRESTConsumer provideMagazzinoRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
MagazzinoRESTConsumer provideMagazzinoRESTConsumer(ExecutorService executorService, SystemRESTConsumer systemRESTConsumer) {
|
||||||
return new MagazzinoRESTConsumer(systemRESTConsumer);
|
return new MagazzinoRESTConsumer(executorService, systemRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -247,8 +249,20 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
GiacenzaRESTConsumer provideGiacenzaRESTConsumer(SystemRESTConsumer systemRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) {
|
GiacenzaRESTConsumer provideGiacenzaRESTConsumer(ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
return new GiacenzaRESTConsumer(systemRESTConsumer, articoloRESTConsumer);
|
return new GiacenzaRESTConsumer(articoloRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
ImballiRESTConsumer provideImballiRESTConsumer(ExecutorService executorService) {
|
||||||
|
return new ImballiRESTConsumer(executorService);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
VettoriRESTConsumer provideVettoriRESTConsumer(ExecutorService executorService) {
|
||||||
|
return new VettoriRESTConsumer(executorService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
|||||||
@@ -211,16 +211,19 @@ public class Converters {
|
|||||||
@Override
|
@Override
|
||||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||||
BigDecimal value = null;
|
BigDecimal value = null;
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(s.toString()))
|
if (!UtilityString.isNullOrEmpty(s.toString()))
|
||||||
value = new BigDecimal(s.toString());
|
value = new BigDecimal(s.toString());
|
||||||
|
|
||||||
observableBigDecimal.set(value);
|
observableBigDecimal.set(value);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
view.setTag(R.id.bound_observable, new Pair<>(observableBigDecimal, watcher));
|
view.setTag(R.id.bound_observable, new Pair<>(observableBigDecimal, watcher));
|
||||||
view.addTextChangedListener(watcher);
|
view.addTextChangedListener(watcher);
|
||||||
}
|
}
|
||||||
|
|
||||||
BigDecimal newValue = observableBigDecimal.get();
|
BigDecimal newValue = observableBigDecimal.get();
|
||||||
BigDecimal viewValue = view.getText().toString().trim().length() > 0 ? new BigDecimal(view.getText().toString()) : null;
|
BigDecimal viewValue = !view.getText().toString().trim().isEmpty() ? new BigDecimal(view.getText().toString()) : null;
|
||||||
|
|
||||||
if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
||||||
view.setText(UtilityNumber.decimalToString(newValue));
|
view.setText(UtilityNumber.decimalToString(newValue));
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import android.view.KeyEvent;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.MainApplication;
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
@@ -18,7 +20,8 @@ public class BaseActivity extends AppCompatActivity {
|
|||||||
@Inject
|
@Inject
|
||||||
public DialogProgressView mCurrentProgress;
|
public DialogProgressView mCurrentProgress;
|
||||||
|
|
||||||
private boolean progressOpened;
|
@Inject
|
||||||
|
public ExecutorService executorService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
@@ -47,28 +50,19 @@ public class BaseActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void openProgress() {
|
private void openProgress() {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
if (!progressOpened && !this.mCurrentProgress.isAdded() && !this.mCurrentProgress.isInLayout()) {
|
executorService.execute(() -> {
|
||||||
this.progressOpened = true;
|
this.mCurrentProgress.show(getSupportFragmentManager());
|
||||||
runOnUiThread(() -> {
|
});
|
||||||
try {
|
|
||||||
this.mCurrentProgress.show(getSupportFragmentManager(), "tag");
|
|
||||||
} catch (IllegalStateException ise) {
|
|
||||||
//ignored
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void closeProgress() {
|
private void closeProgress() {
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
if (progressOpened) {
|
executorService.execute(() -> {
|
||||||
this.progressOpened = false;
|
mCurrentProgress.dismiss();
|
||||||
runOnUiThread(() -> {
|
});
|
||||||
mCurrentProgress.dismiss();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import android.os.Bundle;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.WindowManager;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@@ -12,6 +13,8 @@ import androidx.fragment.app.DialogFragment;
|
|||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.fragment.app.FragmentTransaction;
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.MainApplication;
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
@@ -19,11 +22,13 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
|
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
|
||||||
|
|
||||||
public class BaseDialogFragment extends DialogFragment implements DialogInterface.OnShowListener {
|
public abstract class BaseDialogFragment extends DialogFragment implements DialogInterface.OnShowListener {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public DialogProgressView mCurrentProgress;
|
public DialogProgressView mCurrentProgress;
|
||||||
private boolean progressOpened;
|
|
||||||
|
@Inject
|
||||||
|
public ExecutorService executorService;
|
||||||
|
|
||||||
private boolean mBarcodeListener = false;
|
private boolean mBarcodeListener = false;
|
||||||
|
|
||||||
@@ -69,22 +74,19 @@ public class BaseDialogFragment extends DialogFragment implements DialogInterfac
|
|||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void openProgress() {
|
private void openProgress() {
|
||||||
if (!progressOpened && !this.mCurrentProgress.isAdded() && !this.mCurrentProgress.isInLayout()) {
|
BarcodeManager.disable();
|
||||||
this.progressOpened = true;
|
executorService.execute(() -> {
|
||||||
requireActivity().runOnUiThread(() -> {
|
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager());
|
||||||
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
|
});
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void closeProgress() {
|
private void closeProgress() {
|
||||||
if (progressOpened) {
|
BarcodeManager.enable();
|
||||||
this.progressOpened = false;
|
executorService.execute(() -> {
|
||||||
requireActivity().runOnUiThread(() -> {
|
mCurrentProgress.dismiss();
|
||||||
mCurrentProgress.dismiss();
|
});
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -111,7 +113,14 @@ public class BaseDialogFragment extends DialogFragment implements DialogInterfac
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onShow(DialogInterface dialogInterface) {
|
public void onShow(DialogInterface dialogInterface) {
|
||||||
|
getDialog().getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
|
||||||
|
|
||||||
this.initialize();
|
this.initialize();
|
||||||
|
this.onInit(dialogInterface);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onInit(DialogInterface dialogInterface) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initialize() {
|
private void initialize() {
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ public abstract class BaseFragment extends Fragment {
|
|||||||
protected ElevatedToolbar mToolbar;
|
protected ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
protected final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
protected final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private boolean progressOpened;
|
|
||||||
|
|
||||||
|
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||||
@@ -67,22 +66,16 @@ public abstract class BaseFragment extends Fragment {
|
|||||||
|
|
||||||
private void openProgress() {
|
private void openProgress() {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
if (!progressOpened && !this.mCurrentProgress.isAdded() && !this.mCurrentProgress.isInLayout()) {
|
executorService.execute(() -> {
|
||||||
this.progressOpened = true;
|
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager());
|
||||||
executorService.execute(() -> {
|
});
|
||||||
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void closeProgress() {
|
private void closeProgress() {
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
if (progressOpened) {
|
executorService.execute(() -> {
|
||||||
this.progressOpened = false;
|
mCurrentProgress.dismiss();
|
||||||
executorService.execute(() -> {
|
});
|
||||||
mCurrentProgress.dismissAllowingStateLoss();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onError(Exception ex) {
|
public void onError(Exception ex) {
|
||||||
|
|||||||
@@ -261,6 +261,11 @@ public class MtbColr extends EntityBase {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MtbColr setDataColloRif(LocalDate dataColloRif) {
|
||||||
|
this.dataColloRif = UtilityDate.formatDate(dataColloRif, UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public BigDecimal getQtaCnf() {
|
public BigDecimal getQtaCnf() {
|
||||||
return qtaCnf;
|
return qtaCnf;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import com.annimon.stream.Stream;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -160,6 +161,10 @@ public class MtbColt extends EntityBase {
|
|||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataColloS());
|
return UtilityDate.recognizeDateWithExceptionHandler(getDataColloS());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LocalDate getDataColloLD() {
|
||||||
|
return UtilityDate.recognizeLocalDateWithExceptionHandler(getDataColloS());
|
||||||
|
}
|
||||||
|
|
||||||
public MtbColt setDataCollo(String dataCollo) {
|
public MtbColt setDataCollo(String dataCollo) {
|
||||||
this.dataCollo = dataCollo;
|
this.dataCollo = dataCollo;
|
||||||
return this;
|
return this;
|
||||||
@@ -170,6 +175,11 @@ public class MtbColt extends EntityBase {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MtbColt setDataCollo(LocalDate dataCollo) {
|
||||||
|
this.dataCollo = UtilityDate.formatDate(dataCollo, UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getSerCollo() {
|
public String getSerCollo() {
|
||||||
return serCollo;
|
return serCollo;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package it.integry.integrywmsnative.core.model;
|
package it.integry.integrywmsnative.core.model;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
public class MtbTCol {
|
public class MtbTCol {
|
||||||
@@ -13,7 +15,7 @@ public class MtbTCol {
|
|||||||
private BigDecimal taraKg;
|
private BigDecimal taraKg;
|
||||||
private String descrizione;
|
private String descrizione;
|
||||||
private String codMart;
|
private String codMart;
|
||||||
private String flagUIUL;
|
private FlagUiUlEnum flagUIUL;
|
||||||
private String circuito;
|
private String circuito;
|
||||||
|
|
||||||
public String getCodTcol() {
|
public String getCodTcol() {
|
||||||
@@ -88,13 +90,12 @@ public class MtbTCol {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getFlagUIUL() {
|
public FlagUiUlEnum getFlagUIUL() {
|
||||||
return flagUIUL;
|
return flagUIUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MtbTCol setFlagUIUL(String flagUIUL) {
|
public void setFlagUIUL(FlagUiUlEnum flagUIUL) {
|
||||||
this.flagUIUL = flagUIUL;
|
this.flagUIUL = flagUIUL;
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCircuito() {
|
public String getCircuito() {
|
||||||
@@ -107,4 +108,29 @@ public class MtbTCol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public enum FlagUiUlEnum {
|
||||||
|
@SerializedName("UI")
|
||||||
|
UI("UI"),
|
||||||
|
|
||||||
|
@SerializedName("UL")
|
||||||
|
UL("UL");
|
||||||
|
|
||||||
|
private final String text;
|
||||||
|
FlagUiUlEnum(String text) {
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getText() {
|
||||||
|
return this.text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static FlagUiUlEnum fromString(String text) {
|
||||||
|
for (FlagUiUlEnum b : FlagUiUlEnum.values()) {
|
||||||
|
if (b.text.equalsIgnoreCase(text)) return b;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,95 @@
|
|||||||
|
package it.integry.integrywmsnative.core.model;
|
||||||
|
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class VtbVetr extends EntityBase {
|
||||||
|
|
||||||
|
public VtbVetr() {
|
||||||
|
type = "vtb_vetr";
|
||||||
|
}
|
||||||
|
|
||||||
|
private String codVvet;
|
||||||
|
private String codSpes;
|
||||||
|
private String idRiga;
|
||||||
|
private BigDecimal daQta;
|
||||||
|
private BigDecimal aQta;
|
||||||
|
private BigDecimal impUnt;
|
||||||
|
private BigDecimal impFisso;
|
||||||
|
private String codDivi;
|
||||||
|
|
||||||
|
public String getCodVvet() {
|
||||||
|
return codVvet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVetr setCodVvet(String codVvet) {
|
||||||
|
this.codVvet = codVvet;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodSpes() {
|
||||||
|
return codSpes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVetr setCodSpes(String codSpes) {
|
||||||
|
this.codSpes = codSpes;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIdRiga() {
|
||||||
|
return idRiga;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVetr setIdRiga(String idRiga) {
|
||||||
|
this.idRiga = idRiga;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getDaQta() {
|
||||||
|
return daQta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVetr setDaQta(BigDecimal daQta) {
|
||||||
|
this.daQta = daQta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getaQta() {
|
||||||
|
return aQta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVetr setaQta(BigDecimal aQta) {
|
||||||
|
this.aQta = aQta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getImpUnt() {
|
||||||
|
return impUnt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVetr setImpUnt(BigDecimal impUnt) {
|
||||||
|
this.impUnt = impUnt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getImpFisso() {
|
||||||
|
return impFisso;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVetr setImpFisso(BigDecimal impFisso) {
|
||||||
|
this.impFisso = impFisso;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodDivi() {
|
||||||
|
return codDivi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVetr setCodDivi(String codDivi) {
|
||||||
|
this.codDivi = codDivi;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,273 @@
|
|||||||
|
package it.integry.integrywmsnative.core.model;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class VtbVett extends EntityBase {
|
||||||
|
|
||||||
|
public VtbVett() {
|
||||||
|
type = "vtb_vett";
|
||||||
|
}
|
||||||
|
|
||||||
|
private String codVvet;
|
||||||
|
private String codLettVett;
|
||||||
|
private String codAnag;
|
||||||
|
private String ragSoc;
|
||||||
|
private String indirizzo;
|
||||||
|
private String cap;
|
||||||
|
private String citta;
|
||||||
|
private String prov;
|
||||||
|
private String nazione;
|
||||||
|
private String telefono;
|
||||||
|
private String fax;
|
||||||
|
private String partIva;
|
||||||
|
private String note;
|
||||||
|
private String eMail;
|
||||||
|
private String modStamp;
|
||||||
|
private BigDecimal coefVol;
|
||||||
|
private String flagAttivo;
|
||||||
|
private String numAutoriz;
|
||||||
|
private List<VtbVetr> vtbVetr;
|
||||||
|
|
||||||
|
|
||||||
|
public String getCodVvet() {
|
||||||
|
return codVvet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setCodVvet(String codVvet) {
|
||||||
|
this.codVvet = codVvet;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodLettVett() {
|
||||||
|
return codLettVett;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setCodLettVett(String codLettVett) {
|
||||||
|
this.codLettVett = codLettVett;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodAnag() {
|
||||||
|
return codAnag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setCodAnag(String codAnag) {
|
||||||
|
this.codAnag = codAnag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRagSoc() {
|
||||||
|
return ragSoc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setRagSoc(String ragSoc) {
|
||||||
|
this.ragSoc = ragSoc;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIndirizzo() {
|
||||||
|
return indirizzo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setIndirizzo(String indirizzo) {
|
||||||
|
this.indirizzo = indirizzo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCap() {
|
||||||
|
return cap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setCap(String cap) {
|
||||||
|
this.cap = cap;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCitta() {
|
||||||
|
return citta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setCitta(String citta) {
|
||||||
|
this.citta = citta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getProv() {
|
||||||
|
return prov;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setProv(String prov) {
|
||||||
|
this.prov = prov;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNazione() {
|
||||||
|
return nazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setNazione(String nazione) {
|
||||||
|
this.nazione = nazione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTelefono() {
|
||||||
|
return telefono;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setTelefono(String telefono) {
|
||||||
|
this.telefono = telefono;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFax() {
|
||||||
|
return fax;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setFax(String fax) {
|
||||||
|
this.fax = fax;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPartIva() {
|
||||||
|
return partIva;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setPartIva(String partIva) {
|
||||||
|
this.partIva = partIva;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNote() {
|
||||||
|
return note;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setNote(String note) {
|
||||||
|
this.note = note;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String geteMail() {
|
||||||
|
return eMail;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett seteMail(String eMail) {
|
||||||
|
this.eMail = eMail;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getModStamp() {
|
||||||
|
return modStamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setModStamp(String modStamp) {
|
||||||
|
this.modStamp = modStamp;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCoefVol() {
|
||||||
|
return coefVol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setCoefVol(BigDecimal coefVol) {
|
||||||
|
this.coefVol = coefVol;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFlagAttivo() {
|
||||||
|
return flagAttivo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setFlagAttivo(String flagAttivo) {
|
||||||
|
this.flagAttivo = flagAttivo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNumAutoriz() {
|
||||||
|
return numAutoriz;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setNumAutoriz(String numAutoriz) {
|
||||||
|
this.numAutoriz = numAutoriz;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<VtbVetr> getVtbVetr() {
|
||||||
|
return vtbVetr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VtbVett setVtbVetr(List<VtbVetr> vtbVetr) {
|
||||||
|
this.vtbVetr = vtbVetr;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) return true;
|
||||||
|
if (o == null || getClass() != o.getClass()) return false;
|
||||||
|
|
||||||
|
VtbVett vtbVett = (VtbVett) o;
|
||||||
|
|
||||||
|
if (!getCodVvet().equals(vtbVett.getCodVvet())) return false;
|
||||||
|
if (getCodLettVett() != null ? !getCodLettVett().equals(vtbVett.getCodLettVett()) : vtbVett.getCodLettVett() != null)
|
||||||
|
return false;
|
||||||
|
if (getCodAnag() != null ? !getCodAnag().equals(vtbVett.getCodAnag()) : vtbVett.getCodAnag() != null)
|
||||||
|
return false;
|
||||||
|
if (getRagSoc() != null ? !getRagSoc().equals(vtbVett.getRagSoc()) : vtbVett.getRagSoc() != null)
|
||||||
|
return false;
|
||||||
|
if (getIndirizzo() != null ? !getIndirizzo().equals(vtbVett.getIndirizzo()) : vtbVett.getIndirizzo() != null)
|
||||||
|
return false;
|
||||||
|
if (getCap() != null ? !getCap().equals(vtbVett.getCap()) : vtbVett.getCap() != null)
|
||||||
|
return false;
|
||||||
|
if (getCitta() != null ? !getCitta().equals(vtbVett.getCitta()) : vtbVett.getCitta() != null)
|
||||||
|
return false;
|
||||||
|
if (getProv() != null ? !getProv().equals(vtbVett.getProv()) : vtbVett.getProv() != null)
|
||||||
|
return false;
|
||||||
|
if (getNazione() != null ? !getNazione().equals(vtbVett.getNazione()) : vtbVett.getNazione() != null)
|
||||||
|
return false;
|
||||||
|
if (getTelefono() != null ? !getTelefono().equals(vtbVett.getTelefono()) : vtbVett.getTelefono() != null)
|
||||||
|
return false;
|
||||||
|
if (getFax() != null ? !getFax().equals(vtbVett.getFax()) : vtbVett.getFax() != null)
|
||||||
|
return false;
|
||||||
|
if (getPartIva() != null ? !getPartIva().equals(vtbVett.getPartIva()) : vtbVett.getPartIva() != null)
|
||||||
|
return false;
|
||||||
|
if (getNote() != null ? !getNote().equals(vtbVett.getNote()) : vtbVett.getNote() != null)
|
||||||
|
return false;
|
||||||
|
if (geteMail() != null ? !geteMail().equals(vtbVett.geteMail()) : vtbVett.geteMail() != null)
|
||||||
|
return false;
|
||||||
|
if (getModStamp() != null ? !getModStamp().equals(vtbVett.getModStamp()) : vtbVett.getModStamp() != null)
|
||||||
|
return false;
|
||||||
|
if (getCoefVol() != null ? !getCoefVol().equals(vtbVett.getCoefVol()) : vtbVett.getCoefVol() != null)
|
||||||
|
return false;
|
||||||
|
if (getFlagAttivo() != null ? !getFlagAttivo().equals(vtbVett.getFlagAttivo()) : vtbVett.getFlagAttivo() != null)
|
||||||
|
return false;
|
||||||
|
if (getNumAutoriz() != null ? !getNumAutoriz().equals(vtbVett.getNumAutoriz()) : vtbVett.getNumAutoriz() != null)
|
||||||
|
return false;
|
||||||
|
return getVtbVetr() != null ? getVtbVetr().equals(vtbVett.getVtbVetr()) : vtbVett.getVtbVetr() == null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int result = getCodVvet().hashCode();
|
||||||
|
result = 31 * result + (getCodLettVett() != null ? getCodLettVett().hashCode() : 0);
|
||||||
|
result = 31 * result + (getCodAnag() != null ? getCodAnag().hashCode() : 0);
|
||||||
|
result = 31 * result + (getRagSoc() != null ? getRagSoc().hashCode() : 0);
|
||||||
|
result = 31 * result + (getIndirizzo() != null ? getIndirizzo().hashCode() : 0);
|
||||||
|
result = 31 * result + (getCap() != null ? getCap().hashCode() : 0);
|
||||||
|
result = 31 * result + (getCitta() != null ? getCitta().hashCode() : 0);
|
||||||
|
result = 31 * result + (getProv() != null ? getProv().hashCode() : 0);
|
||||||
|
result = 31 * result + (getNazione() != null ? getNazione().hashCode() : 0);
|
||||||
|
result = 31 * result + (getTelefono() != null ? getTelefono().hashCode() : 0);
|
||||||
|
result = 31 * result + (getFax() != null ? getFax().hashCode() : 0);
|
||||||
|
result = 31 * result + (getPartIva() != null ? getPartIva().hashCode() : 0);
|
||||||
|
result = 31 * result + (getNote() != null ? getNote().hashCode() : 0);
|
||||||
|
result = 31 * result + (geteMail() != null ? geteMail().hashCode() : 0);
|
||||||
|
result = 31 * result + (getModStamp() != null ? getModStamp().hashCode() : 0);
|
||||||
|
result = 31 * result + (getCoefVol() != null ? getCoefVol().hashCode() : 0);
|
||||||
|
result = 31 * result + (getFlagAttivo() != null ? getFlagAttivo().hashCode() : 0);
|
||||||
|
result = 31 * result + (getNumAutoriz() != null ? getNumAutoriz().hashCode() : 0);
|
||||||
|
result = 31 * result + (getVtbVetr() != null ? getVtbVetr().hashCode() : 0);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -61,7 +61,11 @@ public class RESTBuilder {
|
|||||||
|
|
||||||
Gson gson = UtilityGson.createObject();
|
Gson gson = UtilityGson.createObject();
|
||||||
|
|
||||||
Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson)).baseUrl(endpoint).client(client).build();
|
Retrofit retrofit = new Retrofit.Builder()
|
||||||
|
.addConverterFactory(GsonConverterFactory.create(gson))
|
||||||
|
.baseUrl(endpoint)
|
||||||
|
.client(client)
|
||||||
|
.build();
|
||||||
|
|
||||||
return retrofit.create(service);
|
return retrofit.create(service);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,4 +114,21 @@ public class ColliAccettazioneRESTConsumer extends _BaseRESTConsumer implements
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void checkBarcodeUl(String barcodeUl, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed){
|
||||||
|
ColliAccettazioneRESTConsumerService colliAccettazioneRESTConsumerService = RESTBuilder.getService(ColliAccettazioneRESTConsumerService.class);
|
||||||
|
|
||||||
|
colliAccettazioneRESTConsumerService.checkIfBarcodeUlAlreadyRegistered(barcodeUl)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<Boolean>> call, Response<ServiceRESTResponse<Boolean>> response) {
|
||||||
|
analyzeAnswer(response, "accettazione/checkIfBarcodeUlAlreadyRegistered", onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<Boolean>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowResponseDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.http.Body;
|
import retrofit2.http.Body;
|
||||||
|
import retrofit2.http.GET;
|
||||||
import retrofit2.http.POST;
|
import retrofit2.http.POST;
|
||||||
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
public interface ColliAccettazioneRESTConsumerService {
|
public interface ColliAccettazioneRESTConsumerService {
|
||||||
|
|
||||||
@@ -31,4 +33,7 @@ public interface ColliAccettazioneRESTConsumerService {
|
|||||||
@POST("wms/accettazione/deleteUDCRow")
|
@POST("wms/accettazione/deleteUDCRow")
|
||||||
Call<ServiceRESTResponse<Void>> deleteUDCRow(@Body DeleteUDCRowRequestDTO deleteUDCRowRequestDTO);
|
Call<ServiceRESTResponse<Void>> deleteUDCRow(@Body DeleteUDCRowRequestDTO deleteUDCRowRequestDTO);
|
||||||
|
|
||||||
|
@GET("wms/accettazione/checkIfBarcodeUlAlreadyRegistered")
|
||||||
|
Call<ServiceRESTResponse<Boolean>> checkIfBarcodeUlAlreadyRegistered(@Query("barcodeUl") String barcodeUl);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package it.integry.integrywmsnative.core.rest.consumers;
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
@@ -13,6 +15,8 @@ import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.uds.DuplicateUDSRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.uds.DuplicateUDSResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
|
||||||
@@ -113,4 +117,21 @@ public class ColliSpedizioneRESTConsumer extends _BaseRESTConsumer implements Co
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void duplicateUDS(DuplicateUDSRequestDTO duplicateUDSRequestDTO, RunnableArgs<DuplicateUDSResponseDTO> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
ColliSpedizioneRESTConsumerService colliSpedizioneRESTConsumerService = RESTBuilder.getService(ColliSpedizioneRESTConsumerService.class);
|
||||||
|
|
||||||
|
colliSpedizioneRESTConsumerService.duplicateUDS(duplicateUDSRequestDTO)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(@NonNull Call<ServiceRESTResponse<DuplicateUDSResponseDTO>> call, @NonNull Response<ServiceRESTResponse<DuplicateUDSResponseDTO>> response) {
|
||||||
|
analyzeAnswer(response, "spedizione/duplicateUDS", onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(@NonNull Call<ServiceRESTResponse<DuplicateUDSResponseDTO>> call, @NonNull Throwable t) {
|
||||||
|
onFailed.run(new Exception());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.uds.DuplicateUDSRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.uds.DuplicateUDSResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
|
||||||
@@ -35,4 +37,7 @@ public interface ColliSpedizioneRESTConsumerService {
|
|||||||
@POST("wms/spedizione/deleteUDSRow")
|
@POST("wms/spedizione/deleteUDSRow")
|
||||||
Call<ServiceRESTResponse<Void>> deleteUDSRow(@Body DeleteUDSRowRequestDTO deleteUDSRowRequestDTO);
|
Call<ServiceRESTResponse<Void>> deleteUDSRow(@Body DeleteUDSRowRequestDTO deleteUDSRowRequestDTO);
|
||||||
|
|
||||||
|
@POST("wms/spedizione/duplicateUDS")
|
||||||
|
Call<ServiceRESTResponse<DuplicateUDSResponseDTO>> duplicateUDS(@Body DuplicateUDSRequestDTO duplicateUDSRequestDTO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.rest.consumers;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
@@ -18,7 +19,7 @@ import retrofit2.Response;
|
|||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class DocumentRESTConsumer extends _BaseRESTConsumer {
|
public class DocumentRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
|
|
||||||
public void createDocsFromColli(List<LoadColliDTO> listColli, RunnableArgs<List<DtbDoct>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void createDocsFromColli(List<LoadColliDTO> listColli, RunnableArgs<List<DtbDoct>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
DocumentiRESTConsumerService documentiRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);
|
DocumentiRESTConsumerService documentiRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);
|
||||||
@@ -50,8 +51,21 @@ public class DocumentRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void checkDocument(String fornitore, String numDoc, String dataDoc, String tipoDoc, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
var inventarioRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);
|
||||||
|
inventarioRESTConsumerService.checkDocument(fornitore, numDoc,tipoDoc, dataDoc)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(@NonNull Call<ServiceRESTResponse<Boolean>> call, @NonNull Response<ServiceRESTResponse<Boolean>> response) {
|
||||||
|
analyzeAnswer(response, "checkDocument", onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(@NonNull Call<ServiceRESTResponse<Boolean>> call, @NonNull Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void loadDocumentAvailableArts(String codDtip, String codMgrp, String codAnagForn, RunnableArgs<RetrieveDocumentoArtsResponseDTO> onComplete, RunnableArgs<Exception> onFailed) {
|
public void loadDocumentAvailableArts(String codDtip, String codMgrp, String codAnagForn, RunnableArgs<RetrieveDocumentoArtsResponseDTO> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
var inventarioRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);
|
var inventarioRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.core.rest.consumers;
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.model.DtbDoct;
|
import it.integry.integrywmsnative.core.model.DtbDoct;
|
||||||
@@ -20,8 +21,12 @@ public interface DocumentiRESTConsumerService {
|
|||||||
@POST("createDocFromColli")
|
@POST("createDocFromColli")
|
||||||
Call<ServiceRESTResponse<DtbDoct>> createDocFromColli(@Body LoadColliDTO listColli);
|
Call<ServiceRESTResponse<DtbDoct>> createDocFromColli(@Body LoadColliDTO listColli);
|
||||||
|
|
||||||
|
@GET("wms/documento/checkDoc")
|
||||||
|
Call<ServiceRESTResponse<Boolean>> checkDocument(
|
||||||
|
@Query("fornitore") String fornitore,
|
||||||
|
@Query("numDoc") String numDoc,
|
||||||
|
@Query("tipoDoc") String tipoDoc,
|
||||||
|
@Query("dataDoc") String dataDoc);
|
||||||
|
|
||||||
@GET("wms/documento/arts")
|
@GET("wms/documento/arts")
|
||||||
Call<ServiceRESTResponse<RetrieveDocumentoArtsResponseDTO>> retrieveArts(
|
Call<ServiceRESTResponse<RetrieveDocumentoArtsResponseDTO>> retrieveArts(
|
||||||
|
|||||||
@@ -25,11 +25,9 @@ import retrofit2.Response;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class GiacenzaRESTConsumer extends _BaseRESTConsumer {
|
public class GiacenzaRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
private final SystemRESTConsumer mSystemRESTConsumer;
|
|
||||||
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
|
|
||||||
public GiacenzaRESTConsumer(SystemRESTConsumer systemRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) {
|
public GiacenzaRESTConsumer(ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
this.mSystemRESTConsumer = systemRESTConsumer;
|
|
||||||
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,92 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.imballi.ImballoQuantityDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.imballi.RegistraCaricoImballiRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.imballi.RegistraScaricoImballiRequestDTO;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class ImballiRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
|
private final ExecutorService executorService;
|
||||||
|
|
||||||
|
public ImballiRESTConsumer(ExecutorService executorService) {
|
||||||
|
this.executorService = executorService;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<MtbTCol> retrieveTipiColloSyncronized(MtbTCol.FlagUiUlEnum tipoImballo) throws Exception {
|
||||||
|
ImballiRESTConsumerService service = RESTBuilder.getService(ImballiRESTConsumerService.class);
|
||||||
|
Response<ServiceRESTResponse<List<MtbTCol>>> response = service.retrieveTipiCollo(tipoImballo)
|
||||||
|
.execute();
|
||||||
|
|
||||||
|
return analyzeAnswer(response, "retrieveTipiCollo");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void retrieveTipiCollo(MtbTCol.FlagUiUlEnum tipoImballo, RunnableArgs<List<MtbTCol>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
executorService.execute(() -> {
|
||||||
|
try {
|
||||||
|
var response = retrieveTipiColloSyncronized(tipoImballo);
|
||||||
|
if (onComplete != null) onComplete.run(response);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
if (onFailed != null) onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void registraCaricoSyncronized(String codAnag, List<ImballoQuantityDTO> imballi) throws Exception {
|
||||||
|
ImballiRESTConsumerService service = RESTBuilder.getService(ImballiRESTConsumerService.class);
|
||||||
|
Response<ServiceRESTResponse<Void>> response = service.registraCarico(
|
||||||
|
new RegistraCaricoImballiRequestDTO()
|
||||||
|
.setCodAnag(codAnag)
|
||||||
|
.setUsedImballi(imballi))
|
||||||
|
.execute();
|
||||||
|
|
||||||
|
analyzeAnswer(response, "registraCarico");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void registraCarico(String codAnag, List<ImballoQuantityDTO> imballi, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
executorService.execute(() -> {
|
||||||
|
try {
|
||||||
|
registraCaricoSyncronized(codAnag, imballi);
|
||||||
|
if (onComplete != null) onComplete.run();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
if (onFailed != null) onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void registraScaricoSyncronized(String codVettore, List<ImballoQuantityDTO> imballi) throws Exception {
|
||||||
|
ImballiRESTConsumerService service = RESTBuilder.getService(ImballiRESTConsumerService.class);
|
||||||
|
Response<ServiceRESTResponse<Void>> response = service.registraScarico(
|
||||||
|
new RegistraScaricoImballiRequestDTO()
|
||||||
|
.setCodVettore(codVettore)
|
||||||
|
.setUsedImballi(imballi))
|
||||||
|
.execute();
|
||||||
|
|
||||||
|
analyzeAnswer(response, "registraScarico");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void registraScarico(String idVettore, List<ImballoQuantityDTO> imballi, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
executorService.execute(() -> {
|
||||||
|
try {
|
||||||
|
registraScaricoSyncronized(idVettore, imballi);
|
||||||
|
if (onComplete != null) onComplete.run();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
if (onFailed != null) onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.imballi.RegistraCaricoImballiRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.imballi.RegistraScaricoImballiRequestDTO;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.Body;
|
||||||
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.POST;
|
||||||
|
import retrofit2.http.Path;
|
||||||
|
|
||||||
|
public interface ImballiRESTConsumerService {
|
||||||
|
|
||||||
|
|
||||||
|
@GET("wms/imballi/retrieve/{tipo}")
|
||||||
|
Call<ServiceRESTResponse<List<MtbTCol>>> retrieveTipiCollo(@Path("tipo") MtbTCol.FlagUiUlEnum tipo);
|
||||||
|
|
||||||
|
@POST("wms/imballi/registraCarico")
|
||||||
|
Call<ServiceRESTResponse<Void>> registraCarico(@Body RegistraCaricoImballiRequestDTO registraCaricoImballiRequest);
|
||||||
|
|
||||||
|
@POST("wms/imballi/registraScarico")
|
||||||
|
Call<ServiceRESTResponse<Void>> registraScarico(@Body RegistraScaricoImballiRequestDTO registraScaricoImballiRequest);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,20 +2,18 @@ package it.integry.integrywmsnative.core.rest.consumers;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.google.gson.reflect.TypeToken;
|
import java.util.Date;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
@@ -24,56 +22,14 @@ import retrofit2.Response;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class MagazzinoRESTConsumer extends _BaseRESTConsumer {
|
public class MagazzinoRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
|
private final ExecutorService executorService;
|
||||||
private final SystemRESTConsumer mSystemRESTConsumer;
|
private final SystemRESTConsumer mSystemRESTConsumer;
|
||||||
|
|
||||||
public MagazzinoRESTConsumer(SystemRESTConsumer mSystemRESTConsumer) {
|
public MagazzinoRESTConsumer(ExecutorService executorService, SystemRESTConsumer mSystemRESTConsumer) {
|
||||||
|
this.executorService = executorService;
|
||||||
this.mSystemRESTConsumer = mSystemRESTConsumer;
|
this.mSystemRESTConsumer = mSystemRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void getTipiCollo(RunnableArgs<List<MtbTCol>> onComplete, RunnableArgs<Exception> onFailed) {
|
|
||||||
String baseSql = "SELECT * " +
|
|
||||||
"FROM mtb_tcol ";
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbTCol>>() {
|
|
||||||
}.getType();
|
|
||||||
|
|
||||||
mSystemRESTConsumer.<ArrayList<MtbTCol>>processSql(baseSql, typeOfObjectsList, values -> {
|
|
||||||
if (onComplete != null) {
|
|
||||||
onComplete.run(values);
|
|
||||||
}
|
|
||||||
}, ex -> {
|
|
||||||
if (onFailed != null) onFailed.run(ex);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void saveOrdine(SaveDTO saveDTO, RunnableArgs<DtbOrdt> onComplete, RunnableArgs<Exception> onFailed) {
|
|
||||||
MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class, 240);
|
|
||||||
service.saveOrdine(saveDTO)
|
|
||||||
.enqueue(new Callback<>() {
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Response<List<ServiceRESTResponse<DtbOrdt>>> response) {
|
|
||||||
if (response.body() != null && response.body().size() > 0) {
|
|
||||||
analyzeListOfAnswers(response, "saveOrdine", dtoList -> {
|
|
||||||
if (dtoList.size() > 0) {
|
|
||||||
onComplete.run(dtoList.get(0));
|
|
||||||
} else {
|
|
||||||
onFailed.run(new Exception("Nessun ordine generato"));
|
|
||||||
}
|
|
||||||
}, onFailed);
|
|
||||||
} else {
|
|
||||||
onFailed.run(new Exception("Nessun ordine generato"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Throwable t) {
|
|
||||||
onFailed.run(new Exception(t));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void saveTerminalinoWMS(SaveDTO saveDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
public void saveTerminalinoWMS(SaveDTO saveDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class);
|
MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class);
|
||||||
service.saveTerminalinoWMS(saveDTO)
|
service.saveTerminalinoWMS(saveDTO)
|
||||||
@@ -90,17 +46,37 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void retrievePartitaMag(String partitaMag, String codMart, RunnableArgs<MtbPartitaMag> onComplete, RunnableArgs<Exception> onFailed){
|
|
||||||
|
public MtbPartitaMag retrievePartitaMagSyncronized(String partitaMag, String codMart) throws Exception {
|
||||||
MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class);
|
MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class);
|
||||||
service.retrievePartitaMag(codMart, partitaMag)
|
Response<ServiceRESTResponse<MtbPartitaMag>> response = service.retrievePartitaMag(codMart, partitaMag)
|
||||||
|
.execute();
|
||||||
|
|
||||||
|
return analyzeAnswer(response, "retrievePartitaMag");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void retrievePartitaMag(String partitaMag, String codMart, RunnableArgs<MtbPartitaMag> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
executorService.execute(() -> {
|
||||||
|
try {
|
||||||
|
var response = retrievePartitaMagSyncronized(partitaMag, codMart);
|
||||||
|
if (onComplete != null) onComplete.run(response);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
if (onFailed != null) onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void retrieveAllPartitaMag(List<String> codMarts, Date dataScad, RunnableArgs<List<MtbPartitaMag>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class);
|
||||||
|
service.retrieveAllPartitaMag(codMarts, UtilityDate.formatDate(dataScad, UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
|
||||||
.enqueue(new Callback<>() {
|
.enqueue(new Callback<>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<ServiceRESTResponse<MtbPartitaMag>> call, @NonNull Response<ServiceRESTResponse<MtbPartitaMag>> response) {
|
public void onResponse(@NonNull Call<ServiceRESTResponse<List<MtbPartitaMag>>> call, @NonNull Response<ServiceRESTResponse<List<MtbPartitaMag>>> response) {
|
||||||
analyzeAnswer(response, "retrievePartitaMag", onComplete, onFailed);
|
analyzeAnswer(response, "retrieveAllPartitaMag", onComplete, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(@NonNull Call<ServiceRESTResponse<MtbPartitaMag>> call, @NonNull Throwable t) {
|
public void onFailure(@NonNull Call<ServiceRESTResponse<List<MtbPartitaMag>>> call, @NonNull Throwable t) {
|
||||||
onFailed.run(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package it.integry.integrywmsnative.core.rest.consumers;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
||||||
@@ -17,11 +16,11 @@ public interface MagazzinoRESTConsumerService {
|
|||||||
@POST("SM2SaveTerminalinoWMS")
|
@POST("SM2SaveTerminalinoWMS")
|
||||||
Call<ServiceRESTResponse<Void>> saveTerminalinoWMS(@Body SaveDTO saveDTO);
|
Call<ServiceRESTResponse<Void>> saveTerminalinoWMS(@Body SaveDTO saveDTO);
|
||||||
|
|
||||||
@POST("SM2SaveTerminalino")
|
|
||||||
Call<List<ServiceRESTResponse<DtbOrdt>>> saveOrdine(@Body SaveDTO saveDTO);
|
|
||||||
|
|
||||||
@GET("wms/partita-magazzino/retrievePartitaMag")
|
@GET("wms/partita-magazzino/retrievePartitaMag")
|
||||||
Call<ServiceRESTResponse<MtbPartitaMag>> retrievePartitaMag(@Query("codMart") String codMart,
|
Call<ServiceRESTResponse<MtbPartitaMag>> retrievePartitaMag(@Query("codMart") String codMart,
|
||||||
@Query("partitaMag") String partitaMag);
|
@Query("partitaMag") String partitaMag);
|
||||||
|
|
||||||
|
@POST("wms/partita-magazzino/retrieveAllPartitaMag")
|
||||||
|
Call<ServiceRESTResponse<List<MtbPartitaMag>>> retrieveAllPartitaMag(@Body List<String> codMarts,
|
||||||
|
@Query("dataScad") String dataScad);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.VtbVett;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class VettoriRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
|
private final ExecutorService executorService;
|
||||||
|
|
||||||
|
public VettoriRESTConsumer(ExecutorService executorService) {
|
||||||
|
this.executorService = executorService;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<VtbVett> retrieveRecentlyUsedInOrdersSyncronized(GestioneEnum gestione) throws Exception {
|
||||||
|
var service = RESTBuilder.getService(VettoriRESTConsumerService.class);
|
||||||
|
Response<ServiceRESTResponse<List<VtbVett>>> response = service.retrieveRecentlyUsedInOrders(gestione)
|
||||||
|
.execute();
|
||||||
|
|
||||||
|
return analyzeAnswer(response, "retrieveRecentlyUsedInOrders");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void retrieveRecentlyUsedInOrders(GestioneEnum gestione, RunnableArgs<List<VtbVett>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
executorService.execute(() -> {
|
||||||
|
try {
|
||||||
|
var response = retrieveRecentlyUsedInOrdersSyncronized(gestione);
|
||||||
|
if (onComplete != null) onComplete.run(response);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
if (onFailed != null) onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.VtbVett;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
|
public interface VettoriRESTConsumerService {
|
||||||
|
|
||||||
|
@GET("wms/vettore/recentlyUsedInOrders")
|
||||||
|
Call<ServiceRESTResponse<List<VtbVett>>> retrieveRecentlyUsedInOrders(@Query("gestione") GestioneEnum gestioneEnum);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -13,15 +13,13 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
|
||||||
public class LocalDateDeserializer implements JsonDeserializer<LocalDate> {
|
public class LocalDateDeserializer implements JsonDeserializer<LocalDate> {
|
||||||
|
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LocalDate deserialize(JsonElement element, Type arg1, JsonDeserializationContext arg2) throws JsonParseException {
|
public LocalDate deserialize(JsonElement element, Type arg1, JsonDeserializationContext arg2) throws JsonParseException {
|
||||||
String date = element.getAsString();
|
String date = element.getAsString();
|
||||||
if (UtilityString.isNullOrEmpty(date)) return null;
|
if (UtilityString.isNullOrEmpty(date)) return null;
|
||||||
|
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UtilityString.determineDateFormat(date));
|
||||||
|
|
||||||
return LocalDate.parse(date, formatter);
|
return LocalDate.parse(date, formatter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.deserializer;
|
||||||
|
|
||||||
|
import com.google.gson.JsonDeserializationContext;
|
||||||
|
import com.google.gson.JsonDeserializer;
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonParseException;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
|
||||||
|
public class MtbTcolFlagUiUlDeserializer implements JsonDeserializer<MtbTCol.FlagUiUlEnum> {
|
||||||
|
@Override
|
||||||
|
public MtbTCol.FlagUiUlEnum deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
||||||
|
if (json.isJsonNull()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
String text = json.getAsString();
|
||||||
|
return MtbTCol.FlagUiUlEnum.fromString(text);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -328,13 +328,13 @@ public class Ean128Model {
|
|||||||
public String InternalPart;
|
public String InternalPart;
|
||||||
|
|
||||||
///<summary>Informazioni interne</summary>
|
///<summary>Informazioni interne</summary>
|
||||||
public String Internal1;
|
public String Internal1; //Cod-Mart
|
||||||
|
|
||||||
///<summary>Informazioni interne</summary>
|
///<summary>Informazioni interne</summary>
|
||||||
public String Internal2;
|
public String Internal2; //IDLotto
|
||||||
|
|
||||||
///<summary>Informazioni interne</summary>
|
///<summary>Informazioni interne</summary>
|
||||||
public String Internal3;
|
public String Internal3; //Cod-Jfas
|
||||||
|
|
||||||
///<summary>Informazioni interne</summary>
|
///<summary>Informazioni interne</summary>
|
||||||
public String Internal4;
|
public String Internal4;
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model.imballi;
|
||||||
|
|
||||||
|
public class ImballoQuantityDTO {
|
||||||
|
|
||||||
|
private String codMart;
|
||||||
|
private Integer qta;
|
||||||
|
|
||||||
|
public String getCodMart() {
|
||||||
|
return codMart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ImballoQuantityDTO setCodMart(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getQta() {
|
||||||
|
return qta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ImballoQuantityDTO setQta(Integer qta) {
|
||||||
|
this.qta = qta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model.imballi;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class RegistraCaricoImballiRequestDTO {
|
||||||
|
|
||||||
|
private String codAnag;
|
||||||
|
private List<ImballoQuantityDTO> usedImballi;
|
||||||
|
|
||||||
|
public String getCodAnag() {
|
||||||
|
return codAnag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RegistraCaricoImballiRequestDTO setCodAnag(String codAnag) {
|
||||||
|
this.codAnag = codAnag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ImballoQuantityDTO> getUsedImballi() {
|
||||||
|
return usedImballi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RegistraCaricoImballiRequestDTO setUsedImballi(List<ImballoQuantityDTO> usedImballi) {
|
||||||
|
this.usedImballi = usedImballi;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model.imballi;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class RegistraScaricoImballiRequestDTO {
|
||||||
|
|
||||||
|
private String codVettore;
|
||||||
|
private List<ImballoQuantityDTO> usedImballi;
|
||||||
|
|
||||||
|
public String getCodVettore() {
|
||||||
|
return codVettore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RegistraScaricoImballiRequestDTO setCodVettore(String codVettore) {
|
||||||
|
this.codVettore = codVettore;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ImballoQuantityDTO> getUsedImballi() {
|
||||||
|
return usedImballi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RegistraScaricoImballiRequestDTO setUsedImballi(List<ImballoQuantityDTO> usedImballi) {
|
||||||
|
this.usedImballi = usedImballi;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,6 +14,7 @@ public class CreateUDSRequestDTO {
|
|||||||
private String codAnag;
|
private String codAnag;
|
||||||
private String codVdes;
|
private String codVdes;
|
||||||
private String rifOrd;
|
private String rifOrd;
|
||||||
|
private Integer idLotto;
|
||||||
private boolean orderRequired;
|
private boolean orderRequired;
|
||||||
private List<CreateUDSRequestOrderDTO> orders;
|
private List<CreateUDSRequestOrderDTO> orders;
|
||||||
|
|
||||||
@@ -125,6 +126,14 @@ public class CreateUDSRequestDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getIdLotto() {
|
||||||
|
return idLotto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setIdLotto(Integer idLotto) {
|
||||||
|
this.idLotto = idLotto;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static class Causale {
|
public static class Causale {
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model.uds;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
|
||||||
|
public class DuplicateUDSRequestDTO {
|
||||||
|
|
||||||
|
private MtbColt mtbColt;
|
||||||
|
|
||||||
|
private int numOfDuplicates;
|
||||||
|
|
||||||
|
public MtbColt getMtbColt() {
|
||||||
|
return mtbColt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DuplicateUDSRequestDTO setMtbColt(MtbColt mtbColt) {
|
||||||
|
this.mtbColt = mtbColt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNumOfDuplicates() {
|
||||||
|
return numOfDuplicates;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DuplicateUDSRequestDTO setNumOfDuplicates(int numOfDuplicates) {
|
||||||
|
this.numOfDuplicates = numOfDuplicates;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model.uds;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
|
||||||
|
public class DuplicateUDSResponseDTO {
|
||||||
|
|
||||||
|
private List<MtbColt> mtbColtList;
|
||||||
|
|
||||||
|
public List<MtbColt> getMtbColtList() {
|
||||||
|
return mtbColtList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DuplicateUDSResponseDTO setMtbColtList(List<MtbColt> mtbColtList) {
|
||||||
|
this.mtbColtList = mtbColtList;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.serializer;
|
||||||
|
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonPrimitive;
|
||||||
|
import com.google.gson.JsonSerializationContext;
|
||||||
|
import com.google.gson.JsonSerializer;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
|
||||||
|
public class MtbTcolFlagUiUlSerializer implements JsonSerializer<MtbTCol.FlagUiUlEnum> {
|
||||||
|
@Override
|
||||||
|
public JsonElement serialize(MtbTCol.FlagUiUlEnum src, Type typeOfSrc, JsonSerializationContext context) {
|
||||||
|
return new JsonPrimitive(src.getText());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -34,6 +34,7 @@ public class DBSettingsModel {
|
|||||||
private boolean flagSpedizioneCanSelectMultipleOrders;
|
private boolean flagSpedizioneCanSelectMultipleOrders;
|
||||||
private List<String> notePerditaDocInterni = new ArrayList<>();
|
private List<String> notePerditaDocInterni = new ArrayList<>();
|
||||||
private boolean flagSpedizioneUseQtaOrd;
|
private boolean flagSpedizioneUseQtaOrd;
|
||||||
|
private boolean flagSpedizioneUseColliPedana;
|
||||||
private boolean flagOrdinaNuoviArticoliInGriglia;
|
private boolean flagOrdinaNuoviArticoliInGriglia;
|
||||||
private boolean flagOrdinaArticoliOnScan;
|
private boolean flagOrdinaArticoliOnScan;
|
||||||
private boolean flagConsentiFuoriPianoLogistico;
|
private boolean flagConsentiFuoriPianoLogistico;
|
||||||
@@ -75,6 +76,13 @@ public class DBSettingsModel {
|
|||||||
private boolean flagProduzioneShowInfo = false;
|
private boolean flagProduzioneShowInfo = false;
|
||||||
private boolean flagAccettazioneBollaUseQtaOrd = true;
|
private boolean flagAccettazioneBollaUseQtaOrd = true;
|
||||||
private boolean flagWarningNewPartitaMag = false;
|
private boolean flagWarningNewPartitaMag = false;
|
||||||
|
private boolean flagTracciamentoImballiCaricoEnabled = false;
|
||||||
|
private boolean flagTracciamentoImballiScaricoEnabled = false;
|
||||||
|
private boolean flagPickingLiberoEnableScanArt = false;
|
||||||
|
private boolean flagAskDuplicateUDSSpedizione = false;
|
||||||
|
private boolean suggestDataScad = false;
|
||||||
|
private boolean flagPositionChangeRequest = false;
|
||||||
|
private String docInterniRequestNumDoc;
|
||||||
|
|
||||||
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
||||||
return flagSpedizioneEnableFakeGiacenza;
|
return flagSpedizioneEnableFakeGiacenza;
|
||||||
@@ -265,6 +273,15 @@ public class DBSettingsModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isFlagSpedizioneUseColliPedana() {
|
||||||
|
return flagSpedizioneUseColliPedana;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagSpedizioneUseColliPedana(boolean flagSpedizioneUseColliPedana) {
|
||||||
|
this.flagSpedizioneUseColliPedana = flagSpedizioneUseColliPedana;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public DBSettingsModel setFlagOrdinaNuoviArticoliInGriglia(boolean flagOrdinaNuoviArticoliInGriglia) {
|
public DBSettingsModel setFlagOrdinaNuoviArticoliInGriglia(boolean flagOrdinaNuoviArticoliInGriglia) {
|
||||||
this.flagOrdinaNuoviArticoliInGriglia = flagOrdinaNuoviArticoliInGriglia;
|
this.flagOrdinaNuoviArticoliInGriglia = flagOrdinaNuoviArticoliInGriglia;
|
||||||
return this;
|
return this;
|
||||||
@@ -633,4 +650,67 @@ public class DBSettingsModel {
|
|||||||
this.flagWarningNewPartitaMag = flagWarningNewPartitaMag;
|
this.flagWarningNewPartitaMag = flagWarningNewPartitaMag;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isFlagTracciamentoImballiCaricoEnabled() {
|
||||||
|
return flagTracciamentoImballiCaricoEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagTracciamentoImballiCaricoEnabled(boolean flagTracciamentoImballiCaricoEnabled) {
|
||||||
|
this.flagTracciamentoImballiCaricoEnabled = flagTracciamentoImballiCaricoEnabled;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFlagTracciamentoImballiScaricoEnabled() {
|
||||||
|
return flagTracciamentoImballiScaricoEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagTracciamentoImballiScaricoEnabled(boolean flagTracciamentoImballiScaricoEnabled) {
|
||||||
|
this.flagTracciamentoImballiScaricoEnabled = flagTracciamentoImballiScaricoEnabled;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFlagPickingLiberoEnableScanArt() {
|
||||||
|
return flagPickingLiberoEnableScanArt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagPickingLiberoEnableScanArt(boolean flagPickingLiberoEnableScanArt) {
|
||||||
|
this.flagPickingLiberoEnableScanArt = flagPickingLiberoEnableScanArt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFlagAskDuplicateUDSSpedizione() {
|
||||||
|
return flagAskDuplicateUDSSpedizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagAskDuplicateUDSSpedizione(boolean flagAskDuplicateUDSSpedizione) {
|
||||||
|
this.flagAskDuplicateUDSSpedizione = flagAskDuplicateUDSSpedizione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSuggestDataScad() {
|
||||||
|
return suggestDataScad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setSuggestDataScad(boolean suggestDataScad) {
|
||||||
|
this.suggestDataScad = suggestDataScad;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDocInterniRequestNumDoc() {
|
||||||
|
return docInterniRequestNumDoc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setDocInterniRequestNumDoc(String docInterniRequestNumDoc) {
|
||||||
|
this.docInterniRequestNumDoc = docInterniRequestNumDoc;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFlagPositionChangeRequest() {
|
||||||
|
return flagPositionChangeRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagPositionChangeRequest(boolean flagPositionChangeRequest) {
|
||||||
|
this.flagPositionChangeRequest = flagPositionChangeRequest;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.AvailableCodMdepsDTO;
|
import it.integry.integrywmsnative.core.rest.model.AvailableCodMdepsDTO;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityFirebase;
|
import it.integry.integrywmsnative.core.utility.UtilityFirebase;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class SettingsManager {
|
public class SettingsManager {
|
||||||
@@ -314,6 +315,11 @@ public class SettingsManager {
|
|||||||
.setSection("SPEDIZIONE")
|
.setSection("SPEDIZIONE")
|
||||||
.setKeySection("FLAG_USE_QTA_ORD")
|
.setKeySection("FLAG_USE_QTA_ORD")
|
||||||
.setSetter(dbSettingsModelIstance::setFlagSpedizioneUseQtaOrd));
|
.setSetter(dbSettingsModelIstance::setFlagSpedizioneUseQtaOrd));
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("SPEDIZIONE")
|
||||||
|
.setKeySection("FLAG_USE_COLLI_PEDANA")
|
||||||
|
.setSetter(dbSettingsModelIstance::setFlagSpedizioneUseColliPedana));
|
||||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Integer.class)
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Integer.class)
|
||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("SETUP")
|
.setSection("SETUP")
|
||||||
@@ -387,6 +393,11 @@ public class SettingsManager {
|
|||||||
.setSection("SPEDIZIONE")
|
.setSection("SPEDIZIONE")
|
||||||
.setKeySection("FLAG_ASK_INFO_AGGIUNTIVE")
|
.setKeySection("FLAG_ASK_INFO_AGGIUNTIVE")
|
||||||
.setSetter(dbSettingsModelIstance::setFlagAskInfoAggiuntiveSpedizione));
|
.setSetter(dbSettingsModelIstance::setFlagAskInfoAggiuntiveSpedizione));
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("SPEDIZIONE")
|
||||||
|
.setKeySection("FLAG_ASK_DUPLICATE_UDS")
|
||||||
|
.setSetter(dbSettingsModelIstance::setFlagAskDuplicateUDSSpedizione));
|
||||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
|
||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("SPEDIZIONE")
|
.setSection("SPEDIZIONE")
|
||||||
@@ -445,6 +456,12 @@ public class SettingsManager {
|
|||||||
.setKeySection("GENERA_DOC")
|
.setKeySection("GENERA_DOC")
|
||||||
.setSetter(dbSettingsModelIstance::setFlagGeneraDocumentoSpedizione)
|
.setSetter(dbSettingsModelIstance::setFlagGeneraDocumentoSpedizione)
|
||||||
.setDefaultValue(false));
|
.setDefaultValue(false));
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("SPEDIZIONE")
|
||||||
|
.setKeySection("SUGGEST_DATA_SCAD")
|
||||||
|
.setSetter(dbSettingsModelIstance::setSuggestDataScad)
|
||||||
|
.setDefaultValue(false));
|
||||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("ACCETTAZIONE_BOLLA")
|
.setSection("ACCETTAZIONE_BOLLA")
|
||||||
@@ -517,6 +534,40 @@ public class SettingsManager {
|
|||||||
.setKeySection("FLAG_WARNING_NEW_PARTITA_MAG")
|
.setKeySection("FLAG_WARNING_NEW_PARTITA_MAG")
|
||||||
.setSetter(dbSettingsModelIstance::setFlagWarningNewPartitaMag)
|
.setSetter(dbSettingsModelIstance::setFlagWarningNewPartitaMag)
|
||||||
.setDefaultValue(false));
|
.setDefaultValue(false));
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("PICKING_LIBERO")
|
||||||
|
.setKeySection("ENABLE_SCAN_ART")
|
||||||
|
.setSetter(dbSettingsModelIstance::setFlagPickingLiberoEnableScanArt)
|
||||||
|
.setDefaultValue(true));
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("SETUP")
|
||||||
|
.setKeySection("ENABLE_POSITION_CHANGE_REQUEST")
|
||||||
|
.setSetter(dbSettingsModelIstance::setFlagPositionChangeRequest)
|
||||||
|
.setDefaultValue(true));
|
||||||
|
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("IMBALLI")
|
||||||
|
.setKeySection("COD_DTIP_CARICO")
|
||||||
|
.setSetter(data -> {
|
||||||
|
dbSettingsModelIstance.setFlagTracciamentoImballiCaricoEnabled(!UtilityString.isNullOrEmpty(data));
|
||||||
|
}));
|
||||||
|
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("IMBALLI")
|
||||||
|
.setKeySection("COD_DTIP_SCARICO")
|
||||||
|
.setSetter(data -> {
|
||||||
|
dbSettingsModelIstance.setFlagTracciamentoImballiScaricoEnabled(!UtilityString.isNullOrEmpty(data));
|
||||||
|
}));
|
||||||
|
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
|
||||||
|
.setGestName("PVM")
|
||||||
|
.setSection("DOC_INTERNI")
|
||||||
|
.setKeySection("REQUEST_NUM_DOC")
|
||||||
|
.setSetter(dbSettingsModelIstance::setDocInterniRequestNumDoc));
|
||||||
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,15 @@ import java.lang.reflect.Modifier;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
|
import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
|
||||||
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateDeserializer;
|
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateDeserializer;
|
||||||
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateTimeDeserializer;
|
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateTimeDeserializer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.deserializer.MtbTcolFlagUiUlDeserializer;
|
||||||
import it.integry.integrywmsnative.core.rest.deserializer.StatoPartitaMagDeserializer;
|
import it.integry.integrywmsnative.core.rest.deserializer.StatoPartitaMagDeserializer;
|
||||||
import it.integry.integrywmsnative.core.rest.serializer.LocalDateSerializer;
|
import it.integry.integrywmsnative.core.rest.serializer.LocalDateSerializer;
|
||||||
import it.integry.integrywmsnative.core.rest.serializer.LocalDateTimeSerializer;
|
import it.integry.integrywmsnative.core.rest.serializer.LocalDateTimeSerializer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.serializer.MtbTcolFlagUiUlSerializer;
|
||||||
import it.integry.integrywmsnative.core.rest.serializer.StatoPartitaMagSerializer;
|
import it.integry.integrywmsnative.core.rest.serializer.StatoPartitaMagSerializer;
|
||||||
|
|
||||||
public class UtilityGson {
|
public class UtilityGson {
|
||||||
@@ -27,6 +30,8 @@ public class UtilityGson {
|
|||||||
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
|
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
|
||||||
.registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagDeserializer())
|
.registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagDeserializer())
|
||||||
.registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagSerializer())
|
.registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagSerializer())
|
||||||
|
.registerTypeAdapter(MtbTCol.FlagUiUlEnum.class, new MtbTcolFlagUiUlDeserializer())
|
||||||
|
.registerTypeAdapter(MtbTCol.FlagUiUlEnum.class, new MtbTcolFlagUiUlSerializer())
|
||||||
.create();
|
.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import android.text.Spanned;
|
|||||||
|
|
||||||
import androidx.annotation.StringRes;
|
import androidx.annotation.StringRes;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@@ -13,6 +15,98 @@ import java.util.regex.Pattern;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class UtilityString {
|
public class UtilityString {
|
||||||
|
private static final Map<String, String> DATE_FORMAT_REGEXPS = new HashMap<String, String>() {{
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------------------
|
||||||
|
//giorno-mese-giorno
|
||||||
|
put("^\\d{1,2}/\\d{1,2}/\\d{4}$", "dd/MM/yyyy");
|
||||||
|
put("^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$", "dd.MM.yyyy");
|
||||||
|
put("^\\d{1,2}-\\d{1,2}-\\d{4}$", "dd-MM-yyyy");
|
||||||
|
|
||||||
|
//anno-mese-giorno
|
||||||
|
put("^\\d{4}/\\d{1,2}/\\d{1,2}$", "yyyy/MM/dd");
|
||||||
|
put("^\\d{4}\\.\\d{1,2}\\.\\d{1,2}$", "yyyy.MM.dd");
|
||||||
|
put("^\\d{4}-\\d{1,2}-\\d{1,2}$", "yyyy-MM-dd");
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------------------
|
||||||
|
//senza spazi
|
||||||
|
put("^\\d{8}$", "yyyyMMdd");
|
||||||
|
put("^\\d{1,2}\\s[a-z]{3}\\s\\d{4}$", "dd MMM yyyy");
|
||||||
|
put("^\\d{1,2}\\s[a-z]{4,}\\s\\d{4}$", "dd MMMM yyyy");
|
||||||
|
|
||||||
|
put("^\\d{12}$", "yyyyMMddHHmm");
|
||||||
|
put("^\\d{8}\\s\\d{4}$", "yyyyMMdd HHmm");
|
||||||
|
|
||||||
|
put("^\\d{14}$", "yyyyMMddHHmmss");
|
||||||
|
put("^\\d{8}\\s\\d{6}$", "yyyyMMdd HHmmss");
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------------------
|
||||||
|
//giorno-mese-anno hhmm
|
||||||
|
put("^\\d{1,2}/\\d{1,2}/\\d{4}\\s\\d{1,2}\\.\\d{2}$", "dd/MM/yyyy HH.mm");
|
||||||
|
put("^\\d{1,2}/\\d{1,2}/\\d{4}\\s\\d{1,2}:\\d{2}$", "dd/MM/yyyy HH:mm");
|
||||||
|
|
||||||
|
put("^\\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s\\d{1,2}\\.\\d{2}$", "dd.MM.yyyy HH.mm");
|
||||||
|
put("^\\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s\\d{1,2}:\\d{2}$", "dd.MM.yyyy HH:mm");
|
||||||
|
|
||||||
|
put("^\\d{1,2}-\\d{1,2}-\\d{4}\\s\\d{1,2}\\.\\d{2}$", "dd-MM-yyyy HH.mm");
|
||||||
|
put("^\\d{1,2}-\\d{1,2}-\\d{4}\\s\\d{1,2}:\\d{2}$", "dd-MM-yyyy HH:mm");
|
||||||
|
|
||||||
|
//anno-mese-giorno hhmm
|
||||||
|
put("^\\d{4}/\\d{1,2}/\\d{1,2}\\s\\d{1,2}\\.\\d{2}$", "yyyy/MM/dd HH.mm");
|
||||||
|
put("^\\d{4}/\\d{1,2}/\\d{1,2}\\s\\d{1,2}:\\d{2}$", "yyyy/MM/dd HH:mm");
|
||||||
|
|
||||||
|
put("^\\d{4}\\.\\d{1,2}\\.\\d{1,2}\\s\\d{1,2}\\.\\d{2}$", "yyyy.MM.dd HH.mm");
|
||||||
|
put("^\\d{4}\\.\\d{1,2}\\.\\d{1,2}\\s\\d{1,2}:\\d{2}$", "yyyy.MM.dd HH:mm");
|
||||||
|
|
||||||
|
put("^\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}\\.\\d{2}$", "yyyy-MM-dd HH.mm");
|
||||||
|
put("^\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{2}$", "yyyy-MM-dd HH:mm");
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------------------
|
||||||
|
//giorno-mese-anno hhmmss
|
||||||
|
put("^\\d{1,2}/\\d{1,2}/\\d{4}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "dd/MM/yyyy HH.mm.ss");
|
||||||
|
put("^\\d{1,2}/\\d{1,2}/\\d{4}\\s\\d{1,2}:\\d{2}:\\d{2}$", "dd/MM/yyyy HH:mm:ss");
|
||||||
|
|
||||||
|
put("^\\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "dd.MM.yyyy HH.mm.ss");
|
||||||
|
put("^\\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s\\d{1,2}:\\d{2}:\\d{2}$", "dd.MM.yyyy HH:mm:ss");
|
||||||
|
|
||||||
|
put("^\\d{1,2}-\\d{1,2}-\\d{4}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "dd-MM-yyyy HH.mm.ss");
|
||||||
|
put("^\\d{1,2}-\\d{1,2}-\\d{4}\\s\\d{1,2}:\\d{2}:\\d{2}$", "dd-MM-yyyy HH:mm:ss");
|
||||||
|
|
||||||
|
//anno-mese-giorno hhmmss
|
||||||
|
put("^\\d{4}/\\d{1,2}/\\d{1,2}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "yyyy/MM/dd HH.mm.ss");
|
||||||
|
put("^\\d{4}/\\d{1,2}/\\d{1,2}\\s\\d{1,2}:\\d{2}:\\d{2}$", "yyyy/MM/dd HH:mm:ss");
|
||||||
|
|
||||||
|
put("^\\d{4}\\.\\d{1,2}\\.\\d{1,2}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "yyyy.MM.dd HH.mm.ss");
|
||||||
|
put("^\\d{4}\\.\\d{1,2}\\.\\d{1,2}\\s\\d{1,2}:\\d{2}:\\d{2}$", "yyyy.MM.dd HH:mm:ss");
|
||||||
|
|
||||||
|
put("^\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}\\.\\d{2}\\.\\d{2}$", "yyyy-MM-dd HH.mm.ss");
|
||||||
|
put("^\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{2}:\\d{2}$", "yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
//anno-mese-giorno hhmmssS
|
||||||
|
put("^\\d{4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{2}:\\d{2}.\\d{1,3}$", "yyyy-MM-dd HH:mm:ss.SSS");
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------------------
|
||||||
|
//altri formati
|
||||||
|
put("^\\d{1,2}\\s[a-z]{3}\\s\\d{4}\\s\\d{1,2}:\\d{2}:\\d{2}$", "dd MMM yyyy HH:mm:ss");
|
||||||
|
put("^\\d{1,2}\\s[a-z]{4,}\\s\\d{4}\\s\\d{1,2}:\\d{2}:\\d{2}$", "dd MMMM yyyy HH:mm:ss");
|
||||||
|
|
||||||
|
put("^\\d{4}-\\d{1,2}-\\d{1,2}[T]\\d{1,2}:\\d{2}:\\d{2}$", "yyyy-MM-ddTHH:mm:ss");
|
||||||
|
|
||||||
|
put("^\\d{4}-\\d{1,2}-\\d{1,2}t\\d{1,2}:\\d{2}:\\d{2}.\\d{1,3}z$", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
|
||||||
|
put("^(\\d{4})-(\\d{2})-(\\d{2})t(\\d{2}):(\\d{2}):(\\d{2})((\\+|-)(\\d{2}):(\\d{2}))$", "yyyy-MM-dd'T'HH:mm:ss");
|
||||||
|
}};
|
||||||
|
|
||||||
|
public static String determineDateFormat(String dateString) {
|
||||||
|
for (String regexp : DATE_FORMAT_REGEXPS.keySet()) {
|
||||||
|
if (dateString.toLowerCase().matches(regexp)) {
|
||||||
|
return DATE_FORMAT_REGEXPS.get(regexp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null; // Unknown format.
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isNullOrEmpty(String stringToCheck){
|
public static boolean isNullOrEmpty(String stringToCheck){
|
||||||
return stringToCheck == null || stringToCheck.trim().isEmpty();
|
return stringToCheck == null || stringToCheck.trim().isEmpty();
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ import java.math.BigDecimal;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -33,6 +35,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
|||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.OnGeneralChangedCallback;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
@@ -54,11 +57,15 @@ import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBo
|
|||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.AccettazioneBollaPickingOrderBy;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.AccettazioneBollaPickingOrderBy;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.filters.AccettazioneBollaPickingFilterViewModel;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListAdapter;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListAdapter;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListModel;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListModel;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterDescrLayoutView;
|
||||||
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
|
import it.integry.integrywmsnative.ui.filter_chips.FilterChipDTO;
|
||||||
|
import it.integry.integrywmsnative.ui.filter_chips.FilterChipView;
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView;
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView;
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico_ul.DialogAskShouldVersamentoAutomaticoULView;
|
import it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico_ul.DialogAskShouldVersamentoAutomaticoULView;
|
||||||
@@ -82,8 +89,9 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
private ActivityAccettazioneBollaPickingBinding mBindings;
|
private ActivityAccettazioneBollaPickingBinding mBindings;
|
||||||
|
|
||||||
private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel;
|
private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel;
|
||||||
|
|
||||||
|
private final AccettazioneBollaPickingFilterViewModel mAppliedFilterViewModel = new AccettazioneBollaPickingFilterViewModel();
|
||||||
|
|
||||||
private final ObservableArrayList<AccettazioneBollaPickingListModel> mAccettazioneMutableData = new ObservableArrayList<>();
|
private final ObservableArrayList<AccettazioneBollaPickingListModel> mAccettazioneMutableData = new ObservableArrayList<>();
|
||||||
|
|
||||||
public BindableBoolean noItemsToPick = new BindableBoolean(false);
|
public BindableBoolean noItemsToPick = new BindableBoolean(false);
|
||||||
@@ -150,7 +158,7 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
this.initVars();
|
this.initVars();
|
||||||
this.initBarcodeReader();
|
this.initBarcodeReader();
|
||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
// this.initFilters();
|
this.initFilters();
|
||||||
this.initFab();
|
this.initFab();
|
||||||
|
|
||||||
boolean useQtaBolla = SettingsManager.iDB().isFlagAccettazioneBollaUseQtaOrd();
|
boolean useQtaBolla = SettingsManager.iDB().isFlagAccettazioneBollaUseQtaOrd();
|
||||||
@@ -201,16 +209,85 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
this.mBindings.accettazionePickingList.setAdapter(adapter);
|
this.mBindings.accettazionePickingList.setAdapter(adapter);
|
||||||
|
|
||||||
this.mViewModel.getPickingList().observe(this, updatedData -> {
|
this.mViewModel.getPickingList().observe(this, updatedData -> {
|
||||||
// mAppliedFilterViewModel.init(updatedData);
|
mAppliedFilterViewModel.init(updatedData);
|
||||||
|
|
||||||
refreshList();
|
refreshList();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
adapter.setOnLongClickListener(clickedItem -> {
|
||||||
|
this.mViewModel.dispatchBollaRow(clickedItem, true);
|
||||||
|
});
|
||||||
|
|
||||||
adapter.setOnItemClicked(clickedItem -> {
|
adapter.setOnItemClicked(clickedItem -> {
|
||||||
this.mViewModel.dispatchBollaRow(clickedItem);
|
this.mViewModel.dispatchBollaRow(clickedItem);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initFilters() {
|
||||||
|
|
||||||
|
var onPredicateChanged = new OnGeneralChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
refreshList();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
||||||
|
|
||||||
|
List<FilterChipDTO> filterList = Stream.of(AccettazioneBollaPickingBindings.AVAILABLE_FILTERS.entrySet()).map(Map.Entry::getValue).sortBy(FilterChipDTO::getPosizione).toList();
|
||||||
|
|
||||||
|
for (FilterChipDTO filterChipDTO : filterList) {
|
||||||
|
|
||||||
|
FilterChipView filterChipView = new FilterChipView(this, filterChipDTO.getFilterChipText(), v -> initBottomSheetDialogFilter(filterChipDTO));
|
||||||
|
|
||||||
|
if (filterChipDTO.getID() == AccettazioneBollaPickingBindings.DESCR_FILTER_ID) {
|
||||||
|
mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if (mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null) {
|
||||||
|
mViewModel.resetMatchedRows();
|
||||||
|
filterChipView.disableCloseIcon();
|
||||||
|
|
||||||
|
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||||
|
mBindings.filterChipsGroup.addView(filterChipView);
|
||||||
|
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||||
|
} else {
|
||||||
|
filterChipView.enableCloseIcon();
|
||||||
|
|
||||||
|
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||||
|
mBindings.filterChipsGroup.addView(filterChipView, 0);
|
||||||
|
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentDescrPredicate().set(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.mBindings.filterChipsGroup.addView(filterChipView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initBottomSheetDialogFilter(FilterChipDTO filterChipDTO) {
|
||||||
|
|
||||||
|
filterChipDTO.getFilterLayoutView().setFilterName(filterChipDTO.getFilterChipText()).setContext(this);
|
||||||
|
|
||||||
|
var filterLayoutView = filterChipDTO.getFilterLayoutView();
|
||||||
|
|
||||||
|
if (filterChipDTO.getID() == AccettazioneBollaPickingBindings.DESCR_FILTER_ID) {
|
||||||
|
((FilterDescrLayoutView) filterLayoutView)
|
||||||
|
.setAll(mAppliedFilterViewModel.getAllDescrs())
|
||||||
|
.setAvailable(mAppliedFilterViewModel.getAvailableDescrs())
|
||||||
|
.setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter)
|
||||||
|
.setPreselected(
|
||||||
|
Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
|
||||||
|
.filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ? x -> false : Objects.requireNonNull(mAppliedFilterViewModel.getCurrentDescrPredicate().get()))
|
||||||
|
.map(x -> x.getMtbAart().getDescrizioneEstesa()).toList()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!filterLayoutView.isAdded()) filterLayoutView.show(getSupportFragmentManager(), "TAG");
|
||||||
|
}
|
||||||
|
|
||||||
private void initFab() {
|
private void initFab() {
|
||||||
fabPopupMenu = new PopupMenu(this, this.mBindings.accettazioneOrdineInevasoFab,
|
fabPopupMenu = new PopupMenu(this, this.mBindings.accettazioneOrdineInevasoFab,
|
||||||
@@ -246,13 +323,13 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
List<PickingObjectDTO> tmpList;
|
List<PickingObjectDTO> tmpList;
|
||||||
|
|
||||||
// if (mAppliedFilterViewModel != null) {
|
if (mAppliedFilterViewModel != null) {
|
||||||
// mAppliedFilterViewModel.applyAllTests();
|
mAppliedFilterViewModel.applyAllTests();
|
||||||
// tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue();
|
tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue();
|
||||||
// } else {
|
} else {
|
||||||
tmpList = mViewModel.getPickingList().getValue();
|
tmpList = mViewModel.getPickingList().getValue();
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
var list = convertDataModelToListModel(tmpList);
|
var list = convertDataModelToListModel(tmpList);
|
||||||
|
|
||||||
this.mAccettazioneMutableData.clear();
|
this.mAccettazioneMutableData.clear();
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.accettazione_bolla_picking;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterDescrLayoutView;
|
||||||
|
import it.integry.integrywmsnative.ui.filter_chips.FilterChipDTO;
|
||||||
|
|
||||||
|
public class AccettazioneBollaPickingBindings {
|
||||||
|
|
||||||
|
public static final int DESCR_FILTER_ID = 0;
|
||||||
|
|
||||||
|
public static final HashMap<Integer, FilterChipDTO> AVAILABLE_FILTERS = new HashMap<>() {
|
||||||
|
{
|
||||||
|
|
||||||
|
put(DESCR_FILTER_ID, new FilterChipDTO()
|
||||||
|
.setID(DESCR_FILTER_ID)
|
||||||
|
.setPosizione(1)
|
||||||
|
.setFilterChipText("Descrizione articolo")
|
||||||
|
.setFilterLayoutView(new FilterDescrLayoutView()));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -443,7 +443,11 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
dispatchBollaRow(pickingObjectDTO);
|
dispatchBollaRow(pickingObjectDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void dispatchBollaRow(final PickingObjectDTO pickingObjectDTO) {
|
public void dispatchBollaRow(final PickingObjectDTO pickingObjectDTO){
|
||||||
|
dispatchBollaRow(pickingObjectDTO, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dispatchBollaRow(final PickingObjectDTO pickingObjectDTO, boolean longClick) {
|
||||||
if (this.mCurrentMtbColt == null) return;
|
if (this.mCurrentMtbColt == null) return;
|
||||||
|
|
||||||
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
|
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
|
||||||
@@ -578,31 +582,42 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.sendOnItemDispatched(
|
if (!longClick){
|
||||||
pickingObjectDTO,
|
this.sendOnItemDispatched(
|
||||||
pickingObjectDTO.getMtbAart(),
|
pickingObjectDTO,
|
||||||
initialNumCnf, initialQtaCnf, initialQtaTot,
|
pickingObjectDTO.getMtbAart(),
|
||||||
qtaDaEvadere,
|
initialNumCnf, initialQtaCnf, initialQtaTot,
|
||||||
numCnfDaEvadere,
|
qtaDaEvadere,
|
||||||
qtaCnfDaEvadere,
|
numCnfDaEvadere,
|
||||||
qtaColDaPrelevare,
|
qtaCnfDaEvadere,
|
||||||
numCnfDaPrelevare,
|
qtaColDaPrelevare,
|
||||||
qtaCnfDaPrelevare,
|
numCnfDaPrelevare,
|
||||||
null,
|
qtaCnfDaPrelevare,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
partitaMag,
|
null,
|
||||||
dataScad,
|
partitaMag,
|
||||||
true,
|
dataScad,
|
||||||
(pickedQuantityDTO, shouldCloseLU) -> {
|
true,
|
||||||
this.saveNewRow(pickingObjectDTO,
|
(pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
pickedQuantityDTO.getNumCnf(),
|
this.saveNewRow(pickingObjectDTO,
|
||||||
pickedQuantityDTO.getQtaCnf(),
|
pickedQuantityDTO.getNumCnf(),
|
||||||
pickedQuantityDTO.getQtaTot(),
|
pickedQuantityDTO.getQtaCnf(),
|
||||||
pickedQuantityDTO.getPartitaMag(),
|
pickedQuantityDTO.getQtaTot(),
|
||||||
pickedQuantityDTO.getDataScad(),
|
pickedQuantityDTO.getPartitaMag(),
|
||||||
shouldCloseLU);
|
pickedQuantityDTO.getDataScad(),
|
||||||
});
|
shouldCloseLU);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.saveNewRow(
|
||||||
|
pickingObjectDTO,
|
||||||
|
initialNumCnf,
|
||||||
|
initialQtaCnf,
|
||||||
|
initialQtaTot,
|
||||||
|
partitaMag,
|
||||||
|
dataScad,
|
||||||
|
false);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.accettazione_bolla_picking.filters;
|
||||||
|
|
||||||
|
import androidx.databinding.ObservableField;
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
import com.annimon.stream.function.Predicate;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO;
|
||||||
|
|
||||||
|
public class AccettazioneBollaPickingFilterViewModel {
|
||||||
|
private final ObservableField<Predicate<PickingObjectDTO>> currentDescrPredicate = new ObservableField<>();
|
||||||
|
|
||||||
|
private List<PickingObjectDTO> initialOrderList;
|
||||||
|
private final MutableLiveData<List<PickingObjectDTO>> currentFilteredOrderList = new MutableLiveData<>();
|
||||||
|
|
||||||
|
public void init(List<PickingObjectDTO> initialList) {
|
||||||
|
this.initialOrderList = initialList;
|
||||||
|
this.currentFilteredOrderList.setValue(this.initialOrderList);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MutableLiveData<List<PickingObjectDTO>> getMutableFilteredOrderList() {
|
||||||
|
return this.currentFilteredOrderList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setDescrFilter(List<String> descrs) {
|
||||||
|
if (descrs == null || descrs.isEmpty()) currentDescrPredicate.set(null);
|
||||||
|
else {
|
||||||
|
currentDescrPredicate.set(o -> descrs.contains(o.getMtbAart().getDescrizione()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void applyAllTests() {
|
||||||
|
|
||||||
|
List<PickingObjectDTO> returnList;
|
||||||
|
|
||||||
|
if (currentDescrPredicate.get() == null) {
|
||||||
|
returnList = this.initialOrderList;
|
||||||
|
} else {
|
||||||
|
Stream<PickingObjectDTO> tmpStream = Stream.of(this.initialOrderList)
|
||||||
|
.filter(x ->(currentDescrPredicate.get() == null || (currentDescrPredicate.get().test(x)))
|
||||||
|
);
|
||||||
|
|
||||||
|
returnList = tmpStream.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.currentFilteredOrderList.setValue(returnList);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ObservableField<Predicate<PickingObjectDTO>> getCurrentDescrPredicate() {
|
||||||
|
return currentDescrPredicate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getAllDescrs() {
|
||||||
|
return Stream
|
||||||
|
.of(Objects.requireNonNull(initialOrderList))
|
||||||
|
.filter(x -> x.getMtbAart().getDescrizioneEstesa() != null)
|
||||||
|
.sortBy(x -> x.getMtbAart().getDescrizioneEstesa())
|
||||||
|
.map(x -> x.getMtbAart().getDescrizioneEstesa() != null ? x.getMtbAart().getDescrizioneEstesa() : null)
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getAvailableDescrs() {
|
||||||
|
return Stream.of(this.initialOrderList)
|
||||||
|
.map(x -> x.getMtbAart().getDescrizioneEstesa())
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,6 +33,7 @@ public class AccettazioneBollaPickingListAdapter extends SectionedRecyclerViewAd
|
|||||||
private final List<AccettazioneBollaPickingListModel> mDataset = new ArrayList<>();
|
private final List<AccettazioneBollaPickingListModel> mDataset = new ArrayList<>();
|
||||||
|
|
||||||
private RunnableArgs<PickingObjectDTO> mOnItemClicked;
|
private RunnableArgs<PickingObjectDTO> mOnItemClicked;
|
||||||
|
private RunnableArgs<PickingObjectDTO> mOnItemLongClicked;
|
||||||
|
|
||||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
@@ -75,6 +76,9 @@ public class AccettazioneBollaPickingListAdapter extends SectionedRecyclerViewAd
|
|||||||
this.mOnItemClicked = onItemClicked;
|
this.mOnItemClicked = onItemClicked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOnLongClickListener(RunnableArgs<PickingObjectDTO> onItemLongClicked){
|
||||||
|
this.mOnItemLongClicked = onItemLongClicked;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AccettazioneBollaPickingListAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
public AccettazioneBollaPickingListAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||||
@@ -160,6 +164,12 @@ public class AccettazioneBollaPickingListAdapter extends SectionedRecyclerViewAd
|
|||||||
if (this.mOnItemClicked != null)
|
if (this.mOnItemClicked != null)
|
||||||
this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel());
|
this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
holder.mBinding.getRoot().setOnLongClickListener(v -> {
|
||||||
|
if (this.mOnItemLongClicked != null)
|
||||||
|
this.mOnItemLongClicked.run(pickingObjectDTO.getOriginalModel());
|
||||||
|
return true;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import android.content.Intent;
|
|||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.text.Html;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
@@ -78,6 +79,7 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
|||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.DialogTracciamentoImballiView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
|
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
|
||||||
|
|
||||||
public class AccettazioneOrdiniPickingActivity extends BaseActivity implements AccettazioneOrdiniPickingViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
|
public class AccettazioneOrdiniPickingActivity extends BaseActivity implements AccettazioneOrdiniPickingViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
|
||||||
@@ -151,28 +153,30 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
|
boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
|
||||||
|
|
||||||
mViewModel.setListeners(this);
|
mViewModel.setListeners(this);
|
||||||
mViewModel.init(
|
mViewModel.init(mOrders, mSitArts, useQtaOrd);
|
||||||
mOrders,
|
|
||||||
mSitArts,
|
|
||||||
useQtaOrd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initFab() {
|
private void initFab() {
|
||||||
fabPopupMenu = new PopupMenu(this, this.mBindings.accettazioneOrdineInevasoFab,
|
fabPopupMenu = new PopupMenu(this, this.mBindings.accettazioneOrdineInevasoFab, (Gravity.END | Gravity.BOTTOM), androidx.appcompat.R.attr.popupMenuStyle, com.google.android.material.R.style.Widget_Material3_PopupMenu_ContextMenu);
|
||||||
(Gravity.END | Gravity.BOTTOM),
|
|
||||||
androidx.appcompat.R.attr.popupMenuStyle,
|
|
||||||
com.google.android.material.R.style.Widget_Material3_PopupMenu_ContextMenu);
|
|
||||||
|
|
||||||
fabPopupMenu.setForceShowIcon(true);
|
fabPopupMenu.setForceShowIcon(true);
|
||||||
fabPopupMenu.getMenuInflater().inflate(R.menu.accettazione_ordine_inevaso_fab_menu, fabPopupMenu.getMenu());
|
fabPopupMenu.getMenuInflater().inflate(R.menu.accettazione_ordine_inevaso_fab_menu, fabPopupMenu.getMenu());
|
||||||
|
|
||||||
|
if (!SettingsManager.iDB().isFlagTracciamentoImballiCaricoEnabled())
|
||||||
|
fabPopupMenu.getMenu().removeItem(R.id.track_packaging);
|
||||||
|
|
||||||
fabPopupMenu.setOnMenuItemClickListener(item -> {
|
fabPopupMenu.setOnMenuItemClickListener(item -> {
|
||||||
int itemId = item.getItemId();
|
int itemId = item.getItemId();
|
||||||
|
|
||||||
if (itemId == R.id.show_created_ul) {
|
if (itemId == R.id.show_created_ul) {
|
||||||
showCreatedUL();
|
showCreatedUL();
|
||||||
|
return true;
|
||||||
|
} else if (itemId == R.id.track_packaging) {
|
||||||
|
trackPackaging();
|
||||||
|
return true;
|
||||||
} else if (itemId == R.id.create_ul) {
|
} else if (itemId == R.id.create_ul) {
|
||||||
createNewLU();
|
createNewLU();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -192,17 +196,11 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
||||||
mAppliedFilterViewModel.getCurrentPosPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
mAppliedFilterViewModel.getCurrentPosPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
||||||
|
|
||||||
List<FilterChipDTO> filterList = Stream.of(AccettazioneOrdiniPickingBindings.AVAILABLE_FILTERS.entrySet())
|
List<FilterChipDTO> filterList = Stream.of(AccettazioneOrdiniPickingBindings.AVAILABLE_FILTERS.entrySet()).map(Map.Entry::getValue).sortBy(FilterChipDTO::getPosizione).toList();
|
||||||
.map(Map.Entry::getValue)
|
|
||||||
.sortBy(FilterChipDTO::getPosizione)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
for (FilterChipDTO filterChipDTO : filterList) {
|
for (FilterChipDTO filterChipDTO : filterList) {
|
||||||
|
|
||||||
FilterChipView filterChipView = new FilterChipView(
|
FilterChipView filterChipView = new FilterChipView(this, filterChipDTO.getFilterChipText(), v -> initBottomSheetDialogFilter(filterChipDTO));
|
||||||
this,
|
|
||||||
filterChipDTO.getFilterChipText(),
|
|
||||||
v -> initBottomSheetDialogFilter(filterChipDTO));
|
|
||||||
|
|
||||||
switch (filterChipDTO.getID()) {
|
switch (filterChipDTO.getID()) {
|
||||||
case AccettazioneOrdiniPickingBindings.COD_ART_FILTER_ID -> {
|
case AccettazioneOrdiniPickingBindings.COD_ART_FILTER_ID -> {
|
||||||
@@ -280,52 +278,20 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
private void initBottomSheetDialogFilter(FilterChipDTO filterChipDTO) {
|
private void initBottomSheetDialogFilter(FilterChipDTO filterChipDTO) {
|
||||||
|
|
||||||
filterChipDTO
|
filterChipDTO.getFilterLayoutView().setFilterName(filterChipDTO.getFilterChipText()).setContext(this);
|
||||||
.getFilterLayoutView()
|
|
||||||
.setFilterName(filterChipDTO.getFilterChipText())
|
|
||||||
.setContext(this);
|
|
||||||
|
|
||||||
var filterLayoutView = filterChipDTO
|
var filterLayoutView = filterChipDTO.getFilterLayoutView();
|
||||||
.getFilterLayoutView();
|
|
||||||
|
|
||||||
switch (filterChipDTO.getID()) {
|
switch (filterChipDTO.getID()) {
|
||||||
case AccettazioneOrdiniPickingBindings.COD_ART_FILTER_ID ->
|
case AccettazioneOrdiniPickingBindings.COD_ART_FILTER_ID ->
|
||||||
((FilterCodArtLayoutView) filterLayoutView)
|
((FilterCodArtLayoutView) filterLayoutView).setAll(mAppliedFilterViewModel.getAllCodArts()).setAvailable(mAppliedFilterViewModel.getAvailableCodArts()).setOnFilterApplied(mAppliedFilterViewModel::setCodArtFilter).setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())).filter(mAppliedFilterViewModel.getCurrentCodArtPredicate().get() == null ? x -> false : mAppliedFilterViewModel.getCurrentCodArtPredicate().get()).map(x -> x.getSitArtOrdDTO().getCodMart()).toList());
|
||||||
.setAll(mAppliedFilterViewModel.getAllCodArts())
|
|
||||||
.setAvailable(mAppliedFilterViewModel.getAvailableCodArts())
|
|
||||||
.setOnFilterApplied(mAppliedFilterViewModel::setCodArtFilter)
|
|
||||||
.setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
|
|
||||||
.filter(mAppliedFilterViewModel.getCurrentCodArtPredicate().get() == null ?
|
|
||||||
x -> false :
|
|
||||||
mAppliedFilterViewModel.getCurrentCodArtPredicate().get())
|
|
||||||
.map(x -> x.getSitArtOrdDTO().getCodMart())
|
|
||||||
.toList());
|
|
||||||
case AccettazioneOrdiniPickingBindings.DESCR_FILTER_ID ->
|
case AccettazioneOrdiniPickingBindings.DESCR_FILTER_ID ->
|
||||||
((FilterDescrLayoutView) filterLayoutView)
|
((FilterDescrLayoutView) filterLayoutView).setAll(mAppliedFilterViewModel.getAllDescrs()).setAvailable(mAppliedFilterViewModel.getAvailableDescrs()).setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter).setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())).filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ? x -> false : mAppliedFilterViewModel.getCurrentDescrPredicate().get()).map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt()).toList());
|
||||||
.setAll(mAppliedFilterViewModel.getAllDescrs())
|
|
||||||
.setAvailable(mAppliedFilterViewModel.getAvailableDescrs())
|
|
||||||
.setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter)
|
|
||||||
.setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
|
|
||||||
.filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ?
|
|
||||||
x -> false :
|
|
||||||
mAppliedFilterViewModel.getCurrentDescrPredicate().get())
|
|
||||||
.map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt())
|
|
||||||
.toList());
|
|
||||||
case AccettazioneOrdiniPickingBindings.POS_FILTER_ID ->
|
case AccettazioneOrdiniPickingBindings.POS_FILTER_ID ->
|
||||||
((FilterPosizioneLayoutView) filterLayoutView)
|
((FilterPosizioneLayoutView) filterLayoutView).setAll(mAppliedFilterViewModel.getAllPos()).setAvailable(mAppliedFilterViewModel.getAvailablePos()).setOnFilterApplied(mAppliedFilterViewModel::setPosFilter).setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue())).filter(mAppliedFilterViewModel.getCurrentPosPredicate().get() == null ? x -> false : mAppliedFilterViewModel.getCurrentPosPredicate().get()).map(x -> x.getMtbAart().getPosizione()).toList());
|
||||||
.setAll(mAppliedFilterViewModel.getAllPos())
|
|
||||||
.setAvailable(mAppliedFilterViewModel.getAvailablePos())
|
|
||||||
.setOnFilterApplied(mAppliedFilterViewModel::setPosFilter)
|
|
||||||
.setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
|
|
||||||
.filter(mAppliedFilterViewModel.getCurrentPosPredicate().get() == null ?
|
|
||||||
x -> false :
|
|
||||||
mAppliedFilterViewModel.getCurrentPosPredicate().get())
|
|
||||||
.map(x -> x.getMtbAart().getPosizione())
|
|
||||||
.toList());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!filterLayoutView.isAdded())
|
if (!filterLayoutView.isAdded()) filterLayoutView.show(getSupportFragmentManager(), "TAG");
|
||||||
filterLayoutView.show(getSupportFragmentManager(), "TAG");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -374,9 +340,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initBarcodeReader() {
|
private void initBarcodeReader() {
|
||||||
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO().setOnScanSuccessful(onScanSuccessful).setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
|
||||||
.setOnScanSuccessful(onScanSuccessful)
|
|
||||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initRecyclerView() {
|
private void initRecyclerView() {
|
||||||
@@ -417,9 +381,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<AccettazioneOrdiniPickingListModel> convertDataModelToListModel(List<PickingObjectDTO> dataList) {
|
private List<AccettazioneOrdiniPickingListModel> convertDataModelToListModel(List<PickingObjectDTO> dataList) {
|
||||||
List<PickingObjectDTO> tmpList = Stream.of(dataList)
|
List<PickingObjectDTO> tmpList = Stream.of(dataList).filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaDaEvadere(), BigDecimal.ZERO)).toList();
|
||||||
.filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaDaEvadere(), BigDecimal.ZERO))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
return switch (mCurrentOrderBy) {
|
return switch (mCurrentOrderBy) {
|
||||||
case COD_ART_FOR -> convertDataModelToListModel__CodArtForn(tmpList);
|
case COD_ART_FOR -> convertDataModelToListModel__CodArtForn(tmpList);
|
||||||
@@ -430,133 +392,118 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
private List<AccettazioneOrdiniPickingListModel> convertDataModelToListModel__CodArtForn(List<PickingObjectDTO> dataList) {
|
private List<AccettazioneOrdiniPickingListModel> convertDataModelToListModel__CodArtForn(List<PickingObjectDTO> dataList) {
|
||||||
ArrayList<AccettazioneOrdiniPickingListModel> list = new ArrayList<>();
|
ArrayList<AccettazioneOrdiniPickingListModel> list = new ArrayList<>();
|
||||||
Stream.of(dataList)
|
Stream.of(dataList).sortBy(x -> UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) + (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa())).forEach(x -> {
|
||||||
.sortBy(x -> UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) +
|
AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
|
||||||
(UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa()))
|
accettazioneOrdiniPickingListModel.setActive(true);
|
||||||
.forEach(x -> {
|
|
||||||
AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
|
|
||||||
accettazioneOrdiniPickingListModel.setActive(true);
|
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) +
|
accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) + (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa()));
|
||||||
(UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa()));
|
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
|
accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
|
||||||
accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setSubDescrizione1("Consegna: " + UtilityDate.formatDate(x.getSitArtOrdDTO().getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
|
accettazioneOrdiniPickingListModel.setSubDescrizione1("Consegna: " + UtilityDate.formatDate(x.getSitArtOrdDTO().getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
|
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
|
||||||
|
|
||||||
//Calc Num CNF
|
//Calc Num CNF
|
||||||
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (x.getWithdrawMtbColrs().size() > 0) {
|
if (x.getWithdrawMtbColrs().size() > 0) {
|
||||||
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
|
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs()).map(MtbColr::getNumCnf).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
.map(MtbColr::getNumCnf)
|
}
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Calc qta col
|
//Calc qta col
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (x.getWithdrawMtbColrs().size() > 0) {
|
if (x.getWithdrawMtbColrs().size() > 0) {
|
||||||
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
qtaEvasa = Stream.of(x.getWithdrawMtbColrs()).map(MtbColr::getQtaCol).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
.map(MtbColr::getQtaCol)
|
}
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
|
accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
||||||
accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
|
accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
|
accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
|
||||||
} else {
|
} else {
|
||||||
accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
|
accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
|
accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
|
accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
||||||
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
}
|
}
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setOriginalModel(x);
|
accettazioneOrdiniPickingListModel.setOriginalModel(x);
|
||||||
|
|
||||||
list.add(accettazioneOrdiniPickingListModel);
|
list.add(accettazioneOrdiniPickingListModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<AccettazioneOrdiniPickingListModel> convertDataModelToListModel__DescrArt(List<PickingObjectDTO> dataList) {
|
private List<AccettazioneOrdiniPickingListModel> convertDataModelToListModel__DescrArt(List<PickingObjectDTO> dataList) {
|
||||||
ArrayList<AccettazioneOrdiniPickingListModel> list = new ArrayList<>();
|
ArrayList<AccettazioneOrdiniPickingListModel> list = new ArrayList<>();
|
||||||
Stream.of(dataList)
|
Stream.of(dataList).sortBy(x -> x.getMtbAart().getDescrizioneEstesa()).forEach(x -> {
|
||||||
.sortBy(x -> x.getMtbAart().getDescrizioneEstesa())
|
AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
|
||||||
.forEach(x -> {
|
accettazioneOrdiniPickingListModel.setActive(true);
|
||||||
AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
|
|
||||||
accettazioneOrdiniPickingListModel.setActive(true);
|
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart())
|
accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) + (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa()));
|
||||||
+ (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa()));
|
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
|
accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
|
||||||
accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
|
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
|
||||||
|
|
||||||
//Calc Num CNF
|
//Calc Num CNF
|
||||||
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (x.getWithdrawMtbColrs().size() > 0) {
|
if (x.getWithdrawMtbColrs().size() > 0) {
|
||||||
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
|
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs()).map(MtbColr::getNumCnf).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
.map(MtbColr::getNumCnf)
|
}
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Calc qta col
|
//Calc qta col
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (x.getWithdrawMtbColrs().size() > 0) {
|
if (x.getWithdrawMtbColrs().size() > 0) {
|
||||||
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
qtaEvasa = Stream.of(x.getWithdrawMtbColrs()).map(MtbColr::getQtaCol).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
.map(MtbColr::getQtaCol)
|
}
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
|
accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
||||||
accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
|
accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
|
accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
|
||||||
} else {
|
} else {
|
||||||
accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
|
accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
|
accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
|
accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
||||||
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
}
|
}
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setOriginalModel(x);
|
accettazioneOrdiniPickingListModel.setOriginalModel(x);
|
||||||
|
|
||||||
list.add(accettazioneOrdiniPickingListModel);
|
list.add(accettazioneOrdiniPickingListModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
@@ -564,136 +511,122 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
private List<AccettazioneOrdiniPickingListModel> convertDataModelToListModel__RagSocCom(List<PickingObjectDTO> dataList) {
|
private List<AccettazioneOrdiniPickingListModel> convertDataModelToListModel__RagSocCom(List<PickingObjectDTO> dataList) {
|
||||||
ArrayList<AccettazioneOrdiniPickingListModel> list = new ArrayList<>();
|
ArrayList<AccettazioneOrdiniPickingListModel> list = new ArrayList<>();
|
||||||
|
|
||||||
Stream.of(dataList)
|
Stream.of(dataList).filter(x -> !UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) && !x.getSitArtOrdDTO().getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)).sortBy(x -> x.getSitArtOrdDTO().getDescrizioneCommessa()).forEach(x -> {
|
||||||
.filter(x -> !UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) && !x.getSitArtOrdDTO().getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG))
|
AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
|
||||||
.sortBy(x -> x.getSitArtOrdDTO().getDescrizioneCommessa())
|
accettazioneOrdiniPickingListModel.setActive(true);
|
||||||
.forEach(x -> {
|
|
||||||
AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
|
|
||||||
accettazioneOrdiniPickingListModel.setActive(true);
|
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setGroupTitle(x.getSitArtOrdDTO().getCodJcom() + (!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) ? " - " + x.getSitArtOrdDTO().getDescrizioneCommessa() : ""));
|
accettazioneOrdiniPickingListModel.setGroupTitle(x.getSitArtOrdDTO().getCodJcom() + (!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) ? " - " + x.getSitArtOrdDTO().getDescrizioneCommessa() : ""));
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()));
|
accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()));
|
||||||
accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
||||||
|
|
||||||
//Calc Num CNF
|
//Calc Num CNF
|
||||||
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (x.getWithdrawMtbColrs().size() > 0) {
|
if (x.getWithdrawMtbColrs().size() > 0) {
|
||||||
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
|
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs()).map(MtbColr::getNumCnf).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
.map(MtbColr::getNumCnf)
|
}
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Calc qta col
|
//Calc qta col
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (x.getWithdrawMtbColrs().size() > 0) {
|
if (x.getWithdrawMtbColrs().size() > 0) {
|
||||||
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
qtaEvasa = Stream.of(x.getWithdrawMtbColrs()).map(MtbColr::getQtaCol).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
.map(MtbColr::getQtaCol)
|
}
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
|
accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
||||||
accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
|
accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
|
accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
|
||||||
} else {
|
} else {
|
||||||
accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
|
accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
|
accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
|
accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
||||||
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
}
|
}
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneEstesaOrd());
|
accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneEstesaOrd());
|
||||||
|
|
||||||
if (x.getMtbAart() != null) {
|
if (x.getMtbAart() != null) {
|
||||||
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
|
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
|
||||||
}
|
}
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setOriginalModel(x);
|
accettazioneOrdiniPickingListModel.setOriginalModel(x);
|
||||||
|
|
||||||
list.add(accettazioneOrdiniPickingListModel);
|
list.add(accettazioneOrdiniPickingListModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
Stream.of(dataList)
|
Stream.of(dataList).filter(x -> UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) || x.getSitArtOrdDTO().getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)).forEach(x -> {
|
||||||
.filter(x -> UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) || x.getSitArtOrdDTO().getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG))
|
AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
|
||||||
.forEach(x -> {
|
accettazioneOrdiniPickingListModel.setActive(true);
|
||||||
AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
|
|
||||||
accettazioneOrdiniPickingListModel.setActive(true);
|
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
|
accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()));
|
accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()));
|
||||||
accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
||||||
|
|
||||||
|
|
||||||
//Calc Num CNF
|
//Calc Num CNF
|
||||||
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (x.getWithdrawMtbColrs().size() > 0) {
|
if (x.getWithdrawMtbColrs().size() > 0) {
|
||||||
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
|
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs()).map(MtbColr::getNumCnf).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
.map(MtbColr::getNumCnf)
|
}
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Calc qta col
|
//Calc qta col
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (x.getWithdrawMtbColrs().size() > 0) {
|
if (x.getWithdrawMtbColrs().size() > 0) {
|
||||||
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
qtaEvasa = Stream.of(x.getWithdrawMtbColrs()).map(MtbColr::getQtaCol).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
.map(MtbColr::getQtaCol)
|
}
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
|
accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
||||||
accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
|
accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
|
accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
|
||||||
} else {
|
} else {
|
||||||
accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
|
accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
|
accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
|
accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
|
||||||
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
||||||
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (x.getMtbAart() != null) {
|
if (x.getMtbAart() != null) {
|
||||||
accettazioneOrdiniPickingListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
|
accettazioneOrdiniPickingListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
|
||||||
accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
|
accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
}
|
}
|
||||||
|
|
||||||
accettazioneOrdiniPickingListModel.setOriginalModel(x);
|
accettazioneOrdiniPickingListModel.setOriginalModel(x);
|
||||||
|
|
||||||
list.add(accettazioneOrdiniPickingListModel);
|
list.add(accettazioneOrdiniPickingListModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isThereAnyItemToPick(List<PickingObjectDTO> dataList) {
|
private boolean isThereAnyItemToPick(List<PickingObjectDTO> dataList) {
|
||||||
return Stream.of(dataList)
|
return Stream.of(dataList).anyMatch(x -> !x.isHidden());
|
||||||
.anyMatch(x -> !x.isHidden());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
@@ -718,20 +651,26 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void trackPackaging() {
|
||||||
|
this.fabPopupMenu.dismiss();
|
||||||
|
|
||||||
|
DialogTracciamentoImballiView.newInstance(data -> {
|
||||||
|
if (data != null && !data.isEmpty())
|
||||||
|
mViewModel.registraImballi(data);
|
||||||
|
}).show(getSupportFragmentManager(), DialogTracciamentoImballiView.class.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void showCreatedUL() {
|
public void showCreatedUL() {
|
||||||
this.fabPopupMenu.dismiss();
|
this.fabPopupMenu.dismiss();
|
||||||
this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
|
this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showOrderByDialog() {
|
private void showOrderByDialog() {
|
||||||
AlertDialog dialog = new AlertDialog.Builder(this)
|
AlertDialog dialog = new AlertDialog.Builder(this).setTitle(this.getText(R.string.action_orderBy)).setSingleChoiceItems(AccettazioneOrdineInevasoOrderBy.descriptions, mCurrentOrderBy.getVal(), (dialog12, which) -> {
|
||||||
.setTitle(this.getText(R.string.action_orderBy))
|
mCurrentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(which);
|
||||||
.setSingleChoiceItems(AccettazioneOrdineInevasoOrderBy.descriptions, mCurrentOrderBy.getVal(), (dialog12, which) -> {
|
SettingsManager.i().getUserSession().setDefaultOrdinamentoPickingAccettazione(which);
|
||||||
mCurrentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(which);
|
}).setPositiveButton(getText(R.string.ok), (dialog1, which) -> this.refreshList()).create();
|
||||||
SettingsManager.i().getUserSession().setDefaultOrdinamentoPickingAccettazione(which);
|
|
||||||
})
|
|
||||||
.setPositiveButton(getText(R.string.ok), (dialog1, which) -> this.refreshList())
|
|
||||||
.create();
|
|
||||||
dialog.show();
|
dialog.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -739,14 +678,9 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
Intent myIntent = ListaBancaliActivity.createIntent(this,
|
Intent myIntent = ListaBancaliActivity.createIntent(this,
|
||||||
|
|
||||||
Stream.of(mtbColts)
|
Stream.of(mtbColts).map(AlreadyRegisteredUDCDTO::getMtbColt).toList(),
|
||||||
.map(AlreadyRegisteredUDCDTO::getMtbColt)
|
|
||||||
.toList(),
|
|
||||||
|
|
||||||
input -> Stream.of(mtbColts)
|
input -> Stream.of(mtbColts).filter(x -> x.getMtbColt() == input).findFirstOrElse(null).isCanBeRecovered(),
|
||||||
.filter(x -> x.getMtbColt() == input)
|
|
||||||
.findFirstOrElse(null)
|
|
||||||
.isCanBeRecovered(),
|
|
||||||
|
|
||||||
ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
|
ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
|
||||||
|
|
||||||
@@ -757,9 +691,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
public void onLUSuccessullyPrinted() {
|
public void onLUSuccessullyPrinted() {
|
||||||
Resources res = getResources();
|
Resources res = getResources();
|
||||||
String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
|
String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
|
||||||
DialogSimpleMessageView
|
DialogSimpleMessageView.makeSuccessDialog(res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show(getSupportFragmentManager(), "tag");
|
||||||
.makeSuccessDialog(res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null)
|
|
||||||
.show(getSupportFragmentManager(), "tag");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -769,13 +701,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
@Override
|
@Override
|
||||||
public void onLUPrintError(Exception ex, Runnable onComplete) {
|
public void onLUPrintError(Exception ex, Runnable onComplete) {
|
||||||
this.onLoadingEnded();
|
this.onLoadingEnded();
|
||||||
DialogSimpleMessageView.makeErrorDialog(
|
DialogSimpleMessageView.makeErrorDialog(new SpannableString(ex.getMessage()), null, null, R.string.button_ignore_print, onComplete).show(getSupportFragmentManager(), "tag");
|
||||||
new SpannableString(ex.getMessage()),
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
R.string.button_ignore_print,
|
|
||||||
onComplete)
|
|
||||||
.show(getSupportFragmentManager(), "tag");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -795,20 +721,12 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onVersamentoAutomaticoULRequest(RunnableArgs<Boolean> onComplete) {
|
public void onVersamentoAutomaticoULRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
runOnUiThread(() -> {
|
DialogAskShouldVersamentoAutomaticoULView.newInstance(onComplete).show(getSupportFragmentManager(), "tag");
|
||||||
DialogAskShouldVersamentoAutomaticoULView.newInstance(onComplete)
|
|
||||||
.show(getSupportFragmentManager(), "tag");
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||||
// runOnUiThread(() -> {
|
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded).show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||||
// DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
|
||||||
// });
|
|
||||||
|
|
||||||
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
|
|
||||||
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -824,43 +742,25 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onWarning(String warningText, Runnable action) {
|
||||||
|
this.runOnUiThread(() -> {
|
||||||
|
this.onLoadingEnded();
|
||||||
|
DialogSimpleMessageView
|
||||||
|
.makeWarningDialog(new SpannableString(Html.fromHtml(warningText)), null, action)
|
||||||
|
.show(getSupportFragmentManager(), "tag");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, String customArtDescription, RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, String customArtDescription, RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO().setMtbAart(mtbAart).setInitialNumCnf(initialNumCnf).setInitialQtaCnf(initialQtaCnf).setInitialQtaTot(initialQtaTot).setTotalQtaOrd(totalQtaOrd).setTotalNumCnfOrd(totalNumCnfOrd).setQtaCnfOrd(qtaCnfOrd).setTotalQtaToBeTaken(totalQtaToBeTaken).setTotalNumCnfToBeTaken(totalNumCnfToBeTaken).setQtaCnfToBeTaken(qtaCnfToBeTaken).setTotalQtaAvailable(totalQtaAvailable).setTotalNumCnfAvailable(totalNumCnfAvailable).setQtaCnfAvailable(qtaCnfAvailable).setPartitaMag(partitaMag).setDataScad(dataScad).setCanPartitaMagBeChanged(canPartitaMagBeChanged).setCanLUBeClosed(true).setCanOverflowOrderQuantity(canOverflowQuantity).setCustomArtDescription(customArtDescription);
|
||||||
.setMtbAart(mtbAart)
|
|
||||||
.setInitialNumCnf(initialNumCnf)
|
|
||||||
.setInitialQtaCnf(initialQtaCnf)
|
|
||||||
.setInitialQtaTot(initialQtaTot)
|
|
||||||
.setTotalQtaOrd(totalQtaOrd)
|
|
||||||
.setTotalNumCnfOrd(totalNumCnfOrd)
|
|
||||||
.setQtaCnfOrd(qtaCnfOrd)
|
|
||||||
.setTotalQtaToBeTaken(totalQtaToBeTaken)
|
|
||||||
.setTotalNumCnfToBeTaken(totalNumCnfToBeTaken)
|
|
||||||
.setQtaCnfToBeTaken(qtaCnfToBeTaken)
|
|
||||||
.setTotalQtaAvailable(totalQtaAvailable)
|
|
||||||
.setTotalNumCnfAvailable(totalNumCnfAvailable)
|
|
||||||
.setQtaCnfAvailable(qtaCnfAvailable)
|
|
||||||
.setPartitaMag(partitaMag)
|
|
||||||
.setDataScad(dataScad)
|
|
||||||
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
|
||||||
.setCanLUBeClosed(true)
|
|
||||||
.setCanOverflowOrderQuantity(canOverflowQuantity)
|
|
||||||
.setCustomArtDescription(customArtDescription);
|
|
||||||
|
|
||||||
if (!mDialogInputQuantityV2View.isVisible())
|
if (!mDialogInputQuantityV2View.isVisible())
|
||||||
mDialogInputQuantityV2View
|
mDialogInputQuantityV2View.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO).setOnComplete((resultDTO, shouldCloseLU) -> {
|
||||||
.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
|
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO().setNumCnf(resultDTO.getNumCnf()).setQtaCnf(resultDTO.getQtaCnf()).setQtaTot(resultDTO.getQtaTot()).setPartitaMag(resultDTO.getPartitaMag()).setDataScad(resultDTO.getDataScad());
|
||||||
.setOnComplete((resultDTO, shouldCloseLU) -> {
|
onComplete.run(pickedQuantityDTO, shouldCloseLU);
|
||||||
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
}).setOnAbort(() -> this.mViewModel.resetMatchedRows()).show(getSupportFragmentManager(), "tag");
|
||||||
.setNumCnf(resultDTO.getNumCnf())
|
|
||||||
.setQtaCnf(resultDTO.getQtaCnf())
|
|
||||||
.setQtaTot(resultDTO.getQtaTot())
|
|
||||||
.setPartitaMag(resultDTO.getPartitaMag())
|
|
||||||
.setDataScad(resultDTO.getDataScad());
|
|
||||||
onComplete.run(pickedQuantityDTO, shouldCloseLU);
|
|
||||||
})
|
|
||||||
.setOnAbort(() -> this.mViewModel.resetMatchedRows())
|
|
||||||
.show(getSupportFragmentManager(), "tag");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -894,9 +794,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
public void onULVersata(VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, Runnable onComplete) {
|
public void onULVersata(VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, Runnable onComplete) {
|
||||||
|
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
DialogVersamentoAutomaticoULDoneView
|
DialogVersamentoAutomaticoULDoneView.newInstance(versamentoAutomaticoULResponseDTO, onComplete).show(getSupportFragmentManager(), "tag");
|
||||||
.newInstance(versamentoAutomaticoULResponseDTO, onComplete)
|
|
||||||
.show(getSupportFragmentManager(), "tag");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -905,11 +803,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
public void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete) {
|
public void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
String text = getResources().getString(R.string.alert_delete_mtb_colr);
|
String text = getResources().getString(R.string.alert_delete_mtb_colr);
|
||||||
DialogSimpleMessageView.makeWarningDialog(new SpannableString(text),
|
DialogSimpleMessageView.makeWarningDialog(new SpannableString(text), null, () -> onComplete.run(true), () -> onComplete.run(false)).show(getSupportFragmentManager(), "tag");
|
||||||
null,
|
|
||||||
() -> onComplete.run(true),
|
|
||||||
() -> onComplete.run(false)
|
|
||||||
).show(getSupportFragmentManager(), "tag");
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -925,15 +819,11 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLUClosed() {
|
public void onLUClosed() {
|
||||||
runOnUiThread(() -> {
|
noLUPresent.set(true);
|
||||||
noLUPresent.set(true);
|
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
|
||||||
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
|
this.refreshList();
|
||||||
|
|
||||||
|
if (this.mShouldCloseActivity) super.onBackPressed();
|
||||||
this.refreshList();
|
|
||||||
|
|
||||||
if (this.mShouldCloseActivity) super.onBackPressed();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.AccettazioneOrdiniPickingRESTConsumer;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.AccettazioneOrdiniPickingRESTConsumer;
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
||||||
@@ -31,18 +31,19 @@ public class AccettazioneOrdiniPickingModule {
|
|||||||
ArticoloRESTConsumer articoloRESTConsumer,
|
ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
BarcodeRESTConsumer barcodeRESTConsumer,
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
PrinterRESTConsumer printerRESTConsumer,
|
|
||||||
AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer,
|
AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer,
|
||||||
ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
|
ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
|
||||||
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
||||||
Ean128Service ean128Service) {
|
Ean128Service ean128Service,
|
||||||
|
ImballiRESTConsumer imballiRESTConsumer) {
|
||||||
return new AccettazioneOrdiniPickingViewModel(articoloRESTConsumer,
|
return new AccettazioneOrdiniPickingViewModel(articoloRESTConsumer,
|
||||||
barcodeRESTConsumer,
|
barcodeRESTConsumer,
|
||||||
colliMagazzinoRESTConsumer,
|
colliMagazzinoRESTConsumer,
|
||||||
printerRESTConsumer,
|
|
||||||
accettazioneOrdiniPickingRESTConsumer,
|
accettazioneOrdiniPickingRESTConsumer,
|
||||||
colliAccettazioneRESTConsumer,
|
colliAccettazioneRESTConsumer,
|
||||||
colliLavorazioneRESTConsumer, ean128Service);
|
colliLavorazioneRESTConsumer,
|
||||||
|
ean128Service,
|
||||||
|
imballiRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import java.math.BigDecimal;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -40,11 +41,12 @@ import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliCaricoRESTConsumerInterface;
|
import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliCaricoRESTConsumerInterface;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.imballi.ImballoQuantityDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestOrderDTO;
|
import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestOrderDTO;
|
||||||
@@ -66,17 +68,18 @@ import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.Accetta
|
|||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.TracciamentoImballoDTO;
|
||||||
|
|
||||||
public class AccettazioneOrdiniPickingViewModel {
|
public class AccettazioneOrdiniPickingViewModel {
|
||||||
|
|
||||||
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||||
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
||||||
private final PrinterRESTConsumer mPrinterRESTConsumer;
|
|
||||||
private final AccettazioneOrdiniPickingRESTConsumer mAccettazioneOrdiniPickingRESTConsumer;
|
private final AccettazioneOrdiniPickingRESTConsumer mAccettazioneOrdiniPickingRESTConsumer;
|
||||||
private final ColliAccettazioneRESTConsumer mColliAccettazioneRESTConsumer;
|
private final ColliAccettazioneRESTConsumer mColliAccettazioneRESTConsumer;
|
||||||
private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
|
private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
|
||||||
private final Ean128Service mEan128Service;
|
private final Ean128Service mEan128Service;
|
||||||
|
private final ImballiRESTConsumer mImballiRESTConsumer;
|
||||||
|
|
||||||
private ColliCaricoRESTConsumerInterface mColliCaricoRESTConsumer;
|
private ColliCaricoRESTConsumerInterface mColliCaricoRESTConsumer;
|
||||||
|
|
||||||
@@ -88,6 +91,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
|
|
||||||
private MtbColt mCurrentMtbColt = null;
|
private MtbColt mCurrentMtbColt = null;
|
||||||
private GestioneEnum defaultGestioneOfUL = null;
|
private GestioneEnum defaultGestioneOfUL = null;
|
||||||
|
private String foundCodAnag = null;
|
||||||
|
|
||||||
private final List<HistoryMtbAartDTO> mHistoryUsedAarts = new ArrayList<>();
|
private final List<HistoryMtbAartDTO> mHistoryUsedAarts = new ArrayList<>();
|
||||||
|
|
||||||
@@ -95,19 +99,19 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
public AccettazioneOrdiniPickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
public AccettazioneOrdiniPickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
BarcodeRESTConsumer barcodeRESTConsumer,
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
PrinterRESTConsumer printerRESTConsumer,
|
|
||||||
AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer,
|
AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer,
|
||||||
ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
|
ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
|
||||||
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
||||||
Ean128Service ean128Service) {
|
Ean128Service ean128Service,
|
||||||
|
ImballiRESTConsumer imballiRESTConsumer) {
|
||||||
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
||||||
this.mPrinterRESTConsumer = printerRESTConsumer;
|
|
||||||
this.mAccettazioneOrdiniPickingRESTConsumer = accettazioneOrdiniPickingRESTConsumer;
|
this.mAccettazioneOrdiniPickingRESTConsumer = accettazioneOrdiniPickingRESTConsumer;
|
||||||
this.mColliAccettazioneRESTConsumer = colliAccettazioneRESTConsumer;
|
this.mColliAccettazioneRESTConsumer = colliAccettazioneRESTConsumer;
|
||||||
this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
|
this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
|
||||||
this.mEan128Service = ean128Service;
|
this.mEan128Service = ean128Service;
|
||||||
|
this.mImballiRESTConsumer = imballiRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -131,6 +135,15 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
.findFirst()
|
.findFirst()
|
||||||
.get();
|
.get();
|
||||||
|
|
||||||
|
//Definizione codAnag
|
||||||
|
var codAnagsOrd = mOrders.stream()
|
||||||
|
.map(OrdineAccettazioneInevasoDTO::getCodAnagOrd)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
if(codAnagsOrd.size() == 1) foundCodAnag = codAnagsOrd.get(0);
|
||||||
|
|
||||||
|
|
||||||
//Definizione della gestione collo di default
|
//Definizione della gestione collo di default
|
||||||
List<GestioneEnum> foundGestioni = Stream.of(mOrders)
|
List<GestioneEnum> foundGestioni = Stream.of(mOrders)
|
||||||
.map(OrdineAccettazioneInevasoDTO::getGestioneEnum)
|
.map(OrdineAccettazioneInevasoDTO::getGestioneEnum)
|
||||||
@@ -234,8 +247,14 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
try {
|
try {
|
||||||
Ean128Model ean128Model = mEan128Service.decode(barcodeScanDTO);
|
Ean128Model ean128Model = mEan128Service.decode(barcodeScanDTO);
|
||||||
|
|
||||||
//Nel caso trovo un SSCC lo aggiungo
|
mColliAccettazioneRESTConsumer.checkBarcodeUl(ean128Model.Sscc, result -> {
|
||||||
this.processBarcodeNotOpenedLU(barcodeScanDTO, ean128Model.Sscc, onComplete);
|
if (result){
|
||||||
|
this.sendWarning("Barcode ul già registrato!", onComplete);
|
||||||
|
} else {
|
||||||
|
//Nel caso trovo un SSCC lo aggiungo
|
||||||
|
this.processBarcodeNotOpenedLU(barcodeScanDTO, ean128Model.Sscc, onComplete);
|
||||||
|
}
|
||||||
|
}, this::sendError);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
this.sendError(e);
|
this.sendError(e);
|
||||||
@@ -275,7 +294,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
null,
|
null,
|
||||||
false,
|
false,
|
||||||
() -> {
|
() -> {
|
||||||
if(UtilityString.isNullOrEmpty(customSSCC))
|
if (UtilityString.isNullOrEmpty(customSSCC))
|
||||||
processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete);
|
processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete);
|
||||||
else onComplete.run();
|
else onComplete.run();
|
||||||
});
|
});
|
||||||
@@ -537,7 +556,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
|
|
||||||
if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) {
|
if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) {
|
||||||
dataScad = UtilityDate.getNow();
|
dataScad = UtilityDate.getNow();
|
||||||
dataScad.plusDays(pickingObjectDTO.getMtbAart().getGgScadPartita());
|
dataScad = dataScad.plusDays(pickingObjectDTO.getMtbAart().getGgScadPartita());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (partitaMag == null && dataScad == null) {
|
if (partitaMag == null && dataScad == null) {
|
||||||
@@ -767,9 +786,6 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
} else {
|
} else {
|
||||||
postCloseOperations();
|
postCloseOperations();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.sendLUClosed();
|
|
||||||
this.sendOnLoadingEnded();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sendVersamentoAutomaticoULRequest(response -> {
|
sendVersamentoAutomaticoULRequest(response -> {
|
||||||
@@ -821,7 +837,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||||
BigDecimal numCnf = BigDecimal.ZERO;
|
BigDecimal numCnf = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (withdrawMtbColrs.size() > 0) {
|
if (!withdrawMtbColrs.isEmpty()) {
|
||||||
qtaEvasa = Stream.of(withdrawMtbColrs)
|
qtaEvasa = Stream.of(withdrawMtbColrs)
|
||||||
.map(MtbColr::getQtaCol)
|
.map(MtbColr::getQtaCol)
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
@@ -887,6 +903,22 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
return optional.isPresent() ? optional.get() : null;
|
return optional.isPresent() ? optional.get() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void registraImballi(List<TracciamentoImballoDTO> data) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
|
||||||
|
var inputData = data.stream()
|
||||||
|
.map(x -> new ImballoQuantityDTO()
|
||||||
|
.setQta(x.getQta().get())
|
||||||
|
.setCodMart(x.getCodMart().get()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
mImballiRESTConsumer.registraCarico(foundCodAnag, inputData, () -> {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void sendOnLoadingStarted() {
|
private void sendOnLoadingStarted() {
|
||||||
if (this.mListener != null) mListener.onLoadingStarted();
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
}
|
}
|
||||||
@@ -907,6 +939,10 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
if (this.mListener != null) mListener.onError(ex);
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendWarning(String warningText, Runnable action) {
|
||||||
|
if (this.mListener != null) mListener.onWarning(warningText, action);
|
||||||
|
}
|
||||||
|
|
||||||
private void sendLUOpened(MtbColt mtbColt) {
|
private void sendLUOpened(MtbColt mtbColt) {
|
||||||
if (this.mListener != null) mListener.onLUOpened(mtbColt);
|
if (this.mListener != null) mListener.onLUOpened(mtbColt);
|
||||||
}
|
}
|
||||||
@@ -1024,6 +1060,8 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
|
|
||||||
void onFilterPosizioneApplied(String posizioneToFilter);
|
void onFilterPosizioneApplied(String posizioneToFilter);
|
||||||
|
|
||||||
|
void onWarning(String warningText, Runnable action);
|
||||||
|
|
||||||
void onULVersata(VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, Runnable onComplete);
|
void onULVersata(VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, Runnable onComplete);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package it.integry.integrywmsnative.gest.contab_doc_interni;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.text.SpannableString;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@@ -37,6 +39,7 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniE
|
|||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.ui.DocInterniListAdapter;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.ui.DocInterniListAdapter;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.ui.DocInterniListModel;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.ui.DocInterniListModel;
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
|
|
||||||
public class DocInterniFragment extends BaseFragment implements ITitledFragment, IScrollableFragment, DocInterniViewModel.Listener {
|
public class DocInterniFragment extends BaseFragment implements ITitledFragment, IScrollableFragment, DocInterniViewModel.Listener {
|
||||||
|
|
||||||
@@ -120,10 +123,21 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
|
|||||||
this.openDocumentSelectionDialog();
|
this.openDocumentSelectionDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onWarning(String warningText, Runnable action) {
|
||||||
|
this.requireActivity().runOnUiThread(() -> {
|
||||||
|
this.onLoadingEnded();
|
||||||
|
DialogSimpleMessageView
|
||||||
|
.makeWarningDialog(new SpannableString(Html.fromHtml(warningText)), null, action)
|
||||||
|
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDocDetailsChanged(DialogSelectDocInfoResponseDTO selection) {
|
public void onDocDetailsChanged(DialogSelectDocInfoResponseDTO selection) {
|
||||||
mViewModel.setSelectedDocDetails(selection);
|
mViewModel.setSelectedDocDetails(selection, () -> {
|
||||||
mBinding.invalidateAll();
|
mBinding.invalidateAll();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
|
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
|
import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
|
||||||
@@ -17,6 +18,8 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.DocumentRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.DocumentRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO;
|
import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoResponseDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoResponseDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO;
|
||||||
@@ -76,6 +79,14 @@ public class DocInterniViewModel {
|
|||||||
if (this.mListener != null) mListener.onError(ex);
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendWarning(String warningText, Runnable action) {
|
||||||
|
if (this.mListener != null) mListener.onWarning(warningText, action);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendDocDetailsChanged(DialogSelectDocInfoResponseDTO selection){
|
||||||
|
if (this.mListener != null) mListener.onDocDetailsChanged(selection);
|
||||||
|
}
|
||||||
|
|
||||||
public DocInterniViewModel setListeners(Listener listener) {
|
public DocInterniViewModel setListeners(Listener listener) {
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
return this;
|
return this;
|
||||||
@@ -85,7 +96,7 @@ public class DocInterniViewModel {
|
|||||||
return mDocsList;
|
return mDocsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSelectedDocDetails(DialogSelectDocInfoResponseDTO selection) {
|
public void setSelectedDocDetails(DialogSelectDocInfoResponseDTO selection, Runnable action) {
|
||||||
this.fornitore = selection.getFornitore();
|
this.fornitore = selection.getFornitore();
|
||||||
this.dtbTipi = selection.getTipoDoc();
|
this.dtbTipi = selection.getTipoDoc();
|
||||||
|
|
||||||
@@ -94,10 +105,34 @@ public class DocInterniViewModel {
|
|||||||
this.numDoc = selection.getNumDoc() != null ? selection.getNumDoc().toString() : null;
|
this.numDoc = selection.getNumDoc() != null ? selection.getNumDoc().toString() : null;
|
||||||
this.note = selection.getNote();
|
this.note = selection.getNote();
|
||||||
|
|
||||||
this.sendOnLoadingStarted();
|
String codAnag = null;
|
||||||
fetchProducts(() -> {
|
if (fornitore != null){
|
||||||
fetchDocuments(this::sendOnLoadingEnded);
|
codAnag = fornitore.getCodAnag();
|
||||||
});
|
}
|
||||||
|
|
||||||
|
String codDtip = null;
|
||||||
|
if (dtbTipi != null){
|
||||||
|
codDtip = dtbTipi.getCodDtip();
|
||||||
|
}
|
||||||
|
|
||||||
|
documentRESTConsumer.checkDocument(
|
||||||
|
codAnag,
|
||||||
|
numDoc,
|
||||||
|
UtilityDate.formatDate(dataDoc, "yyyy/MM/dd"),
|
||||||
|
codDtip,
|
||||||
|
data -> {
|
||||||
|
if (!data) {
|
||||||
|
this.sendWarning("Documento di riferimento non trovato!", this::init);
|
||||||
|
} else {
|
||||||
|
action.run();
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
fetchProducts(() -> {
|
||||||
|
fetchDocuments(this::sendOnLoadingEnded);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
this::sendError
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void fetchProducts(Runnable onComplete) {
|
public void fetchProducts(Runnable onComplete) {
|
||||||
@@ -210,6 +245,8 @@ public class DocInterniViewModel {
|
|||||||
|
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
|
|
||||||
|
void onWarning(String warningText, Runnable action);
|
||||||
|
|
||||||
void onDocInterniSetupFetched(DocInterniSetupDTO docInterniSetupDTO);
|
void onDocInterniSetupFetched(DocInterniSetupDTO docInterniSetupDTO);
|
||||||
|
|
||||||
void onDocDetailsChanged(DialogSelectDocInfoResponseDTO selection);
|
void onDocDetailsChanged(DialogSelectDocInfoResponseDTO selection);
|
||||||
|
|||||||
@@ -3,10 +3,13 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.dialog;
|
|||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
import androidx.lifecycle.ViewModel;
|
import androidx.lifecycle.ViewModel;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.DocumentRequiredException;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.DocumentRequiredException;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.FornitoreRequiredException;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.FornitoreRequiredException;
|
||||||
@@ -33,9 +36,11 @@ public class DialogSelectDocInfoViewModel extends ViewModel {
|
|||||||
private final MutableLiveData<Boolean> noteRequired = new MutableLiveData<>(false);
|
private final MutableLiveData<Boolean> noteRequired = new MutableLiveData<>(false);
|
||||||
|
|
||||||
public DialogSelectDocInfoViewModel() {
|
public DialogSelectDocInfoViewModel() {
|
||||||
|
List<String> requestNumDocList = Arrays.asList(SettingsManager.iDB().getDocInterniRequestNumDoc().split("\\|"));
|
||||||
|
|
||||||
tipoDoc.observeForever(val -> fornitoreRequired.postValue(val != null && (val.getGestioneDoc().equals("T") || val.getGestioneDoc().equals("A") || (val.getGestioneDoc().equals("P") && !val.getGestione().equals("L")))));
|
tipoDoc.observeForever(val -> fornitoreRequired.postValue(val != null && (val.getGestioneDoc().equals("T") || val.getGestioneDoc().equals("A") || (val.getGestioneDoc().equals("P") && !val.getGestione().equals("L")))));
|
||||||
|
|
||||||
tipoDoc.observeForever(val -> documentRequired.postValue(val != null && val.getGestioneDoc().equalsIgnoreCase("P") && !val.getGestione().equalsIgnoreCase("L")));
|
tipoDoc.observeForever(val -> documentRequired.postValue(val != null && (val.getGestioneDoc().equalsIgnoreCase("P") && !val.getGestione().equalsIgnoreCase("L")) || requestNumDocList.contains(Objects.requireNonNull(val).getCodDtip())));
|
||||||
|
|
||||||
tipoDoc.observeForever(val -> noteRequired.postValue(val != null && val.getGestioneDoc().equals("P") && val.getGestione().equals("L")));
|
tipoDoc.observeForever(val -> noteRequired.postValue(val != null && val.getGestioneDoc().equals("P") && val.getGestione().equals("L")));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,8 +29,11 @@ public class ArtDTO {
|
|||||||
private LocalDate dataScad;
|
private LocalDate dataScad;
|
||||||
|
|
||||||
private String systemNote;
|
private String systemNote;
|
||||||
|
|
||||||
private String codAlis;
|
private String codAlis;
|
||||||
|
|
||||||
|
private Date datetimeRow;
|
||||||
|
|
||||||
public Integer getRigaOrd() {
|
public Integer getRigaOrd() {
|
||||||
return rigaOrd;
|
return rigaOrd;
|
||||||
}
|
}
|
||||||
@@ -135,4 +138,13 @@ public class ArtDTO {
|
|||||||
this.codAlis = codAlis;
|
this.codAlis = codAlis;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Date getDatetimeRow() {
|
||||||
|
return datetimeRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArtDTO setDatetimeRow(Date datetimeRow) {
|
||||||
|
this.datetimeRow = datetimeRow;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.dto;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class RetrieveLottiDTO {
|
||||||
|
|
||||||
|
private String codProd;
|
||||||
|
private String partitaMag;
|
||||||
|
private Date dataScad;
|
||||||
|
|
||||||
|
public String getCodProd() {
|
||||||
|
return codProd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RetrieveLottiDTO setCodProd(String codProd) {
|
||||||
|
this.codProd = codProd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPartitaMag() {
|
||||||
|
return partitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RetrieveLottiDTO setPartitaMag(String partitaMag) {
|
||||||
|
this.partitaMag = partitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataScad() {
|
||||||
|
return dataScad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RetrieveLottiDTO setDataScad(Date dataScad) {
|
||||||
|
this.dataScad = dataScad;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ public class TipoDocDTO {
|
|||||||
private String gestioneDoc;
|
private String gestioneDoc;
|
||||||
private boolean flagChkTracciabilita;
|
private boolean flagChkTracciabilita;
|
||||||
private boolean requireNote = false;
|
private boolean requireNote = false;
|
||||||
|
private boolean suggestLotti;
|
||||||
|
|
||||||
public String getCodDtip() {
|
public String getCodDtip() {
|
||||||
return codDtip;
|
return codDtip;
|
||||||
@@ -62,4 +63,13 @@ public class TipoDocDTO {
|
|||||||
this.flagChkTracciabilita = flagChkTracciabilita;
|
this.flagChkTracciabilita = flagChkTracciabilita;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSuggestLotti() {
|
||||||
|
return suggestLotti;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TipoDocDTO setSuggestLotti(boolean suggestLotti) {
|
||||||
|
this.suggestLotti = suggestLotti;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDT
|
|||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsItemListModel;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsItemListModel;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiItemListModel;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiView;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.ui.DocumentRowsListAdapter;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.ui.DocumentRowsListAdapter;
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
|
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||||
@@ -302,6 +304,30 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
|
|||||||
.setFlagDig(isUntMisDig ? "S" : "N");
|
.setFlagDig(isUntMisDig ? "S" : "N");
|
||||||
mtbAart.setMtbUntMis(Collections.singletonList(mtbUntMis));
|
mtbAart.setMtbUntMis(Collections.singletonList(mtbUntMis));
|
||||||
|
|
||||||
|
if (this.viewModel.getTipoDoc().isSuggestLotti()) {
|
||||||
|
this.viewModel.retrieveLotti(row.getCodMart(), lotti -> {
|
||||||
|
var dataSet =
|
||||||
|
Stream.of(lotti)
|
||||||
|
.map(x -> new DialogSelectLottiItemListModel<>()
|
||||||
|
.setPartitaMag(x.getPartitaMag())
|
||||||
|
.setDataScad(UtilityDate.toLocalDate(x.getDataScad()))
|
||||||
|
.setOriginalModel(x)
|
||||||
|
)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
DialogSelectLottiView.newInstance(dataSet, data -> {
|
||||||
|
row.setPartitaMag(data.getPartitaMag());
|
||||||
|
row.setDataScad(data.getDataScad());
|
||||||
|
|
||||||
|
openInputQuantity(mtbAart, row, flagTracciabilita);
|
||||||
|
}, () -> {}).show(this.getSupportFragmentManager(), "dialogSelectLotti");;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
openInputQuantity(mtbAart, row, flagTracciabilita);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void openInputQuantity(MtbAart mtbAart, SqlMtbColr row, boolean flagTracciabilita) {
|
||||||
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||||
.setMtbAart(mtbAart)
|
.setMtbAart(mtbAart)
|
||||||
.setInitialNumCnf(BigDecimal.valueOf(row.getNumCnf()))
|
.setInitialNumCnf(BigDecimal.valueOf(row.getNumCnf()))
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.annimon.stream.Stream;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@@ -18,6 +19,7 @@ import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSour
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
|
||||||
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoResultFromCodMartException;
|
import it.integry.integrywmsnative.core.exception.NoResultFromCodMartException;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
@@ -31,6 +33,7 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.dto.CheckFornitoreDTO
|
|||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.RetrieveLottiDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer;
|
||||||
@@ -125,7 +128,7 @@ public class DocInterniEditFormViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void loadArticoloByCodMartOrBarcode(String codMart) {
|
public void loadArticoloByCodMartOrBarcode(String codMart) {
|
||||||
if(productsList == null) {
|
if (productsList == null) {
|
||||||
this.sendError(new NoResultFromCodMartException(codMart));
|
this.sendError(new NoResultFromCodMartException(codMart));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -239,6 +242,7 @@ public class DocInterniEditFormViewModel {
|
|||||||
artDto.setBarcode(row.getCodBarre());
|
artDto.setBarcode(row.getCodBarre());
|
||||||
artDto.setQta(BigDecimal.valueOf(row.getQtaCol()));
|
artDto.setQta(BigDecimal.valueOf(row.getQtaCol()));
|
||||||
artDto.setDataIns(row.getDataCollo());
|
artDto.setDataIns(row.getDataCollo());
|
||||||
|
artDto.setDatetimeRow(row.getDatetimeRow());
|
||||||
artDto.setColli(BigDecimal.valueOf(row.getNumCnf()));
|
artDto.setColli(BigDecimal.valueOf(row.getNumCnf()));
|
||||||
artDto.setUntMis(row.getUntMis());
|
artDto.setUntMis(row.getUntMis());
|
||||||
artDto.setCodMart(row.getCodMart());
|
artDto.setCodMart(row.getCodMart());
|
||||||
@@ -355,6 +359,7 @@ public class DocInterniEditFormViewModel {
|
|||||||
row.setQtaCnf(resultDTO.getQtaCnf().floatValue());
|
row.setQtaCnf(resultDTO.getQtaCnf().floatValue());
|
||||||
row.setNumCnf(resultDTO.getNumCnf().floatValue());
|
row.setNumCnf(resultDTO.getNumCnf().floatValue());
|
||||||
row.setQtaCol(resultDTO.getQtaTot().floatValue());
|
row.setQtaCol(resultDTO.getQtaTot().floatValue());
|
||||||
|
row.setDatetimeRow(new Date());
|
||||||
row.setNote(resultDTO.getNote());
|
row.setNote(resultDTO.getNote());
|
||||||
row.setDataScad(resultDTO.getDataScad());
|
row.setDataScad(resultDTO.getDataScad());
|
||||||
row.setPartitaMag(resultDTO.getPartitaMag());
|
row.setPartitaMag(resultDTO.getPartitaMag());
|
||||||
@@ -369,6 +374,10 @@ public class DocInterniEditFormViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void retrieveLotti(String codProd, RunnableArgs<List<RetrieveLottiDTO>> onComplete) {
|
||||||
|
docInterniRESTConsumer.retrieveLotti(codProd, onComplete, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
public void deleteRow(SqlMtbColr sqlMtbColr) {
|
public void deleteRow(SqlMtbColr sqlMtbColr) {
|
||||||
mtbColrRepository.delete(sqlMtbColr, this::fetchDocumentRows, this::sendError);
|
mtbColrRepository.delete(sqlMtbColr, this::fetchDocumentRows, this::sendError);
|
||||||
}
|
}
|
||||||
@@ -394,6 +403,10 @@ public class DocInterniEditFormViewModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TipoDocDTO getTipoDoc() {
|
||||||
|
return tipoDoc;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isNotesMandatory() {
|
public boolean isNotesMandatory() {
|
||||||
return this.tipoDoc != null && this.tipoDoc.isRequireNote();
|
return this.tipoDoc != null && this.tipoDoc.isRequireNote();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogSelectLottiComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogSelectLottiComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogSelectLottiView dialogSelectLottiView);
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
|
public class DialogSelectLottiItemListModel<T> {
|
||||||
|
|
||||||
|
private String partitaMag;
|
||||||
|
private LocalDate dataScad;
|
||||||
|
private T originalModel;
|
||||||
|
private BindableBoolean checked = new BindableBoolean(false);
|
||||||
|
|
||||||
|
public String getPartitaMag() {
|
||||||
|
return partitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSelectLottiItemListModel<T> setPartitaMag(String partitaMag) {
|
||||||
|
this.partitaMag = partitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getDataScad() {
|
||||||
|
return dataScad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDataScadText() {
|
||||||
|
return UtilityDate.formatDate(this.dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSelectLottiItemListModel<T> setDataScad(LocalDate dataScad) {
|
||||||
|
this.dataScad = dataScad;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public T getOriginalModel() {
|
||||||
|
return originalModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSelectLottiItemListModel<T> setOriginalModel(T originalModel) {
|
||||||
|
this.originalModel = originalModel;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BindableBoolean getChecked() {
|
||||||
|
return checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSelectLottiItemListModel<T> setChecked(BindableBoolean checked) {
|
||||||
|
this.checked = checked;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogSelectLottiComponent.class)
|
||||||
|
public class DialogSelectLottiModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogSelectLottiViewModel providesDialogSelectLottiViewModel() {
|
||||||
|
return new DialogSelectLottiViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||||
|
import com.ravikoradiya.liveadapter.Type;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.BR;
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogSelectLottiBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogSelectLottiItemModelBinding;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @noinspection rawtypes
|
||||||
|
*/
|
||||||
|
public class DialogSelectLottiView extends BaseDialogFragment {
|
||||||
|
@Inject
|
||||||
|
DialogSelectLottiViewModel mViewModel;
|
||||||
|
|
||||||
|
private DialogSelectLottiBinding mBindings;
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
private final List<DialogSelectLottiItemListModel<Object>> listLotti;
|
||||||
|
private final RunnableArgs<DialogSelectLottiItemListModel> onConfirm;
|
||||||
|
private final Runnable onAbort;
|
||||||
|
|
||||||
|
public static DialogSelectLottiView newInstance(List<DialogSelectLottiItemListModel<Object>> listLotti,
|
||||||
|
RunnableArgs<DialogSelectLottiItemListModel> onConfirm,
|
||||||
|
Runnable onAbort) {
|
||||||
|
return new DialogSelectLottiView(listLotti, onConfirm, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogSelectLottiView(List<DialogSelectLottiItemListModel<Object>> listLotti,
|
||||||
|
RunnableArgs<DialogSelectLottiItemListModel> onConfirm,
|
||||||
|
Runnable onAbort) {
|
||||||
|
super();
|
||||||
|
|
||||||
|
this.listLotti = listLotti;
|
||||||
|
this.onConfirm = onConfirm;
|
||||||
|
this.onAbort = onAbort;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
this.mContext = requireContext();
|
||||||
|
|
||||||
|
mBindings = DialogSelectLottiBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialogSelectLottiComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
setCancelable(false);
|
||||||
|
|
||||||
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
|
.setView(mBindings.getRoot())
|
||||||
|
.setCancelable(isCancelable())
|
||||||
|
.setPositiveButton(R.string.confirm, (dialog, which) -> {
|
||||||
|
final DialogSelectLottiItemListModel<Object> selectedItem = Stream.of(listLotti)
|
||||||
|
.filter(x -> x.getChecked().get())
|
||||||
|
.findFirstOrElse(null);
|
||||||
|
if (selectedItem != null)
|
||||||
|
this.onConfirm.run(selectedItem);
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.abort, (dialog, which) -> {
|
||||||
|
if (this.onAbort != null) this.onAbort.run();
|
||||||
|
})
|
||||||
|
.create();
|
||||||
|
|
||||||
|
alertDialog.setCanceledOnTouchOutside(isCancelable());
|
||||||
|
alertDialog.setOnShowListener(this);
|
||||||
|
return alertDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShow(DialogInterface dialogInterface) {
|
||||||
|
super.onShow(dialogInterface);
|
||||||
|
|
||||||
|
this.listLotti.get(0).getChecked().set(true);
|
||||||
|
this.initRecyclerView();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initRecyclerView() {
|
||||||
|
var itemType = new Type<DialogSelectLottiItemListModel, DialogSelectLottiItemModelBinding>(R.layout.dialog_select_lotti__item_model, BR.row);
|
||||||
|
itemType.areContentsTheSame(DialogSelectLottiItemListModel::equals);
|
||||||
|
itemType.onClick(x -> {
|
||||||
|
resetChecks();
|
||||||
|
x.getBinding().getRow().getChecked().set(true);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
new LiveAdapter(listLotti)
|
||||||
|
.map(DialogSelectLottiItemListModel.class, itemType)
|
||||||
|
.into(this.mBindings.itemList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resetChecks() {
|
||||||
|
for (var item : listLotti) {
|
||||||
|
item.getChecked().set(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti;
|
||||||
|
|
||||||
|
public class DialogSelectLottiViewModel {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
package it.integry.integrywmsnative.gest.contab_doc_interni.rest;
|
package it.integry.integrywmsnative.gest.contab_doc_interni.rest;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.exception.RestException;
|
import it.integry.integrywmsnative.core.exception.RestException;
|
||||||
@@ -9,6 +13,7 @@ import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.RetrieveLottiDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
@@ -38,6 +43,21 @@ public class DocInterniRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void retrieveLotti(String codProd, RunnableArgs<List<RetrieveLottiDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
DocInterniRESTConsumerService service = RESTBuilder.getService(DocInterniRESTConsumerService.class);
|
||||||
|
service.retrieveLotti(codProd)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(@NonNull Call<ServiceRESTResponse<List<RetrieveLottiDTO>>> call, @NonNull Response<ServiceRESTResponse<List<RetrieveLottiDTO>>> response) {
|
||||||
|
analyzeAnswer(response, "retrieveLotti", onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(@NonNull Call<ServiceRESTResponse<List<RetrieveLottiDTO>>> call, @NonNull Throwable t) {
|
||||||
|
onFailed.run(new RestException(t.getMessage()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void saveDoc(SaveDTO saveDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
public void saveDoc(SaveDTO saveDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
magazzinoRESTConsumer.saveTerminalinoWMS(saveDTO, onComplete, onFailed);
|
magazzinoRESTConsumer.saveTerminalinoWMS(saveDTO, onComplete, onFailed);
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
package it.integry.integrywmsnative.gest.contab_doc_interni.rest;
|
package it.integry.integrywmsnative.gest.contab_doc_interni.rest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.documento.RetrieveDocumentoArtsResponseDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.RetrieveLottiDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.http.GET;
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
|
|
||||||
public interface DocInterniRESTConsumerService {
|
public interface DocInterniRESTConsumerService {
|
||||||
@@ -11,4 +16,7 @@ public interface DocInterniRESTConsumerService {
|
|||||||
@GET("getDocInterniSetup")
|
@GET("getDocInterniSetup")
|
||||||
Call<ServiceRESTResponse<DocInterniSetupDTO>> getSetupDocInterni();
|
Call<ServiceRESTResponse<DocInterniSetupDTO>> getSetupDocInterni();
|
||||||
|
|
||||||
|
@GET("wms/documento/retrieveLotti")
|
||||||
|
Call<ServiceRESTResponse<List<RetrieveLottiDTO>>> retrieveLotti(
|
||||||
|
@Query("codProd") String codProd);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ public class LoginViewModel {
|
|||||||
this.mSystemRESTConsumer.getAvailableCodMdeps(availableCodMdeps -> {
|
this.mSystemRESTConsumer.getAvailableCodMdeps(availableCodMdeps -> {
|
||||||
SettingsManager.iDB().setAvailableCodMdep(availableCodMdeps);
|
SettingsManager.iDB().setAvailableCodMdep(availableCodMdeps);
|
||||||
|
|
||||||
if (availableCodMdeps == null || availableCodMdeps.size() == 0) {
|
if (availableCodMdeps == null || availableCodMdeps.isEmpty()) {
|
||||||
this.sendError(new InvalidUserDepositException());
|
this.sendError(new InvalidUserDepositException());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
|||||||
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
|
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteView;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdView;
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdView;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.dto.DialogAskLineaProdResponse;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrList;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrList;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
@@ -297,7 +298,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLULineaProdRequired(RunnableArgs<String> onComplete, Runnable onAbort) {
|
public void onLULineaProdRequired(RunnableArgs<DialogAskLineaProdResponse> onComplete, Runnable onAbort) {
|
||||||
DialogAskLineaProdView.newInstance(onComplete, onAbort)
|
DialogAskLineaProdView.newInstance(onComplete, onAbort)
|
||||||
.show(getParentFragmentManager(), DialogAskLineaProdView.class.getName());
|
.show(getParentFragmentManager(), DialogAskLineaProdView.class.getName());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import javax.inject.Inject;
|
|||||||
|
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
import it.integry.integrywmsnative.core.exception.InvalidCodMdepException;
|
import it.integry.integrywmsnative.core.exception.InvalidCodMdepException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
|
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
|
||||||
@@ -55,6 +56,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
|
|||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.dto.DialogAskLineaProdResponse;
|
||||||
|
|
||||||
public class PickingLiberoViewModel {
|
public class PickingLiberoViewModel {
|
||||||
|
|
||||||
@@ -136,13 +138,15 @@ public class PickingLiberoViewModel {
|
|||||||
//Cerco tramite etichetta ean 128 (che può indicarmi una UL)
|
//Cerco tramite etichetta ean 128 (che può indicarmi una UL)
|
||||||
this.executeEtichettaEan128(barcodeScanDTO, onComplete);
|
this.executeEtichettaEan128(barcodeScanDTO, onComplete);
|
||||||
|
|
||||||
} else if (UtilityBarcode.isEanPeso(barcodeScanDTO)) {
|
} else if (UtilityBarcode.isEanPeso(barcodeScanDTO) && SettingsManager.iDB().isFlagPickingLiberoEnableScanArt()) {
|
||||||
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
|
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
|
||||||
this.executeEtichettaEanPeso(barcodeScanDTO, onComplete);
|
this.executeEtichettaEanPeso(barcodeScanDTO, onComplete);
|
||||||
|
|
||||||
} else {
|
} else if (SettingsManager.iDB().isFlagPickingLiberoEnableScanArt()){
|
||||||
//Cerco tramite ean13 un collo in posizione mono ul definita in anagrafica articolo, altrimenti se abilitato procedo con picking manuale
|
//Cerco tramite ean13 un collo in posizione mono ul definita in anagrafica articolo, altrimenti se abilitato procedo con picking manuale
|
||||||
this.loadArticolo(barcodeScanDTO.getStringValue(), null, onComplete);
|
this.loadArticolo(barcodeScanDTO.getStringValue(), null, onComplete);
|
||||||
|
} else {
|
||||||
|
this.sendError(new NoArtsFoundException());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,18 +272,16 @@ public class PickingLiberoViewModel {
|
|||||||
if (!UtilityString.isNullOrEmpty(ean128Model.Content))
|
if (!UtilityString.isNullOrEmpty(ean128Model.Content))
|
||||||
barcodeProd = ean128Model.Content;
|
barcodeProd = ean128Model.Content;
|
||||||
|
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(barcodeProd)) {
|
if (!UtilityString.isNullOrEmpty(barcodeProd)) {
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
|
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
|
||||||
this.executeEtichettaLU(ean128Model.Sscc, onComplete);
|
this.executeEtichettaLU(ean128Model.Sscc, onComplete);
|
||||||
} else if (!UtilityString.isNullOrEmpty(barcodeProd)) {
|
} else if (!UtilityString.isNullOrEmpty(barcodeProd) && SettingsManager.iDB().isFlagPickingLiberoEnableScanArt()) {
|
||||||
this.loadArticolo(barcodeProd, ean128Model, onComplete);
|
this.loadArticolo(barcodeProd, ean128Model, onComplete);
|
||||||
} else {
|
} else {
|
||||||
this.sendError(new NoLUFoundException());
|
this.sendError(new NoLUFoundException());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
|
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
|
||||||
this.sendError(new NoLUFoundException());
|
this.sendError(new NoLUFoundException());
|
||||||
@@ -324,25 +326,25 @@ public class PickingLiberoViewModel {
|
|||||||
|
|
||||||
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, Runnable onComplete) {
|
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, Runnable onComplete) {
|
||||||
if (this.mFlagAskLineaProd) {
|
if (this.mFlagAskLineaProd) {
|
||||||
this.sendLULineaProdRequired(codJfas -> {
|
this.sendLULineaProdRequired(response -> {
|
||||||
createNewLU_PostLineaProdAsk(customNumCollo, customSerCollo, vtbDest, codJfas, onComplete);
|
createNewLU_PostLineaProdAsk(customNumCollo, customSerCollo, vtbDest, response.getPosizione(), response.getIdLotto(), onComplete);
|
||||||
}, () -> {
|
|
||||||
|
|
||||||
});
|
}, this::sendOnLoadingEnded);
|
||||||
} else {
|
} else {
|
||||||
createNewLU_PostLineaProdAsk(customNumCollo, customSerCollo, vtbDest, null, onComplete);
|
createNewLU_PostLineaProdAsk(customNumCollo, customSerCollo, vtbDest, null, null, onComplete);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createNewLU_PostLineaProdAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, String codJfas, Runnable onComplete) {
|
private void createNewLU_PostLineaProdAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, String codJfas, Integer idLotto, Runnable onComplete) {
|
||||||
|
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
var createUDSRequest = new CreateUDSRequestDTO()
|
var createUDSRequest = new CreateUDSRequestDTO()
|
||||||
.setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE ? "PICKING LIBERO" : null)
|
.setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE && !mFlagAskLineaProd ? "PICKING LIBERO" : null)
|
||||||
.setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
|
.setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
|
||||||
.setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO)
|
.setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO)
|
||||||
.setOrderRequired(mFlagAskLineaProd);
|
.setIdLotto(idLotto)
|
||||||
|
.setOrderRequired(false);
|
||||||
|
|
||||||
if (customNumCollo != null) {
|
if (customNumCollo != null) {
|
||||||
createUDSRequest.setNumCollo(customNumCollo);
|
createUDSRequest.setNumCollo(customNumCollo);
|
||||||
@@ -948,7 +950,7 @@ public class PickingLiberoViewModel {
|
|||||||
if (this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort);
|
if (this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendLULineaProdRequired(RunnableArgs<String> onComplete, Runnable onAbort) {
|
private void sendLULineaProdRequired(RunnableArgs<DialogAskLineaProdResponse> onComplete, Runnable onAbort) {
|
||||||
if (this.mListener != null) mListener.onLULineaProdRequired(onComplete, onAbort);
|
if (this.mListener != null) mListener.onLULineaProdRequired(onComplete, onAbort);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1008,7 +1010,7 @@ public class PickingLiberoViewModel {
|
|||||||
|
|
||||||
void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort);
|
void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
void onLULineaProdRequired(RunnableArgs<String> onComplete, Runnable onAbort);
|
void onLULineaProdRequired(RunnableArgs<DialogAskLineaProdResponse> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, MtbAart mtbAart, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
|
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, MtbAart mtbAart, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
|
|||||||
@@ -3,13 +3,12 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale;
|
|||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -93,14 +92,14 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
|
|
||||||
|
|
||||||
private HistoryVersamentoProdULDTO getHistoryElementFromMtbColt(MtbColt mtbColt) {
|
private HistoryVersamentoProdULDTO getHistoryElementFromMtbColt(MtbColt mtbColt) {
|
||||||
List<HistoryVersamentoProdULDTO> filteredItems = Stream.of(this.mUlList.getValue())
|
List<HistoryVersamentoProdULDTO> filteredItems = this.mUlList.getValue().stream()
|
||||||
.filter(x -> Objects.equals(x.getNumColloRif(), mtbColt.getNumCollo()) &&
|
.filter(x -> Objects.equals(x.getNumColloRif(), mtbColt.getNumCollo()) &&
|
||||||
x.getDataColloRif().equals(mtbColt.getDataColloS()) &&
|
x.getDataColloRif().equals(mtbColt.getDataColloLD()) &&
|
||||||
x.getSerColloRif().equalsIgnoreCase(mtbColt.getSerCollo()) &&
|
x.getSerColloRif().equalsIgnoreCase(mtbColt.getSerCollo()) &&
|
||||||
x.getGestioneRif().equalsIgnoreCase(mtbColt.getGestione()))
|
x.getGestioneRif().equalsIgnoreCase(mtbColt.getGestione()))
|
||||||
.toList();
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (filteredItems != null && filteredItems.size() > 0) {
|
if (!filteredItems.isEmpty()) {
|
||||||
return filteredItems.get(0);
|
return filteredItems.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,7 +266,7 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
|
|
||||||
if (!Objects.equals(mtbColt.getNumCollo(), item.getNumColloRif()) ||
|
if (!Objects.equals(mtbColt.getNumCollo(), item.getNumColloRif()) ||
|
||||||
!Objects.equals(mtbColt.getSerCollo(), item.getSerColloRif()) ||
|
!Objects.equals(mtbColt.getSerCollo(), item.getSerColloRif()) ||
|
||||||
!Objects.equals(mtbColt.getDataColloS(), item.getDataColloRif()) ||
|
!Objects.equals(mtbColt.getDataColloLD(), item.getDataColloRif()) ||
|
||||||
!Objects.equals(mtbColt.getGestione(), item.getGestioneRif())) {
|
!Objects.equals(mtbColt.getGestione(), item.getGestioneRif())) {
|
||||||
|
|
||||||
final MtbColt mtbColtCarico = mtbColt
|
final MtbColt mtbColtCarico = mtbColt
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale.dto;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -11,7 +12,7 @@ import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
|||||||
public class HistoryVersamentoProdULDTO {
|
public class HistoryVersamentoProdULDTO {
|
||||||
|
|
||||||
private String gestione;
|
private String gestione;
|
||||||
private String dataCollo;
|
private LocalDate dataCollo;
|
||||||
private String serCollo;
|
private String serCollo;
|
||||||
private Integer numCollo;
|
private Integer numCollo;
|
||||||
private String segno;
|
private String segno;
|
||||||
@@ -28,7 +29,7 @@ public class HistoryVersamentoProdULDTO {
|
|||||||
private String descrizioneArt;
|
private String descrizioneArt;
|
||||||
private String untMis;
|
private String untMis;
|
||||||
private String gestioneRif;
|
private String gestioneRif;
|
||||||
private String dataColloRif;
|
private LocalDate dataColloRif;
|
||||||
private String serColloRif;
|
private String serColloRif;
|
||||||
private Integer numColloRif;
|
private Integer numColloRif;
|
||||||
|
|
||||||
@@ -50,11 +51,11 @@ public class HistoryVersamentoProdULDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDataCollo() {
|
public LocalDate getDataCollo() {
|
||||||
return dataCollo;
|
return dataCollo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HistoryVersamentoProdULDTO setDataCollo(String dataCollo) {
|
public HistoryVersamentoProdULDTO setDataCollo(LocalDate dataCollo) {
|
||||||
this.dataCollo = dataCollo;
|
this.dataCollo = dataCollo;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -203,11 +204,11 @@ public class HistoryVersamentoProdULDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDataColloRif() {
|
public LocalDate getDataColloRif() {
|
||||||
return dataColloRif;
|
return dataColloRif;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HistoryVersamentoProdULDTO setDataColloRif(String dataColloRif) {
|
public HistoryVersamentoProdULDTO setDataColloRif(LocalDate dataColloRif) {
|
||||||
this.dataColloRif = dataColloRif;
|
this.dataColloRif = dataColloRif;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_recupero_materiale.dto;
|
package it.integry.integrywmsnative.gest.prod_recupero_materiale.dto;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
public class HistoryVersamentoProdULRestDTO {
|
public class HistoryVersamentoProdULRestDTO {
|
||||||
|
|
||||||
|
|
||||||
private String gestione;
|
private String gestione;
|
||||||
private String dataCollo;
|
private LocalDate dataCollo;
|
||||||
private String serCollo;
|
private String serCollo;
|
||||||
private Integer numCollo;
|
private Integer numCollo;
|
||||||
private String segno;
|
private String segno;
|
||||||
@@ -27,7 +27,7 @@ public class HistoryVersamentoProdULRestDTO {
|
|||||||
private String descrizioneArt;
|
private String descrizioneArt;
|
||||||
private String untMis;
|
private String untMis;
|
||||||
private String gestioneRif;
|
private String gestioneRif;
|
||||||
private String dataColloRif;
|
private LocalDate dataColloRif;
|
||||||
private String serColloRif;
|
private String serColloRif;
|
||||||
private Integer numColloRif;
|
private Integer numColloRif;
|
||||||
|
|
||||||
@@ -55,11 +55,11 @@ public class HistoryVersamentoProdULRestDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDataCollo() {
|
public LocalDate getDataCollo() {
|
||||||
return dataCollo;
|
return dataCollo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HistoryVersamentoProdULRestDTO setDataCollo(String dataCollo) {
|
public HistoryVersamentoProdULRestDTO setDataCollo(LocalDate dataCollo) {
|
||||||
this.dataCollo = dataCollo;
|
this.dataCollo = dataCollo;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -208,11 +208,11 @@ public class HistoryVersamentoProdULRestDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDataColloRif() {
|
public LocalDate getDataColloRif() {
|
||||||
return dataColloRif;
|
return dataColloRif;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HistoryVersamentoProdULRestDTO setDataColloRif(String dataColloRif) {
|
public HistoryVersamentoProdULRestDTO setDataColloRif(LocalDate dataColloRif) {
|
||||||
this.dataColloRif = dataColloRif;
|
this.dataColloRif = dataColloRif;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ public class ProdRecuperMaterialeRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if (newUlList.size() > 0) {
|
if (!newUlList.isEmpty()) {
|
||||||
List<String> codMarts = Stream.of(newUlList)
|
List<String> codMarts = Stream.of(newUlList)
|
||||||
.map(HistoryVersamentoProdULDTO::getCodMart)
|
.map(HistoryVersamentoProdULDTO::getCodMart)
|
||||||
.withoutNulls()
|
.withoutNulls()
|
||||||
|
|||||||
@@ -136,6 +136,14 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements
|
|||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
itemType.areContentsTheSame((oldObject, newObject) ->
|
||||||
|
oldObject.getCodMart().equalsIgnoreCase(newObject.getCodMart()) &&
|
||||||
|
oldObject.getNumOrd().equals(newObject.getNumOrd()) &&
|
||||||
|
oldObject.getDataOrd().equals(newObject.getDataOrd())
|
||||||
|
);
|
||||||
|
|
||||||
|
itemType.areItemSame((oldObject, newObject) -> oldObject == newObject);
|
||||||
|
|
||||||
new LiveAdapter(mItemsInventario)
|
new LiveAdapter(mItemsInventario)
|
||||||
.map(ArtsInGiacenzaDTO.class, itemType)
|
.map(ArtsInGiacenzaDTO.class, itemType)
|
||||||
.into(this.mBindings.inventarioList);
|
.into(this.mBindings.inventarioList);
|
||||||
@@ -199,10 +207,10 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements
|
|||||||
.setOnFilterApplied(mFilterViewModel::setPositionFilter)
|
.setOnFilterApplied(mFilterViewModel::setPositionFilter)
|
||||||
.setPreselected(
|
.setPreselected(
|
||||||
Stream.of(Objects.requireNonNull(mViewModel.getItemsInventario().getValue()))
|
Stream.of(Objects.requireNonNull(mViewModel.getItemsInventario().getValue()))
|
||||||
.filter(mFilterViewModel.getCurrentPositionPredicate().get() == null ?
|
.filter(mFilterViewModel.getCurrentPositionPredicate().get() == null ?
|
||||||
x -> false : Objects.requireNonNull(mFilterViewModel.getCurrentPositionPredicate().get()))
|
x -> false : Objects.requireNonNull(mFilterViewModel.getCurrentPositionPredicate().get()))
|
||||||
.map(ArtsInGiacenzaDTO::getPosizione)
|
.map(ArtsInGiacenzaDTO::getPosizione)
|
||||||
.toList()
|
.toList()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -213,6 +221,7 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements
|
|||||||
|
|
||||||
public void onInfoClick(ArtsInGiacenzaDTO item) {
|
public void onInfoClick(ArtsInGiacenzaDTO item) {
|
||||||
try {
|
try {
|
||||||
|
BarcodeManager.disable();
|
||||||
DialogInfoGiacenzaView.newInstance(item).show(getChildFragmentManager(), DialogInfoGiacenzaView.class.getName());
|
DialogInfoGiacenzaView.newInstance(item).show(getChildFragmentManager(), DialogInfoGiacenzaView.class.getName());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
UtilityExceptions.defaultException(this.getContext(), e);
|
UtilityExceptions.defaultException(this.getContext(), e);
|
||||||
|
|||||||
@@ -179,7 +179,24 @@ public class ProdRiposizionamentoDaProdViewModel {
|
|||||||
Objects.equals(x.getNumOrd(), dtoList.get(0).getNumOrd()) &&
|
Objects.equals(x.getNumOrd(), dtoList.get(0).getNumOrd()) &&
|
||||||
Objects.equals(x.getDataOrd(), dtoList.get(0).getDataOrd())
|
Objects.equals(x.getDataOrd(), dtoList.get(0).getDataOrd())
|
||||||
)
|
)
|
||||||
.findFirstOrElse(null);
|
.findFirstOrElse(new StatoArtInventarioDTO());
|
||||||
|
|
||||||
|
MvwSitArtUdcDetInventario mvwInventario = mvwSitArtUdcDetInventario.get();
|
||||||
|
|
||||||
|
if (mvwInventario.getCodMart().equalsIgnoreCase(dtoList.get(0).getCodMart()) &&
|
||||||
|
Objects.equals(mvwInventario.getNumOrd(), dtoList.get(0).getNumOrd()) &&
|
||||||
|
Objects.equals(mvwInventario.getDataOrd(), dtoList.get(0).getDataOrd())) {
|
||||||
|
BigDecimal colliMag = statoArticolo.getColliMag();
|
||||||
|
Integer pedMag = statoArticolo.getPedMag();
|
||||||
|
BigDecimal qtaMag = statoArticolo.getQtaMag();
|
||||||
|
|
||||||
|
BigDecimal numCnf = mvwInventario.getNumCnf();
|
||||||
|
BigDecimal qtaCol = mvwInventario.getQtaCol();
|
||||||
|
|
||||||
|
statoArticolo.setColliMag(colliMag.add(numCnf));
|
||||||
|
statoArticolo.setQtaMag(qtaMag.add(qtaCol));
|
||||||
|
statoArticolo.setPedMag(pedMag + 1);
|
||||||
|
}
|
||||||
|
|
||||||
return new ArtsInGiacenzaDTO()
|
return new ArtsInGiacenzaDTO()
|
||||||
.setCodMart(dtoList.get(0).getCodMart())
|
.setCodMart(dtoList.get(0).getCodMart())
|
||||||
|
|||||||
@@ -10,13 +10,9 @@ import android.view.View;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
import com.ravikoradiya.liveadapter.LiveAdapter;
|
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.BR;
|
import it.integry.integrywmsnative.BR;
|
||||||
@@ -24,7 +20,6 @@ import it.integry.integrywmsnative.MainApplication;
|
|||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
import it.integry.integrywmsnative.databinding.DialogInfoGiacenzaBinding;
|
import it.integry.integrywmsnative.databinding.DialogInfoGiacenzaBinding;
|
||||||
import it.integry.integrywmsnative.databinding.DialogInfoGiacenzaSituazioneArticoloBinding;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO;
|
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO;
|
||||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.StatoArtInventarioDTO;
|
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.StatoArtInventarioDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem;
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem;
|
||||||
@@ -34,8 +29,7 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
|||||||
DialogInfoGiacenzaViewModel mViewModel;
|
DialogInfoGiacenzaViewModel mViewModel;
|
||||||
|
|
||||||
private DialogInfoGiacenzaBinding mBindings;
|
private DialogInfoGiacenzaBinding mBindings;
|
||||||
private Context mContext;
|
private final ArtsInGiacenzaDTO item;
|
||||||
private ArtsInGiacenzaDTO item;
|
|
||||||
|
|
||||||
public static DialogInfoGiacenzaView newInstance(ArtsInGiacenzaDTO item) {
|
public static DialogInfoGiacenzaView newInstance(ArtsInGiacenzaDTO item) {
|
||||||
return new DialogInfoGiacenzaView(item);
|
return new DialogInfoGiacenzaView(item);
|
||||||
@@ -48,9 +42,9 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
this.mContext = requireContext();
|
Context mContext = requireContext();
|
||||||
|
|
||||||
mBindings = DialogInfoGiacenzaBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
mBindings = DialogInfoGiacenzaBinding.inflate(LayoutInflater.from(mContext), null, false);
|
||||||
mBindings.setLifecycleOwner(this);
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
MainApplication.appComponent
|
MainApplication.appComponent
|
||||||
@@ -60,7 +54,7 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
|||||||
|
|
||||||
setCancelable(true);
|
setCancelable(true);
|
||||||
|
|
||||||
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
var alertDialog = new MaterialAlertDialogBuilder(mContext)
|
||||||
.setView(mBindings.getRoot())
|
.setView(mBindings.getRoot())
|
||||||
.setNeutralButton(R.string.action_close, null)
|
.setNeutralButton(R.string.action_close, null)
|
||||||
.setCancelable(isCancelable())
|
.setCancelable(isCancelable())
|
||||||
@@ -86,17 +80,8 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
|||||||
if (availableItems == null)
|
if (availableItems == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var listItem = Stream.of(availableItems)
|
|
||||||
.flatMap(x -> Stream.of(x.getMvwSitArtUdcDetInventarioDTO())
|
|
||||||
.map(DialogInfoSituazioneArticoloAvailableListItem::fromMvwSitArtUdcDetInventario)
|
|
||||||
)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
List<StatoArtInventarioDTO> statoArticolo = null;
|
|
||||||
StatoArtInventarioDTO statoArtInventario = availableItems.getStatoArtInventario();
|
StatoArtInventarioDTO statoArtInventario = availableItems.getStatoArtInventario();
|
||||||
if (statoArtInventario != null) {
|
if (statoArtInventario != null) {
|
||||||
statoArticolo = Stream.of(statoArtInventario).toList();
|
|
||||||
|
|
||||||
if (statoArtInventario.colliArrivoIsLessThenZero() &&
|
if (statoArtInventario.colliArrivoIsLessThenZero() &&
|
||||||
statoArtInventario.colliMagIsLessThenZero()) {
|
statoArtInventario.colliMagIsLessThenZero()) {
|
||||||
this.mBindings.situazioneArticolo.setVisibility(View.GONE);
|
this.mBindings.situazioneArticolo.setVisibility(View.GONE);
|
||||||
@@ -105,11 +90,11 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
|||||||
this.mBindings.situazioneArticolo.setVisibility(View.GONE);
|
this.mBindings.situazioneArticolo.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
new LiveAdapter(listItem, BR.item)
|
new LiveAdapter(this.item.getSituazioneArticoloAvailableListItem(), BR.item)
|
||||||
.map(DialogInfoSituazioneArticoloAvailableListItem.class, R.layout.dialog_info_giacenza_list_item)
|
.map(DialogInfoSituazioneArticoloAvailableListItem.class, R.layout.dialog_info_giacenza_list_item)
|
||||||
.into(this.mBindings.availableList);
|
.into(this.mBindings.availableList);
|
||||||
|
|
||||||
new LiveAdapter(statoArticolo, BR.item)
|
new LiveAdapter(this.item.getStatoInventario(), BR.item)
|
||||||
.map(StatoArtInventarioDTO.class, R.layout.dialog_info_giacenza_situazione_articolo)
|
.map(StatoArtInventarioDTO.class, R.layout.dialog_info_giacenza_situazione_articolo)
|
||||||
.into(this.mBindings.situazioneArticolo);
|
.into(this.mBindings.situazioneArticolo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto;
|
package it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem;
|
||||||
|
|
||||||
public class ArtsInGiacenzaDTO {
|
public class ArtsInGiacenzaDTO {
|
||||||
|
|
||||||
@@ -113,4 +116,16 @@ public class ArtsInGiacenzaDTO {
|
|||||||
this.dataOrd = dataOrd;
|
this.dataOrd = dataOrd;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<DialogInfoSituazioneArticoloAvailableListItem> getSituazioneArticoloAvailableListItem() {
|
||||||
|
return Stream.of(this)
|
||||||
|
.flatMap(x -> Stream.of(x.getMvwSitArtUdcDetInventarioDTO())
|
||||||
|
.map(DialogInfoSituazioneArticoloAvailableListItem::fromMvwSitArtUdcDetInventario)
|
||||||
|
)
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<StatoArtInventarioDTO> getStatoInventario(){
|
||||||
|
return Stream.of(this.statoArtInventario).toList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ public class StatoArtInventarioDTO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Integer getPedMag() {
|
public Integer getPedMag() {
|
||||||
if (pedMag < 0)
|
if (pedMag == null || pedMag < 0)
|
||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
return pedMag;
|
return pedMag;
|
||||||
|
|||||||
@@ -88,10 +88,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static PVOrdiniAcquistoGrigliaFragment newInstance() {
|
public static PVOrdiniAcquistoGrigliaFragment newInstance() {
|
||||||
PVOrdiniAcquistoGrigliaFragment fragment = new PVOrdiniAcquistoGrigliaFragment();
|
return new PVOrdiniAcquistoGrigliaFragment();
|
||||||
Bundle args = new Bundle();
|
|
||||||
fragment.setArguments(args);
|
|
||||||
return fragment;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -403,32 +403,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
|
|||||||
String codMart = dialogInputQuantityV2DTO.getMtbAart().getCodMart();
|
String codMart = dialogInputQuantityV2DTO.getMtbAart().getCodMart();
|
||||||
String flagStato = dialogInputQuantityV2DTO.getMtbAart().getFlagStato();
|
String flagStato = dialogInputQuantityV2DTO.getMtbAart().getFlagStato();
|
||||||
|
|
||||||
if (flagStato.equalsIgnoreCase("I")) {
|
checkIfItemIsActive(flagStato, codMart, () -> {
|
||||||
DialogSimpleMessageView.makeWarningDialog(
|
|
||||||
new SpannableString(Html.fromHtml(String.format(UtilityResources.getString(R.string.item_not_enabled), codMart))),
|
|
||||||
null,
|
|
||||||
() -> {
|
|
||||||
if (!mDialogInputQuantityV2View.isVisible())
|
|
||||||
mDialogInputQuantityV2View
|
|
||||||
.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
|
|
||||||
.setOnComplete((resultDTO, shouldCloseLU) -> {
|
|
||||||
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
|
||||||
.setNumCnf(resultDTO.getNumCnf())
|
|
||||||
.setQtaCnf(resultDTO.getQtaCnf())
|
|
||||||
.setQtaTot(resultDTO.getQtaTot())
|
|
||||||
.setPartitaMag(resultDTO.getPartitaMag())
|
|
||||||
.setDataScad(resultDTO.getDataScad());
|
|
||||||
|
|
||||||
this.onLoadingStarted();
|
|
||||||
onComplete.run(pickedQuantityDTO, shouldCloseLU);
|
|
||||||
})
|
|
||||||
.setOnAbort(this::onLoadingEnded)
|
|
||||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
|
||||||
},
|
|
||||||
this::onLoadingEnded)
|
|
||||||
.show(getActivity().getSupportFragmentManager(), "tag");
|
|
||||||
} else {
|
|
||||||
this.onLoadingEnded();
|
|
||||||
if (!mDialogInputQuantityV2View.isVisible())
|
if (!mDialogInputQuantityV2View.isVisible())
|
||||||
mDialogInputQuantityV2View
|
mDialogInputQuantityV2View
|
||||||
.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
|
.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
|
||||||
@@ -440,13 +415,23 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
|
|||||||
.setPartitaMag(resultDTO.getPartitaMag())
|
.setPartitaMag(resultDTO.getPartitaMag())
|
||||||
.setDataScad(resultDTO.getDataScad());
|
.setDataScad(resultDTO.getDataScad());
|
||||||
|
|
||||||
this.onLoadingStarted();
|
|
||||||
onComplete.run(pickedQuantityDTO, shouldCloseLU);
|
onComplete.run(pickedQuantityDTO, shouldCloseLU);
|
||||||
})
|
})
|
||||||
.setOnAbort(this::onLoadingEnded)
|
|
||||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
|
}, () -> {});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkIfItemIsActive(String flagStato, String codMart, Runnable onContinue, Runnable onNegativeClick){
|
||||||
|
if (flagStato.equalsIgnoreCase("I")) {
|
||||||
|
DialogSimpleMessageView.makeWarningDialog(
|
||||||
|
new SpannableString(Html.fromHtml(String.format(UtilityResources.getString(R.string.item_not_enabled), codMart))),
|
||||||
|
null,
|
||||||
|
onContinue,
|
||||||
|
onNegativeClick)
|
||||||
|
.show(getActivity().getSupportFragmentManager(), "tag");
|
||||||
|
} else {
|
||||||
|
onContinue.run();
|
||||||
}
|
}
|
||||||
;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsume
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
@@ -167,8 +168,8 @@ public class RettificaGiacenzeViewModel {
|
|||||||
this.mArticoloRESTConsumer.searchByBarcode(barcodeProd, mtbAartList -> {
|
this.mArticoloRESTConsumer.searchByBarcode(barcodeProd, mtbAartList -> {
|
||||||
if (onComplete != null) onComplete.run();
|
if (onComplete != null) onComplete.run();
|
||||||
|
|
||||||
if (mtbAartList != null && mtbAartList.size() > 0) {
|
if (mtbAartList != null && !mtbAartList.isEmpty()) {
|
||||||
this.dispatchArts(mtbAartList);
|
this.dispatchArts(mtbAartList, pickData);
|
||||||
} else {
|
} else {
|
||||||
this.sendError(new NoResultFromBarcodeException(barcodeProd));
|
this.sendError(new NoResultFromBarcodeException(barcodeProd));
|
||||||
}
|
}
|
||||||
@@ -189,7 +190,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
.map(x -> (MtbAart) x.getMtbAart())
|
.map(x -> (MtbAart) x.getMtbAart())
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
dispatchArts(mtbAarts);
|
dispatchArts(mtbAarts, null);
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -199,14 +200,13 @@ public class RettificaGiacenzeViewModel {
|
|||||||
mRettificaGiacenzeRESTConsumer.searchArtInt(queryText, listaArts -> {
|
mRettificaGiacenzeRESTConsumer.searchArtInt(queryText, listaArts -> {
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
dispatchArts(listaArts);
|
dispatchArts(listaArts, null);
|
||||||
|
|
||||||
if (onComplete != null) onComplete.run();
|
if (onComplete != null) onComplete.run();
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void dispatchArts(List<MtbAart> artsList, PickDataDTO pickData) {
|
||||||
private void dispatchArts(List<MtbAart> artsList) {
|
|
||||||
if (artsList == null || artsList.size() == 0) {
|
if (artsList == null || artsList.size() == 0) {
|
||||||
this.sendError(new NoArtsFoundException());
|
this.sendError(new NoArtsFoundException());
|
||||||
return;
|
return;
|
||||||
@@ -219,7 +219,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if (matchRows.size() != 1) {
|
if (matchRows.size() != 1) {
|
||||||
dispatchArt(mtbAart, null);
|
dispatchArt(mtbAart, pickData);
|
||||||
} else {
|
} else {
|
||||||
dispatchRowEdit(matchRows.get(0));
|
dispatchRowEdit(matchRows.get(0));
|
||||||
}
|
}
|
||||||
@@ -436,7 +436,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
|
|
||||||
|
|
||||||
private void askPostionChange(MtbColt mtbColt, Runnable onComplete) {
|
private void askPostionChange(MtbColt mtbColt, Runnable onComplete) {
|
||||||
if (mtbColt.getGestioneEnum() == GestioneEnum.VENDITA || mtbColt.getSegno() == -1) {
|
if (mtbColt.getGestioneEnum() == GestioneEnum.VENDITA || mtbColt.getSegno() == -1 || !SettingsManager.iDB().isFlagPositionChangeRequest()) {
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
package it.integry.integrywmsnative.gest.rettifica_giacenze.ui;
|
package it.integry.integrywmsnative.gest.rettifica_giacenze.ui;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.Filter;
|
import android.widget.Filter;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.ConcurrentModificationException;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.databinding.RettificaGiacenzeAutocompleteFornitoreLayoutBinding;
|
import it.integry.integrywmsnative.databinding.RettificaGiacenzeAutocompleteFornitoreLayoutBinding;
|
||||||
@@ -24,7 +25,7 @@ public class AutoCompleteFornitoreAdapter extends ArrayAdapter<FornitoreDTO> {
|
|||||||
private ArrayList<FornitoreDTO> suggestions;
|
private ArrayList<FornitoreDTO> suggestions;
|
||||||
|
|
||||||
public AutoCompleteFornitoreAdapter(@NonNull Context context, @NonNull ArrayList<FornitoreDTO> items) {
|
public AutoCompleteFornitoreAdapter(@NonNull Context context, @NonNull ArrayList<FornitoreDTO> items) {
|
||||||
super(context, 0 , items);
|
super(context, 0, items);
|
||||||
this.items = items;
|
this.items = items;
|
||||||
this.itemsAll = (ArrayList<FornitoreDTO>) items.clone();
|
this.itemsAll = (ArrayList<FornitoreDTO>) items.clone();
|
||||||
this.suggestions = new ArrayList<>();
|
this.suggestions = new ArrayList<>();
|
||||||
@@ -33,7 +34,7 @@ public class AutoCompleteFornitoreAdapter extends ArrayAdapter<FornitoreDTO> {
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Filter getFilter() {
|
public Filter getFilter() {
|
||||||
return fornitoreFilter;
|
return new FornitoreFilter(itemsAll);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@@ -49,55 +50,53 @@ public class AutoCompleteFornitoreAdapter extends ArrayAdapter<FornitoreDTO> {
|
|||||||
return binding.getRoot();
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class FornitoreFilter extends Filter {
|
||||||
|
|
||||||
|
private ArrayList<FornitoreDTO> sourceObjects;
|
||||||
|
|
||||||
private Filter fornitoreFilter = new Filter() {
|
public FornitoreFilter(List<FornitoreDTO> objects) {
|
||||||
@Override
|
if (objects == null) return;
|
||||||
protected FilterResults performFiltering(CharSequence constraint) {
|
sourceObjects = new ArrayList<>();
|
||||||
if(constraint != null) {
|
|
||||||
suggestions.clear();
|
|
||||||
for (FornitoreDTO fornitore : itemsAll) {
|
|
||||||
String tmpDescr = fornitore.getCodAlis() + " " + fornitore.getDescrizione();
|
|
||||||
|
|
||||||
if(tmpDescr.toLowerCase().contains(constraint.toString().toLowerCase())){
|
synchronized (this) {
|
||||||
suggestions.add(fornitore);
|
sourceObjects.addAll(objects);
|
||||||
}
|
|
||||||
}
|
|
||||||
FilterResults filterResults = new FilterResults();
|
|
||||||
filterResults.values = suggestions;
|
|
||||||
filterResults.count = suggestions.size();
|
|
||||||
return filterResults;
|
|
||||||
} else {
|
|
||||||
return new FilterResults();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected FilterResults performFiltering(CharSequence constraint) {
|
||||||
|
FilterResults result = new FilterResults();
|
||||||
|
if (constraint != null) {
|
||||||
|
suggestions.clear();
|
||||||
|
for (FornitoreDTO fornitore : sourceObjects) {
|
||||||
|
String tmpDescr = fornitore.getCodAlis() + " " + fornitore.getDescrizione();
|
||||||
|
|
||||||
|
if (tmpDescr.toLowerCase().contains(constraint.toString().toLowerCase())) {
|
||||||
|
suggestions.add(fornitore);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result.values = suggestions;
|
||||||
|
result.count = suggestions.size();
|
||||||
|
} else {
|
||||||
|
// add all objects
|
||||||
|
synchronized (this) {
|
||||||
|
result.values = sourceObjects;
|
||||||
|
result.count = sourceObjects.size();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void publishResults(CharSequence constraint, FilterResults results) {
|
protected void publishResults(CharSequence constraint, FilterResults results) {
|
||||||
|
if(constraint != null && constraint.length() > 2) {
|
||||||
boolean error;
|
ArrayList<FornitoreDTO> filtered = (ArrayList<FornitoreDTO>) results.values;
|
||||||
|
notifyDataSetChanged();
|
||||||
do {
|
clear();
|
||||||
try {
|
for (int i = 0, l = filtered.size(); i < l; i++)
|
||||||
ArrayList<FornitoreDTO> filteredList = (ArrayList<FornitoreDTO>) results.values;
|
add(filtered.get(i));
|
||||||
if (results.count > 0) {
|
notifyDataSetInvalidated();
|
||||||
clear();
|
}
|
||||||
|
|
||||||
for (FornitoreDTO c : filteredList) {
|
|
||||||
add(c);
|
|
||||||
}
|
|
||||||
|
|
||||||
notifyDataSetChanged();
|
|
||||||
|
|
||||||
}
|
|
||||||
error = false;
|
|
||||||
} catch (ConcurrentModificationException ex) {
|
|
||||||
error = true;
|
|
||||||
}
|
|
||||||
} while (error);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -105,5 +104,6 @@ public class AutoCompleteFornitoreAdapter extends ArrayAdapter<FornitoreDTO> {
|
|||||||
public CharSequence convertResultToString(Object resultValue) {
|
public CharSequence convertResultToString(Object resultValue) {
|
||||||
return ((FornitoreDTO) resultValue).getCodAlis();
|
return ((FornitoreDTO) resultValue).getCodAlis();
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import androidx.preference.PreferenceFragmentCompat;
|
|||||||
import androidx.sqlite.db.SimpleSQLiteQuery;
|
import androidx.sqlite.db.SimpleSQLiteQuery;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
import com.google.firebase.crashlytics.FirebaseCrashlytics;
|
||||||
import com.harrysoft.androidbluetoothserial.BluetoothManager;
|
import com.harrysoft.androidbluetoothserial.BluetoothManager;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
@@ -26,7 +27,9 @@ import java.io.FileInputStream;
|
|||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
@@ -236,9 +239,10 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT
|
|||||||
File logFilePath = appContext.getLogFilePath();
|
File logFilePath = appContext.getLogFilePath();
|
||||||
var files = logFilePath.listFiles();
|
var files = logFilePath.listFiles();
|
||||||
|
|
||||||
var fileToShare = Stream.of(files)
|
var fileToShare = Arrays.stream(files)
|
||||||
.sortBy(x -> -1 * x.lastModified())
|
.sorted(Comparator.reverseOrder())
|
||||||
.findFirstOrElse(null);
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
try {
|
try {
|
||||||
List<MailAttachmentDTO> attachmentDTOList = new ArrayList<>();
|
List<MailAttachmentDTO> attachmentDTOList = new ArrayList<>();
|
||||||
|
|
||||||
@@ -275,8 +279,8 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT
|
|||||||
|
|
||||||
var mailRequest = new MailRequestDTO()
|
var mailRequest = new MailRequestDTO()
|
||||||
.setTo("developer@integry.it")
|
.setTo("developer@integry.it")
|
||||||
.setMsgText("Questo è una mail che contiene il log del WMS")
|
.setMsgText("Questa è una mail contenente il log del WMS")
|
||||||
.setSubject("U vuemmeess")
|
.setSubject("Internal WMS log")
|
||||||
.setAttachments(attachmentDTOList);
|
.setAttachments(attachmentDTOList);
|
||||||
|
|
||||||
|
|
||||||
@@ -294,6 +298,8 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT
|
|||||||
.makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null)
|
.makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null)
|
||||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
FirebaseCrashlytics.getInstance().recordException(ex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
@@ -301,22 +307,17 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void openProgress() {
|
private void openProgress() {
|
||||||
if (!progressOpened && !this.mCurrentProgress.isAdded()) {
|
executorService.execute(() -> {
|
||||||
this.progressOpened = true;
|
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager());
|
||||||
requireActivity().runOnUiThread(() -> {
|
});
|
||||||
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void closeProgress() {
|
private void closeProgress() {
|
||||||
if (progressOpened) {
|
executorService.execute(() -> {
|
||||||
this.progressOpened = false;
|
mCurrentProgress.dismiss();
|
||||||
requireActivity().runOnUiThread(() -> {
|
});
|
||||||
mCurrentProgress.dismiss();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,12 @@ import android.content.Intent;
|
|||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.text.Html;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.PopupMenu;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
@@ -68,6 +71,7 @@ import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFrag
|
|||||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLUView;
|
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLUView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
|
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_vettore.DialogAskVettoreView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
|
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
|
||||||
@@ -77,7 +81,9 @@ import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAgg
|
|||||||
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUView;
|
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.exception.OverflowQtaTotOrderedQuantityException;
|
||||||
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtView;
|
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtView;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.DialogTracciamentoImballiView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNoView;
|
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNoView;
|
||||||
|
|
||||||
public class SpedizioneActivity extends BaseActivity implements SpedizioneViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
|
public class SpedizioneActivity extends BaseActivity implements SpedizioneViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
|
||||||
@@ -99,7 +105,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
public BindableBoolean noItemsToPick = new BindableBoolean(false);
|
public BindableBoolean noItemsToPick = new BindableBoolean(false);
|
||||||
public BindableBoolean noLUPresent = new BindableBoolean(true);
|
public BindableBoolean noLUPresent = new BindableBoolean(true);
|
||||||
public BindableBoolean bottomSheetEnabled = new BindableBoolean(false);
|
public BindableBoolean bottomSheetEnabled = new BindableBoolean(false);
|
||||||
public BindableBoolean closeOrderButtonEnabled = new BindableBoolean(false);
|
|
||||||
|
|
||||||
private boolean mEnableFakeGiacenza;
|
private boolean mEnableFakeGiacenza;
|
||||||
private boolean mFlagShowCodForn;
|
private boolean mFlagShowCodForn;
|
||||||
@@ -119,6 +124,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
private final int PICK_UL_REQUEST = 1;
|
private final int PICK_UL_REQUEST = 1;
|
||||||
|
|
||||||
|
private PopupMenu fabPopupMenu;
|
||||||
|
|
||||||
public static void startActivity(Context context,
|
public static void startActivity(Context context,
|
||||||
List<SitArtOrdDTO> ordini,
|
List<SitArtOrdDTO> ordini,
|
||||||
List<OrdineUscitaInevasoDTO> selectedOrders,
|
List<OrdineUscitaInevasoDTO> selectedOrders,
|
||||||
@@ -196,13 +203,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
this.initVars();
|
this.initVars();
|
||||||
this.initBarcodeReader();
|
this.initBarcodeReader();
|
||||||
|
this.initFab();
|
||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
|
|
||||||
closeOrderButtonEnabled.set(SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()
|
|
||||||
|| SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()
|
|
||||||
|| (this.isOrdTrasf() && !UtilityString.isNullOrEmpty(SettingsManager.iDB().getCodDtipOrdTrasfV()))
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
mEnableFakeGiacenza = SettingsManager.iDB().isFlagSpedizioneEnableFakeGiacenza();
|
mEnableFakeGiacenza = SettingsManager.iDB().isFlagSpedizioneEnableFakeGiacenza();
|
||||||
@@ -210,6 +213,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
boolean canOverflowOrderQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione();
|
boolean canOverflowOrderQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione();
|
||||||
boolean shouldAskPesoLU = SettingsManager.iDB().isFlagAskPesoColloSpedizione();
|
boolean shouldAskPesoLU = SettingsManager.iDB().isFlagAskPesoColloSpedizione();
|
||||||
boolean useQtaOrd = SettingsManager.iDB().isFlagSpedizioneUseQtaOrd();
|
boolean useQtaOrd = SettingsManager.iDB().isFlagSpedizioneUseQtaOrd();
|
||||||
|
boolean useColliPedana = SettingsManager.iDB().isFlagSpedizioneUseColliPedana();
|
||||||
|
|
||||||
mViewmodel.init(
|
mViewmodel.init(
|
||||||
codMdep,
|
codMdep,
|
||||||
@@ -222,18 +226,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
mColliRegistrati,
|
mColliRegistrati,
|
||||||
mGestioneCol, mSegnoCol, mDefaultCausaleUL,
|
mGestioneCol, mSegnoCol, mDefaultCausaleUL,
|
||||||
mEnableQuantityReset,
|
mEnableQuantityReset,
|
||||||
useQtaOrd);
|
useQtaOrd,
|
||||||
}
|
useColliPedana);
|
||||||
|
|
||||||
|
|
||||||
private boolean isOrdTrasf() {
|
|
||||||
|
|
||||||
return mTestateOrdini != null && !mTestateOrdini.isEmpty() && Stream.of(mTestateOrdini)
|
|
||||||
.map(OrdineUscitaInevasoDTO::isOrdTrasf)
|
|
||||||
.withoutNulls()
|
|
||||||
.distinctBy(x -> x)
|
|
||||||
.findFirst()
|
|
||||||
.get();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -271,6 +266,48 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initFab() {
|
||||||
|
fabPopupMenu = new PopupMenu(this,
|
||||||
|
this.mBindings.spedizioneOrdineInevasoFab, (Gravity.END | Gravity.BOTTOM),
|
||||||
|
androidx.appcompat.R.attr.popupMenuStyle,
|
||||||
|
com.google.android.material.R.style.Widget_Material3_PopupMenu_ContextMenu);
|
||||||
|
|
||||||
|
fabPopupMenu.setForceShowIcon(true);
|
||||||
|
fabPopupMenu.getMenuInflater().inflate(R.menu.spedizione_ordine_inevaso_fab_menu, fabPopupMenu.getMenu());
|
||||||
|
|
||||||
|
boolean isCloseOrderEnabled = SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()
|
||||||
|
|| SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()
|
||||||
|
|| (mViewmodel.isOrdTrasf() && !UtilityString.isNullOrEmpty(SettingsManager.iDB().getCodDtipOrdTrasfV()));
|
||||||
|
|
||||||
|
if (!isCloseOrderEnabled) {
|
||||||
|
fabPopupMenu.getMenu().removeItem(R.id.close_order);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!SettingsManager.iDB().isFlagTracciamentoImballiScaricoEnabled())
|
||||||
|
fabPopupMenu.getMenu().removeItem(R.id.track_packaging);
|
||||||
|
|
||||||
|
fabPopupMenu.setOnMenuItemClickListener(item -> {
|
||||||
|
int itemId = item.getItemId();
|
||||||
|
|
||||||
|
if (itemId == R.id.close_order) {
|
||||||
|
closeOrder();
|
||||||
|
return true;
|
||||||
|
} else if (itemId == R.id.show_created_ul) {
|
||||||
|
showCreatedUL();
|
||||||
|
return true;
|
||||||
|
} else if (itemId == R.id.track_packaging) {
|
||||||
|
trackPackaging();
|
||||||
|
return true;
|
||||||
|
} else if (itemId == R.id.create_ul) {
|
||||||
|
createNewUL();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void initRecyclerView() {
|
private void initRecyclerView() {
|
||||||
this.mViewmodel.getPickingList().observe(this, updatedData -> {
|
this.mViewmodel.getPickingList().observe(this, updatedData -> {
|
||||||
this.mSpedizioneMutableData.clear();
|
this.mSpedizioneMutableData.clear();
|
||||||
@@ -383,7 +420,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
MtbColr mtbColrToDispatch = mtbColtToPick.getMtbColr() != null && mtbColtToPick.getMtbColr().size() > 0 ? mtbColtToPick.getMtbColr().get(0) : null;
|
MtbColr mtbColrToDispatch = mtbColtToPick.getMtbColr() != null && mtbColtToPick.getMtbColr().size() > 0 ? mtbColtToPick.getMtbColr().get(0) : null;
|
||||||
if (mtbColrToDispatch != null) {
|
if (mtbColrToDispatch != null) {
|
||||||
if(!UtilityString.isNullOrEmpty(mtbColrToDispatch.getPartitaMag()))
|
if (!UtilityString.isNullOrEmpty(mtbColrToDispatch.getPartitaMag()))
|
||||||
cloneModel.setSubDescrizione1(String.format(getString(R.string.batch_lot_text), mtbColrToDispatch.getPartitaMag()));
|
cloneModel.setSubDescrizione1(String.format(getString(R.string.batch_lot_text), mtbColrToDispatch.getPartitaMag()));
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getCodJcom())) {
|
if (!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getCodJcom())) {
|
||||||
@@ -642,13 +679,18 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
return sortedList;
|
return sortedList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void showFabMenu() {
|
||||||
|
fabPopupMenu.show();
|
||||||
|
}
|
||||||
|
|
||||||
private String getCommessa(String codJcom) {
|
private String getCommessa(String codJcom) {
|
||||||
var commessaMagazzino = SettingsManager.iDB().getCommessaMagazzino();
|
var commessaMagazzino = SettingsManager.iDB().getCommessaMagazzino();
|
||||||
|
|
||||||
if(UtilityString.isNullOrEmpty(commessaMagazzino)) {
|
if (UtilityString.isNullOrEmpty(commessaMagazzino)) {
|
||||||
return UtilityString.isNull(codJcom, "Magazzino").toUpperCase();
|
return UtilityString.isNull(codJcom, "Magazzino").toUpperCase();
|
||||||
} else {
|
} else {
|
||||||
if(commessaMagazzino.equalsIgnoreCase(codJcom) || codJcom == null)
|
if (commessaMagazzino.equalsIgnoreCase(codJcom) || codJcom == null)
|
||||||
return "Magazzino".toUpperCase();
|
return "Magazzino".toUpperCase();
|
||||||
else
|
else
|
||||||
return codJcom.toUpperCase();
|
return codJcom.toUpperCase();
|
||||||
@@ -698,7 +740,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
|
|
||||||
public void createNewUL() {
|
public void createNewUL() {
|
||||||
this.mBindings.spedizioneFab.close(true);
|
this.fabPopupMenu.dismiss();
|
||||||
|
|
||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
|
|
||||||
@@ -707,8 +749,23 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void trackPackaging() {
|
||||||
|
this.fabPopupMenu.dismiss();
|
||||||
|
|
||||||
|
DialogTracciamentoImballiView.newInstance(imballiData -> {
|
||||||
|
|
||||||
|
if (imballiData != null && !imballiData.isEmpty()) {
|
||||||
|
DialogAskVettoreView.newInstance(mViewmodel.getDefaultVettore(), vettoreData -> {
|
||||||
|
mViewmodel.registraImballi(vettoreData, imballiData);
|
||||||
|
})
|
||||||
|
.show(getSupportFragmentManager(), DialogAskVettoreView.class.getName());
|
||||||
|
}
|
||||||
|
}).show(getSupportFragmentManager(), DialogTracciamentoImballiView.class.getName());
|
||||||
|
}
|
||||||
|
|
||||||
public void showCreatedUL() {
|
public void showCreatedUL() {
|
||||||
this.mBindings.spedizioneFab.close(true);
|
this.fabPopupMenu.dismiss();
|
||||||
|
|
||||||
ArrayList<MtbColt> createdMtbColts = this.mViewmodel.getCreatedMtbColts();
|
ArrayList<MtbColt> createdMtbColts = this.mViewmodel.getCreatedMtbColts();
|
||||||
|
|
||||||
@@ -718,7 +775,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
|
|
||||||
public void closeOrder() {
|
public void closeOrder() {
|
||||||
this.mBindings.spedizioneFab.close(true);
|
this.fabPopupMenu.dismiss();
|
||||||
|
|
||||||
this.mViewmodel.closeOrder();
|
this.mViewmodel.closeOrder();
|
||||||
}
|
}
|
||||||
@@ -727,7 +784,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
public void onLUOpened(MtbColt mtbColt) {
|
public void onLUOpened(MtbColt mtbColt) {
|
||||||
this.addExtraItemsEnabled.set(SettingsManager.iDB().isFlagCanAddExtraItemSpedizione());
|
this.addExtraItemsEnabled.set(SettingsManager.iDB().isFlagCanAddExtraItemSpedizione());
|
||||||
noLUPresent.set(false);
|
noLUPresent.set(false);
|
||||||
closeOrderButtonEnabled.set(false);
|
|
||||||
|
|
||||||
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
|
|
||||||
@@ -739,7 +795,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
this.addExtraItemsEnabled.set(false);
|
this.addExtraItemsEnabled.set(false);
|
||||||
noLUPresent.set(true);
|
noLUPresent.set(true);
|
||||||
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
|
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
|
||||||
closeOrderButtonEnabled.set(SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose() || SettingsManager.iDB().isFlagPrintPackingListOnOrderClose());
|
|
||||||
|
|
||||||
if (this.mShouldCloseActivity) super.onBackPressed();
|
if (this.mShouldCloseActivity) super.onBackPressed();
|
||||||
}
|
}
|
||||||
@@ -776,7 +831,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
R.string.button_ignore_print,
|
R.string.button_ignore_print,
|
||||||
onComplete)
|
onComplete)
|
||||||
.show(getSupportFragmentManager(), "tag");
|
.show(getSupportFragmentManager(), "tag");
|
||||||
;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -836,6 +890,11 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
boolean canPartitaMagBeChanged,
|
boolean canPartitaMagBeChanged,
|
||||||
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
|
|
||||||
|
if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) {
|
||||||
|
dataScad = UtilityDate.getNow();
|
||||||
|
dataScad = dataScad.plusDays(pickingObjectDTO.getMtbAart().getGgScadPartita());
|
||||||
|
}
|
||||||
|
|
||||||
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||||
.setMtbAart(mtbAart)
|
.setMtbAart(mtbAart)
|
||||||
.setInitialNumCnf(initialNumCnf)
|
.setInitialNumCnf(initialNumCnf)
|
||||||
@@ -857,7 +916,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
.setCanLUBeClosed(true)
|
.setCanLUBeClosed(true)
|
||||||
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
||||||
.setStatoPartitaMag(pickingObjectDTO != null ? pickingObjectDTO.getStatoArticoloDTO() : null)
|
.setStatoPartitaMag(pickingObjectDTO != null ? pickingObjectDTO.getStatoArticoloDTO() : null)
|
||||||
.setNotifyProductLotStatus(SettingsManager.iDB().isNotifyLotStatus());
|
.setNotifyProductLotStatus(SettingsManager.iDB().isNotifyLotStatus())
|
||||||
|
.setMtbPartitaMagList(mViewmodel.getmPartitaMagList());
|
||||||
|
|
||||||
if (!mDialogInputQuantityV2View.isVisible())
|
if (!mDialogInputQuantityV2View.isVisible())
|
||||||
mDialogInputQuantityV2View
|
mDialogInputQuantityV2View
|
||||||
@@ -1022,4 +1082,32 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
DialogInfoAggiuntiveLUView.newInstance(mtbColt, onComplete, this::onLoadingEnded)
|
DialogInfoAggiuntiveLUView.newInstance(mtbColt, onComplete, this::onLoadingEnded)
|
||||||
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onInputDuplicate(BigDecimal qtaTot, BigDecimal qtaEvasa, RunnableArgs<Integer> onComplete, Runnable onNegativeClick) {
|
||||||
|
String textWarning = UtilityResources.getString(R.string.ordered_quantity_overflow_error_message);
|
||||||
|
|
||||||
|
dialogInputQuantityToDuplicate(inputNumber -> {
|
||||||
|
if (qtaTot != null && qtaEvasa != null && UtilityBigDecimal.equalsOrGreaterThan(qtaEvasa.multiply(BigDecimal.valueOf(inputNumber)), qtaTot)) {
|
||||||
|
|
||||||
|
DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(textWarning)),
|
||||||
|
null,
|
||||||
|
() -> this.onInputDuplicate(qtaTot, qtaEvasa, onComplete, onNegativeClick)
|
||||||
|
).show(getSupportFragmentManager(), "tag");
|
||||||
|
} else {
|
||||||
|
onComplete.run(inputNumber);
|
||||||
|
}
|
||||||
|
}, onNegativeClick);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void dialogInputQuantityToDuplicate(RunnableArgs<Integer> onComplete, Runnable onNegativeClick) {
|
||||||
|
DialogSimpleInputHelper.makeInputDialog(this, "Numero pedane da duplicare", inputValue -> {
|
||||||
|
try {
|
||||||
|
Integer num = Integer.parseInt(inputValue);
|
||||||
|
onComplete.run(num);
|
||||||
|
} catch (NumberFormatException ex) {
|
||||||
|
this.onError(new Exception("Inserire un numero di risorse valido"));
|
||||||
|
}
|
||||||
|
}, onNegativeClick).show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsu
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.DocumentRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.DocumentRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
@@ -34,7 +36,9 @@ public class SpedizioneModule {
|
|||||||
DocumentRESTConsumer documentRESTConsumer,
|
DocumentRESTConsumer documentRESTConsumer,
|
||||||
ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer,
|
ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer,
|
||||||
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
||||||
MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer) {
|
MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer,
|
||||||
|
ImballiRESTConsumer imballiRESTConsumer,
|
||||||
|
MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
||||||
return new SpedizioneViewModel(articoloRESTConsumer,
|
return new SpedizioneViewModel(articoloRESTConsumer,
|
||||||
barcodeRESTConsumer,
|
barcodeRESTConsumer,
|
||||||
colliDataRecoverService,
|
colliDataRecoverService,
|
||||||
@@ -45,7 +49,9 @@ public class SpedizioneModule {
|
|||||||
documentRESTConsumer,
|
documentRESTConsumer,
|
||||||
colliSpedizioneRESTConsumer,
|
colliSpedizioneRESTConsumer,
|
||||||
colliLavorazioneRESTConsumer,
|
colliLavorazioneRESTConsumer,
|
||||||
magazzinoAutomaticoRESTConsumer);
|
magazzinoAutomaticoRESTConsumer,
|
||||||
|
imballiRESTConsumer,
|
||||||
|
magazzinoRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,16 +3,18 @@ package it.integry.integrywmsnative.gest.spedizione;
|
|||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
import com.annimon.stream.Optional;
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.NotImplementedException;
|
import org.apache.commons.lang3.NotImplementedException;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -42,6 +44,7 @@ import it.integry.integrywmsnative.core.model.MtbColt;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
import it.integry.integrywmsnative.core.model.VtbVett;
|
||||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
||||||
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
|
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
@@ -51,7 +54,9 @@ import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsu
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.DocumentRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.DocumentRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
@@ -61,6 +66,7 @@ import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.LoadColliDTO;
|
import it.integry.integrywmsnative.core.rest.model.LoadColliDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.imballi.ImballoQuantityDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickOrderRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickOrderRequestDTO;
|
||||||
@@ -69,10 +75,12 @@ import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestOrderDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestOrderDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.uds.DuplicateUDSRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.PrintULRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.PrintULRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UntMisUtils;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
@@ -86,12 +94,14 @@ import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadExceptio
|
|||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.TracciamentoImballoDTO;
|
||||||
|
|
||||||
public class SpedizioneViewModel {
|
public class SpedizioneViewModel {
|
||||||
|
|
||||||
private List<OrdineUscitaInevasoDTO> mTestateOrdini;
|
private List<OrdineUscitaInevasoDTO> mTestateOrdini;
|
||||||
private MutableLiveData<List<PickingObjectDTO>> mPickingList = new MutableLiveData<>();
|
private MutableLiveData<List<PickingObjectDTO>> mPickingList = new MutableLiveData<>();
|
||||||
private List<MtbColt> mColliRegistrati = new ArrayList<>();
|
private List<MtbColt> mColliRegistrati = new ArrayList<>();
|
||||||
|
private List<MtbPartitaMag> mPartitaMagList = new ArrayList<>();
|
||||||
|
|
||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
@@ -101,6 +111,7 @@ public class SpedizioneViewModel {
|
|||||||
private String mDefaultCodMdep = null;
|
private String mDefaultCodMdep = null;
|
||||||
private final List<FiltroOrdineDTO> mDefaultFiltroOrdine = new ArrayList<>();
|
private final List<FiltroOrdineDTO> mDefaultFiltroOrdine = new ArrayList<>();
|
||||||
private Integer mDefaultCausaleOfUL = null;
|
private Integer mDefaultCausaleOfUL = null;
|
||||||
|
private VtbVett mDefaultVettore = null;
|
||||||
|
|
||||||
private boolean mEnableGiacenza;
|
private boolean mEnableGiacenza;
|
||||||
private boolean mEnableCheckPartitaMag;
|
private boolean mEnableCheckPartitaMag;
|
||||||
@@ -109,6 +120,7 @@ public class SpedizioneViewModel {
|
|||||||
private boolean mIsNewLU;
|
private boolean mIsNewLU;
|
||||||
private boolean mEnableQuantityReset;
|
private boolean mEnableQuantityReset;
|
||||||
private boolean mUseQtaOrd;
|
private boolean mUseQtaOrd;
|
||||||
|
private boolean mUseColliPedana;
|
||||||
private boolean mIsOrdTrasf = false;
|
private boolean mIsOrdTrasf = false;
|
||||||
|
|
||||||
private MtbColt mCurrentMtbColt = null;
|
private MtbColt mCurrentMtbColt = null;
|
||||||
@@ -124,13 +136,26 @@ public class SpedizioneViewModel {
|
|||||||
private final DocumentRESTConsumer mDocumentRESTConsumer;
|
private final DocumentRESTConsumer mDocumentRESTConsumer;
|
||||||
private final ColliSpedizioneRESTConsumer mColliSpedizioneRESTConsumer;
|
private final ColliSpedizioneRESTConsumer mColliSpedizioneRESTConsumer;
|
||||||
private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
|
private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
|
||||||
|
|
||||||
private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer;
|
private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer;
|
||||||
|
private final ImballiRESTConsumer mImballiRESTConsumer;
|
||||||
|
|
||||||
private ColliScaricoRESTConsumerInterface mColliScaricoRESTConsumer;
|
private ColliScaricoRESTConsumerInterface mColliScaricoRESTConsumer;
|
||||||
|
private MagazzinoRESTConsumer magazzinoRESTConsumer;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public SpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliDataRecoverService colliDataRecoverService, OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, DocumentRESTConsumer documentRESTConsumer, ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer, ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer, MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer) {
|
public SpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
|
ColliDataRecoverService colliDataRecoverService,
|
||||||
|
OrdiniRESTConsumer ordiniRESTConsumer,
|
||||||
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
|
PrinterRESTConsumer printerRESTConsumer,
|
||||||
|
PosizioniRESTConsumer posizioniRESTConsumer,
|
||||||
|
DocumentRESTConsumer documentRESTConsumer,
|
||||||
|
ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer,
|
||||||
|
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
||||||
|
MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer,
|
||||||
|
ImballiRESTConsumer imballiRESTConsumer,
|
||||||
|
MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
||||||
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
this.mColliDataRecoverService = colliDataRecoverService;
|
this.mColliDataRecoverService = colliDataRecoverService;
|
||||||
@@ -142,10 +167,12 @@ public class SpedizioneViewModel {
|
|||||||
this.mColliSpedizioneRESTConsumer = colliSpedizioneRESTConsumer;
|
this.mColliSpedizioneRESTConsumer = colliSpedizioneRESTConsumer;
|
||||||
this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
|
this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
|
||||||
this.mMagazzinoAutomaticoRESTConsumer = mMagazzinoAutomaticoRESTConsumer;
|
this.mMagazzinoAutomaticoRESTConsumer = mMagazzinoAutomaticoRESTConsumer;
|
||||||
|
this.mImballiRESTConsumer = imballiRESTConsumer;
|
||||||
|
this.magazzinoRESTConsumer = magazzinoRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void init(String codMdep, boolean enableGiacenza, boolean enableCheckPartitaMag, boolean shouldAskPesoLU, boolean canOverflowOrderQuantity, List<SitArtOrdDTO> pickingList, List<OrdineUscitaInevasoDTO> testateOrdini, List<MtbColt> colliRegistrati, GestioneEnum gestioneCol, int segnoCol, Integer defaultCausaleUL, boolean enableQuantityReset, boolean useQtaOrd) {
|
public void init(String codMdep, boolean enableGiacenza, boolean enableCheckPartitaMag, boolean shouldAskPesoLU, boolean canOverflowOrderQuantity, List<SitArtOrdDTO> pickingList, List<OrdineUscitaInevasoDTO> testateOrdini, List<MtbColt> colliRegistrati, GestioneEnum gestioneCol, int segnoCol, Integer defaultCausaleUL, boolean enableQuantityReset, boolean useQtaOrd, boolean useColliPedana) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
this.mDefaultCodMdep = codMdep;
|
this.mDefaultCodMdep = codMdep;
|
||||||
@@ -158,22 +185,23 @@ public class SpedizioneViewModel {
|
|||||||
this.mDefaultCausaleOfUL = defaultCausaleUL;
|
this.mDefaultCausaleOfUL = defaultCausaleUL;
|
||||||
this.mEnableQuantityReset = enableQuantityReset;
|
this.mEnableQuantityReset = enableQuantityReset;
|
||||||
this.mUseQtaOrd = useQtaOrd;
|
this.mUseQtaOrd = useQtaOrd;
|
||||||
|
this.mUseColliPedana = useColliPedana;
|
||||||
|
|
||||||
if (testateOrdini != null && testateOrdini.size() > 0) {
|
getPartitaMagList(pickingList, mtbPartitaMagList -> {
|
||||||
this.mIsOrdTrasf = Stream.of(testateOrdini).map(OrdineUscitaInevasoDTO::isOrdTrasf).withoutNulls().distinctBy(x -> x).findFirst().get();
|
this.mPartitaMagList = mtbPartitaMagList;
|
||||||
}
|
|
||||||
|
|
||||||
if (enableGiacenza) {
|
if (enableGiacenza) {
|
||||||
mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> {
|
mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> {
|
||||||
this.mPickingList.postValue(pickingObjectList);
|
this.mPickingList.postValue(pickingObjectList);
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
}, ex -> this.sendError(new OrdersLoadException(ex)));
|
}, ex -> this.sendError(new OrdersLoadException(ex)));
|
||||||
} else {
|
} else {
|
||||||
getEmptyPickingList(pickingList, pickingObjectList -> {
|
getEmptyPickingList(pickingList, pickingObjectList -> {
|
||||||
this.mPickingList.postValue(pickingObjectList);
|
this.mPickingList.postValue(pickingObjectList);
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
this.mDefaultGestioneOfUL = gestioneCol;
|
this.mDefaultGestioneOfUL = gestioneCol;
|
||||||
this.mDefaultSegnoCol = segnoCol;
|
this.mDefaultSegnoCol = segnoCol;
|
||||||
@@ -181,40 +209,80 @@ public class SpedizioneViewModel {
|
|||||||
this.initDefaultVars();
|
this.initDefaultVars();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void getPartitaMagList(List<SitArtOrdDTO> sitArtOrdList, RunnableArgs<List<MtbPartitaMag>> onComplete) {
|
||||||
|
if (SettingsManager.iDB().isSuggestDataScad()) {
|
||||||
|
List<String> codMarts = sitArtOrdList.stream()
|
||||||
|
.map(x -> x.getCodMart().trim())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
this.magazzinoRESTConsumer.retrieveAllPartitaMag(codMarts, new Date(), onComplete, this::sendError);
|
||||||
|
} else {
|
||||||
|
onComplete.run(new ArrayList<>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void getEmptyPickingList(List<SitArtOrdDTO> sitArtOrdList, RunnableArgs<List<PickingObjectDTO>> onComplete) {
|
private void getEmptyPickingList(List<SitArtOrdDTO> sitArtOrdList, RunnableArgs<List<PickingObjectDTO>> onComplete) {
|
||||||
List<String> codMarts = Stream.of(sitArtOrdList).map(x -> x.getCodMart().trim()).toList();
|
List<String> codMarts = sitArtOrdList.stream()
|
||||||
|
.map(x -> x.getCodMart().trim())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
this.mArticoloRESTConsumer.getByCodMarts(codMarts, listMtbAarts -> {
|
this.mArticoloRESTConsumer.getByCodMarts(codMarts, listMtbAarts -> {
|
||||||
List<PickingObjectDTO> pickingList = Stream.of(sitArtOrdList).map(sitArtOrdDTO -> {
|
List<PickingObjectDTO> pickingList = sitArtOrdList.stream()
|
||||||
MtbAart mtbAart = null;
|
.map(sitArtOrdDTO -> {
|
||||||
|
MtbAart mtbAart = null;
|
||||||
|
|
||||||
for (MtbAart mtbAartItem : listMtbAarts) {
|
for (MtbAart mtbAartItem : listMtbAarts) {
|
||||||
if (mtbAartItem.getCodMart().trim().equalsIgnoreCase(sitArtOrdDTO.getCodMart().trim())) {
|
if (mtbAartItem.getCodMart().trim().equalsIgnoreCase(sitArtOrdDTO.getCodMart().trim())) {
|
||||||
mtbAart = mtbAartItem;
|
mtbAart = mtbAartItem;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new PickingObjectDTO().setSitArtOrdDTO(sitArtOrdDTO).setMtbAart(mtbAart);
|
return new PickingObjectDTO().setSitArtOrdDTO(sitArtOrdDTO).setMtbAart(mtbAart);
|
||||||
}).toList();
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
onComplete.run(pickingList);
|
onComplete.run(pickingList);
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initDefaultVars() {
|
private void initDefaultVars() {
|
||||||
if (this.mTestateOrdini != null && this.mTestateOrdini.size() > 0) {
|
if (this.mTestateOrdini != null && !this.mTestateOrdini.isEmpty()) {
|
||||||
|
|
||||||
List<String> foundRagSoc = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getRagSocOrd).distinctBy(x -> x).toList();
|
this.mIsOrdTrasf = mTestateOrdini.stream()
|
||||||
|
.map(OrdineUscitaInevasoDTO::isOrdTrasf)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.findFirst()
|
||||||
|
.orElse(false);
|
||||||
|
|
||||||
if (foundRagSoc != null && foundRagSoc.size() == 1) {
|
List<String> foundRagSoc = mTestateOrdini.stream()
|
||||||
|
.map(OrdineUscitaInevasoDTO::getRagSocOrd)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (foundRagSoc.size() == 1) {
|
||||||
mDefaultRagSocOfUL = foundRagSoc.get(0);
|
mDefaultRagSocOfUL = foundRagSoc.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<VtbVett> foundVett = mTestateOrdini.stream()
|
||||||
|
.filter(x -> !UtilityString.isNullOrEmpty(x.getCodVvet()))
|
||||||
|
.map(x -> new VtbVett()
|
||||||
|
.setCodVvet(x.getCodVvet())
|
||||||
|
.setRagSoc(x.getDescrizioneVettore()))
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (foundVett.size() == 1) {
|
||||||
|
mDefaultVettore = foundVett.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
if (mDefaultGestioneOfUL == null) {
|
if (mDefaultGestioneOfUL == null) {
|
||||||
//Definizione della gestione collo di default
|
//Definizione della gestione collo di default
|
||||||
List<GestioneEnum> foundGestioni = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getGestioneEnum).withoutNulls().distinct().toList();
|
List<GestioneEnum> foundGestioni = mTestateOrdini.stream()
|
||||||
|
.map(OrdineUscitaInevasoDTO::getGestioneEnum)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
if (foundGestioni.size() > 1) {
|
if (foundGestioni.size() > 1) {
|
||||||
return;
|
return;
|
||||||
@@ -254,6 +322,11 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean isOrdTrasf() {
|
||||||
|
return mIsOrdTrasf;
|
||||||
|
}
|
||||||
|
|
||||||
private void onOrderClosedPrintingDone() {
|
private void onOrderClosedPrintingDone() {
|
||||||
if (this.mIsOrdTrasf && !UtilityString.isNullOrEmpty(SettingsManager.iDB().getCodDtipOrdTrasfV())) {
|
if (this.mIsOrdTrasf && !UtilityString.isNullOrEmpty(SettingsManager.iDB().getCodDtipOrdTrasfV())) {
|
||||||
this.sendCreateDocsRequest();
|
this.sendCreateDocsRequest();
|
||||||
@@ -492,7 +565,8 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
boolean codMdepIsValid = Stream.of(SettingsManager.iDB().getAvailableCodMdep())
|
boolean codMdepIsValid = SettingsManager.iDB().getAvailableCodMdep()
|
||||||
|
.stream()
|
||||||
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
||||||
|
|
||||||
if (codMdepIsValid) {
|
if (codMdepIsValid) {
|
||||||
@@ -537,7 +611,7 @@ public class SpedizioneViewModel {
|
|||||||
mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
|
mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
|
||||||
if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
|
if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
|
||||||
|
|
||||||
boolean codMdepIsValid = Stream.of(SettingsManager.iDB().getAvailableCodMdep())
|
boolean codMdepIsValid = SettingsManager.iDB().getAvailableCodMdep().stream()
|
||||||
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
||||||
|
|
||||||
if (codMdepIsValid) {
|
if (codMdepIsValid) {
|
||||||
@@ -560,7 +634,7 @@ public class SpedizioneViewModel {
|
|||||||
if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
|
if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
|
||||||
if (mtbColt.getSegno() != -1) {
|
if (mtbColt.getSegno() != -1) {
|
||||||
|
|
||||||
boolean codMdepIsValid = Stream.of(SettingsManager.iDB().getAvailableCodMdep())
|
boolean codMdepIsValid = SettingsManager.iDB().getAvailableCodMdep().stream()
|
||||||
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
||||||
|
|
||||||
if (codMdepIsValid) {
|
if (codMdepIsValid) {
|
||||||
@@ -633,26 +707,28 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void executeMagazzinoAutomatico(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
|
private void executeMagazzinoAutomatico(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
|
||||||
var magazzinoAutomaticoPickableArts = Stream.of(Objects.requireNonNull(this.mPickingList.getValue()))
|
var magazzinoAutomaticoPickableArts = Objects.requireNonNull(this.mPickingList.getValue())
|
||||||
.filter(x -> Stream.of(x.getMtbColts()).anyMatch(y -> y.getPosizione() != null && y.getPosizione().equalsIgnoreCase(mtbDepoPosizione.getPosizione())) &&
|
.stream()
|
||||||
|
.filter(x -> x.getMtbColts().stream()
|
||||||
|
.anyMatch(y -> y.getPosizione() != null && y.getPosizione().equalsIgnoreCase(mtbDepoPosizione.getPosizione())) &&
|
||||||
x.getSitArtOrdDTO() != null &&
|
x.getSitArtOrdDTO() != null &&
|
||||||
UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaOrd(), BigDecimal.ZERO))
|
UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaOrd(), BigDecimal.ZERO))
|
||||||
.toList();
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
var mtbAarts = Stream.of(magazzinoAutomaticoPickableArts)
|
var mtbAarts = magazzinoAutomaticoPickableArts.stream()
|
||||||
.map(PickingObjectDTO::getMtbAart)
|
.map(PickingObjectDTO::getMtbAart)
|
||||||
.toList();
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
this.sendChooseArtsRequest(mtbAarts, selectedArts -> {
|
this.sendChooseArtsRequest(mtbAarts, selectedArts -> {
|
||||||
|
|
||||||
final List<MagazzinoAutomaticoPickOrderRequestDTO> orders = Stream.of(this.mTestateOrdini)
|
final List<MagazzinoAutomaticoPickOrderRequestDTO> orders = this.mTestateOrdini.stream()
|
||||||
.map(x -> new MagazzinoAutomaticoPickOrderRequestDTO(UtilityDate.toLocalDate(x.getDataOrdD()), x.getGestione(), x.getNumOrd())
|
.map(x -> new MagazzinoAutomaticoPickOrderRequestDTO(UtilityDate.toLocalDate(x.getDataOrdD()), x.getGestione(), x.getNumOrd())
|
||||||
.setDataCons(x.getDataConsD() != null ? UtilityDate.toLocalDate(x.getDataConsD()) : null))
|
.setDataCons(x.getDataConsD() != null ? UtilityDate.toLocalDate(x.getDataConsD()) : null))
|
||||||
.toList();
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
final List<MagazzinoAutomaticoPickItemRequestDTO> magazzinoAutomaticoPickItemRequestDTOList = new ArrayList<>();
|
final List<MagazzinoAutomaticoPickItemRequestDTO> magazzinoAutomaticoPickItemRequestDTOList = new ArrayList<>();
|
||||||
for (MtbAart selectedArt : selectedArts) {
|
for (MtbAart selectedArt : selectedArts) {
|
||||||
final PickingObjectDTO pickingObjectDTO = Stream.of(magazzinoAutomaticoPickableArts)
|
final PickingObjectDTO pickingObjectDTO = magazzinoAutomaticoPickableArts.stream()
|
||||||
.filter(x -> x.getMtbAart().getCodMart().equalsIgnoreCase(selectedArt.getCodMart()))
|
.filter(x -> x.getMtbAart().getCodMart().equalsIgnoreCase(selectedArt.getCodMart()))
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.orElse(null);
|
.orElse(null);
|
||||||
@@ -682,10 +758,10 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void executeEmptyMagazzinoAutomaticoRequest(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
|
public void executeEmptyMagazzinoAutomaticoRequest(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
|
||||||
final List<MagazzinoAutomaticoPickOrderRequestDTO> orders = Stream.of(this.mTestateOrdini)
|
final List<MagazzinoAutomaticoPickOrderRequestDTO> orders = this.mTestateOrdini.stream()
|
||||||
.map(x -> new MagazzinoAutomaticoPickOrderRequestDTO(UtilityDate.toLocalDate(x.getDataOrdD()), x.getGestione(), x.getNumOrd())
|
.map(x -> new MagazzinoAutomaticoPickOrderRequestDTO(UtilityDate.toLocalDate(x.getDataOrdD()), x.getGestione(), x.getNumOrd())
|
||||||
.setDataCons(UtilityDate.toLocalDate(x.getDataConsD())))
|
.setDataCons(UtilityDate.toLocalDate(x.getDataConsD())))
|
||||||
.toList();
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
var magazzinoAutomaticoPickRequest = new MagazzinoAutomaticoPickItemsRequestDTO()
|
var magazzinoAutomaticoPickRequest = new MagazzinoAutomaticoPickItemsRequestDTO()
|
||||||
.setShouldCreateUDS(true)
|
.setShouldCreateUDS(true)
|
||||||
@@ -703,21 +779,22 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
if (mEnableGiacenza) {
|
if (mEnableGiacenza) {
|
||||||
|
|
||||||
Stream.of(pickingList).forEach(pickingObjectDTO -> {
|
pickingList
|
||||||
if (Stream.of(pickingObjectDTO.getMtbColts())
|
.forEach(pickingObjectDTO -> {
|
||||||
.anyMatch(x ->
|
if (pickingObjectDTO.getMtbColts().stream()
|
||||||
Objects.equals(x.getNumCollo(), scannedUL.getNumCollo()) &&
|
.anyMatch(x ->
|
||||||
x.getDataColloS().equals(scannedUL.getDataColloS()) &&
|
Objects.equals(x.getNumCollo(), scannedUL.getNumCollo()) &&
|
||||||
x.getSerCollo().equalsIgnoreCase(scannedUL.getSerCollo()) &&
|
x.getDataColloS().equals(scannedUL.getDataColloS()) &&
|
||||||
(scannedUL.getGestioneEnum() == GestioneEnum.ACQUISTO || scannedUL.getGestioneEnum() == GestioneEnum.LAVORAZIONE))) {
|
x.getSerCollo().equalsIgnoreCase(scannedUL.getSerCollo()) &&
|
||||||
|
(scannedUL.getGestioneEnum() == GestioneEnum.ACQUISTO || scannedUL.getGestioneEnum() == GestioneEnum.LAVORAZIONE))) {
|
||||||
|
|
||||||
matchPickingObject.add(pickingObjectDTO);
|
matchPickingObject.add(pickingObjectDTO);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//Controllo se nel collo ho degli articoli che corrispondono per codice / taglia / colore / lotto
|
//Controllo se nel collo ho degli articoli che corrispondono per codice / taglia / colore / lotto
|
||||||
Stream.of(scannedUL.getMtbColr()).filter(x -> !UtilityString.isNullOrEmpty(x.getCodMart())).forEach(x -> {
|
scannedUL.getMtbColr().stream().filter(x -> !UtilityString.isNullOrEmpty(x.getCodMart())).forEach(x -> {
|
||||||
|
|
||||||
for (PickingObjectDTO pickingObject : pickingList) {
|
for (PickingObjectDTO pickingObject : pickingList) {
|
||||||
//Da verificare se il controllo per partita deve essere sempre effettuato
|
//Da verificare se il controllo per partita deve essere sempre effettuato
|
||||||
@@ -736,7 +813,7 @@ public class SpedizioneViewModel {
|
|||||||
ObservableArrayList<MtbColr> cloneMtbColrs = (ObservableArrayList<MtbColr>) cloneMtbColt.getMtbColr().clone();
|
ObservableArrayList<MtbColr> cloneMtbColrs = (ObservableArrayList<MtbColr>) cloneMtbColt.getMtbColr().clone();
|
||||||
|
|
||||||
|
|
||||||
Stream.of(cloneMtbColt.getMtbColr())
|
cloneMtbColt.getMtbColr().stream()
|
||||||
.filter(x -> !(UtilityString.equalsIgnoreCase(x.getCodMart(), matchedObject.getSitArtOrdDTO().getCodMart()) &&
|
.filter(x -> !(UtilityString.equalsIgnoreCase(x.getCodMart(), matchedObject.getSitArtOrdDTO().getCodMart()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getCodTagl(), matchedObject.getSitArtOrdDTO().getCodTagl()) &&
|
UtilityString.equalsIgnoreCase(x.getCodTagl(), matchedObject.getSitArtOrdDTO().getCodTagl()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getCodCol(), matchedObject.getSitArtOrdDTO().getCodCol()) &&
|
UtilityString.equalsIgnoreCase(x.getCodCol(), matchedObject.getSitArtOrdDTO().getCodCol()) &&
|
||||||
@@ -760,12 +837,13 @@ public class SpedizioneViewModel {
|
|||||||
private void searchArtFromAnag(MtbAart mtbAart, PickDataDTO pickData, Runnable onComplete) {
|
private void searchArtFromAnag(MtbAart mtbAart, PickDataDTO pickData, Runnable onComplete) {
|
||||||
final List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
final List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
||||||
|
|
||||||
List<PickingObjectDTO> matchPickingObject = Stream.of(pickingList)
|
List<PickingObjectDTO> matchPickingObject = pickingList.stream()
|
||||||
.filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitArtOrdDTO().getCodMart()))
|
.filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitArtOrdDTO().getCodMart()))
|
||||||
.filter(x -> x.getSitArtOrdDTO().isFlagEnableScanArt()).filter(x -> {
|
.filter(x -> x.getSitArtOrdDTO().isFlagEnableScanArt())
|
||||||
|
.filter(x -> {
|
||||||
MtbPartitaMag mtbPartitaMag = pickData != null && pickData.getManualPickDTO() != null && pickData.getManualPickDTO().getMtbPartitaMag() != null ? pickData.getManualPickDTO().getMtbPartitaMag() : null;
|
MtbPartitaMag mtbPartitaMag = pickData != null && pickData.getManualPickDTO() != null && pickData.getManualPickDTO().getMtbPartitaMag() != null ? pickData.getManualPickDTO().getMtbPartitaMag() : null;
|
||||||
return !mEnableCheckPartitaMag || (mtbPartitaMag != null && UtilityString.equalsIgnoreCase(x.getSitArtOrdDTO().getPartitaMag(), mtbPartitaMag.getPartitaMag()));
|
return !mEnableCheckPartitaMag || (mtbPartitaMag != null && UtilityString.equalsIgnoreCase(x.getSitArtOrdDTO().getPartitaMag(), mtbPartitaMag.getPartitaMag()));
|
||||||
}).toList();
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
for (PickingObjectDTO pickingObjectDTO : matchPickingObject) {
|
for (PickingObjectDTO pickingObjectDTO : matchPickingObject) {
|
||||||
pickingObjectDTO.setTempPickData(pickData);
|
pickingObjectDTO.setTempPickData(pickData);
|
||||||
@@ -787,7 +865,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
||||||
|
|
||||||
Stream.of(pickingList).filter(x -> x != matchedItem).forEach(x -> x.setHidden(true));
|
pickingList.stream().filter(x -> x != matchedItem).forEach(x -> x.setHidden(true));
|
||||||
|
|
||||||
this.sendFilterApplied(null);
|
this.sendFilterApplied(null);
|
||||||
this.getPickingList().postValue(pickingList);
|
this.getPickingList().postValue(pickingList);
|
||||||
@@ -828,14 +906,14 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
List<MtbColr> scannedMtbColrs = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr();
|
List<MtbColr> scannedMtbColrs = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr();
|
||||||
|
|
||||||
List<MtbPartitaMag> availableBatchLots = Stream.of(scannedMtbColrs)
|
List<MtbPartitaMag> availableBatchLots = scannedMtbColrs.stream()
|
||||||
.filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) &&
|
.filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) &&
|
||||||
(x.getPartitaMag() == null || x.getMtbPartitaMag().getDataScad() == null ||
|
(x.getPartitaMag() == null || x.getMtbPartitaMag().getDataScad() == null ||
|
||||||
UtilityDate.getNow().isBefore(x.getMtbPartitaMag().getDataScad())))
|
UtilityDate.getNow().isBefore(x.getMtbPartitaMag().getDataScad())))
|
||||||
|
|
||||||
.distinctBy(MtbColr::getPartitaMag)
|
|
||||||
.map(x -> x.getPartitaMag() == null ? new MtbPartitaMag().setCodMart(x.getMtbAart().getCodMart()) : x.getMtbPartitaMag())
|
.map(x -> x.getPartitaMag() == null ? new MtbPartitaMag().setCodMart(x.getMtbAart().getCodMart()) : x.getMtbPartitaMag())
|
||||||
.toList();
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
//Controllo se una delle partite combacia con quella che voglio evadere
|
//Controllo se una delle partite combacia con quella che voglio evadere
|
||||||
// if (refMtbColr != null && refMtbColr.getMtbPartitaMag() != null) {
|
// if (refMtbColr != null && refMtbColr.getMtbPartitaMag() != null) {
|
||||||
@@ -854,24 +932,30 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
List<MtbPartitaMag> tmp = new ArrayList<>();
|
List<MtbPartitaMag> tmp = new ArrayList<>();
|
||||||
|
|
||||||
if (Stream.of(availableBatchLots).anyMatch(x -> x.getDataScad() != null)) {
|
if (availableBatchLots.stream().anyMatch(x -> x.getDataScad() != null)) {
|
||||||
tmp.addAll(Stream.of(availableBatchLots)
|
tmp.addAll(availableBatchLots.stream()
|
||||||
.filter(x -> x.getDataScad() != null && UtilityDate.getNow().isBefore(x.getDataScad()))
|
.filter(x -> x.getDataScad() != null && UtilityDate.getNow().isBefore(x.getDataScad()))
|
||||||
.sortBy(MtbPartitaMag::getDataScad).
|
.sorted(Comparator.comparing(MtbPartitaMag::getDataScad))
|
||||||
toList());
|
.collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Stream.of(availableBatchLots).anyMatch(x -> x.getDataScad() == null)) {
|
if (availableBatchLots.stream().anyMatch(x -> x.getDataScad() == null)) {
|
||||||
tmp.addAll(Stream.of(availableBatchLots)
|
tmp.addAll(availableBatchLots.stream()
|
||||||
.filter(x -> x.getDataScad() == null)
|
.filter(x -> x.getDataScad() == null)
|
||||||
.sortBy(x -> UtilityString.isNull(x.getPartitaMag(), "")).toList());
|
.sorted(Comparator.comparing(MtbPartitaMag::getPartitaMag))
|
||||||
|
.collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.sendBatchLotSelectionRequest(tmp, selected -> {
|
this.sendBatchLotSelectionRequest(tmp, selected -> {
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
if (selected != null) {
|
if (selected != null) {
|
||||||
MtbColr scannedMtbColr = Stream.of(pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr()).filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) && ((x.getPartitaMag() != null && selected.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(selected.getPartitaMag())) || (x.getPartitaMag() == null && selected.getPartitaMag() == null))).toList().get(0);
|
MtbColr scannedMtbColr = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().stream()
|
||||||
|
.filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) &&
|
||||||
|
((x.getPartitaMag() != null && selected.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(selected.getPartitaMag()))
|
||||||
|
|| (x.getPartitaMag() == null && selected.getPartitaMag() == null)))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
|
||||||
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, refMtbColr, scannedMtbColr, canPartitaMagBeChanged);
|
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, refMtbColr, scannedMtbColr, canPartitaMagBeChanged);
|
||||||
}
|
}
|
||||||
@@ -894,10 +978,11 @@ public class SpedizioneViewModel {
|
|||||||
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
|
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
|
||||||
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
|
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
|
||||||
|
|
||||||
Stream.of(pickingObjectDTO.getWithdrawMtbColrs()).forEach(row -> {
|
pickingObjectDTO.getWithdrawMtbColrs().stream()
|
||||||
numCnfWithdrawRows.addAndGet(row.getNumCnf());
|
.forEach(row -> {
|
||||||
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
numCnfWithdrawRows.addAndGet(row.getNumCnf());
|
||||||
});
|
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
||||||
|
});
|
||||||
|
|
||||||
BigDecimal numCnfDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd().subtract(numCnfWithdrawRows.getBigDecimalValue());
|
BigDecimal numCnfDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd().subtract(numCnfWithdrawRows.getBigDecimalValue());
|
||||||
BigDecimal qtaDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd().subtract(qtaColWithdrawRows.getBigDecimalValue());
|
BigDecimal qtaDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd().subtract(qtaColWithdrawRows.getBigDecimalValue());
|
||||||
@@ -923,20 +1008,6 @@ public class SpedizioneViewModel {
|
|||||||
refMtbColt = pickingObjectDTO.getMtbColts().get(0);
|
refMtbColt = pickingObjectDTO.getMtbColts().get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// MtbColr refMtbColr = null;
|
|
||||||
//
|
|
||||||
// if (scannedMtbColr != null && refMtbColt != null && refMtbColt.getMtbColr().size() > 0) {
|
|
||||||
// Optional<MtbColr> optionalMtbColr = Stream.of(refMtbColt.getMtbColr())
|
|
||||||
// .filter(y -> UtilityString.equalsIgnoreCase(y.getCodMart(), scannedMtbColr.getCodMart()) &&
|
|
||||||
// UtilityString.equalsIgnoreCase(y.getCodTagl(), scannedMtbColr.getCodTagl()) &&
|
|
||||||
// UtilityString.equalsIgnoreCase(y.getCodCol(), scannedMtbColr.getCodCol()) &&
|
|
||||||
// (!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(y.getPartitaMag(), scannedMtbColr.getPartitaMag()) || UtilityString.isNullOrEmpty(scannedMtbColr.getPartitaMag())))
|
|
||||||
// .findFirst();
|
|
||||||
//
|
|
||||||
// if (optionalMtbColr.isPresent()) refMtbColr = optionalMtbColr.get();
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
if (refMtbColr != null) {
|
if (refMtbColr != null) {
|
||||||
if (pickingObjectDTO.getMtbAart().isFlagQtaCnfFissaBoolean()) {
|
if (pickingObjectDTO.getMtbAart().isFlagQtaCnfFissaBoolean()) {
|
||||||
if (UtilityBigDecimal.equalsOrLowerThan(refMtbColr.getQtaCol(), qtaDaEvadere)) {
|
if (UtilityBigDecimal.equalsOrLowerThan(refMtbColr.getQtaCol(), qtaDaEvadere)) {
|
||||||
@@ -1024,8 +1095,12 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BigDecimal initialNumCnf = mUseColliPedana ? pickingObjectDTO.getMtbAart().getColliPedana() : mUseQtaOrd ? numCnfDaPrelevare : null;
|
||||||
|
BigDecimal initialQtaCnf = mUseColliPedana ? pickingObjectDTO.getMtbAart().getQtaCnf() : mUseQtaOrd ? qtaCnfDaPrelevare : null;
|
||||||
|
BigDecimal initialQtaTot = mUseColliPedana ? initialNumCnf.multiply(initialQtaCnf) : mUseQtaOrd ? qtaColDaPrelevare : null;
|
||||||
|
|
||||||
MtbColt finalRefMtbColt = refMtbColt;
|
MtbColt finalRefMtbColt = refMtbColt;
|
||||||
this.onItemDispatched(pickingObjectDTO, pickingObjectDTO.getMtbAart(), mUseQtaOrd ? numCnfDaPrelevare : null, mUseQtaOrd ? qtaCnfDaPrelevare : null, mUseQtaOrd ? qtaColDaPrelevare : null, qtaDaEvadere, numCnfDaEvadere, qtaCnfDaEvadere, qtaColDaPrelevare, numCnfDaPrelevare, qtaCnfDaPrelevare, totalQtaAvailable, totalNumCnfAvailable, qtaCnfAvailable, partitaMag, dataScad, mCanOverflowOrderQuantity, canPartitaMagBeChanged, (pickedQuantityDTO, shouldCloseLU) -> {
|
this.onItemDispatched(pickingObjectDTO, pickingObjectDTO.getMtbAart(), initialNumCnf, initialQtaCnf, initialQtaTot, qtaDaEvadere, numCnfDaEvadere, qtaCnfDaEvadere, qtaColDaPrelevare, numCnfDaPrelevare, qtaCnfDaPrelevare, totalQtaAvailable, totalNumCnfAvailable, qtaCnfAvailable, partitaMag, dataScad, mCanOverflowOrderQuantity, canPartitaMagBeChanged, (pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
this.saveNewRow(pickingObjectDTO, finalRefMtbColt, pickedQuantityDTO.getNumCnf(), pickedQuantityDTO.getQtaCnf(), pickedQuantityDTO.getQtaTot(), pickedQuantityDTO.getPartitaMag(), pickedQuantityDTO.getDataScad(), shouldCloseLU);
|
this.saveNewRow(pickingObjectDTO, finalRefMtbColt, pickedQuantityDTO.getNumCnf(), pickedQuantityDTO.getQtaCnf(), pickedQuantityDTO.getQtaTot(), pickedQuantityDTO.getPartitaMag(), pickedQuantityDTO.getDataScad(), shouldCloseLU);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -1158,7 +1233,10 @@ public class SpedizioneViewModel {
|
|||||||
public void dispatchRowEdit(final MtbColr mtbColrToEdit) {
|
public void dispatchRowEdit(final MtbColr mtbColrToEdit) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
Optional<PickingObjectDTO> optionalPickingObjectDTO = Stream.of(this.mPickingList.getValue()).filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToEdit)).findSingle();
|
Optional<PickingObjectDTO> optionalPickingObjectDTO =
|
||||||
|
this.mPickingList.getValue().stream()
|
||||||
|
.filter(x -> x.getWithdrawMtbColrs().stream().anyMatch(y -> y == mtbColrToEdit))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
PickingObjectDTO pickingObjectDTO = null;
|
PickingObjectDTO pickingObjectDTO = null;
|
||||||
|
|
||||||
@@ -1187,10 +1265,11 @@ public class SpedizioneViewModel {
|
|||||||
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal(0);
|
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal(0);
|
||||||
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal(0);
|
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal(0);
|
||||||
|
|
||||||
Stream.of(finalPickingObjectDTO.getWithdrawMtbColrs()).forEach(row -> {
|
finalPickingObjectDTO.getWithdrawMtbColrs()
|
||||||
numCnfWithdrawRows.addAndGet(row.getNumCnf());
|
.forEach(row -> {
|
||||||
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
numCnfWithdrawRows.addAndGet(row.getNumCnf());
|
||||||
});
|
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
||||||
|
});
|
||||||
|
|
||||||
numCnfDaEvadere = totalNumCnfOrd.subtract(numCnfWithdrawRows.getBigDecimalValue()).add(mtbColrToEdit.getNumCnf());
|
numCnfDaEvadere = totalNumCnfOrd.subtract(numCnfWithdrawRows.getBigDecimalValue()).add(mtbColrToEdit.getNumCnf());
|
||||||
qtaDaEvadere = totalQtaOrd.subtract(qtaColWithdrawRows.getBigDecimalValue()).add(mtbColrToEdit.getQtaCol());
|
qtaDaEvadere = totalQtaOrd.subtract(qtaColWithdrawRows.getBigDecimalValue()).add(mtbColrToEdit.getQtaCol());
|
||||||
@@ -1215,7 +1294,13 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
if (mtbColrRifs != null && mtbColrRifs.size() > 0) {
|
if (mtbColrRifs != null && mtbColrRifs.size() > 0) {
|
||||||
//TODO: Da capire se è necessario controllare anche il cod_jcom
|
//TODO: Da capire se è necessario controllare anche il cod_jcom
|
||||||
Optional<MtbColr> optionalMtbColr = Stream.of(mtbColrRifs).filter(x -> UtilityString.equalsIgnoreCase(x.getCodMart(), mtbColrToEdit.getCodMart()) && UtilityString.equalsIgnoreCase(x.getCodCol(), mtbColrToEdit.getCodCol()) && UtilityString.equalsIgnoreCase(x.getCodTagl(), mtbColrToEdit.getCodTagl()) && UtilityString.equalsIgnoreCase(x.getPartitaMag(), mtbColrToEdit.getPartitaMag())).findSingle();
|
Optional<MtbColr> optionalMtbColr =
|
||||||
|
mtbColrRifs.stream()
|
||||||
|
.filter(x -> UtilityString.equalsIgnoreCase(x.getCodMart(), mtbColrToEdit.getCodMart()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(x.getCodCol(), mtbColrToEdit.getCodCol()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(x.getCodTagl(), mtbColrToEdit.getCodTagl()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(x.getPartitaMag(), mtbColrToEdit.getPartitaMag()))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
mtbColrRif = optionalMtbColr.isPresent() ? optionalMtbColr.get() : null;
|
mtbColrRif = optionalMtbColr.isPresent() ? optionalMtbColr.get() : null;
|
||||||
}
|
}
|
||||||
@@ -1270,15 +1355,16 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
|
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
|
||||||
int causaleCollo = 0;
|
int causaleCollo = 0;
|
||||||
if (mDefaultGestioneOfUL == GestioneEnum.LAVORAZIONE && mDefaultSegnoCol == +1) causaleCollo = 1;
|
if (mDefaultGestioneOfUL == GestioneEnum.LAVORAZIONE && mDefaultSegnoCol == +1)
|
||||||
|
causaleCollo = 1;
|
||||||
|
|
||||||
final List<CreateUDSRequestOrderDTO> orders = Stream.of(this.mTestateOrdini)
|
final List<CreateUDSRequestOrderDTO> orders = this.mTestateOrdini.stream()
|
||||||
.map(x -> new CreateUDSRequestOrderDTO()
|
.map(x -> new CreateUDSRequestOrderDTO()
|
||||||
.setDataCons(x.getDataConsD() != null ? UtilityDate.toLocalDate(x.getDataConsD()) : null)
|
.setDataCons(x.getDataConsD() != null ? UtilityDate.toLocalDate(x.getDataConsD()) : null)
|
||||||
.setDataOrd(UtilityDate.toLocalDate(x.getDataOrdD()))
|
.setDataOrd(UtilityDate.toLocalDate(x.getDataOrdD()))
|
||||||
.setGestione(x.getGestione())
|
.setGestione(x.getGestione())
|
||||||
.setNumOrd(x.getNumOrd()))
|
.setNumOrd(x.getNumOrd()))
|
||||||
.toList();
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
final CreateUDSRequestDTO createUDSRequestDTO = new CreateUDSRequestDTO()
|
final CreateUDSRequestDTO createUDSRequestDTO = new CreateUDSRequestDTO()
|
||||||
.setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
|
.setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
|
||||||
@@ -1407,9 +1493,10 @@ public class SpedizioneViewModel {
|
|||||||
.setQtaCnf(savedMtbColr.getQtaCnf())
|
.setQtaCnf(savedMtbColr.getQtaCnf())
|
||||||
.setQtaCol(savedMtbColr.getQtaCol());
|
.setQtaCol(savedMtbColr.getQtaCol());
|
||||||
|
|
||||||
Optional<PickingObjectDTO> pickingObjectDTO = Stream.of(this.mPickingList.getValue())
|
Optional<PickingObjectDTO> pickingObjectDTO = this.mPickingList.getValue().stream()
|
||||||
.filter(x -> Stream.of(x.getWithdrawMtbColrs())
|
.filter(x -> x.getWithdrawMtbColrs().stream()
|
||||||
.anyMatch(y -> y == mtbColrToUpdate)).findSingle();
|
.anyMatch(y -> y == mtbColrToUpdate))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
if (pickingObjectDTO.isPresent()) {
|
if (pickingObjectDTO.isPresent()) {
|
||||||
pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate);
|
pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate);
|
||||||
@@ -1437,9 +1524,9 @@ public class SpedizioneViewModel {
|
|||||||
.setMtbColrToDelete(mtbColrToDelete);
|
.setMtbColrToDelete(mtbColrToDelete);
|
||||||
|
|
||||||
this.mColliScaricoRESTConsumer.deleteUDSRow(deleteUDSRowRequestoDTO, () -> {
|
this.mColliScaricoRESTConsumer.deleteUDSRow(deleteUDSRowRequestoDTO, () -> {
|
||||||
Optional<PickingObjectDTO> pickingObjectDTO = Stream.of(this.mPickingList.getValue())
|
Optional<PickingObjectDTO> pickingObjectDTO = this.mPickingList.getValue().stream()
|
||||||
.filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToDelete))
|
.filter(x -> x.getWithdrawMtbColrs().stream().anyMatch(y -> y == mtbColrToDelete))
|
||||||
.findSingle();
|
.findFirst();
|
||||||
|
|
||||||
if (pickingObjectDTO.isPresent()) {
|
if (pickingObjectDTO.isPresent()) {
|
||||||
pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToDelete);
|
pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToDelete);
|
||||||
@@ -1478,31 +1565,37 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
this.closeLU(generatedMtbColts -> {
|
this.closeLU(generatedMtbColts -> {
|
||||||
|
|
||||||
this.mColliMagazzinoRESTConsumer.fillMtbAartsOfMtbColts(generatedMtbColts, filledMtbColts -> {
|
this.validateTheUdsToBeDuplicated(generatedMtbColts, duplicatedMtbColts -> {
|
||||||
|
|
||||||
this.askPositionChange(
|
if (duplicatedMtbColts != null) {
|
||||||
filledMtbColts,
|
generatedMtbColts.addAll(duplicatedMtbColts);
|
||||||
positionedMtbColts -> {
|
}
|
||||||
|
|
||||||
this.askPrint((shouldPrint && SettingsManager.iDB().isFlagPrintEtichetteOnLUClose()), positionedMtbColts, () -> {
|
this.mColliMagazzinoRESTConsumer.fillMtbAartsOfMtbColts(generatedMtbColts, filledMtbColts -> {
|
||||||
Stream.of(positionedMtbColts)
|
|
||||||
.filter(x -> !this.mColliRegistrati.contains(x))
|
|
||||||
.forEach(x -> this.mColliRegistrati.add(x));
|
|
||||||
|
|
||||||
postCloseOperations(positionedMtbColts);
|
this.askPositionChange(
|
||||||
|
filledMtbColts,
|
||||||
|
positionedMtbColts -> {
|
||||||
|
|
||||||
this.mIsNewLU = false;
|
this.askPrint((shouldPrint && SettingsManager.iDB().isFlagPrintEtichetteOnLUClose()), positionedMtbColts, () -> {
|
||||||
|
positionedMtbColts.stream()
|
||||||
|
.filter(x -> !this.mColliRegistrati.contains(x))
|
||||||
|
.forEach(x -> this.mColliRegistrati.add(x));
|
||||||
|
|
||||||
|
postCloseOperations(positionedMtbColts);
|
||||||
|
|
||||||
|
this.mIsNewLU = false;
|
||||||
|
|
||||||
|
this.resetMatchedRows();
|
||||||
|
this.sendLUClosed();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
});
|
||||||
|
|
||||||
this.resetMatchedRows();
|
|
||||||
this.sendLUClosed();
|
|
||||||
this.sendOnLoadingEnded();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
}, this::sendError);
|
||||||
|
});
|
||||||
}, this::sendError);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1514,7 +1607,8 @@ public class SpedizioneViewModel {
|
|||||||
clonedLuToClose.setMtbColr(null);
|
clonedLuToClose.setMtbColr(null);
|
||||||
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
if(mTestateOrdini != null && !mTestateOrdini.isEmpty()) codMdep = mTestateOrdini.get(0).getCodMdep();
|
if (mTestateOrdini != null && !mTestateOrdini.isEmpty())
|
||||||
|
codMdep = mTestateOrdini.get(0).getCodMdep();
|
||||||
|
|
||||||
var closeUDSRequestDto = new CloseUDSRequestDTO()
|
var closeUDSRequestDto = new CloseUDSRequestDTO()
|
||||||
.setMtbColt(clonedLuToClose)
|
.setMtbColt(clonedLuToClose)
|
||||||
@@ -1524,8 +1618,79 @@ public class SpedizioneViewModel {
|
|||||||
this.mColliScaricoRESTConsumer.closeUDS(closeUDSRequestDto, closeResponse -> {
|
this.mColliScaricoRESTConsumer.closeUDS(closeUDSRequestDto, closeResponse -> {
|
||||||
onComplete.run(closeResponse.getGeneratedMtbColts());
|
onComplete.run(closeResponse.getGeneratedMtbColts());
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateTheUdsToBeDuplicated(List<MtbColt> mtbColtList, RunnableArgs<List<MtbColt>> onComplete) {
|
||||||
|
var clonedLu = (MtbColt) this.mCurrentMtbColt.clone();
|
||||||
|
|
||||||
|
boolean noReference = clonedLu.getMtbColr().stream()
|
||||||
|
.allMatch(
|
||||||
|
x -> x.getGestioneRif() == null &&
|
||||||
|
x.getDataColloRifD() == null &&
|
||||||
|
x.getSerColloRif() == null &&
|
||||||
|
x.getNumColloRif() == null
|
||||||
|
);
|
||||||
|
|
||||||
|
if (mtbColtList.size() > 1 || !noReference || !SettingsManager.iDB().isFlagAskDuplicateUDSSpedizione()) {
|
||||||
|
onComplete.run(new ArrayList<>());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var savedMtbColt = mtbColtList.get(0);
|
||||||
|
|
||||||
|
//Controllo se si va in extra quantity
|
||||||
|
if (!SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione()) {
|
||||||
|
Map<String, List<MtbColr>> groupedByCodMart = savedMtbColt.getMtbColr()
|
||||||
|
.stream()
|
||||||
|
.filter(x -> x.getCodMart() != null)
|
||||||
|
.collect(Collectors.groupingBy(MtbColr::getCodMart));
|
||||||
|
|
||||||
|
for (PickingObjectDTO pickingObjectDTO : Objects.requireNonNull(this.mPickingList.getValue())) {
|
||||||
|
|
||||||
|
if (pickingObjectDTO.getMtbAart() != null) {
|
||||||
|
String codMart = pickingObjectDTO.getMtbAart().getCodMart();
|
||||||
|
|
||||||
|
if (groupedByCodMart.containsKey(codMart)) {
|
||||||
|
BigDecimal qtaTot = UntMisUtils.shouldBeShowInColli(pickingObjectDTO.getMtbAart()) ? pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd() : pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
|
||||||
|
|
||||||
|
BigDecimal qtaEvasa = Objects.requireNonNull(groupedByCodMart.get(codMart)).stream().map(MtbColr::getNumCnf).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
sendInputDuplicate(qtaTot, qtaEvasa, inputNumber -> {
|
||||||
|
duplicateUDS(savedMtbColt, inputNumber, onComplete);
|
||||||
|
}, () -> onComplete.run(null));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sendInputDuplicate(inputNumber -> {
|
||||||
|
duplicateUDS(savedMtbColt, inputNumber, onComplete);
|
||||||
|
}, () -> onComplete.run(null));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void duplicateUDS(MtbColt savedMtbColt, Integer inputNumber, RunnableArgs<List<MtbColt>> onComplete) {
|
||||||
|
var duplicateUDSRequestDTO = new DuplicateUDSRequestDTO()
|
||||||
|
.setMtbColt(savedMtbColt)
|
||||||
|
.setNumOfDuplicates(inputNumber);
|
||||||
|
|
||||||
|
this.mColliSpedizioneRESTConsumer.duplicateUDS(duplicateUDSRequestDTO, data -> {
|
||||||
|
Map<String, List<MtbColr>> groupedByCodMart = data.getMtbColtList()
|
||||||
|
.stream()
|
||||||
|
.flatMap(x -> x.getMtbColr().stream())
|
||||||
|
.filter(x -> x.getCodMart() != null)
|
||||||
|
.collect(Collectors.groupingBy(MtbColr::getCodMart));
|
||||||
|
|
||||||
|
for (PickingObjectDTO pickingObjectDTO : Objects.requireNonNull(this.mPickingList.getValue())) {
|
||||||
|
if (pickingObjectDTO.getMtbAart() != null) {
|
||||||
|
String codMart = pickingObjectDTO.getMtbAart().getCodMart();
|
||||||
|
if (groupedByCodMart.containsKey(codMart)) {
|
||||||
|
pickingObjectDTO.getWithdrawMtbColrs()
|
||||||
|
.addAll(Objects.requireNonNull(groupedByCodMart.get(codMart)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onComplete.run(data.getMtbColtList());
|
||||||
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkIfShouldBeDeleted(Runnable onDeleted, Runnable onContinue) {
|
private void checkIfShouldBeDeleted(Runnable onDeleted, Runnable onContinue) {
|
||||||
@@ -1716,7 +1881,7 @@ public class SpedizioneViewModel {
|
|||||||
private void postCloseOperations(List<MtbColt> mtbColtList) {
|
private void postCloseOperations(List<MtbColt> mtbColtList) {
|
||||||
if (mTestateOrdini != null) {
|
if (mTestateOrdini != null) {
|
||||||
for (MtbColt mtbColt : mtbColtList) {
|
for (MtbColt mtbColt : mtbColtList) {
|
||||||
Stream.of(mTestateOrdini)
|
mTestateOrdini.stream()
|
||||||
.filter(x -> x.getNumOrd().equals(mtbColt.getNumOrd()) && x.getDataOrdD().equals(mtbColt.getDataOrdD()) && x.getGestioneEnum() == mtbColt.getGestioneEnum())
|
.filter(x -> x.getNumOrd().equals(mtbColt.getNumOrd()) && x.getDataOrdD().equals(mtbColt.getDataOrdD()) && x.getGestioneEnum() == mtbColt.getGestioneEnum())
|
||||||
.forEach(x -> x.setExistColloBoolean(true));
|
.forEach(x -> x.setExistColloBoolean(true));
|
||||||
}
|
}
|
||||||
@@ -1735,7 +1900,17 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
if (pickingObjectDTO.getMtbColts() != null) {
|
if (pickingObjectDTO.getMtbColts() != null) {
|
||||||
|
|
||||||
Optional<MtbColr> optionalMtbColrReference = Stream.of(pickingObjectDTO.getMtbColts()).filter(y -> withdrawMtbColr.getRefMtbColr() != null && withdrawMtbColr.getRefMtbColr().getNumCollo().equals(y.getNumCollo()) && withdrawMtbColr.getRefMtbColr().getDataColloD().equals(y.getDataColloD()) && withdrawMtbColr.getRefMtbColr().getSerCollo().equals(y.getSerCollo()) && withdrawMtbColr.getRefMtbColr().getGestioneEnum().equals(y.getGestioneEnum()) && UtilityString.equalsIgnoreCase(withdrawMtbColr.getRefMtbColr().getCodMart(), y.getMtbColr() != null && y.getMtbColr().size() > 0 ? y.getMtbColr().get(0).getCodMart() : null) && UtilityString.equalsIgnoreCase(withdrawMtbColr.getRefMtbColr().getCodTagl(), y.getMtbColr() != null && y.getMtbColr().size() > 0 ? y.getMtbColr().get(0).getCodTagl() : null) && UtilityString.equalsIgnoreCase(withdrawMtbColr.getRefMtbColr().getCodCol(), y.getMtbColr() != null && y.getMtbColr().size() > 0 ? y.getMtbColr().get(0).getCodCol() : null)).map(y -> y.getMtbColr().get(0)).findFirst();
|
Optional<MtbColr> optionalMtbColrReference = pickingObjectDTO.getMtbColts().stream()
|
||||||
|
.filter(y -> withdrawMtbColr.getRefMtbColr() != null &&
|
||||||
|
withdrawMtbColr.getRefMtbColr().getNumCollo().equals(y.getNumCollo()) &&
|
||||||
|
withdrawMtbColr.getRefMtbColr().getDataColloD().equals(y.getDataColloD()) &&
|
||||||
|
withdrawMtbColr.getRefMtbColr().getSerCollo().equals(y.getSerCollo()) &&
|
||||||
|
withdrawMtbColr.getRefMtbColr().getGestioneEnum().equals(y.getGestioneEnum()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(withdrawMtbColr.getRefMtbColr().getCodMart(), y.getMtbColr() != null && !y.getMtbColr().isEmpty() ? y.getMtbColr().get(0).getCodMart() : null) &&
|
||||||
|
UtilityString.equalsIgnoreCase(withdrawMtbColr.getRefMtbColr().getCodTagl(), y.getMtbColr() != null && !y.getMtbColr().isEmpty() ? y.getMtbColr().get(0).getCodTagl() : null) &&
|
||||||
|
UtilityString.equalsIgnoreCase(withdrawMtbColr.getRefMtbColr().getCodCol(), y.getMtbColr() != null && !y.getMtbColr().isEmpty() ? y.getMtbColr().get(0).getCodCol() : null))
|
||||||
|
.map(y -> y.getMtbColr().get(0))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
|
||||||
if (optionalMtbColrReference.isPresent()) {
|
if (optionalMtbColrReference.isPresent()) {
|
||||||
@@ -1783,11 +1958,14 @@ public class SpedizioneViewModel {
|
|||||||
onOrderClosedPrintingDone();
|
onOrderClosedPrintingDone();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DtbOrdt> closedOrders = Stream.of(this.mTestateOrdini).map(ord -> {
|
List<DtbOrdt> closedOrders = this.mTestateOrdini.stream()
|
||||||
DtbOrdt ordV = new DtbOrdt();
|
.map(ord -> new DtbOrdt()
|
||||||
ordV.setDataOrd(ord.getDataOrdS()).setNumOrd(ord.getNumOrd()).setGestione(ord.getGestione()).setCodAnag(ord.getCodAnagOrd());
|
.setDataOrd(ord.getDataOrdS())
|
||||||
return ordV;
|
.setNumOrd(ord.getNumOrd())
|
||||||
}).toList();
|
.setGestione(ord.getGestione())
|
||||||
|
.setCodAnag(ord.getCodAnagOrd())
|
||||||
|
)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
dto.setPrintList(closedOrders);
|
dto.setPrintList(closedOrders);
|
||||||
printClosedOrders(dto, this::onOrderClosedPrintingDone, ex -> this.sendLUPrintError(ex, this::sendOnLoadingEnded));
|
printClosedOrders(dto, this::onOrderClosedPrintingDone, ex -> this.sendLUPrintError(ex, this::sendOnLoadingEnded));
|
||||||
@@ -1798,19 +1976,53 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void registraImballi(VtbVett vettore, List<TracciamentoImballoDTO> imballi) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
var inputData = imballi.stream()
|
||||||
|
.map(x -> new ImballoQuantityDTO()
|
||||||
|
.setQta(x.getQta().get())
|
||||||
|
.setCodMart(x.getCodMart().get()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
mImballiRESTConsumer.registraScarico(
|
||||||
|
vettore != null ? vettore.getCodVvet() : null, inputData,
|
||||||
|
() -> {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public MutableLiveData<List<PickingObjectDTO>> getPickingList() {
|
public MutableLiveData<List<PickingObjectDTO>> getPickingList() {
|
||||||
return mPickingList;
|
return mPickingList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<MtbPartitaMag> getmPartitaMagList() {
|
||||||
|
return mPartitaMagList;
|
||||||
|
}
|
||||||
|
|
||||||
public ArrayList<MtbColt> getCreatedMtbColts() {
|
public ArrayList<MtbColt> getCreatedMtbColts() {
|
||||||
return (ArrayList<MtbColt>) this.mColliRegistrati;
|
return (ArrayList<MtbColt>) this.mColliRegistrati;
|
||||||
}
|
}
|
||||||
|
|
||||||
void createDocs() {
|
public VtbVett getDefaultVettore() {
|
||||||
|
return mDefaultVettore;
|
||||||
|
}
|
||||||
|
|
||||||
|
void createDocs() {
|
||||||
var loadCollidto = new LoadColliDTO();
|
var loadCollidto = new LoadColliDTO();
|
||||||
var codAnag = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getCodAnagOrd).withoutNulls().distinctBy(x -> x).findFirst().get();
|
|
||||||
var codVdes = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getCodVdes).withoutNulls().distinctBy(x -> x).findFirst().get();
|
var codAnag = mTestateOrdini.stream().map(OrdineUscitaInevasoDTO::getCodAnagOrd)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.findFirst()
|
||||||
|
.get();
|
||||||
|
|
||||||
|
var codVdes = mTestateOrdini.stream().map(OrdineUscitaInevasoDTO::getCodVdes)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.distinct()
|
||||||
|
.findFirst()
|
||||||
|
.get();
|
||||||
|
|
||||||
loadCollidto.setColli(getCreatedMtbColts());
|
loadCollidto.setColli(getCreatedMtbColts());
|
||||||
loadCollidto.setCodDtip(SettingsManager.iDB().getCodDtipOrdTrasfV());
|
loadCollidto.setCodDtip(SettingsManager.iDB().getCodDtipOrdTrasfV());
|
||||||
@@ -1823,6 +2035,16 @@ public class SpedizioneViewModel {
|
|||||||
this.mDocumentRESTConsumer.createDocFromColli(loadCollidto, doc -> this.sendOnOrderClosed(), this::sendError);
|
this.mDocumentRESTConsumer.createDocFromColli(loadCollidto, doc -> this.sendOnOrderClosed(), this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendInputDuplicate(BigDecimal qtaTot, BigDecimal qtaEvasa, RunnableArgs<Integer> onComplete, Runnable onNegativeClick) {
|
||||||
|
if (this.mListener != null)
|
||||||
|
mListener.onInputDuplicate(qtaTot, qtaEvasa, onComplete, onNegativeClick);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendInputDuplicate(RunnableArgs<Integer> onComplete, Runnable onNegativeClick) {
|
||||||
|
if (this.mListener != null)
|
||||||
|
mListener.onInputDuplicate(null, null, onComplete, onNegativeClick);
|
||||||
|
}
|
||||||
|
|
||||||
public SpedizioneViewModel setListeners(Listener listener) {
|
public SpedizioneViewModel setListeners(Listener listener) {
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
return this;
|
return this;
|
||||||
@@ -1855,6 +2077,8 @@ public class SpedizioneViewModel {
|
|||||||
void onChooseArtsRequest(List<MtbAart> artsList, RunnableArgs<List<MtbAart>> onComplete);
|
void onChooseArtsRequest(List<MtbAart> artsList, RunnableArgs<List<MtbAart>> onComplete);
|
||||||
|
|
||||||
void onOrderClosed();
|
void onOrderClosed();
|
||||||
|
|
||||||
|
void onInputDuplicate(BigDecimal qtaTot, BigDecimal qtaEvasa, RunnableArgs<Integer> onComplete, Runnable onNegativeClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,121 @@
|
|||||||
|
package it.integry.integrywmsnative.ui.adapter;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.Filter;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.databinding.ArrayAdapterTwoLinesItemBinding;
|
||||||
|
|
||||||
|
public class SimpleAutoCompleteTwoLinesDropdownAdapter<T> extends ArrayAdapter<SimpleAutoCompleteTwoLinesDropdownListModel<T>> {
|
||||||
|
|
||||||
|
private List<SimpleAutoCompleteTwoLinesDropdownListModel<T>> mObjects;
|
||||||
|
|
||||||
|
public SimpleAutoCompleteTwoLinesDropdownAdapter(@NonNull Context context, int resource) {
|
||||||
|
super(context, resource);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleAutoCompleteTwoLinesDropdownAdapter(@NonNull Context context, @NonNull SimpleAutoCompleteTwoLinesDropdownListModel<T>[] objects) {
|
||||||
|
super(context, R.layout.array_adapter_two_lines_item, objects);
|
||||||
|
mObjects = Arrays.asList(objects);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleAutoCompleteTwoLinesDropdownAdapter(@NonNull Context context, @NonNull List<SimpleAutoCompleteTwoLinesDropdownListModel<T>> objects) {
|
||||||
|
super(context, R.layout.array_adapter_two_lines_item, objects);
|
||||||
|
mObjects = objects;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Filter getFilter() {
|
||||||
|
return new StringFilter(mObjects);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||||
|
SimpleAutoCompleteTwoLinesDropdownListModel<T> item = mObjects.get(position);
|
||||||
|
// Check if an existing view is being reused, otherwise inflate the view
|
||||||
|
ArrayAdapterTwoLinesItemBinding bindings = ArrayAdapterTwoLinesItemBinding.inflate(LayoutInflater.from(getContext()), parent, false);
|
||||||
|
|
||||||
|
// if (convertView == null) {
|
||||||
|
// bindings = ArrayAdapterTwoLinesItemBinding.inflate(LayoutInflater.from(getContext()), parent, false);
|
||||||
|
// convertView = bindings.getRoot();
|
||||||
|
// convertView.setTag(bindings);
|
||||||
|
// } else {
|
||||||
|
// bindings = (ArrayAdapterTwoLinesItemBinding) convertView.getTag();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Populate the data into the template view using the data object
|
||||||
|
bindings.itemTitle.setText(item.getTitle());
|
||||||
|
bindings.itemDescription.setText(item.getDescription());
|
||||||
|
|
||||||
|
return bindings.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
private class StringFilter extends Filter {
|
||||||
|
|
||||||
|
private ArrayList<SimpleAutoCompleteTwoLinesDropdownListModel<T>> sourceObjects;
|
||||||
|
|
||||||
|
public StringFilter(List<SimpleAutoCompleteTwoLinesDropdownListModel<T>> objects) {
|
||||||
|
if(objects == null) return;
|
||||||
|
sourceObjects = new ArrayList<>();
|
||||||
|
|
||||||
|
synchronized (this) {
|
||||||
|
sourceObjects.addAll(objects);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected FilterResults performFiltering(CharSequence chars) {
|
||||||
|
String filterSeq = chars.toString().toLowerCase();
|
||||||
|
FilterResults result = new FilterResults();
|
||||||
|
if (!filterSeq.isEmpty()) {
|
||||||
|
ArrayList<SimpleAutoCompleteTwoLinesDropdownListModel<T>> filter = new ArrayList<>();
|
||||||
|
|
||||||
|
for (SimpleAutoCompleteTwoLinesDropdownListModel<T> object : sourceObjects) {
|
||||||
|
// the filtering itself:
|
||||||
|
if (object.getDescription().toLowerCase().contains(filterSeq) ||
|
||||||
|
object.getTitle().toLowerCase().contains(filterSeq))
|
||||||
|
filter.add(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
result.count = filter.size();
|
||||||
|
result.values = filter;
|
||||||
|
} else {
|
||||||
|
// add all objects
|
||||||
|
synchronized (this) {
|
||||||
|
result.values = sourceObjects;
|
||||||
|
result.count = sourceObjects.size();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
protected void publishResults(CharSequence constraint,
|
||||||
|
FilterResults results) {
|
||||||
|
// NOTE: this function is *always* called from the UI thread.
|
||||||
|
if(constraint != null && constraint.length() > 2) {
|
||||||
|
ArrayList<SimpleAutoCompleteTwoLinesDropdownListModel<T>> filtered = (ArrayList<SimpleAutoCompleteTwoLinesDropdownListModel<T>>) results.values;
|
||||||
|
notifyDataSetChanged();
|
||||||
|
clear();
|
||||||
|
for (int i = 0, l = filtered.size(); i < l; i++)
|
||||||
|
add(filtered.get(i));
|
||||||
|
notifyDataSetInvalidated();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package it.integry.integrywmsnative.ui.adapter;
|
||||||
|
|
||||||
|
public class SimpleAutoCompleteTwoLinesDropdownListModel<T> {
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private T originalModel;
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleAutoCompleteTwoLinesDropdownListModel<T> setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleAutoCompleteTwoLinesDropdownListModel<T> setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public T getOriginalModel() {
|
||||||
|
return originalModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleAutoCompleteTwoLinesDropdownListModel<T> setOriginalModel(T originalModel) {
|
||||||
|
this.originalModel = originalModel;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,11 +3,11 @@ package it.integry.integrywmsnative.view.dialogs;
|
|||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.fragment.app.DialogFragment;
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
@@ -26,6 +26,8 @@ public class DialogProgressView extends DialogFragment {
|
|||||||
private String subtitle;
|
private String subtitle;
|
||||||
private boolean indeterminateProgress;
|
private boolean indeterminateProgress;
|
||||||
|
|
||||||
|
private boolean progressOpened;
|
||||||
|
|
||||||
public static DialogProgressView newInstance(String title, String subtitle, boolean indeterminate) {
|
public static DialogProgressView newInstance(String title, String subtitle, boolean indeterminate) {
|
||||||
return new DialogProgressView(title, subtitle, indeterminate);
|
return new DialogProgressView(title, subtitle, indeterminate);
|
||||||
}
|
}
|
||||||
@@ -43,7 +45,7 @@ public class DialogProgressView extends DialogFragment {
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
mBindings = DialogProgressBinding.inflate(LayoutInflater.from(requireContext()));
|
mBindings = DialogProgressBinding.inflate(getLayoutInflater());
|
||||||
|
|
||||||
mBindings.setTitle(UtilityString.isNullOrEmpty(title) ? requireContext().getString(R.string.loading) : title);
|
mBindings.setTitle(UtilityString.isNullOrEmpty(title) ? requireContext().getString(R.string.loading) : title);
|
||||||
if (!UtilityString.isNullOrEmpty(subtitle)) mBindings.setSubtitle(subtitle);
|
if (!UtilityString.isNullOrEmpty(subtitle)) mBindings.setSubtitle(subtitle);
|
||||||
@@ -61,6 +63,21 @@ public class DialogProgressView extends DialogFragment {
|
|||||||
return alertDialog;
|
return alertDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void show(@NonNull FragmentManager manager) {
|
||||||
|
if (!isAdded() && !isInLayout()) {
|
||||||
|
this.progressOpened = true;
|
||||||
|
super.show(manager, "loading-dialog");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dismiss() {
|
||||||
|
if (isAdded() || isInLayout()) {
|
||||||
|
this.progressOpened = false;
|
||||||
|
super.dismissAllowingStateLoss();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String getTitle() {
|
public String getTitle() {
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ public class DialogAskClienteView extends BaseDialogFragment {
|
|||||||
viewModel2.setOnAbortClickListener(this::dismiss);
|
viewModel2.setOnAbortClickListener(this::dismiss);
|
||||||
|
|
||||||
|
|
||||||
this.dialogProgressView.show(this.getParentFragmentManager(), "tag");
|
this.dialogProgressView.show(this.getParentFragmentManager());
|
||||||
|
|
||||||
this.initClienti(viewModel1, () -> {
|
this.initClienti(viewModel1, () -> {
|
||||||
this.initDestinatari(viewModel2, () -> {
|
this.initDestinatari(viewModel2, () -> {
|
||||||
@@ -207,7 +207,7 @@ public class DialogAskClienteView extends BaseDialogFragment {
|
|||||||
" nazione\n" +
|
" nazione\n" +
|
||||||
"FROM vtb_dest\n" +
|
"FROM vtb_dest\n" +
|
||||||
"INNER JOIN vtb_clie ON vtb_clie.cod_anag = vtb_dest.cod_anag\n" +
|
"INNER JOIN vtb_clie ON vtb_clie.cod_anag = vtb_dest.cod_anag\n" +
|
||||||
"WHERE vtb_clie.flag_stato = 'A'";
|
"WHERE vtb_clie.flag_stato = 'A' AND vtb_dest.flag_attivo = 'S'";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteDestinatarioDTO>>() {
|
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteDestinatarioDTO>>() {
|
||||||
}.getType();
|
}.getType();
|
||||||
|
|||||||
@@ -2,13 +2,14 @@ package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
|||||||
|
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
|
||||||
@Module(subcomponents = DialogAskLineaProdComponent.class)
|
@Module(subcomponents = DialogAskLineaProdComponent.class)
|
||||||
public class DialogAskLineaProdModule {
|
public class DialogAskLineaProdModule {
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
DialogAskLineaProdViewModel providesDialogAskLineaProdViewModel() {
|
DialogAskLineaProdViewModel providesDialogAskLineaProdViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
return new DialogAskLineaProdViewModel();
|
return new DialogAskLineaProdViewModel(barcodeRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -21,13 +21,14 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
|||||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.databinding.DialogAskLineaProdBinding;
|
import it.integry.integrywmsnative.databinding.DialogAskLineaProdBinding;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.dto.DialogAskLineaProdResponse;
|
||||||
|
|
||||||
public class DialogAskLineaProdView extends BaseDialogFragment implements DialogAskLineaProdViewModel.Listener {
|
public class DialogAskLineaProdView extends BaseDialogFragment implements DialogAskLineaProdViewModel.Listener {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
DialogAskLineaProdViewModel mViewModel;
|
DialogAskLineaProdViewModel mViewModel;
|
||||||
|
|
||||||
private final RunnableArgs<String> onComplete;
|
private final RunnableArgs<DialogAskLineaProdResponse> onComplete;
|
||||||
private final Runnable onAbort;
|
private final Runnable onAbort;
|
||||||
|
|
||||||
private DialogAskLineaProdBinding mBindings;
|
private DialogAskLineaProdBinding mBindings;
|
||||||
@@ -37,11 +38,11 @@ public class DialogAskLineaProdView extends BaseDialogFragment implements Dialog
|
|||||||
private int mBarcodeScannerIstanceID;
|
private int mBarcodeScannerIstanceID;
|
||||||
|
|
||||||
//Pass here all external parameters
|
//Pass here all external parameters
|
||||||
public static DialogAskLineaProdView newInstance(RunnableArgs<String> onComplete, Runnable onAbort) {
|
public static DialogAskLineaProdView newInstance(RunnableArgs<DialogAskLineaProdResponse> onComplete, Runnable onAbort) {
|
||||||
return new DialogAskLineaProdView(onComplete, onAbort);
|
return new DialogAskLineaProdView(onComplete, onAbort);
|
||||||
}
|
}
|
||||||
|
|
||||||
private DialogAskLineaProdView(RunnableArgs<String> onComplete, Runnable onAbort) {
|
private DialogAskLineaProdView(RunnableArgs<DialogAskLineaProdResponse> onComplete, Runnable onAbort) {
|
||||||
super();
|
super();
|
||||||
this.onComplete = onComplete;
|
this.onComplete = onComplete;
|
||||||
this.onAbort = onAbort;
|
this.onAbort = onAbort;
|
||||||
@@ -101,8 +102,8 @@ public class DialogAskLineaProdView extends BaseDialogFragment implements Dialog
|
|||||||
};
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onProductionLineSelected(String codJfas) {
|
public void onProductionLineSelected(DialogAskLineaProdResponse response) {
|
||||||
this.onComplete.run(codJfas);
|
this.onComplete.run(response);
|
||||||
|
|
||||||
requireActivity().runOnUiThread(this::dismiss);
|
requireActivity().runOnUiThread(this::dismiss);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,37 +1,86 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
import it.integry.integrywmsnative.core.exception.InvalidLineaProdBarcodeException;
|
import it.integry.integrywmsnative.core.exception.InvalidLineaProdBarcodeException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.dto.DialogAskLineaProdResponse;
|
||||||
|
|
||||||
public class DialogAskLineaProdViewModel {
|
public class DialogAskLineaProdViewModel {
|
||||||
|
|
||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
|
private final BarcodeRESTConsumer barcodeRESTConsumer;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public DialogAskLineaProdViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
|
this.barcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void processBarcodeDTO(BarcodeScanDTO data, Runnable onComplete) {
|
public void processBarcodeDTO(BarcodeScanDTO data, Runnable onComplete) {
|
||||||
if (UtilityBarcode.isEtichettaPosizione(data)) {
|
if (UtilityBarcode.isEtichetta128(data)) {
|
||||||
|
this.executeEtichettaEan128(data, onComplete);
|
||||||
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(data.getStringValue());
|
} else if (UtilityBarcode.isEtichettaPosizione(data)) {
|
||||||
|
executeEtichettaPosizione(data, onComplete);
|
||||||
if (foundPosizione == null || !foundPosizione.isFlagLineaProduzione()) {
|
|
||||||
this.sendError(new InvalidLineaProdBarcodeException(data.getStringValue()));
|
|
||||||
onComplete.run();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
onComplete.run();
|
|
||||||
this.sendOnProductionLineSelected(foundPosizione.getPosizione());
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.sendError(new NoResultFromBarcodeException());
|
this.sendError(new NoResultFromBarcodeException());
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void executeEtichettaEan128(BarcodeScanDTO data, Runnable onComplete) {
|
||||||
|
this.barcodeRESTConsumer.decodeEan128(data, ean128Model -> {
|
||||||
|
|
||||||
|
if (UtilityString.isNullOrEmpty(ean128Model.Internal2)) {
|
||||||
|
this.sendError(new InvalidLineaProdBarcodeException("Id lotto non presente"));
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (UtilityString.isNullOrEmpty(ean128Model.Internal3)) {
|
||||||
|
this.sendError(new InvalidLineaProdBarcodeException("Fase non presente"));
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(ean128Model.Internal3);
|
||||||
|
|
||||||
|
if (foundPosizione == null || !foundPosizione.isFlagLineaProduzione()) {
|
||||||
|
this.sendError(new InvalidLineaProdBarcodeException(ean128Model.Internal3));
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
onComplete.run();
|
||||||
|
this.sendOnProductionLineSelected(
|
||||||
|
new DialogAskLineaProdResponse(foundPosizione.getPosizione(), Integer.parseInt(ean128Model.Internal2)));
|
||||||
|
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void executeEtichettaPosizione(BarcodeScanDTO data, Runnable onComplete) {
|
||||||
|
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(data.getStringValue());
|
||||||
|
|
||||||
|
if (foundPosizione == null || !foundPosizione.isFlagLineaProduzione()) {
|
||||||
|
this.sendError(new InvalidLineaProdBarcodeException(data.getStringValue()));
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
onComplete.run();
|
||||||
|
this.sendOnProductionLineSelected(new DialogAskLineaProdResponse(foundPosizione.getPosizione(), null));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public DialogAskLineaProdViewModel setListener(Listener listener) {
|
public DialogAskLineaProdViewModel setListener(Listener listener) {
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
return this;
|
return this;
|
||||||
@@ -45,8 +94,8 @@ public class DialogAskLineaProdViewModel {
|
|||||||
if (this.mListener != null) mListener.onLoadingEnded();
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendOnProductionLineSelected(String codJfas) {
|
private void sendOnProductionLineSelected(DialogAskLineaProdResponse response) {
|
||||||
if (this.mListener != null) mListener.onProductionLineSelected(codJfas);
|
if (this.mListener != null) mListener.onProductionLineSelected(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendError(Exception ex) {
|
private void sendError(Exception ex) {
|
||||||
@@ -55,6 +104,7 @@ public class DialogAskLineaProdViewModel {
|
|||||||
|
|
||||||
public interface Listener extends ILoadingListener {
|
public interface Listener extends ILoadingListener {
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
void onProductionLineSelected(String codJfas);
|
|
||||||
|
void onProductionLineSelected(DialogAskLineaProdResponse response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod.dto;
|
||||||
|
|
||||||
|
public class DialogAskLineaProdResponse {
|
||||||
|
|
||||||
|
|
||||||
|
private String posizione;
|
||||||
|
private final Integer idLotto;
|
||||||
|
|
||||||
|
|
||||||
|
public DialogAskLineaProdResponse(String posizione, Integer idLotto) {
|
||||||
|
this.posizione = posizione;
|
||||||
|
this.idLotto = idLotto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPosizione() {
|
||||||
|
return posizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getIdLotto() {
|
||||||
|
return idLotto;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,17 +1,14 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico_ul;
|
package it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico_ul;
|
||||||
|
|
||||||
import android.content.DialogInterface;
|
import android.app.Dialog;
|
||||||
import android.graphics.Color;
|
import android.content.Context;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@@ -22,10 +19,9 @@ import it.integry.integrywmsnative.databinding.DialogAskShouldVersamentoAutomati
|
|||||||
|
|
||||||
public class DialogAskShouldVersamentoAutomaticoULView extends BaseDialogFragment {
|
public class DialogAskShouldVersamentoAutomaticoULView extends BaseDialogFragment {
|
||||||
|
|
||||||
private RunnableArgs<Boolean> mOnDismiss;
|
private final RunnableArgs<Boolean> mOnDismiss;
|
||||||
private DialogAskShouldVersamentoAutomaticoUlBinding mBindings;
|
private DialogAskShouldVersamentoAutomaticoUlBinding mBindings;
|
||||||
|
private Context mContext;
|
||||||
private boolean returnValue = false;
|
|
||||||
|
|
||||||
public static DialogAskShouldVersamentoAutomaticoULView newInstance(@NotNull RunnableArgs<Boolean> onDismiss) {
|
public static DialogAskShouldVersamentoAutomaticoULView newInstance(@NotNull RunnableArgs<Boolean> onDismiss) {
|
||||||
return new DialogAskShouldVersamentoAutomaticoULView(onDismiss);
|
return new DialogAskShouldVersamentoAutomaticoULView(onDismiss);
|
||||||
@@ -37,39 +33,32 @@ public class DialogAskShouldVersamentoAutomaticoULView extends BaseDialogFragmen
|
|||||||
this.mOnDismiss = onDismiss;
|
this.mOnDismiss = onDismiss;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_should_versamento_automatico_ul, container, false);
|
this.mContext = requireContext();
|
||||||
|
|
||||||
|
mBindings = DialogAskShouldVersamentoAutomaticoUlBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
mBindings.setLifecycleOwner(this);
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
getDialog().setCanceledOnTouchOutside(false);
|
|
||||||
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
|
||||||
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
|
||||||
|
|
||||||
mBindings.setView(this);
|
mBindings.setView(this);
|
||||||
|
|
||||||
return mBindings.getRoot();
|
setCancelable(false);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
.setView(mBindings.getRoot())
|
||||||
super.onDismiss(dialog);
|
.setCancelable(isCancelable())
|
||||||
|
.setNegativeButton(R.string.no, (dialog, which) -> {
|
||||||
|
this.mOnDismiss.run(false);
|
||||||
|
})
|
||||||
|
.setPositiveButton(R.string.yes, (dialog, which) -> {
|
||||||
|
this.mOnDismiss.run(true);
|
||||||
|
})
|
||||||
|
.create();
|
||||||
|
|
||||||
if (mOnDismiss != null) {
|
alertDialog.setCanceledOnTouchOutside(isCancelable());
|
||||||
this.mOnDismiss.run(returnValue);
|
alertDialog.setOnShowListener(this);
|
||||||
}
|
return alertDialog;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void confirm() {
|
|
||||||
this.returnValue = true;
|
|
||||||
dismiss();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void abort() {
|
|
||||||
this.returnValue = false;
|
|
||||||
dismiss();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_vettore;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogAskVettoreComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogAskVettoreComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogAskVettoreView dialogAskVettoreView);
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_vettore;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.VettoriRESTConsumer;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogAskVettoreComponent.class)
|
||||||
|
public class DialogAskVettoreModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogAskVettoreViewModel providesDialogAskVettoreViewModel(VettoriRESTConsumer vettoriRESTConsumer) {
|
||||||
|
return new DialogAskVettoreViewModel(vettoriRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user