Compare commits
66 Commits
v1.35.00(3
...
v1.36.10(4
| Author | SHA1 | Date | |
|---|---|---|---|
| d81f623ee6 | |||
| 84c6b7099b | |||
| 965a60b6e8 | |||
| 4ba1b847e7 | |||
| f5ad8e8b64 | |||
| 4863b31bb6 | |||
| 8411b0fc17 | |||
| 6541f17555 | |||
| 143a6c9e9c | |||
| 8ef216318e | |||
| 946d3e6593 | |||
| 0bdc3a0638 | |||
| 49782755bc | |||
| 2c5fb3ba48 | |||
| bf732a1182 | |||
| a73ecc1e81 | |||
| 818351f1d0 | |||
| 27577d10cf | |||
| 09dd2ef31e | |||
| 86507d41c7 | |||
| ea6585152c | |||
| 01d7e433b5 | |||
| 185288b221 | |||
| ba35a6b32d | |||
| 04838ce08f | |||
| 7c936bc387 | |||
| 6c30400aa9 | |||
| 03aa2b17ac | |||
| 8c24f5f025 | |||
| 7f9524e0b2 | |||
| e6b50ef7da | |||
| 2275db39b3 | |||
| 3a3680b2b2 | |||
| 2189acce5a | |||
| 4a4e290a9c | |||
| 1d92759653 | |||
| bc9f4121ef | |||
| cc54c6decb | |||
| c592ba0795 | |||
| 09d009bcc5 | |||
| 95bc3031df | |||
| 0aca5df3fe | |||
| 2ce2b8b25c | |||
| bea30a5400 | |||
| ebc0d22e9f | |||
| d520e18a30 | |||
| 19122ed637 | |||
| 138500a16f | |||
| 8d93da11b1 | |||
| 9db04fcd02 | |||
| 70b2fbd47b | |||
| 9361d786b4 | |||
| c7db59b70f | |||
| 1008e2aece | |||
| d2703fd495 | |||
| 68f576fb93 | |||
| 69758da7e2 | |||
| b832a593f4 | |||
| c115a6f9f1 | |||
| 35210db708 | |||
| 51728a8103 | |||
| 3961721241 | |||
| 5d5ca02c16 | |||
| be8739c167 | |||
| 8c6b19a064 | |||
| 8751b7c698 |
6
.idea/appInsightsSettings.xml
generated
Normal file
6
.idea/appInsightsSettings.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AppInsightsSettings">
|
||||||
|
<option name="selectedTabId" value="Android Vitals" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
10
.idea/deploymentTargetDropDown.xml
generated
Normal file
10
.idea/deploymentTargetDropDown.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="deploymentTargetDropDown">
|
||||||
|
<value>
|
||||||
|
<entry key="app">
|
||||||
|
<State />
|
||||||
|
</entry>
|
||||||
|
</value>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
12
.idea/runConfigurations/app.xml
generated
12
.idea/runConfigurations/app.xml
generated
@@ -9,7 +9,6 @@
|
|||||||
<option name="ALL_USERS" value="false" />
|
<option name="ALL_USERS" value="false" />
|
||||||
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
|
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
|
||||||
<option name="CLEAR_APP_STORAGE" value="false" />
|
<option name="CLEAR_APP_STORAGE" value="false" />
|
||||||
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="WMS.dynamic__base,WMS.dynamic_vgalimenti" />
|
|
||||||
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
||||||
<option name="MODE" value="default_activity" />
|
<option name="MODE" value="default_activity" />
|
||||||
<option name="CLEAR_LOGCAT" value="false" />
|
<option name="CLEAR_LOGCAT" value="false" />
|
||||||
@@ -25,6 +24,8 @@
|
|||||||
<option name="WORKING_DIR" value="" />
|
<option name="WORKING_DIR" value="" />
|
||||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||||
|
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
|
||||||
|
<option name="DEBUG_SANDBOX_SDK" value="false" />
|
||||||
</Auto>
|
</Auto>
|
||||||
<Hybrid>
|
<Hybrid>
|
||||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
||||||
@@ -32,14 +33,21 @@
|
|||||||
<option name="WORKING_DIR" value="" />
|
<option name="WORKING_DIR" value="" />
|
||||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||||
|
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
|
||||||
|
<option name="DEBUG_SANDBOX_SDK" value="false" />
|
||||||
</Hybrid>
|
</Hybrid>
|
||||||
<Java />
|
<Java>
|
||||||
|
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
|
||||||
|
<option name="DEBUG_SANDBOX_SDK" value="false" />
|
||||||
|
</Java>
|
||||||
<Native>
|
<Native>
|
||||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
||||||
<option name="SHOW_STATIC_VARS" value="true" />
|
<option name="SHOW_STATIC_VARS" value="true" />
|
||||||
<option name="WORKING_DIR" value="" />
|
<option name="WORKING_DIR" value="" />
|
||||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||||
|
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
|
||||||
|
<option name="DEBUG_SANDBOX_SDK" value="false" />
|
||||||
</Native>
|
</Native>
|
||||||
<Profilers>
|
<Profilers>
|
||||||
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
|
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 391
|
def appVersionCode = 403
|
||||||
def appVersionName = '1.35.00'
|
def appVersionName = '1.36.10'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
@@ -34,7 +34,7 @@ android {
|
|||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "it.integry.integrywmsnative"
|
applicationId "it.integry.integrywmsnative"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 33
|
targetSdkVersion 34
|
||||||
versionCode appVersionCode
|
versionCode appVersionCode
|
||||||
versionName appVersionName
|
versionName appVersionName
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
@@ -88,11 +88,11 @@ android {
|
|||||||
abortOnError false
|
abortOnError false
|
||||||
}
|
}
|
||||||
namespace 'it.integry.integrywmsnative'
|
namespace 'it.integry.integrywmsnative'
|
||||||
compileSdk 33
|
compileSdk 34
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
|
||||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||||
androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0', {
|
androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0', {
|
||||||
exclude group: 'com.android.support', module: 'support-annotations'
|
exclude group: 'com.android.support', module: 'support-annotations'
|
||||||
@@ -113,10 +113,10 @@ dependencies {
|
|||||||
|
|
||||||
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.9.0'
|
implementation 'com.google.android.material:material:1.10.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.1'
|
implementation 'androidx.recyclerview:recyclerview:1.3.2'
|
||||||
|
|
||||||
implementation('androidx.preference:preference-ktx:1.2.1') {
|
implementation('androidx.preference:preference-ktx:1.2.1') {
|
||||||
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel'
|
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel'
|
||||||
@@ -152,7 +152,7 @@ dependencies {
|
|||||||
implementation 'com.github.pedromassango:doubleClick:3.0'
|
implementation 'com.github.pedromassango:doubleClick:3.0'
|
||||||
|
|
||||||
//SQLite ROOM
|
//SQLite ROOM
|
||||||
def room_version = "2.5.2"
|
def room_version = "2.6.1"
|
||||||
|
|
||||||
implementation "androidx.room:room-runtime:$room_version"
|
implementation "androidx.room:room-runtime:$room_version"
|
||||||
annotationProcessor "androidx.room:room-compiler:$room_version"
|
annotationProcessor "androidx.room:room-compiler:$room_version"
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceCompo
|
|||||||
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.ProdRientroMerceOrderDetailComponent;
|
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.ProdRientroMerceOrderDetailComponent;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeComponent;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeComponent;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeModule;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeModule;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale_su_mag_prossimita.ProdVersamentoMaterialeInBufferComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale_su_mag_prossimita.ProdVersamentoMaterialeInBufferModule;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditModule;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditModule;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.edit_articolo.DialogEditArticoloComponent;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.edit_articolo.DialogEditArticoloComponent;
|
||||||
@@ -102,6 +104,8 @@ import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetM
|
|||||||
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalModule;
|
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteComponent;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteModule;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdComponent;
|
||||||
|
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.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageComponent;
|
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageComponent;
|
||||||
@@ -112,11 +116,14 @@ import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.Di
|
|||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListModule;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotComponent;
|
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotModule;
|
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.InfoAggiuntiveLUDialogComponent;
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdComponent;
|
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdModule;
|
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUComponent;
|
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUModule;
|
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_to_return.DialogInputQuantityToReturnComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_to_return.DialogInputQuantityToReturnModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Component;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Component;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Module;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Module;
|
||||||
import it.integry.integrywmsnative.view.dialogs.printSsccUl.DialogPrintUlSSCCComponent;
|
import it.integry.integrywmsnative.view.dialogs.printSsccUl.DialogPrintUlSSCCComponent;
|
||||||
@@ -189,7 +196,11 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
MainAccettazioneBollaElencoModule.class,
|
MainAccettazioneBollaElencoModule.class,
|
||||||
AccettazioneBollaPickingModule.class,
|
AccettazioneBollaPickingModule.class,
|
||||||
DialogBindProductBarcodeWithPackageModule.class,
|
DialogBindProductBarcodeWithPackageModule.class,
|
||||||
DialogAskUnknownBarcodeNotesModule.class
|
DialogAskUnknownBarcodeNotesModule.class,
|
||||||
|
ProdVersamentoMaterialeInBufferModule.class,
|
||||||
|
DialogInputQuantityToReturnModule.class,
|
||||||
|
DialogInfoAggiuntiveLUModule.class,
|
||||||
|
DialogAskLineaProdModule.class
|
||||||
})
|
})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
@@ -275,8 +286,6 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
DocInterniEditFormComponent.Factory docInterniEditFormComponent();
|
DocInterniEditFormComponent.Factory docInterniEditFormComponent();
|
||||||
|
|
||||||
InfoAggiuntiveLUDialogComponent.Factory infoAggiuntiveLUDialogComponent();
|
|
||||||
|
|
||||||
DialogEditArticoloComponent.Factory dialogEditArticoloComponent();
|
DialogEditArticoloComponent.Factory dialogEditArticoloComponent();
|
||||||
|
|
||||||
DialogPrintOrderSSCCListComponent.Factory dialogPrintOrderSSCCListComponent();
|
DialogPrintOrderSSCCListComponent.Factory dialogPrintOrderSSCCListComponent();
|
||||||
@@ -316,8 +325,17 @@ public interface MainApplicationComponent {
|
|||||||
AccettazioneBollaPickingComponent.Factory accettazioneBollaPickingComponent();
|
AccettazioneBollaPickingComponent.Factory accettazioneBollaPickingComponent();
|
||||||
|
|
||||||
DialogBindProductBarcodeWithPackageComponent.Factory dialogBindProductBarcodeWithPackageComponent();
|
DialogBindProductBarcodeWithPackageComponent.Factory dialogBindProductBarcodeWithPackageComponent();
|
||||||
|
|
||||||
DialogAskUnknownBarcodeNotesComponent.Factory dialogAskUnknownBarcodeNotesComponent();
|
DialogAskUnknownBarcodeNotesComponent.Factory dialogAskUnknownBarcodeNotesComponent();
|
||||||
|
|
||||||
|
ProdVersamentoMaterialeInBufferComponent.Factory prodVersamentoMaterialeInBufferComponent();
|
||||||
|
|
||||||
|
DialogInputQuantityToReturnComponent.Factory dialogInputQuantityToReturnComponent();
|
||||||
|
|
||||||
|
DialogInfoAggiuntiveLUComponent.Factory dialogInfoAggiuntiveLUComponent();
|
||||||
|
|
||||||
|
DialogAskLineaProdComponent.Factory dialogAskLineaProdComponent();
|
||||||
|
|
||||||
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.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.MagazzinoAutomaticoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoBufferRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
@@ -181,8 +182,11 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
ColliMagazzinoRESTConsumer provideColliMagazzinoRESTConsumer(SystemRESTConsumer systemRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer, EntityRESTConsumer entityRESTConsumer) {
|
ColliMagazzinoRESTConsumer provideColliMagazzinoRESTConsumer(SystemRESTConsumer systemRESTConsumer,
|
||||||
return new ColliMagazzinoRESTConsumer(systemRESTConsumer, articoloRESTConsumer, entityRESTConsumer);
|
ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
|
EntityRESTConsumer entityRESTConsumer,
|
||||||
|
SettingsManager settingsManager) {
|
||||||
|
return new ColliMagazzinoRESTConsumer(systemRESTConsumer, articoloRESTConsumer, entityRESTConsumer, settingsManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -271,8 +275,8 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
ColliLavorazioneRESTConsumer provideColliLavorazioneRESTConsumer() {
|
ColliLavorazioneRESTConsumer provideColliLavorazioneRESTConsumer(SettingsManager settingsManager) {
|
||||||
return new ColliLavorazioneRESTConsumer();
|
return new ColliLavorazioneRESTConsumer(settingsManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -281,4 +285,10 @@ public class MainApplicationModule {
|
|||||||
return new MagazzinoAutomaticoRESTConsumer();
|
return new MagazzinoAutomaticoRESTConsumer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
MagazzinoBufferRESTConsumer provideMagazzinoBufferRESTConsumer() {
|
||||||
|
return new MagazzinoBufferRESTConsumer();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,9 @@ package it.integry.integrywmsnative.core.class_router.configs;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoFragment;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoFragment;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoFragment;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
|
||||||
import it.integry.integrywmsnative.gest.inventario.ElencoInventariFragment;
|
import it.integry.integrywmsnative.gest.inventario.ElencoInventariFragment;
|
||||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
|
||||||
@@ -14,6 +15,7 @@ import it.integry.integrywmsnative.gest.prod_linee_produzione.ProdLineeProduzion
|
|||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceFragment;
|
import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale_su_mag_prossimita.ProdVersamentoMaterialeInBufferFragment;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaFragment;
|
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaFragment;
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.DialogInfoSituazioneArticoloView;
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.DialogInfoSituazioneArticoloView;
|
||||||
@@ -84,7 +86,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.free_picking)
|
.setTitleText(R.string.free_picking)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_picking_libero)
|
.setTitleIcon(R.drawable.ic_dashboard_picking_libero)
|
||||||
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
||||||
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA)))
|
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA, SettingsManager.iDB().isFlagAskClienteInPickingLibero(), false)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_resi_cliente)
|
.setID(R.id.nav_resi_cliente)
|
||||||
@@ -120,7 +122,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.free_lav_picking)
|
.setTitleText(R.string.free_lav_picking)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_libero)
|
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_libero)
|
||||||
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
||||||
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
|
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE, SettingsManager.iDB().isFlagAskClienteInPickingLibero(), false)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_prod_posizionamento_da_ord)
|
.setID(R.id.nav_prod_posizionamento_da_ord)
|
||||||
@@ -161,6 +163,14 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleIcon(R.drawable.ic_production_line)
|
.setTitleIcon(R.drawable.ic_production_line)
|
||||||
.setDrawerIcon(R.drawable.ic_production_line)
|
.setDrawerIcon(R.drawable.ic_production_line)
|
||||||
.setFragmentFactory(ProdLineeProduzioneFragment::newInstance))
|
.setFragmentFactory(ProdLineeProduzioneFragment::newInstance))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_prod_versamento_materiale_in_buffer)
|
||||||
|
.setCodMenu("MG066")
|
||||||
|
.setTitleText(R.string.prod_versamento_materiale_in_buffer_title_fragment)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_materiale)
|
||||||
|
.setDrawerIcon(R.drawable.ic_black_external)
|
||||||
|
.setFragmentFactory(ProdVersamentoMaterialeInBufferFragment::newInstance))
|
||||||
).addGroup(
|
).addGroup(
|
||||||
new MenuGroup()
|
new MenuGroup()
|
||||||
.setGroupText(R.string.internal_handling)
|
.setGroupText(R.string.internal_handling)
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public class InvalidLineaProdBarcodeException extends Exception {
|
||||||
|
|
||||||
|
public InvalidLineaProdBarcodeException() {
|
||||||
|
super(UtilityResources.getString(R.string.no_result_from_linea_prod_barcode));
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvalidLineaProdBarcodeException(String barcode) {
|
||||||
|
super(UtilityResources.getString(R.string.no_result_from_linea_prod_barcode) + " (" + barcode + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.model.dto;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
|
||||||
|
|
||||||
public class StatoArticoloDTO {
|
public class StatoArticoloDTO {
|
||||||
private String codMart;
|
private String codMart;
|
||||||
|
|
||||||
@@ -17,7 +19,7 @@ public class StatoArticoloDTO {
|
|||||||
|
|
||||||
private Integer ggUtili;
|
private Integer ggUtili;
|
||||||
|
|
||||||
private Integer statoArt;
|
private StatoPartitaMag statoArt;
|
||||||
|
|
||||||
public String getCodMart() {
|
public String getCodMart() {
|
||||||
return codMart;
|
return codMart;
|
||||||
@@ -82,11 +84,11 @@ public class StatoArticoloDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getStatoArt() {
|
public StatoPartitaMag getStatoArt() {
|
||||||
return statoArt;
|
return statoArt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public StatoArticoloDTO setStatoArt(Integer statoArt) {
|
public StatoArticoloDTO setStatoArt(StatoPartitaMag statoArt) {
|
||||||
this.statoArt = statoArt;
|
this.statoArt = statoArt;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,10 @@ package it.integry.integrywmsnative.core.model.secondary;
|
|||||||
|
|
||||||
public enum StatoPartitaMag {
|
public enum StatoPartitaMag {
|
||||||
|
|
||||||
IN_SCADENZA(1),
|
SCADUTO(1),
|
||||||
SCADUTO(2),
|
IN_SCADENZA(2),
|
||||||
NON_IN_SCADENZA(3);
|
NON_IN_SCADENZA(3),
|
||||||
|
DISATTIVO(4);
|
||||||
|
|
||||||
private final int text;
|
private final int text;
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +1,17 @@
|
|||||||
package it.integry.integrywmsnative.core.rest;
|
package it.integry.integrywmsnative.core.rest;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
|
||||||
|
|
||||||
import java.lang.reflect.Modifier;
|
|
||||||
import java.security.KeyManagementException;
|
import java.security.KeyManagementException;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLContext;
|
||||||
import javax.net.ssl.TrustManager;
|
import javax.net.ssl.TrustManager;
|
||||||
import javax.net.ssl.X509TrustManager;
|
import javax.net.ssl.X509TrustManager;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateDeserializer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateTimeDeserializer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.serializer.LocalDateSerializer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.serializer.LocalDateTimeSerializer;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityGson;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
import retrofit2.converter.gson.GsonConverterFactory;
|
import retrofit2.converter.gson.GsonConverterFactory;
|
||||||
@@ -66,14 +59,7 @@ public class RESTBuilder {
|
|||||||
String endpoint = protocol + "://" + host + (port > 0 ? ":" + port : "") + "/" + (addEmsApi ? "ems-api/" : "");
|
String endpoint = protocol + "://" + host + (port > 0 ? ":" + port : "") + "/" + (addEmsApi ? "ems-api/" : "");
|
||||||
|
|
||||||
|
|
||||||
Gson gson = new GsonBuilder()
|
Gson gson = UtilityGson.createObject();
|
||||||
.setDateFormat("dd/MM/yyyy HH:mm:ss")
|
|
||||||
.excludeFieldsWithModifiers(Modifier.TRANSIENT)
|
|
||||||
.registerTypeAdapter(LocalDate.class, new LocalDateDeserializer())
|
|
||||||
.registerTypeAdapter(LocalDate.class, new LocalDateSerializer())
|
|
||||||
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeDeserializer())
|
|
||||||
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
|
|
||||||
.create();
|
|
||||||
|
|
||||||
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();
|
||||||
|
|
||||||
|
|||||||
@@ -78,14 +78,12 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
|
|||||||
.setCodMarts(codMarts))
|
.setCodMarts(codMarts))
|
||||||
.enqueue(new Callback<>() {
|
.enqueue(new Callback<>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) {
|
public void onResponse(Call<ServiceRESTResponse<List<MtbAart>>> call, Response<ServiceRESTResponse<List<MtbAart>>> response) {
|
||||||
analyzeAnswer(response, "getByCodMart", (m) -> {
|
analyzeAnswer(response, "getByCodMart", onComplete, onFailed);
|
||||||
onComplete.run(response.body().getEntityList());
|
|
||||||
}, onFailed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Call<ServiceRESTResponse<MtbAart>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<List<MtbAart>>> call, Throwable t) {
|
||||||
onFailed.run(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -112,26 +110,9 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
public void getByCodMart(String codMartToFind, RunnableArgs<MtbAart> onComplete, RunnableArgs<Exception> onFailed) {
|
public void getByCodMart(String codMartToFind, RunnableArgs<MtbAart> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class);
|
getByCodMarts(Collections.singletonList(codMartToFind), artList -> {
|
||||||
articoloRESTConsumer.getByCodMart(
|
onComplete.run(artList != null && !artList.isEmpty() ? artList.get(0) : null);
|
||||||
new RetrieveArticoloByCodMartRequestDTO()
|
}, onFailed);
|
||||||
.setCodMarts(Collections.singletonList(codMartToFind)))
|
|
||||||
.enqueue(new Callback<>() {
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) {
|
|
||||||
analyzeAnswer(response, "getByCodMart", (m) -> {
|
|
||||||
if (response.body().getEntityList() != null && !response.body().getEntityList().isEmpty()) {
|
|
||||||
onComplete.run(response.body().getEntityList().get(0));
|
|
||||||
} else onComplete.run(null);
|
|
||||||
|
|
||||||
}, onFailed);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call<ServiceRESTResponse<MtbAart>> call, Throwable t) {
|
|
||||||
onFailed.run(new Exception(t));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public interface ArticoloRESTConsumerService {
|
|||||||
Call<ServiceRESTResponse<SearchArticoloByBarcodeResponseDTO>> searchByBarcode(@Body() SearchArticoloByBarcodeRequestDTO searchArticoloByBarcodeRequest);
|
Call<ServiceRESTResponse<SearchArticoloByBarcodeResponseDTO>> searchByBarcode(@Body() SearchArticoloByBarcodeRequestDTO searchArticoloByBarcodeRequest);
|
||||||
|
|
||||||
@POST("wms/articolo/retrieveByCodMart")
|
@POST("wms/articolo/retrieveByCodMart")
|
||||||
Call<ServiceRESTResponse<MtbAart>> getByCodMart(@Body RetrieveArticoloByCodMartRequestDTO retrieveArticoloByCodMartRequest);
|
Call<ServiceRESTResponse<List<MtbAart>>> getByCodMart(@Body RetrieveArticoloByCodMartRequestDTO retrieveArticoloByCodMartRequest);
|
||||||
|
|
||||||
@POST("wms/articolo/updateBarcodeImballo")
|
@POST("wms/articolo/updateBarcodeImballo")
|
||||||
Call<ServiceRESTResponse<Void>> updateBarcodeImballo(@Body UpdateBarcodeImballoRequestDTO updateBarcodeImballoRequest);
|
Call<ServiceRESTResponse<Void>> updateBarcodeImballo(@Body UpdateBarcodeImballoRequestDTO updateBarcodeImballoRequest);
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
package it.integry.integrywmsnative.core.rest.consumers;
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
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.MtbAart;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliCaricoRESTConsumerInterface;
|
import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliCaricoRESTConsumerInterface;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliScaricoRESTConsumerInterface;
|
import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliScaricoRESTConsumerInterface;
|
||||||
@@ -18,6 +22,7 @@ import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSFromArtRequestDTO;
|
||||||
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;
|
||||||
@@ -27,6 +32,7 @@ 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 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.InsertUDSRowResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowResponseDTO;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
import retrofit2.Response;
|
import retrofit2.Response;
|
||||||
@@ -35,6 +41,12 @@ import retrofit2.Response;
|
|||||||
public class ColliLavorazioneRESTConsumer extends _BaseRESTConsumer implements ColliCaricoRESTConsumerInterface, ColliScaricoRESTConsumerInterface {
|
public class ColliLavorazioneRESTConsumer extends _BaseRESTConsumer implements ColliCaricoRESTConsumerInterface, ColliScaricoRESTConsumerInterface {
|
||||||
|
|
||||||
|
|
||||||
|
private final SettingsManager settingsManager;
|
||||||
|
|
||||||
|
public ColliLavorazioneRESTConsumer(SettingsManager settingsManager) {
|
||||||
|
this.settingsManager = settingsManager;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
|
public void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = RESTBuilder.getService(ColliLavorazioneRESTConsumerService.class);
|
ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = RESTBuilder.getService(ColliLavorazioneRESTConsumerService.class);
|
||||||
@@ -213,4 +225,43 @@ public class ColliLavorazioneRESTConsumer extends _BaseRESTConsumer implements C
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void createColloScaricoDaArticolo(MtbAart mtbAart,
|
||||||
|
String partitaMag,
|
||||||
|
MtbDepoPosizione posizione,
|
||||||
|
BigDecimal qta, BigDecimal qtaCnf, BigDecimal numCnf,
|
||||||
|
BigDecimal pesoNettoKg, BigDecimal pesoLordoKg,
|
||||||
|
Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
|
CreateUDSFromArtRequestDTO createUDSFromArtRequestDTO = new CreateUDSFromArtRequestDTO()
|
||||||
|
.setCodMart(mtbAart.getCodMart())
|
||||||
|
.setCodMdep(settingsManager.getSettings().getUserSession().getDepo().getCodMdep())
|
||||||
|
.setPartitaMag(partitaMag)
|
||||||
|
.setPosizione(posizione != null ? posizione.getPosizione() : null)
|
||||||
|
.setQta(qta)
|
||||||
|
.setQtaCnf(qtaCnf)
|
||||||
|
.setNumCnf(numCnf)
|
||||||
|
.setPesoLordoKg(pesoLordoKg)
|
||||||
|
.setPesoNettoKg(pesoNettoKg);
|
||||||
|
|
||||||
|
if (posizione != null && posizione.isFlagLineaProduzione()) {
|
||||||
|
createUDSFromArtRequestDTO
|
||||||
|
.setCodJfas(posizione.getPosizione());
|
||||||
|
}
|
||||||
|
ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = RESTBuilder.getService(ColliLavorazioneRESTConsumerService.class);
|
||||||
|
|
||||||
|
colliLavorazioneRESTConsumerService.createUDSFromArt(createUDSFromArtRequestDTO)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<Void>> call, Response<ServiceRESTResponse<Void>> response) {
|
||||||
|
analyzeAnswer(response, "lavorazione/createUDSFromArt", data -> onComplete.run(), onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<Void>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSFromArtRequestDTO;
|
||||||
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;
|
||||||
@@ -55,4 +56,7 @@ public interface ColliLavorazioneRESTConsumerService {
|
|||||||
@POST("wms/lavorazione/deleteUDCRow")
|
@POST("wms/lavorazione/deleteUDCRow")
|
||||||
Call<ServiceRESTResponse<Void>> deleteUDCRow(@Body DeleteUDCRowRequestDTO deleteUDCRowRequestDTO);
|
Call<ServiceRESTResponse<Void>> deleteUDCRow(@Body DeleteUDCRowRequestDTO deleteUDCRowRequestDTO);
|
||||||
|
|
||||||
|
@POST("wms/lavorazione/createUDSFromArt")
|
||||||
|
Call<ServiceRESTResponse<Void>> createUDSFromArt(@Body CreateUDSFromArtRequestDTO createUDSFromArtRequestDTO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,13 +50,16 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
private final SystemRESTConsumer mSystemRESTConsumer;
|
private final SystemRESTConsumer mSystemRESTConsumer;
|
||||||
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
private final EntityRESTConsumer mEntityRESTConsumer;
|
private final EntityRESTConsumer mEntityRESTConsumer;
|
||||||
|
private final SettingsManager mSettingsManager;
|
||||||
|
|
||||||
public ColliMagazzinoRESTConsumer(SystemRESTConsumer systemRESTConsumer,
|
public ColliMagazzinoRESTConsumer(SystemRESTConsumer systemRESTConsumer,
|
||||||
ArticoloRESTConsumer articoloRESTConsumer,
|
ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
EntityRESTConsumer entityRESTConsumer) {
|
EntityRESTConsumer entityRESTConsumer,
|
||||||
|
SettingsManager settingsManager) {
|
||||||
this.mSystemRESTConsumer = systemRESTConsumer;
|
this.mSystemRESTConsumer = systemRESTConsumer;
|
||||||
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
this.mEntityRESTConsumer = entityRESTConsumer;
|
this.mEntityRESTConsumer = entityRESTConsumer;
|
||||||
|
this.mSettingsManager = settingsManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveCollo(MtbColt mtbColtToSave, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
|
public void saveCollo(MtbColt mtbColtToSave, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
@@ -171,6 +174,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
saveCollo(newMtbColt, onComplete, onFailed);
|
saveCollo(newMtbColt, onComplete, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void createColliScaricoDaOrdineLavorazione(MtbColt sourceMtbColt, MtbColr sourceMtbColr, MtbDepoPosizione posizione, List<OrdineLavorazioneDTO> ordini, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
|
public void createColliScaricoDaOrdineLavorazione(MtbColt sourceMtbColt, MtbColr sourceMtbColr, MtbDepoPosizione posizione, List<OrdineLavorazioneDTO> ordini, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
MtbColt newMtbColt = new MtbColt()
|
MtbColt newMtbColt = new MtbColt()
|
||||||
@@ -302,6 +306,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
public void fillMtbAartsOfMtbColts(List<MtbColt> mtbColts, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void fillMtbAartsOfMtbColts(List<MtbColt> mtbColts, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
fillMtbAartsOfMtbColtsStatic(mtbColts, onComplete, onFailed);
|
fillMtbAartsOfMtbColtsStatic(mtbColts, onComplete, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void fillMtbAartsOfMtbColtsStatic(List<MtbColt> mtbColts, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void fillMtbAartsOfMtbColtsStatic(List<MtbColt> mtbColts, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
List<String> codMarts = new ArrayList<>();
|
List<String> codMarts = new ArrayList<>();
|
||||||
|
|
||||||
@@ -651,7 +656,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void canULBeDeleted(MtbColt mtbColt, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
public void canULBeDeleted(MtbColt mtbColt, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
CanULBeDeletedRequestDTO canULBeDeletedRequestDTO = new CanULBeDeletedRequestDTO()
|
CanULBeDeletedRequestDTO canULBeDeletedRequestDTO = new CanULBeDeletedRequestDTO()
|
||||||
.setMtbColt(mtbColt);
|
.setMtbColt(mtbColt);
|
||||||
@@ -710,5 +714,4 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import javax.inject.Singleton;
|
|||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.JtbComt;
|
import it.integry.integrywmsnative.core.model.JtbComt;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class CommessaRESTConsumer extends _BaseRESTConsumer {
|
public class CommessaRESTConsumer extends _BaseRESTConsumer {
|
||||||
@@ -26,6 +27,8 @@ public class CommessaRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
public void getJtbComts(List<String> itemsToFind, RunnableArgs<List<JtbComt>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void getJtbComts(List<String> itemsToFind, RunnableArgs<List<JtbComt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
var whereCondMap = Stream.of(itemsToFind)
|
var whereCondMap = Stream.of(itemsToFind)
|
||||||
|
.withoutNulls()
|
||||||
|
.filter(x -> !UtilityString.isNullOrEmpty(x))
|
||||||
.map(x -> {
|
.map(x -> {
|
||||||
HashMap<String, Object> vars = new HashMap<>();
|
HashMap<String, Object> vars = new HashMap<>();
|
||||||
vars.put("cod_jcom", x);
|
vars.put("cod_jcom", x);
|
||||||
@@ -33,6 +36,11 @@ public class CommessaRESTConsumer extends _BaseRESTConsumer {
|
|||||||
})
|
})
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
|
if(whereCondMap.isEmpty()) {
|
||||||
|
onComplete.run(new ArrayList<>());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var whereCond = " WHERE " + UtilityQuery.concatFieldListInWhereCond(whereCondMap);
|
var whereCond = " WHERE " + UtilityQuery.concatFieldListInWhereCond(whereCondMap);
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<JtbComt>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<JtbComt>>() {}.getType();
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import it.integry.integrywmsnative.core.model.EntityBase;
|
|||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.EsitoType;
|
import it.integry.integrywmsnative.core.rest.model.EsitoType;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityGson;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
import retrofit2.Response;
|
import retrofit2.Response;
|
||||||
@@ -83,7 +84,7 @@ public class EntityRESTConsumer extends _BaseRESTConsumer {
|
|||||||
if (response.body() != null) {
|
if (response.body() != null) {
|
||||||
|
|
||||||
ArrayList<T> responseList = new ArrayList<>();
|
ArrayList<T> responseList = new ArrayList<>();
|
||||||
Gson gson = new Gson();
|
Gson gson = UtilityGson.createObject();
|
||||||
// Type typeOfObjectsList = new TypeToken<T>() {}.getType();
|
// Type typeOfObjectsList = new TypeToken<T>() {}.getType();
|
||||||
|
|
||||||
for (ServiceRESTResponse<JsonObject> jsonSingleObject : response.body()) {
|
for (ServiceRESTResponse<JsonObject> jsonSingleObject : response.body()) {
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.magazzino_buffer.MagazzinoBufferVersamentoMaterialeCloseRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.magazzino_buffer.MagazzinoBufferVersamentoMaterialeRequestDTO;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.Callback;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class MagazzinoBufferRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
|
public void isVersamentoStarted(MtbDepoPosizione posizione, MagazzinoBufferVersamentoMaterialeRequestDTO magazzinoBufferVersamentoMaterialeRequestDTO, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
MagazzinoBufferRESTConsumerService magazzinoBufferRESTConsumerService = RESTBuilder.getService(MagazzinoBufferRESTConsumerService.class);
|
||||||
|
magazzinoBufferRESTConsumerService.isVersamentoStarted(posizione.getPosizione(), magazzinoBufferVersamentoMaterialeRequestDTO)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<Boolean>> call, Response<ServiceRESTResponse<Boolean>> response) {
|
||||||
|
analyzeAnswer(response, "magazzino-buffer/isVersamentoStarted", onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<Boolean>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void startVersamentoMateriale(MtbDepoPosizione posizione, MagazzinoBufferVersamentoMaterialeRequestDTO magazzinoBufferVersamentoMaterialeRequestDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
MagazzinoBufferRESTConsumerService magazzinoBufferRESTConsumerService = RESTBuilder.getService(MagazzinoBufferRESTConsumerService.class);
|
||||||
|
magazzinoBufferRESTConsumerService.startVersamentoMateriale(posizione.getPosizione(), magazzinoBufferVersamentoMaterialeRequestDTO)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<Void>> call, Response<ServiceRESTResponse<Void>> response) {
|
||||||
|
analyzeAnswer(response, "magazzino-buffer/startVersamentoMateriale", data -> onComplete.run(), onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<Void>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void endVersamentoMateriale(MtbDepoPosizione posizione, MagazzinoBufferVersamentoMaterialeCloseRequestDTO magazzinoBufferVersamentoMaterialeCloseRequestDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
MagazzinoBufferRESTConsumerService magazzinoBufferRESTConsumerService = RESTBuilder.getService(MagazzinoBufferRESTConsumerService.class);
|
||||||
|
magazzinoBufferRESTConsumerService.endVersamentoMateriale(posizione.getPosizione(), magazzinoBufferVersamentoMaterialeCloseRequestDTO)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<Void>> call, Response<ServiceRESTResponse<Void>> response) {
|
||||||
|
analyzeAnswer(response, "magazzino-buffer/endVersamentoMateriale", data -> onComplete.run(), onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<Void>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.magazzino_buffer.MagazzinoBufferVersamentoMaterialeCloseRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.magazzino_buffer.MagazzinoBufferVersamentoMaterialeRequestDTO;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.Body;
|
||||||
|
import retrofit2.http.POST;
|
||||||
|
import retrofit2.http.Path;
|
||||||
|
|
||||||
|
public interface MagazzinoBufferRESTConsumerService {
|
||||||
|
|
||||||
|
@POST("wms/magazzino-buffer/{posizione}/isVersamentoStarted")
|
||||||
|
Call<ServiceRESTResponse<Boolean>> isVersamentoStarted(
|
||||||
|
@Path("posizione") String posizione,
|
||||||
|
@Body MagazzinoBufferVersamentoMaterialeRequestDTO magazzinoBufferVersamentoMaterialeRequestDTO);
|
||||||
|
|
||||||
|
@POST("wms/magazzino-buffer/{posizione}/startVersamentoMateriale")
|
||||||
|
Call<ServiceRESTResponse<Void>> startVersamentoMateriale(
|
||||||
|
@Path("posizione") String posizione,
|
||||||
|
@Body MagazzinoBufferVersamentoMaterialeRequestDTO magazzinoBufferVersamentoMaterialeRequestDTO);
|
||||||
|
|
||||||
|
@POST("wms/magazzino-buffer/{posizione}/endVersamentoMateriale")
|
||||||
|
Call<ServiceRESTResponse<Void>> endVersamentoMateriale(
|
||||||
|
@Path("posizione") String posizione,
|
||||||
|
@Body MagazzinoBufferVersamentoMaterialeCloseRequestDTO magazzinoBufferVersamentoMaterialeCloseRequestDTO);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
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.secondary.StatoPartitaMag;
|
||||||
|
|
||||||
|
public class StatoPartitaMagDeserializer implements JsonDeserializer<StatoPartitaMag> {
|
||||||
|
@Override
|
||||||
|
public StatoPartitaMag deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
||||||
|
if (json.isJsonNull()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
int text = json.getAsInt();
|
||||||
|
return StatoPartitaMag.from(text);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model.magazzino_buffer;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
|
||||||
|
public class MagazzinoBufferVersamentoMaterialeCloseRequestDTO {
|
||||||
|
|
||||||
|
private MtbColt inputMtbColt;
|
||||||
|
private BigDecimal qtaTotDaScaricare;
|
||||||
|
private BigDecimal numCnfDaScaricare;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public MtbColt getInputMtbColt() {
|
||||||
|
return inputMtbColt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MagazzinoBufferVersamentoMaterialeCloseRequestDTO setInputMtbColt(MtbColt inputMtbColt) {
|
||||||
|
this.inputMtbColt = inputMtbColt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaTotDaScaricare() {
|
||||||
|
return qtaTotDaScaricare;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MagazzinoBufferVersamentoMaterialeCloseRequestDTO setQtaTotDaScaricare(BigDecimal qtaTotDaScaricare) {
|
||||||
|
this.qtaTotDaScaricare = qtaTotDaScaricare;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getNumCnfDaScaricare() {
|
||||||
|
return numCnfDaScaricare;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MagazzinoBufferVersamentoMaterialeCloseRequestDTO setNumCnfDaScaricare(BigDecimal numCnfDaScaricare) {
|
||||||
|
this.numCnfDaScaricare = numCnfDaScaricare;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model.magazzino_buffer;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
|
||||||
|
public class MagazzinoBufferVersamentoMaterialeRequestDTO {
|
||||||
|
|
||||||
|
private MtbColt inputMtbColt;
|
||||||
|
|
||||||
|
|
||||||
|
public MtbColt getInputMtbColt() {
|
||||||
|
return inputMtbColt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MagazzinoBufferVersamentoMaterialeRequestDTO setInputMtbColt(MtbColt inputMtbColt) {
|
||||||
|
this.inputMtbColt = inputMtbColt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,108 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model.uds;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class CreateUDSFromArtRequestDTO {
|
||||||
|
|
||||||
|
private String codMart;
|
||||||
|
private String partitaMag;
|
||||||
|
private String codMdep;
|
||||||
|
private String posizione;
|
||||||
|
private String codJfas;
|
||||||
|
private BigDecimal qta;
|
||||||
|
private BigDecimal qtaCnf;
|
||||||
|
private BigDecimal numCnf;
|
||||||
|
private BigDecimal pesoNettoKg;
|
||||||
|
private BigDecimal pesoLordoKg;
|
||||||
|
|
||||||
|
|
||||||
|
public String getCodMart() {
|
||||||
|
return codMart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSFromArtRequestDTO setCodMart(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPartitaMag() {
|
||||||
|
return partitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSFromArtRequestDTO setPartitaMag(String partitaMag) {
|
||||||
|
this.partitaMag = partitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMdep() {
|
||||||
|
return codMdep;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSFromArtRequestDTO setCodMdep(String codMdep) {
|
||||||
|
this.codMdep = codMdep;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPosizione() {
|
||||||
|
return posizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSFromArtRequestDTO setPosizione(String posizione) {
|
||||||
|
this.posizione = posizione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodJfas() {
|
||||||
|
return codJfas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSFromArtRequestDTO setCodJfas(String codJfas) {
|
||||||
|
this.codJfas = codJfas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQta() {
|
||||||
|
return qta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSFromArtRequestDTO setQta(BigDecimal qta) {
|
||||||
|
this.qta = qta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaCnf() {
|
||||||
|
return qtaCnf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSFromArtRequestDTO setQtaCnf(BigDecimal qtaCnf) {
|
||||||
|
this.qtaCnf = qtaCnf;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getNumCnf() {
|
||||||
|
return numCnf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSFromArtRequestDTO setNumCnf(BigDecimal numCnf) {
|
||||||
|
this.numCnf = numCnf;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getPesoNettoKg() {
|
||||||
|
return pesoNettoKg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSFromArtRequestDTO setPesoNettoKg(BigDecimal pesoNettoKg) {
|
||||||
|
this.pesoNettoKg = pesoNettoKg;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getPesoLordoKg() {
|
||||||
|
return pesoLordoKg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSFromArtRequestDTO setPesoLordoKg(BigDecimal pesoLordoKg) {
|
||||||
|
this.pesoLordoKg = pesoLordoKg;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,7 +10,11 @@ public class CreateUDSRequestDTO {
|
|||||||
private Integer numCollo;
|
private Integer numCollo;
|
||||||
private String serCollo;
|
private String serCollo;
|
||||||
private int causaleCollo;
|
private int causaleCollo;
|
||||||
|
private String codJfas;
|
||||||
|
private String codAnag;
|
||||||
|
private String codVdes;
|
||||||
|
private String rifOrd;
|
||||||
|
private boolean orderRequired;
|
||||||
private List<CreateUDSRequestOrderDTO> orders;
|
private List<CreateUDSRequestOrderDTO> orders;
|
||||||
|
|
||||||
public String getCodMdep() {
|
public String getCodMdep() {
|
||||||
@@ -67,6 +71,51 @@ public class CreateUDSRequestDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodJfas() {
|
||||||
|
return codJfas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setCodJfas(String codJfas) {
|
||||||
|
this.codJfas = codJfas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodAnag() {
|
||||||
|
return codAnag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setCodAnag(String codAnag) {
|
||||||
|
this.codAnag = codAnag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodVdes() {
|
||||||
|
return codVdes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setCodVdes(String codVdes) {
|
||||||
|
this.codVdes = codVdes;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRifOrd() {
|
||||||
|
return rifOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setRifOrd(String rifOrd) {
|
||||||
|
this.rifOrd = rifOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOrderRequired() {
|
||||||
|
return orderRequired;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setOrderRequired(boolean orderRequired) {
|
||||||
|
this.orderRequired = orderRequired;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public List<CreateUDSRequestOrderDTO> getOrders() {
|
public List<CreateUDSRequestOrderDTO> getOrders() {
|
||||||
return orders;
|
return orders;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
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 java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
|
public class StatoPartitaMagSerializer implements JsonSerializer<StatoPartitaMag> {
|
||||||
|
@Override
|
||||||
|
public JsonElement serialize(StatoPartitaMag src, Type typeOfSrc, JsonSerializationContext context) {
|
||||||
|
return new JsonPrimitive(src.getText());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -55,6 +55,7 @@ public class DBSettingsModel {
|
|||||||
private boolean notifyLotStatus = false;
|
private boolean notifyLotStatus = false;
|
||||||
|
|
||||||
private boolean groupShippingByCommodityGroup = true;
|
private boolean groupShippingByCommodityGroup = true;
|
||||||
|
private boolean groupPoductionByCommodityGroup;
|
||||||
private boolean showCodFornSpedizione = true;
|
private boolean showCodFornSpedizione = true;
|
||||||
private boolean flagCanCreateInventario = true;
|
private boolean flagCanCreateInventario = true;
|
||||||
private boolean flagCanAddUnknownItemsInventario = true;
|
private boolean flagCanAddUnknownItemsInventario = true;
|
||||||
@@ -69,6 +70,7 @@ public class DBSettingsModel {
|
|||||||
private boolean flagCanAddUnknownBarcodesAccettazioneBolla = false;
|
private boolean flagCanAddUnknownBarcodesAccettazioneBolla = false;
|
||||||
private boolean flagEnableFastPickAccettazioneBolla = false;
|
private boolean flagEnableFastPickAccettazioneBolla = false;
|
||||||
private boolean flagDisableMandatoryTracciabilitaAccettazioneBolla = false;
|
private boolean flagDisableMandatoryTracciabilitaAccettazioneBolla = false;
|
||||||
|
private boolean flagOverflowQuantityWarning = false;
|
||||||
|
|
||||||
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
||||||
return flagSpedizioneEnableFakeGiacenza;
|
return flagSpedizioneEnableFakeGiacenza;
|
||||||
@@ -556,4 +558,22 @@ public class DBSettingsModel {
|
|||||||
this.flagDisableMandatoryTracciabilitaAccettazioneBolla = flagDisableMandatoryTracciabilitaAccettazioneBolla;
|
this.flagDisableMandatoryTracciabilitaAccettazioneBolla = flagDisableMandatoryTracciabilitaAccettazioneBolla;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isFlagOverflowQuantityWarning() {
|
||||||
|
return flagOverflowQuantityWarning;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagOverflowQuantityWarning(boolean flagOverflowQuantityWarning) {
|
||||||
|
this.flagOverflowQuantityWarning = flagOverflowQuantityWarning;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isGroupPoductionByCommodityGroup() {
|
||||||
|
return groupPoductionByCommodityGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setGroupPoductionByCommodityGroup(boolean groupPoductionByCommodityGroup) {
|
||||||
|
this.groupPoductionByCommodityGroup = groupPoductionByCommodityGroup;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -272,6 +272,12 @@ public class SettingsManager {
|
|||||||
.setSection("PRODUZIONE")
|
.setSection("PRODUZIONE")
|
||||||
.setKeySection("FILTER_FORNTIORE_PROD")
|
.setKeySection("FILTER_FORNTIORE_PROD")
|
||||||
.setSetter(dbSettingsModelIstance::setFilterFornitoreProd));
|
.setSetter(dbSettingsModelIstance::setFilterFornitoreProd));
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("PRODUZIONE")
|
||||||
|
.setKeySection("FLAG_GROUP_BY_GRP_MERC")
|
||||||
|
.setSetter(dbSettingsModelIstance::setGroupPoductionByCommodityGroup)
|
||||||
|
.setDefaultValue(false));
|
||||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("SPEDIZIONE")
|
.setSection("SPEDIZIONE")
|
||||||
@@ -470,6 +476,12 @@ public class SettingsManager {
|
|||||||
.setKeySection("FLAG_DISABLE_MANDATORY_TRACCIABILITA")
|
.setKeySection("FLAG_DISABLE_MANDATORY_TRACCIABILITA")
|
||||||
.setSetter(dbSettingsModelIstance::setFlagDisableMandatoryTracciabilitaAccettazioneBolla)
|
.setSetter(dbSettingsModelIstance::setFlagDisableMandatoryTracciabilitaAccettazioneBolla)
|
||||||
.setDefaultValue(false));
|
.setDefaultValue(false));
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("SPEDIZIONE")
|
||||||
|
.setKeySection("FLAG_OVERFLOW_QUANTITY_WARNING")
|
||||||
|
.setSetter(dbSettingsModelIstance::setFlagOverflowQuantityWarning)
|
||||||
|
.setDefaultValue(false));
|
||||||
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package it.integry.integrywmsnative.core.utility;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.GsonBuilder;
|
||||||
|
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
|
||||||
|
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateDeserializer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateTimeDeserializer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.deserializer.StatoPartitaMagDeserializer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.serializer.LocalDateSerializer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.serializer.LocalDateTimeSerializer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.serializer.StatoPartitaMagSerializer;
|
||||||
|
|
||||||
|
public class UtilityGson {
|
||||||
|
|
||||||
|
public static Gson createObject() {
|
||||||
|
return new GsonBuilder()
|
||||||
|
.setDateFormat("dd/MM/yyyy HH:mm:ss")
|
||||||
|
.excludeFieldsWithModifiers(Modifier.TRANSIENT)
|
||||||
|
.registerTypeAdapter(LocalDate.class, new LocalDateDeserializer())
|
||||||
|
.registerTypeAdapter(LocalDate.class, new LocalDateSerializer())
|
||||||
|
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeDeserializer())
|
||||||
|
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
|
||||||
|
.registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagDeserializer())
|
||||||
|
.registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagSerializer())
|
||||||
|
.create();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -165,7 +165,9 @@ public class MainAccettazioneBollaElencoFragment extends BaseFragment implements
|
|||||||
//TODO: Filter here
|
//TODO: Filter here
|
||||||
|
|
||||||
this.mBolleInevaseMutableData.clear();
|
this.mBolleInevaseMutableData.clear();
|
||||||
this.mBolleInevaseMutableData.addAll(convertDataModelToListModel(tmpList));
|
|
||||||
|
if(tmpList != null)
|
||||||
|
this.mBolleInevaseMutableData.addAll(convertDataModelToListModel(tmpList));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -184,12 +186,13 @@ public class MainAccettazioneBollaElencoFragment extends BaseFragment implements
|
|||||||
|
|
||||||
|
|
||||||
private List<MainAccettazioneBolleElencoListModel> convertDataModelToListModel(List<TestataBollaAccettazioneDTO> dataList) {
|
private List<MainAccettazioneBolleElencoListModel> convertDataModelToListModel(List<TestataBollaAccettazioneDTO> dataList) {
|
||||||
|
if(dataList == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
final Comparator<TestataBollaAccettazioneDTO> comparer = Comparator.comparing(TestataBollaAccettazioneDTO::getListino)
|
final Comparator<TestataBollaAccettazioneDTO> comparer = Comparator.comparing(TestataBollaAccettazioneDTO::getListino)
|
||||||
.thenComparing(TestataBollaAccettazioneDTO::getRagSoc)
|
.thenComparing(TestataBollaAccettazioneDTO::getRagSoc)
|
||||||
.thenComparing(TestataBollaAccettazioneDTO::getNumDoc);
|
.thenComparing(TestataBollaAccettazioneDTO::getNumDoc);
|
||||||
|
|
||||||
|
|
||||||
return Stream.of(dataList)
|
return Stream.of(dataList)
|
||||||
.sorted(comparer)
|
.sorted(comparer)
|
||||||
.map(x -> {
|
.map(x -> {
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ public class SitBollaAccettazioneDTO {
|
|||||||
private BigDecimal qtaDoc;
|
private BigDecimal qtaDoc;
|
||||||
private BigDecimal qtaCnfDoc;
|
private BigDecimal qtaCnfDoc;
|
||||||
private BigDecimal numCnfDoc;
|
private BigDecimal numCnfDoc;
|
||||||
private BigDecimal qtaAccettata;
|
|
||||||
private BigDecimal numCnfAccettata;
|
|
||||||
private BigDecimal qtaDaAccettare;
|
private BigDecimal qtaDaAccettare;
|
||||||
private BigDecimal numCnfDaAccettare;
|
private BigDecimal numCnfDaAccettare;
|
||||||
|
|
||||||
@@ -111,24 +109,6 @@ public class SitBollaAccettazioneDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getQtaAccettata() {
|
|
||||||
return qtaAccettata;
|
|
||||||
}
|
|
||||||
|
|
||||||
public SitBollaAccettazioneDTO setQtaAccettata(BigDecimal qtaAccettata) {
|
|
||||||
this.qtaAccettata = qtaAccettata;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getNumCnfAccettata() {
|
|
||||||
return numCnfAccettata;
|
|
||||||
}
|
|
||||||
|
|
||||||
public SitBollaAccettazioneDTO setNumCnfAccettata(BigDecimal numCnfAccettata) {
|
|
||||||
this.numCnfAccettata = numCnfAccettata;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getQtaDaAccettare() {
|
public BigDecimal getQtaDaAccettare() {
|
||||||
return qtaDaAccettare;
|
return qtaDaAccettare;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,11 @@ 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.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
import android.view.Gravity;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.appcompat.widget.PopupMenu;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
|
|
||||||
@@ -37,6 +39,7 @@ import it.integry.integrywmsnative.core.model.MtbAart;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.report.ReportManager;
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
||||||
@@ -50,7 +53,6 @@ import it.integry.integrywmsnative.databinding.ActivityAccettazioneBollaPickingB
|
|||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
|
||||||
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.core.model.dto.AlreadyRegisteredUDCDTO;
|
|
||||||
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.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;
|
||||||
@@ -63,7 +65,7 @@ import it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico
|
|||||||
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesView;
|
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageView;
|
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
|
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.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
|
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
|
||||||
@@ -98,6 +100,10 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
private List<TestataBollaAccettazioneDTO> testataBolle;
|
private List<TestataBollaAccettazioneDTO> testataBolle;
|
||||||
private List<SitBollaAccettazioneDTO> sitArts;
|
private List<SitBollaAccettazioneDTO> sitArts;
|
||||||
|
|
||||||
|
|
||||||
|
private PopupMenu fabPopupMenu;
|
||||||
|
|
||||||
|
|
||||||
//Pass here all external parameters
|
//Pass here all external parameters
|
||||||
public static void startActivity(Context context, List<TestataBollaAccettazioneDTO> testataBolle, List<SitBollaAccettazioneDTO> sitArts) {
|
public static void startActivity(Context context, List<TestataBollaAccettazioneDTO> testataBolle, List<SitBollaAccettazioneDTO> sitArts) {
|
||||||
Intent myIntent = new Intent(context, AccettazioneBollaPickingActivity.class);
|
Intent myIntent = new Intent(context, AccettazioneBollaPickingActivity.class);
|
||||||
@@ -121,7 +127,7 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
|
|
||||||
mBindings = ActivityAccettazioneBollaPickingBinding.inflate(getLayoutInflater());
|
mBindings = ActivityAccettazioneBollaPickingBinding.inflate(getLayoutInflater());
|
||||||
mBindings.setLifecycleOwner(this);
|
mBindings.setLifecycleOwner(this);
|
||||||
mBindings.setAccettazioneView(this);
|
mBindings.setView(this);
|
||||||
|
|
||||||
setContentView(mBindings.getRoot());
|
setContentView(mBindings.getRoot());
|
||||||
|
|
||||||
@@ -145,6 +151,7 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
this.initBarcodeReader();
|
this.initBarcodeReader();
|
||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
// this.initFilters();
|
// this.initFilters();
|
||||||
|
this.initFab();
|
||||||
|
|
||||||
boolean useQtaBolla = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
|
boolean useQtaBolla = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
|
||||||
|
|
||||||
@@ -200,10 +207,39 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
});
|
});
|
||||||
|
|
||||||
adapter.setOnItemClicked(clickedItem -> {
|
adapter.setOnItemClicked(clickedItem -> {
|
||||||
this.mViewModel.manageDispatchBollaRow(clickedItem);
|
this.mViewModel.dispatchBollaRow(clickedItem);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void initFab() {
|
||||||
|
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);
|
||||||
|
|
||||||
|
fabPopupMenu.setForceShowIcon(true);
|
||||||
|
fabPopupMenu.getMenuInflater().inflate(R.menu.accettazione_ordine_inevaso_fab_menu, fabPopupMenu.getMenu());
|
||||||
|
|
||||||
|
fabPopupMenu.setOnMenuItemClickListener(item -> {
|
||||||
|
int itemId = item.getItemId();
|
||||||
|
|
||||||
|
if (itemId == R.id.show_created_ul) {
|
||||||
|
showCreatedUL();
|
||||||
|
} else if (itemId == R.id.create_ul) {
|
||||||
|
createNewLU();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void showFabMenu() {
|
||||||
|
fabPopupMenu.show();
|
||||||
|
}
|
||||||
|
|
||||||
private void refreshList() {
|
private void refreshList() {
|
||||||
|
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
@@ -315,15 +351,13 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
};
|
};
|
||||||
|
|
||||||
public void createNewLU() {
|
public void createNewLU() {
|
||||||
this.mBindings.accettazioneOrdineInevasoFab.close(true);
|
this.fabPopupMenu.dismiss();
|
||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
|
|
||||||
this.mViewModel.createNewLU(null, null, false, this::onLoadingEnded);
|
this.mViewModel.createNewLU(null, null, false, this::onLoadingEnded);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showCreatedUL() {
|
public void showCreatedUL() {
|
||||||
this.mBindings.accettazioneOrdineInevasoFab.close(true);
|
this.fabPopupMenu.dismiss();
|
||||||
|
|
||||||
this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
|
this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -447,9 +481,8 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||||
runOnUiThread(() -> {
|
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
|
||||||
DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -333,13 +333,13 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
pickingObjectDTO.setTempPickData(pickData);
|
pickingObjectDTO.setTempPickData(pickData);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loadMatchedRows(matchPickingObject, mtbAart);
|
this.loadMatchedRows(matchPickingObject, mtbAart, pickData);
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadMatchedRows(List<PickingObjectDTO> matchedRows, MtbAart mtbAart) {
|
private void loadMatchedRows(List<PickingObjectDTO> matchedRows, MtbAart mtbAart, PickDataDTO pickDataDTO) {
|
||||||
if (matchedRows == null || matchedRows.size() == 0) {
|
if (matchedRows == null || matchedRows.size() == 0) {
|
||||||
manageNoArtFound(mtbAart);
|
manageNoArtFound(mtbAart, pickDataDTO);
|
||||||
} else if (matchedRows.size() == 1) {
|
} else if (matchedRows.size() == 1) {
|
||||||
this.manageDispatchBollaRow(matchedRows.get(0));
|
this.manageDispatchBollaRow(matchedRows.get(0));
|
||||||
} else {
|
} else {
|
||||||
@@ -375,11 +375,12 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void manageNoArtFound(MtbAart mtbAart) {
|
private void manageNoArtFound(MtbAart mtbAart, PickDataDTO pickDataDTO) {
|
||||||
if (SettingsManager.iDB().isFlagCanAddUnknownItemsAccettazioneBolla()) {
|
if (SettingsManager.iDB().isFlagCanAddUnknownItemsAccettazioneBolla()) {
|
||||||
|
|
||||||
this.manageDispatchBollaRow(new PickingObjectDTO()
|
this.manageDispatchBollaRow(new PickingObjectDTO()
|
||||||
.setMtbAart(mtbAart));
|
.setMtbAart(mtbAart)
|
||||||
|
.setTempPickData(pickDataDTO));
|
||||||
} else
|
} else
|
||||||
this.sendError(new NoArtsFoundException());
|
this.sendError(new NoArtsFoundException());
|
||||||
}
|
}
|
||||||
@@ -418,12 +419,21 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void manageDispatchBollaRow(final PickingObjectDTO pickingObjectDTO) {
|
public void manageDispatchBollaRow(final PickingObjectDTO pickingObjectDTO) {
|
||||||
|
String partitaMag = null;
|
||||||
|
if(pickingObjectDTO.getTempPickData() != null){
|
||||||
|
if(pickingObjectDTO.getTempPickData().getManualPickDTO() != null){
|
||||||
|
if(pickingObjectDTO.getTempPickData().getManualPickDTO().getMtbPartitaMag() != null){
|
||||||
|
partitaMag = pickingObjectDTO.getTempPickData().getManualPickDTO().getMtbPartitaMag().getPartitaMag();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagEnableFastPickAccettazioneBolla()) {
|
if (SettingsManager.iDB().isFlagEnableFastPickAccettazioneBolla()) {
|
||||||
this.saveNewRow(pickingObjectDTO,
|
this.saveNewRow(pickingObjectDTO,
|
||||||
BigDecimal.ONE,
|
BigDecimal.ONE,
|
||||||
pickingObjectDTO.getMtbAart().getQtaCnf(),
|
pickingObjectDTO.getMtbAart().getQtaCnf(),
|
||||||
pickingObjectDTO.getMtbAart().getQtaCnf(),
|
pickingObjectDTO.getMtbAart().getQtaCnf(),
|
||||||
null,
|
partitaMag,
|
||||||
null,
|
null,
|
||||||
false);
|
false);
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
|
||||||
@@ -33,6 +34,17 @@ public class SitArtOrdDTO {
|
|||||||
private String descrizioneCommessa;
|
private String descrizioneCommessa;
|
||||||
private String termCons;
|
private String termCons;
|
||||||
private String descrizioneEstesaArt;
|
private String descrizioneEstesaArt;
|
||||||
|
private String descrizioneEstesaOrd;
|
||||||
|
private Date dataCons;
|
||||||
|
|
||||||
|
public String getDescrizioneEstesaOrd() {
|
||||||
|
return descrizioneEstesaOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SitArtOrdDTO setDescrizioneEstesaOrd(String descrizioneEstesaOrd) {
|
||||||
|
this.descrizioneEstesaOrd = descrizioneEstesaOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getCodJcom() {
|
public String getCodJcom() {
|
||||||
return codJcom;
|
return codJcom;
|
||||||
@@ -280,4 +292,13 @@ public class SitArtOrdDTO {
|
|||||||
this.descrizioneEstesaArt = descrizioneEstesaArt;
|
this.descrizioneEstesaArt = descrizioneEstesaArt;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Date getDataCons() {
|
||||||
|
return dataCons;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SitArtOrdDTO setDataCons(Date dataCons) {
|
||||||
|
this.dataCons = dataCons;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,12 @@ 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.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
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;
|
||||||
@@ -42,17 +44,18 @@ import it.integry.integrywmsnative.core.model.MtbAart;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.report.ReportManager;
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
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.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
|
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
|
||||||
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.AccettazioneOrdineInevasoOrderBy;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.AccettazioneOrdineInevasoOrderBy;
|
||||||
@@ -72,7 +75,7 @@ import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFrag
|
|||||||
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;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
|
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.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
|
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
|
||||||
@@ -110,6 +113,8 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
private boolean mShowSecondaryUntMis = true;
|
private boolean mShowSecondaryUntMis = true;
|
||||||
|
|
||||||
|
private PopupMenu fabPopupMenu;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -120,7 +125,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso);
|
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso);
|
||||||
mBindings.setLifecycleOwner(this);
|
mBindings.setLifecycleOwner(this);
|
||||||
mBindings.setAccettazioneView(this);
|
mBindings.setView(this);
|
||||||
|
|
||||||
MainApplication.appComponent
|
MainApplication.appComponent
|
||||||
.accettazionePickingComponent()
|
.accettazionePickingComponent()
|
||||||
@@ -141,6 +146,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
this.initBarcodeReader();
|
this.initBarcodeReader();
|
||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
this.initFilters();
|
this.initFilters();
|
||||||
|
this.initFab();
|
||||||
|
|
||||||
boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
|
boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
|
||||||
|
|
||||||
@@ -151,6 +157,28 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
useQtaOrd);
|
useQtaOrd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initFab() {
|
||||||
|
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);
|
||||||
|
|
||||||
|
fabPopupMenu.setForceShowIcon(true);
|
||||||
|
fabPopupMenu.getMenuInflater().inflate(R.menu.accettazione_ordine_inevaso_fab_menu, fabPopupMenu.getMenu());
|
||||||
|
|
||||||
|
fabPopupMenu.setOnMenuItemClickListener(item -> {
|
||||||
|
int itemId = item.getItemId();
|
||||||
|
|
||||||
|
if (itemId == R.id.show_created_ul) {
|
||||||
|
showCreatedUL();
|
||||||
|
} else if (itemId == R.id.create_ul) {
|
||||||
|
createNewLU();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void initFilters() {
|
private void initFilters() {
|
||||||
|
|
||||||
var onPredicateChanged = new OnGeneralChangedCallback() {
|
var onPredicateChanged = new OnGeneralChangedCallback() {
|
||||||
@@ -415,6 +443,8 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
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.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());
|
||||||
@@ -585,8 +615,9 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneEstesaOrd());
|
||||||
|
|
||||||
if (x.getMtbAart() != null) {
|
if (x.getMtbAart() != null) {
|
||||||
accettazioneOrdiniPickingListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
|
|
||||||
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
|
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -674,8 +705,12 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
public void showFabMenu() {
|
||||||
|
fabPopupMenu.show();
|
||||||
|
}
|
||||||
|
|
||||||
public void createNewLU() {
|
public void createNewLU() {
|
||||||
this.mBindings.accettazioneOrdineInevasoFab.close(true);
|
this.fabPopupMenu.dismiss();
|
||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
|
|
||||||
this.mViewModel.createNewLU(null, null, false, () -> {
|
this.mViewModel.createNewLU(null, null, false, () -> {
|
||||||
@@ -684,8 +719,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void showCreatedUL() {
|
public void showCreatedUL() {
|
||||||
this.mBindings.accettazioneOrdineInevasoFab.close(true);
|
this.fabPopupMenu.dismiss();
|
||||||
|
|
||||||
this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
|
this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -769,9 +803,12 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||||
runOnUiThread(() -> {
|
// runOnUiThread(() -> {
|
||||||
DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
// DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
||||||
});
|
// });
|
||||||
|
|
||||||
|
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
|
||||||
|
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -788,7 +825,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
}
|
}
|
||||||
|
|
||||||
@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, 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)
|
.setMtbAart(mtbAart)
|
||||||
.setInitialNumCnf(initialNumCnf)
|
.setInitialNumCnf(initialNumCnf)
|
||||||
@@ -807,7 +844,8 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
.setDataScad(dataScad)
|
.setDataScad(dataScad)
|
||||||
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
||||||
.setCanLUBeClosed(true)
|
.setCanLUBeClosed(true)
|
||||||
.setCanOverflowOrderQuantity(canOverflowQuantity);
|
.setCanOverflowOrderQuantity(canOverflowQuantity)
|
||||||
|
.setCustomArtDescription(customArtDescription);
|
||||||
|
|
||||||
if (!mDialogInputQuantityV2View.isVisible())
|
if (!mDialogInputQuantityV2View.isVisible())
|
||||||
mDialogInputQuantityV2View
|
mDialogInputQuantityV2View
|
||||||
|
|||||||
@@ -371,11 +371,23 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
this.sendOnInfoAggiuntiveRequest((additionalNotes, tCol) -> {
|
this.sendOnInfoAggiuntiveRequest((additionalNotes, tCol) -> {
|
||||||
|
|
||||||
final List<CreateUDCRequestOrderDTO> orders = Stream.of(this.mOrders)
|
final List<CreateUDCRequestOrderDTO> orders = Stream.of(this.mOrders)
|
||||||
.map(x -> new CreateUDCRequestOrderDTO()
|
.map(x -> {
|
||||||
.setDataCons(x.getDataConsD() != null ? UtilityDate.toLocalDate(x.getDataConsD()) : null)
|
final CreateUDCRequestOrderDTO createUDCRequestOrderDTO = new CreateUDCRequestOrderDTO()
|
||||||
.setDataOrd(UtilityDate.toLocalDate(x.getDataD()))
|
.setDataCons(x.getDataConsD() != null ? UtilityDate.toLocalDate(x.getDataConsD()) : null)
|
||||||
.setGestione(x.getGestione())
|
.setDataOrd(UtilityDate.toLocalDate(x.getDataD()))
|
||||||
.setNumOrd(x.getNumero()))
|
.setNumOrd(x.getNumero());
|
||||||
|
|
||||||
|
if(x.getGestioneEnum() == GestioneEnum.PRODUZIONE) {
|
||||||
|
if(x.isOrdTrasf())
|
||||||
|
createUDCRequestOrderDTO.setGestione(GestioneEnum.ACQUISTO.getText());
|
||||||
|
else
|
||||||
|
createUDCRequestOrderDTO.setGestione(GestioneEnum.LAVORAZIONE.getText());
|
||||||
|
} else {
|
||||||
|
createUDCRequestOrderDTO.setGestione(x.getGestione());
|
||||||
|
}
|
||||||
|
|
||||||
|
return createUDCRequestOrderDTO;
|
||||||
|
})
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
final CreateUDCRequestDTO createUDCRequestDTO = new CreateUDCRequestDTO()
|
final CreateUDCRequestDTO createUDCRequestDTO = new CreateUDCRequestDTO()
|
||||||
@@ -527,6 +539,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
partitaMag,
|
partitaMag,
|
||||||
dataScad,
|
dataScad,
|
||||||
true,
|
true,
|
||||||
|
pickingObjectDTO.getSitArtOrdDTO().getDescrizioneEstesaOrd(),
|
||||||
(pickedQuantityDTO, shouldCloseLU) -> {
|
(pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
this.saveNewRow(pickingObjectDTO,
|
this.saveNewRow(pickingObjectDTO,
|
||||||
pickedQuantityDTO.getNumCnf(),
|
pickedQuantityDTO.getNumCnf(),
|
||||||
@@ -613,6 +626,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
mtbColrToEdit.getPartitaMag(),
|
mtbColrToEdit.getPartitaMag(),
|
||||||
mtbColrToEdit.getDataScadPartita(),
|
mtbColrToEdit.getDataScadPartita(),
|
||||||
true,
|
true,
|
||||||
|
null,
|
||||||
(pickedQuantityDTO, shouldCloseLU) -> {
|
(pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
|
|
||||||
this.saveEditedRow(mtbColrToEdit,
|
this.saveEditedRow(mtbColrToEdit,
|
||||||
@@ -871,6 +885,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
String partitaMag,
|
String partitaMag,
|
||||||
LocalDate dataScad,
|
LocalDate dataScad,
|
||||||
boolean canPartitaMagBeChanged,
|
boolean canPartitaMagBeChanged,
|
||||||
|
String customArtDescription,
|
||||||
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO,
|
if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO,
|
||||||
mtbAart,
|
mtbAart,
|
||||||
@@ -890,6 +905,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
dataScad,
|
dataScad,
|
||||||
canPartitaMagBeChanged,
|
canPartitaMagBeChanged,
|
||||||
true,
|
true,
|
||||||
|
customArtDescription,
|
||||||
onComplete);
|
onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -946,6 +962,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
|||||||
LocalDate dataScad,
|
LocalDate dataScad,
|
||||||
boolean canPartitaMagBeChanged,
|
boolean canPartitaMagBeChanged,
|
||||||
boolean canOverflowQuantity,
|
boolean canOverflowQuantity,
|
||||||
|
String customArtDescription,
|
||||||
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
||||||
|
|
||||||
void onFilterCodMartApplied(String codMartToFilter);
|
void onFilterCodMartApplied(String codMartToFilter);
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import java.util.List;
|
|||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.AccettazioneOrdineInevasoMainListGroupHeaderBinding;
|
import it.integry.integrywmsnative.databinding.AccettazioneOrdineInevasoMainListGroupHeaderBinding;
|
||||||
@@ -119,7 +120,10 @@ public class AccettazioneOrdiniPickingListAdapter extends SectionedRecyclerViewA
|
|||||||
|
|
||||||
holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione());
|
holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione());
|
||||||
holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY);
|
holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY);
|
||||||
|
holder.mBinding.descrizione.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getDescrizione()) ? View.GONE : View.VISIBLE);
|
||||||
|
|
||||||
|
holder.mBinding.descrizioneSub1.setText(pickingObjectDTO.getSubDescrizione1());
|
||||||
|
holder.mBinding.descrizioneSub1.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getSubDescrizione1()) ? View.GONE : View.VISIBLE);
|
||||||
|
|
||||||
holder.mBinding.badge1.setText(pickingObjectDTO.getBadge1());
|
holder.mBinding.badge1.setText(pickingObjectDTO.getBadge1());
|
||||||
holder.mBinding.badge2.setText(pickingObjectDTO.getBadge2());
|
holder.mBinding.badge2.setText(pickingObjectDTO.getBadge2());
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordini_picking.ui;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.PickingObjectDTO;
|
||||||
|
|
||||||
|
|||||||
@@ -178,6 +178,6 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
|
|||||||
@Override
|
@Override
|
||||||
public void onDocumentEditRequest(SqlMtbColt document, List<DocumentoArtDTO> arts) {
|
public void onDocumentEditRequest(SqlMtbColt document, List<DocumentoArtDTO> arts) {
|
||||||
requireActivity()
|
requireActivity()
|
||||||
.startActivity(DocInterniEditFormActivity.newInstance(requireActivity(), document, arts, mViewModel.getTipoDoc()));
|
.startActivity(DocInterniEditFormActivity.newInstance(requireActivity(), document, arts, mViewModel.getTipoDoc(), mDocInterniSetupDTO));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class DialogSelectDocInfoViewModel extends ViewModel {
|
|||||||
if (val.getGestioneDoc().equalsIgnoreCase("T")) {
|
if (val.getGestioneDoc().equalsIgnoreCase("T")) {
|
||||||
return forn.getTipoAnag().equalsIgnoreCase("D") &&
|
return forn.getTipoAnag().equalsIgnoreCase("D") &&
|
||||||
forn.getGestioneAnag().equalsIgnoreCase(
|
forn.getGestioneAnag().equalsIgnoreCase(
|
||||||
val.getGestione().equalsIgnoreCase("V") ? "V" : "A"
|
val.getGestione().equalsIgnoreCase("V") ? "V" : "L"
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return forn.getTipoAnag().equalsIgnoreCase("F");
|
return forn.getTipoAnag().equalsIgnoreCase("F");
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.dto;
|
||||||
|
|
||||||
|
public class CheckFornitoreDTO {
|
||||||
|
|
||||||
|
private String codDtip;
|
||||||
|
private Boolean flagCheckPartitaMag;
|
||||||
|
|
||||||
|
public String getCodDtip() {
|
||||||
|
return codDtip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CheckFornitoreDTO setCodDtip(String codDtip) {
|
||||||
|
this.codDtip = codDtip;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getFlagCheckPartitaMag() {
|
||||||
|
return flagCheckPartitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CheckFornitoreDTO setFlagCheckPartitaMag(Boolean flagCheckPartitaMag) {
|
||||||
|
this.flagCheckPartitaMag = flagCheckPartitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package it.integry.integrywmsnative.gest.contab_doc_interni.dto;
|
package it.integry.integrywmsnative.gest.contab_doc_interni.dto;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class FornitoreDTO {
|
public class FornitoreDTO {
|
||||||
|
|
||||||
|
|
||||||
@@ -13,6 +15,8 @@ public class FornitoreDTO {
|
|||||||
|
|
||||||
private String gestioneAnag;
|
private String gestioneAnag;
|
||||||
|
|
||||||
|
private List<CheckFornitoreDTO> checkFornitoreDTO;
|
||||||
|
|
||||||
|
|
||||||
public String getCodAnag() {
|
public String getCodAnag() {
|
||||||
return codAnag;
|
return codAnag;
|
||||||
@@ -57,4 +61,13 @@ public class FornitoreDTO {
|
|||||||
public String getLabel() {
|
public String getLabel() {
|
||||||
return this.codAnag + (this.codVdes != null ? " - "+ this.codVdes : "") +" ( " + this.descrizione+" )";
|
return this.codAnag + (this.codVdes != null ? " - "+ this.codVdes : "") +" ( " + this.descrizione+" )";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<CheckFornitoreDTO> getCheckFornitoreDTO() {
|
||||||
|
return checkFornitoreDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FornitoreDTO setCheckFornitoreDTO(List<CheckFornitoreDTO> checkFornitoreDTO) {
|
||||||
|
this.checkFornitoreDTO = checkFornitoreDTO;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ public class TipoDocDTO {
|
|||||||
private String descrizione;
|
private String descrizione;
|
||||||
private String gestione;
|
private String gestione;
|
||||||
private String gestioneDoc;
|
private String gestioneDoc;
|
||||||
|
private boolean flagChkTracciabilita;
|
||||||
private boolean requireNote = false;
|
private boolean requireNote = false;
|
||||||
|
|
||||||
public String getCodDtip() {
|
public String getCodDtip() {
|
||||||
@@ -52,4 +53,13 @@ public class TipoDocDTO {
|
|||||||
this.requireNote = requireNote;
|
this.requireNote = requireNote;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isFlagChkTracciabilita() {
|
||||||
|
return flagChkTracciabilita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TipoDocDTO setFlagChkTracciabilita(boolean flagChkTracciabilita) {
|
||||||
|
this.flagChkTracciabilita = flagChkTracciabilita;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import it.integry.integrywmsnative.core.model.MtbUntMis;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO;
|
import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityContabDocInterniEditBinding;
|
import it.integry.integrywmsnative.databinding.ActivityContabDocInterniEditBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
||||||
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;
|
||||||
@@ -55,6 +56,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
|
|||||||
private static final String DATA_KEY_DOCUMENT = "document";
|
private static final String DATA_KEY_DOCUMENT = "document";
|
||||||
private static final String DATA_KEY_PRODUCTS_LIST = "productsList";
|
private static final String DATA_KEY_PRODUCTS_LIST = "productsList";
|
||||||
private static final String DATA_KEY_TIPO_DOC = "docType";
|
private static final String DATA_KEY_TIPO_DOC = "docType";
|
||||||
|
private static final String DATA_KEY_DOC_INTERNI = "docInterniSetup";
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
MtbColrDataSource documentRowsRepository;
|
MtbColrDataSource documentRowsRepository;
|
||||||
@@ -78,15 +80,18 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
|
|||||||
public BindableBoolean isDocumentExportable = new BindableBoolean(false);
|
public BindableBoolean isDocumentExportable = new BindableBoolean(false);
|
||||||
private final ObservableArrayList<SqlMtbColr> documentRowsObservableList = new ObservableArrayList<>();
|
private final ObservableArrayList<SqlMtbColr> documentRowsObservableList = new ObservableArrayList<>();
|
||||||
|
|
||||||
public static Intent newInstance(Context context, SqlMtbColt document, List<DocumentoArtDTO> arts, TipoDocDTO tipoDoc) {
|
public static Intent newInstance(Context context, SqlMtbColt document, List<DocumentoArtDTO> arts, TipoDocDTO tipoDoc, DocInterniSetupDTO mDocInterniSetupDTO) {
|
||||||
Intent myIntent = new Intent(context, DocInterniEditFormActivity.class);
|
Intent myIntent = new Intent(context, DocInterniEditFormActivity.class);
|
||||||
|
|
||||||
String doc = DataCache.addItem(document);
|
String doc = DataCache.addItem(document);
|
||||||
String productsKey = DataCache.addItem(arts);
|
String productsKey = DataCache.addItem(arts);
|
||||||
String docType = DataCache.addItem(tipoDoc);
|
String docType = DataCache.addItem(tipoDoc);
|
||||||
|
String docInterniSetup = DataCache.addItem(mDocInterniSetupDTO);
|
||||||
|
|
||||||
myIntent.putExtra(DATA_KEY_DOCUMENT, doc);
|
myIntent.putExtra(DATA_KEY_DOCUMENT, doc);
|
||||||
myIntent.putExtra(DATA_KEY_PRODUCTS_LIST, productsKey);
|
myIntent.putExtra(DATA_KEY_PRODUCTS_LIST, productsKey);
|
||||||
myIntent.putExtra(DATA_KEY_TIPO_DOC, docType);
|
myIntent.putExtra(DATA_KEY_TIPO_DOC, docType);
|
||||||
|
myIntent.putExtra(DATA_KEY_DOC_INTERNI, docInterniSetup);
|
||||||
return myIntent;
|
return myIntent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,13 +108,14 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
|
|||||||
SqlMtbColt document = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_DOCUMENT));
|
SqlMtbColt document = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_DOCUMENT));
|
||||||
List<DocumentoArtDTO> productList = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_PRODUCTS_LIST));
|
List<DocumentoArtDTO> productList = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_PRODUCTS_LIST));
|
||||||
TipoDocDTO docType = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_TIPO_DOC));
|
TipoDocDTO docType = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_TIPO_DOC));
|
||||||
|
DocInterniSetupDTO docInterniSetupDTO = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_DOC_INTERNI));
|
||||||
|
|
||||||
this.initViewModel();
|
this.initViewModel();
|
||||||
|
this.viewModel.setDocInterniSetupDTO(docInterniSetupDTO);
|
||||||
this.viewModel.setDocument(document);
|
this.viewModel.setDocument(document);
|
||||||
this.viewModel.setProductsList(productList);
|
this.viewModel.setProductsList(productList);
|
||||||
this.viewModel.setTipoDoc(docType);
|
this.viewModel.setTipoDoc(docType);
|
||||||
|
|
||||||
|
|
||||||
this.initView();
|
this.initView();
|
||||||
this.initBindables();
|
this.initBindables();
|
||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
@@ -266,7 +272,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
|
|||||||
var dataScad = data.getDataScad();
|
var dataScad = data.getDataScad();
|
||||||
|
|
||||||
String partitaMag = null;
|
String partitaMag = null;
|
||||||
if (dataScad != null) partitaMag = UtilityDate.formatDate(dataScad, "yyyymmdd");
|
if (dataScad != null) partitaMag = UtilityDate.formatDate(dataScad, "yyyyMMdd");
|
||||||
|
|
||||||
return partitaMag;
|
return partitaMag;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form;
|
|||||||
|
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import com.annimon.stream.Optional;
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
@@ -10,6 +11,7 @@ import org.json.JSONObject;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -28,7 +30,10 @@ 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.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ArtDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ArtDTO;
|
||||||
|
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.FornitoreDTO;
|
||||||
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;
|
||||||
@@ -48,6 +53,7 @@ public class DocInterniEditFormViewModel {
|
|||||||
|
|
||||||
|
|
||||||
public MutableLiveData<SqlMtbColt> document = new MutableLiveData<>();
|
public MutableLiveData<SqlMtbColt> document = new MutableLiveData<>();
|
||||||
|
public MutableLiveData<DocInterniSetupDTO> docInterniSetupDTO = new MutableLiveData<>();
|
||||||
public MutableLiveData<List<SqlMtbColr>> docRows = new MutableLiveData<>();
|
public MutableLiveData<List<SqlMtbColr>> docRows = new MutableLiveData<>();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -236,6 +242,7 @@ public class DocInterniEditFormViewModel {
|
|||||||
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());
|
||||||
|
artDto.setSystemNote(row.getNote());
|
||||||
if (row.getDataScad() != null) {
|
if (row.getDataScad() != null) {
|
||||||
artDto.setDataScad(row.getDataScad());
|
artDto.setDataScad(row.getDataScad());
|
||||||
}
|
}
|
||||||
@@ -257,35 +264,49 @@ public class DocInterniEditFormViewModel {
|
|||||||
this.initCheckFornitore();
|
this.initCheckFornitore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDocInterniSetupDTO(DocInterniSetupDTO docInterniSetupDTO) {
|
||||||
|
this.docInterniSetupDTO.setValue(docInterniSetupDTO);
|
||||||
|
}
|
||||||
|
|
||||||
private void initCheckFornitore() {
|
private void initCheckFornitore() {
|
||||||
SqlMtbColt doc = this.document.getValue();
|
SqlMtbColt doc = this.document.getValue();
|
||||||
|
List<FornitoreDTO> fornitori = Objects.requireNonNull(this.docInterniSetupDTO.getValue()).getFornitori();
|
||||||
|
List<TipoDocDTO> tipoDocDTO = Objects.requireNonNull(this.docInterniSetupDTO.getValue()).getTipiDoc();
|
||||||
|
this.isCheckPartitaMag = false;
|
||||||
|
|
||||||
if (doc == null)
|
if (doc == null || fornitori == null || tipoDocDTO == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
boolean isCheckPartitaMag = false;
|
List<FornitoreDTO> filterFornitori = Stream.of(fornitori).filter(x->x.getCodAnag().equals(doc.getCodAnag())).toList();
|
||||||
|
List<CheckFornitoreDTO> checkFornitoreDTO;
|
||||||
|
|
||||||
try {
|
TipoDocDTO tipoDoc = Stream.of(tipoDocDTO).filter(x -> x.getCodDtip().equals(doc.getCodDtipProvv())).findFirst().get();
|
||||||
if (this.checkFornitoreRules != null && this.checkFornitoreRules.has("value")) {
|
|
||||||
isCheckPartitaMag = this.checkFornitoreRules.getBoolean("value");
|
if (tipoDoc.isFlagChkTracciabilita()){
|
||||||
} else if (this.checkFornitoreRules != null) {
|
this.isCheckPartitaMag = tipoDoc.isFlagChkTracciabilita();
|
||||||
String key = doc.getCodAnag();
|
}else{
|
||||||
if (doc.getCodVdes() != null && !doc.getCodVdes().isEmpty()) {
|
if (filterFornitori.isEmpty())
|
||||||
key += "-" + doc.getCodVdes();
|
return;
|
||||||
}
|
|
||||||
if (this.checkFornitoreRules.has(key) &&
|
if (doc.getCodVdes() == null) {
|
||||||
((String) ((JSONObject) this.checkFornitoreRules.get(key))
|
checkFornitoreDTO = Stream.of(filterFornitori)
|
||||||
.get(doc.getCodDtipProvv()))
|
.filter(x -> x.getCodVdes() == null).findFirst().get().getCheckFornitoreDTO();
|
||||||
.equalsIgnoreCase("check-partitaMag")) {
|
} else{
|
||||||
isCheckPartitaMag = true;
|
checkFornitoreDTO = Stream.of(filterFornitori)
|
||||||
}
|
.filterNot(x -> x.getCodVdes() == null)
|
||||||
|
.filter(x -> x.getCodVdes().equals(doc.getCodVdes())).findFirst().get().getCheckFornitoreDTO();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (checkFornitoreDTO != null){
|
||||||
|
CheckFornitoreDTO flagCheck = Stream.of(checkFornitoreDTO)
|
||||||
|
.filter(x -> x.getCodDtip().equals(doc.getCodDtipProvv())).findFirstOrElse(null);
|
||||||
|
|
||||||
|
if (flagCheck == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this.isCheckPartitaMag = flagCheck.getFlagCheckPartitaMag();
|
||||||
}
|
}
|
||||||
} catch (JSONException e) {
|
|
||||||
this.sendError(e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
this.isCheckPartitaMag = isCheckPartitaMag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SqlMtbColt getDocument() {
|
public SqlMtbColt getDocument() {
|
||||||
|
|||||||
@@ -825,6 +825,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
|
|
||||||
int alreadyRegisteredUL = alreadyRegisteredMtbColts.size();
|
int alreadyRegisteredUL = alreadyRegisteredMtbColts.size();
|
||||||
|
|
||||||
|
boolean divideByGrpMerc = SettingsManager.iDB().isGroupShippingByCommodityGroup();
|
||||||
|
|
||||||
DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(),
|
DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(),
|
||||||
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, orders.size()), orders.size())
|
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, orders.size()), orders.size())
|
||||||
+ "<br />" +
|
+ "<br />" +
|
||||||
@@ -839,7 +841,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
mCurrentGestioneCol,
|
mCurrentGestioneCol,
|
||||||
mCurrentSegnoCol,
|
mCurrentSegnoCol,
|
||||||
MtbColr.Causale.DEFAULT,
|
MtbColr.Causale.DEFAULT,
|
||||||
mDialogRowInfo)
|
mDialogRowInfo,
|
||||||
|
divideByGrpMerc)
|
||||||
).show(getActivity().getSupportFragmentManager(), "tag");
|
).show(getActivity().getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,33 +65,31 @@ public class OrdiniUscitaElencoViewModel {
|
|||||||
|
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
new Thread(() -> {
|
Date loadingStartDate = new Date();
|
||||||
Date loadingStartDate = new Date();
|
|
||||||
|
|
||||||
this.mOrdiniRESTConsumer.getOrdiniInevasi(this.mCurrentCodMdep, mCurrentGestioneOrd,
|
this.mOrdiniRESTConsumer.getOrdiniInevasi(this.mCurrentCodMdep, mCurrentGestioneOrd,
|
||||||
ordiniLavorazione -> {
|
ordiniLavorazione -> {
|
||||||
this.mOrderList.postValue(Stream.of(ordiniLavorazione)
|
this.mOrderList.postValue(Stream.of(ordiniLavorazione)
|
||||||
.map(x -> {
|
.map(x -> {
|
||||||
try {
|
try {
|
||||||
return OrdiniUscitaElencoDTO.fromParent(x);
|
return OrdiniUscitaElencoDTO.fromParent(x);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.toList());
|
.toList());
|
||||||
|
|
||||||
long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000;
|
long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000;
|
||||||
|
|
||||||
if (2 - forcedDelaySecs > 0) {
|
if (2 - forcedDelaySecs > 0) {
|
||||||
try {
|
try {
|
||||||
Thread.sleep((2 - forcedDelaySecs) * 1000);
|
Thread.sleep((2 - forcedDelaySecs) * 1000);
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}).start();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.VtbDest;
|
import it.integry.integrywmsnative.core.model.VtbDest;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
|
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
|
||||||
@@ -54,6 +53,7 @@ import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
|||||||
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
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.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;
|
||||||
@@ -86,16 +86,20 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
private int barcodeScannerIstanceID = -1;
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
|
||||||
private GestioneEnum mCurrentGestione;
|
private GestioneEnum mCurrentGestione;
|
||||||
|
private boolean mAskCliente;
|
||||||
|
private boolean mAskLineaProd;
|
||||||
|
|
||||||
public PickingLiberoFragment() {
|
public PickingLiberoFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PickingLiberoFragment newInstance(GestioneEnum gestioneEnum) {
|
public static PickingLiberoFragment newInstance(GestioneEnum gestioneEnum, boolean askCliente, boolean askLineaProd) {
|
||||||
PickingLiberoFragment fragment = new PickingLiberoFragment();
|
PickingLiberoFragment fragment = new PickingLiberoFragment();
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
|
|
||||||
args.putString("gestione", gestioneEnum.getText());
|
args.putString("gestione", gestioneEnum.getText());
|
||||||
|
args.putBoolean("askCliente", askCliente);
|
||||||
|
args.putBoolean("askLineaProd", askLineaProd);
|
||||||
|
|
||||||
fragment.setArguments(args);
|
fragment.setArguments(args);
|
||||||
return fragment;
|
return fragment;
|
||||||
@@ -113,6 +117,8 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
setRetainInstance(true);
|
setRetainInstance(true);
|
||||||
|
|
||||||
mCurrentGestione = GestioneEnum.fromString(getArguments().getString("gestione"));
|
mCurrentGestione = GestioneEnum.fromString(getArguments().getString("gestione"));
|
||||||
|
mAskCliente = getArguments().getBoolean("askCliente");
|
||||||
|
mAskLineaProd = getArguments().getBoolean("askLineaProd");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -139,8 +145,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
|
|
||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
|
|
||||||
boolean flagAskCliente = SettingsManager.iDB().isFlagAskClienteInPickingLibero();
|
mViewModel.init(mAskCliente, mAskLineaProd, mCurrentGestione);
|
||||||
mViewModel.init(flagAskCliente, mCurrentGestione);
|
|
||||||
|
|
||||||
return mBindings.getRoot();
|
return mBindings.getRoot();
|
||||||
}
|
}
|
||||||
@@ -263,7 +268,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
null,
|
null,
|
||||||
() -> onComplete.run(true),
|
() -> onComplete.run(true),
|
||||||
() -> onComplete.run(false)
|
() -> onComplete.run(false)
|
||||||
).show(requireActivity().getSupportFragmentManager(), "tag");
|
).show(requireActivity().getSupportFragmentManager(), DialogSimpleMessageView.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -284,7 +289,13 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
@Override
|
@Override
|
||||||
public void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
|
public void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
|
||||||
DialogAskClienteView.newInstance(onComplete, onAbort)
|
DialogAskClienteView.newInstance(onComplete, onAbort)
|
||||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
.show(requireActivity().getSupportFragmentManager(), DialogAskClienteView.class.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLULineaProdRequired(RunnableArgs<String> onComplete, Runnable onAbort) {
|
||||||
|
DialogAskLineaProdView.newInstance(onComplete, onAbort)
|
||||||
|
.show(getParentFragmentManager(), DialogAskLineaProdView.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -294,7 +305,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
onAbort.run();
|
onAbort.run();
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
})
|
})
|
||||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
.show(requireActivity().getSupportFragmentManager(), DialogChooseArtsFromMtbColrList.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -6,7 +6,9 @@ import dagger.Module;
|
|||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
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.ColliSpedizioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
@@ -21,8 +23,17 @@ public class PickingLiberoModule {
|
|||||||
BarcodeRESTConsumer barcodeRESTConsumer,
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
PosizioniRESTConsumer posizioniRESTConsumer,
|
PosizioniRESTConsumer posizioniRESTConsumer,
|
||||||
GiacenzaRESTConsumer giacenzaRESTConsumer,
|
GiacenzaRESTConsumer giacenzaRESTConsumer,
|
||||||
MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer
|
MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer,
|
||||||
|
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
||||||
|
ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer
|
||||||
) {
|
) {
|
||||||
return new PickingLiberoViewModel(articoloRESTConsumer, colliMagazzinoRESTConsumer, barcodeRESTConsumer, posizioniRESTConsumer, giacenzaRESTConsumer, magazzinoAutomaticoRESTConsumer);
|
return new PickingLiberoViewModel(articoloRESTConsumer,
|
||||||
|
colliMagazzinoRESTConsumer,
|
||||||
|
barcodeRESTConsumer,
|
||||||
|
posizioniRESTConsumer,
|
||||||
|
giacenzaRESTConsumer,
|
||||||
|
magazzinoAutomaticoRESTConsumer,
|
||||||
|
colliLavorazioneRESTConsumer,
|
||||||
|
colliSpedizioneRESTConsumer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,14 +32,18 @@ import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
|||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
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.ColliSpedizioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliScaricoRESTConsumerInterface;
|
||||||
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.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.uds.CreateUDSRequestDTO;
|
||||||
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.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
@@ -63,8 +67,12 @@ public class PickingLiberoViewModel {
|
|||||||
private final GiacenzaRESTConsumer mGiacenzaRESTConsumer;
|
private final GiacenzaRESTConsumer mGiacenzaRESTConsumer;
|
||||||
private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer;
|
private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer;
|
||||||
|
|
||||||
|
private ColliScaricoRESTConsumerInterface mColliScaricoRESTConsumer;
|
||||||
|
private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
|
||||||
|
private final ColliSpedizioneRESTConsumer mColliSpedizioneRESTConsumer;
|
||||||
|
|
||||||
private boolean mFlagAskCliente;
|
private boolean mFlagAskCliente;
|
||||||
|
private boolean mFlagAskLineaProd;
|
||||||
private GestioneEnum mDefaultGestione;
|
private GestioneEnum mDefaultGestione;
|
||||||
|
|
||||||
|
|
||||||
@@ -77,19 +85,30 @@ public class PickingLiberoViewModel {
|
|||||||
BarcodeRESTConsumer barcodeRESTConsumer,
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
PosizioniRESTConsumer posizioniRESTConsumer,
|
PosizioniRESTConsumer posizioniRESTConsumer,
|
||||||
GiacenzaRESTConsumer giacenzaRESTConsumer,
|
GiacenzaRESTConsumer giacenzaRESTConsumer,
|
||||||
MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer) {
|
MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer,
|
||||||
|
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
||||||
|
ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer) {
|
||||||
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
||||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
this.mPosizioniRESTConsumer = posizioniRESTConsumer;
|
this.mPosizioniRESTConsumer = posizioniRESTConsumer;
|
||||||
this.mGiacenzaRESTConsumer = giacenzaRESTConsumer;
|
this.mGiacenzaRESTConsumer = giacenzaRESTConsumer;
|
||||||
this.mMagazzinoAutomaticoRESTConsumer = mMagazzinoAutomaticoRESTConsumer;
|
this.mMagazzinoAutomaticoRESTConsumer = mMagazzinoAutomaticoRESTConsumer;
|
||||||
|
this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
|
||||||
|
this.mColliSpedizioneRESTConsumer = colliSpedizioneRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void init(boolean flagAskCliente, GestioneEnum defaultGestione) {
|
public void init(boolean flagAskCliente, boolean flagAskLineaProd, GestioneEnum defaultGestione) {
|
||||||
this.mFlagAskCliente = defaultGestione == GestioneEnum.VENDITA && flagAskCliente;
|
this.mFlagAskCliente = defaultGestione == GestioneEnum.VENDITA && flagAskCliente;
|
||||||
|
this.mFlagAskLineaProd = defaultGestione == GestioneEnum.LAVORAZIONE && flagAskLineaProd;
|
||||||
this.mDefaultGestione = defaultGestione;
|
this.mDefaultGestione = defaultGestione;
|
||||||
|
|
||||||
|
|
||||||
|
switch (mDefaultGestione) {
|
||||||
|
case LAVORAZIONE -> this.mColliScaricoRESTConsumer = mColliLavorazioneRESTConsumer;
|
||||||
|
case VENDITA -> this.mColliScaricoRESTConsumer = mColliSpedizioneRESTConsumer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -279,46 +298,57 @@ public class PickingLiberoViewModel {
|
|||||||
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
|
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
|
||||||
if (this.mFlagAskCliente) {
|
if (this.mFlagAskCliente) {
|
||||||
this.sendLUClienteRequired((vtbDest, codJcom) -> {
|
this.sendLUClienteRequired((vtbDest, codJcom) -> {
|
||||||
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, codJcom, onComplete);
|
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, onComplete);
|
||||||
}, () -> {
|
}, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, null, null, onComplete);
|
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, null, onComplete);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, String codJcom, Runnable onComplete) {
|
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, Runnable onComplete) {
|
||||||
|
if (this.mFlagAskLineaProd) {
|
||||||
|
this.sendLULineaProdRequired(codJfas -> {
|
||||||
|
createNewLU_PostLineaProdAsk(customNumCollo, customSerCollo, vtbDest, codJfas, onComplete);
|
||||||
|
}, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
createNewLU_PostLineaProdAsk(customNumCollo, customSerCollo, vtbDest, null, onComplete);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createNewLU_PostLineaProdAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, String codJfas, Runnable onComplete) {
|
||||||
|
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
MtbColt mtbColt = new MtbColt();
|
var createUDSRequest = new CreateUDSRequestDTO()
|
||||||
mtbColt.initDefaultFields(mDefaultGestione)
|
|
||||||
.setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE ? "PICKING LIBERO" : null)
|
.setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE ? "PICKING LIBERO" : null)
|
||||||
// .setCodAnag(SettingsManager.iDB().getProduzioneDefaultCodAnag())
|
.setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
|
||||||
.setSegno(-1)
|
.setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO)
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
.setOrderRequired(mFlagAskLineaProd);
|
||||||
|
|
||||||
if (customNumCollo != null) {
|
if (customNumCollo != null) {
|
||||||
mtbColt.setNumCollo(customNumCollo);
|
createUDSRequest.setNumCollo(customNumCollo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(customSerCollo)) {
|
if (!UtilityString.isNullOrEmpty(customSerCollo)) {
|
||||||
mtbColt.setSerCollo(customSerCollo);
|
createUDSRequest.setSerCollo(customSerCollo);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(codJfas)) {
|
||||||
|
createUDSRequest.setCodJfas(codJfas);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vtbDest != null) {
|
if (vtbDest != null) {
|
||||||
mtbColt.setCodAnag(vtbDest.getCodAnag());
|
createUDSRequest.setCodAnag(vtbDest.getCodAnag());
|
||||||
mtbColt.setCodVdes(vtbDest.getCodVdes());
|
createUDSRequest.setCodVdes(vtbDest.getCodVdes());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(codJcom)) {
|
|
||||||
mtbColt.setCodJcom(codJcom);
|
|
||||||
}
|
|
||||||
|
|
||||||
mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
|
mColliScaricoRESTConsumer.createUDS(createUDSRequest, mtbColt -> {
|
||||||
mtbColt
|
mtbColt
|
||||||
.setNumCollo(value.getNumCollo())
|
|
||||||
.setDataCollo(value.getDataColloS())
|
|
||||||
.setMtbColr(new ObservableArrayList<>());
|
.setMtbColr(new ObservableArrayList<>());
|
||||||
|
|
||||||
this.mCurrentMtbColt = mtbColt;
|
this.mCurrentMtbColt = mtbColt;
|
||||||
@@ -328,6 +358,43 @@ public class PickingLiberoViewModel {
|
|||||||
if (onComplete != null) onComplete.run();
|
if (onComplete != null) onComplete.run();
|
||||||
this.sendLUOpened(mtbColt);
|
this.sendLUOpened(mtbColt);
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
|
|
||||||
|
// MtbColt mtbColt = new MtbColt();
|
||||||
|
// mtbColt.initDefaultFields(mDefaultGestione)
|
||||||
|
// .setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE ? "PICKING LIBERO" : null)
|
||||||
|
// .setSegno(-1)
|
||||||
|
// .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
//
|
||||||
|
// if (customNumCollo != null) {
|
||||||
|
// mtbColt.setNumCollo(customNumCollo);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (!UtilityString.isNullOrEmpty(customSerCollo)) {
|
||||||
|
// mtbColt.setSerCollo(customSerCollo);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (vtbDest != null) {
|
||||||
|
// mtbColt.setCodAnag(vtbDest.getCodAnag());
|
||||||
|
// mtbColt.setCodVdes(vtbDest.getCodVdes());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (!UtilityString.isNullOrEmpty(codJcom)) {
|
||||||
|
// mtbColt.setCodJcom(codJcom);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
|
||||||
|
// mtbColt
|
||||||
|
// .setNumCollo(value.getNumCollo())
|
||||||
|
// .setDataCollo(value.getDataColloS())
|
||||||
|
// .setMtbColr(new ObservableArrayList<>());
|
||||||
|
//
|
||||||
|
// this.mCurrentMtbColt = mtbColt;
|
||||||
|
//
|
||||||
|
// this.sendOnLoadingEnded();
|
||||||
|
//
|
||||||
|
// if (onComplete != null) onComplete.run();
|
||||||
|
// this.sendLUOpened(mtbColt);
|
||||||
|
// }, this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model) {
|
private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model) {
|
||||||
@@ -868,6 +935,10 @@ 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) {
|
||||||
|
if (this.mListener != null) mListener.onLULineaProdRequired(onComplete, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
private void sendArtSelectionRequest(List<MtbColr> mtbColrsToPick, MtbAart mtbAart, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort) {
|
private void sendArtSelectionRequest(List<MtbColr> mtbColrsToPick, MtbAart mtbAart, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort) {
|
||||||
if (this.mListener != null)
|
if (this.mListener != null)
|
||||||
mListener.onArtSelectionRequest(mtbColrsToPick, mtbAart, onComplete, onAbort);
|
mListener.onArtSelectionRequest(mtbColrsToPick, mtbAart, onComplete, onAbort);
|
||||||
@@ -924,6 +995,8 @@ 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 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);
|
||||||
|
|
||||||
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFrag
|
|||||||
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_print.DialogAskShouldPrint;
|
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
|
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;
|
||||||
|
|
||||||
@@ -276,7 +276,8 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInfoAggiuntiveRequired(RunnableArgss<String, MtbTCol> onComplete) {
|
public void onInfoAggiuntiveRequired(RunnableArgss<String, MtbTCol> onComplete) {
|
||||||
DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
|
||||||
|
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -93,6 +93,8 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
|||||||
//Load fabbisogno
|
//Load fabbisogno
|
||||||
this.mViewModel.loadFabbisogno(startDate, endDate, codMdep, this::startPickingActivity);
|
this.mViewModel.loadFabbisogno(startDate, endDate, codMdep, this::startPickingActivity);
|
||||||
// }
|
// }
|
||||||
|
}, () -> {
|
||||||
|
popMe();
|
||||||
})
|
})
|
||||||
.show(getActivity().getSupportFragmentManager(), "tag");
|
.show(getActivity().getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
@@ -123,7 +125,11 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
|||||||
.setQtaOrd(x.getQtaFabbisogno())
|
.setQtaOrd(x.getQtaFabbisogno())
|
||||||
.setNumCnfOrd(x.getNumCnfFabbisogno())
|
.setNumCnfOrd(x.getNumCnfFabbisogno())
|
||||||
.setQtaCnfOrd(UtilityBigDecimal.divide(x.getQtaFabbisogno(), x.getNumCnfFabbisogno()))
|
.setQtaCnfOrd(UtilityBigDecimal.divide(x.getQtaFabbisogno(), x.getNumCnfFabbisogno()))
|
||||||
.setFlagEnablePickManuale(false);
|
.setFlagEnablePickManuale(false)
|
||||||
|
.setCodMgrp(x.getCodMgrp())
|
||||||
|
.setDescrizioneMgrp(x.getDescrizioneMgrp())
|
||||||
|
.setCodMsgr(x.getCodMsgr())
|
||||||
|
.setDescrizioneMsgr(x.getDescrizioneMsgr());
|
||||||
|
|
||||||
sitArtOrdDTO.getExtraInfo().put("dataInizio", x.getDataInizio());
|
sitArtOrdDTO.getExtraInfo().put("dataInizio", x.getDataInizio());
|
||||||
sitArtOrdDTO.getExtraInfo().put("dataFine", x.getDataFine());
|
sitArtOrdDTO.getExtraInfo().put("dataFine", x.getDataFine());
|
||||||
@@ -132,6 +138,8 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
|||||||
})
|
})
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
|
boolean divideByGrpMerc = SettingsManager.iDB().isGroupPoductionByCommodityGroup();
|
||||||
|
|
||||||
SpedizioneActivity.startActivity(getActivity(),
|
SpedizioneActivity.startActivity(getActivity(),
|
||||||
sitArtOrdDTOS,
|
sitArtOrdDTOS,
|
||||||
null,
|
null,
|
||||||
@@ -139,7 +147,8 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
|||||||
GestioneEnum.LAVORAZIONE,
|
GestioneEnum.LAVORAZIONE,
|
||||||
+1,
|
+1,
|
||||||
MtbColr.Causale.VERSAMENTO,
|
MtbColr.Causale.VERSAMENTO,
|
||||||
DialogRowInfoProdFabbisognoLineeProdView.class);
|
DialogRowInfoProdFabbisognoLineeProdView.class,
|
||||||
|
divideByGrpMerc);
|
||||||
|
|
||||||
popMe();
|
popMe();
|
||||||
|
|
||||||
|
|||||||
@@ -36,20 +36,22 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
|
|||||||
DialogAskMagazzinoProssimitaViewModel mViewModel;
|
DialogAskMagazzinoProssimitaViewModel mViewModel;
|
||||||
|
|
||||||
private final RunnableArgsss<JtbFasi, Date, Date> mOnItemSelected;
|
private final RunnableArgsss<JtbFasi, Date, Date> mOnItemSelected;
|
||||||
|
private final Runnable mOnAbort;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private DialogAskMagazzinoProssimitaBinding mBindings;
|
private DialogAskMagazzinoProssimitaBinding mBindings;
|
||||||
|
|
||||||
// private JtbFasi mSelectedItem;
|
// private JtbFasi mSelectedItem;
|
||||||
|
|
||||||
public static DialogAskMagazzinoProssimitaView newInstance(RunnableArgsss<JtbFasi, Date, Date> onItemSelected) {
|
public static DialogAskMagazzinoProssimitaView newInstance(RunnableArgsss<JtbFasi, Date, Date> onItemSelected, Runnable onAbort) {
|
||||||
return new DialogAskMagazzinoProssimitaView(onItemSelected);
|
return new DialogAskMagazzinoProssimitaView(onItemSelected, onAbort);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private DialogAskMagazzinoProssimitaView(RunnableArgsss<JtbFasi, Date, Date> onItemSelected) {
|
private DialogAskMagazzinoProssimitaView(RunnableArgsss<JtbFasi, Date, Date> onItemSelected, Runnable onAbort) {
|
||||||
super();
|
super();
|
||||||
this.mOnItemSelected = onItemSelected;
|
this.mOnItemSelected = onItemSelected;
|
||||||
|
this.mOnAbort = onAbort;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -79,6 +81,7 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
|
|||||||
// } else {
|
// } else {
|
||||||
// FBToast.warningToast(mContext, getResources().getString(R.string.please_select_an_item), Toast.LENGTH_LONG);
|
// FBToast.warningToast(mContext, getResources().getString(R.string.please_select_an_item), Toast.LENGTH_LONG);
|
||||||
// }
|
// }
|
||||||
|
mOnItemSelected.run(null, mViewModel.startDate, mViewModel.endDate);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -86,6 +89,7 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
|
|||||||
@Override
|
@Override
|
||||||
public void onSingleClick(View v) {
|
public void onSingleClick(View v) {
|
||||||
getDialog().dismiss();
|
getDialog().dismiss();
|
||||||
|
mOnAbort.run();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -111,7 +115,6 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
|
|||||||
@Override
|
@Override
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
super.onDismiss(dialog);
|
super.onDismiss(dialog);
|
||||||
mOnItemSelected.run(null, mViewModel.startDate, mViewModel.endDate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private final View.OnClickListener onStartDateClickListener = new OnSingleClickListener() {
|
private final View.OnClickListener onStartDateClickListener = new OnSingleClickListener() {
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ public class ProdFabbisognoLineeProdDTO {
|
|||||||
private BigDecimal numCnfFabbisogno;
|
private BigDecimal numCnfFabbisogno;
|
||||||
private Date dataInizio;
|
private Date dataInizio;
|
||||||
private Date dataFine;
|
private Date dataFine;
|
||||||
|
private String codMgrp;
|
||||||
|
private String descrizioneMgrp;
|
||||||
|
private String codMsgr;
|
||||||
|
private String descrizioneMsgr;
|
||||||
|
|
||||||
public ProdFabbisognoLineeProdDTO() {
|
public ProdFabbisognoLineeProdDTO() {
|
||||||
}
|
}
|
||||||
@@ -118,4 +122,40 @@ public class ProdFabbisognoLineeProdDTO {
|
|||||||
this.dataFine = dataFine;
|
this.dataFine = dataFine;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodMgrp() {
|
||||||
|
return codMgrp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdFabbisognoLineeProdDTO setCodMgrp(String codMgrp) {
|
||||||
|
this.codMgrp = codMgrp;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizioneMgrp() {
|
||||||
|
return descrizioneMgrp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdFabbisognoLineeProdDTO setDescrizioneMgrp(String descrizioneMgrp) {
|
||||||
|
this.descrizioneMgrp = descrizioneMgrp;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMsgr() {
|
||||||
|
return codMsgr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdFabbisognoLineeProdDTO setCodMsgr(String codMsgr) {
|
||||||
|
this.codMsgr = codMsgr;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizioneMsgr() {
|
||||||
|
return descrizioneMsgr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdFabbisognoLineeProdDTO setDescrizioneMsgr(String descrizioneMsgr) {
|
||||||
|
this.descrizioneMsgr = descrizioneMsgr;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,17 @@ import java.util.List;
|
|||||||
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.rest.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoBufferRESTConsumerService;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
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.utility.UtilityDB;
|
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
|
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.Callback;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class ProdFabbisognoLineeProdRESTConsumer extends _BaseRESTConsumer {
|
public class ProdFabbisognoLineeProdRESTConsumer extends _BaseRESTConsumer {
|
||||||
@@ -26,254 +33,20 @@ public class ProdFabbisognoLineeProdRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
|
|
||||||
public void loadFabbisogno(Date startDate, Date endDate, String codMdep, RunnableArgs<List<ProdFabbisognoLineeProdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void loadFabbisogno(Date startDate, Date endDate, String codMdep, RunnableArgs<List<ProdFabbisognoLineeProdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
String sql = "WITH input_values AS ( " +
|
ProdFabbisognoLineeProdRESTConsumerService prodFabbisognoLineeProdRESTConsumerService = RESTBuilder.getService(ProdFabbisognoLineeProdRESTConsumerService.class);
|
||||||
" SELECT " + UtilityDB.valueToString(startDate) + " AS data_inizio, " +
|
prodFabbisognoLineeProdRESTConsumerService.loadFabbisogno(UtilityDate.formatDate(startDate, "yyyy-MM-dd"), UtilityDate.formatDate(endDate, "yyyy-MM-dd"), codMdep)
|
||||||
" " + UtilityDB.valueToString(endDate) + " AS data_fine, " +
|
.enqueue(new Callback<>() {
|
||||||
// " " + UtilityDB.valueToString(lineaProd) + " AS linea_prod, " +
|
@Override
|
||||||
" " + UtilityDB.valueToString(codMdep) + " AS cod_mdep)," +
|
public void onResponse(Call<ServiceRESTResponse<List<ProdFabbisognoLineeProdDTO>>> call,
|
||||||
" withdraw_mtb_colr AS ( " +
|
Response<ServiceRESTResponse<List<ProdFabbisognoLineeProdDTO>>> response) {
|
||||||
" SELECT cod_mart, " +
|
analyzeAnswer(response, "retrieveFabbisogno", onComplete, onFailed);
|
||||||
" SUM(ISNULL(qta_col, 0)) as qta_col, " +
|
}
|
||||||
" SUM(ISNULL(num_cnf, 0)) as num_cnf, " +
|
|
||||||
" mtb_colr.data_ord, " +
|
|
||||||
" mtb_colr.num_ord, " +
|
|
||||||
" mtb_colr.gestione " +
|
|
||||||
" FROM mtb_colr " +
|
|
||||||
" INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and " +
|
|
||||||
" mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo " +
|
|
||||||
" WHERE segno = -1 " +
|
|
||||||
" AND cod_dtip IS NULL " +
|
|
||||||
" GROUP BY cod_mart, " +
|
|
||||||
" mtb_colr.data_ord, " +
|
|
||||||
" mtb_colr.num_ord, " +
|
|
||||||
" mtb_colr.gestione " +
|
|
||||||
" ), " +
|
|
||||||
" custom_mtb_colr AS (SELECT cod_mart, " +
|
|
||||||
" SUM(qta_col) AS qta_col, " +
|
|
||||||
" SUM(num_cnf) AS num_cnf, " +
|
|
||||||
" posizione " +
|
|
||||||
" FROM mvw_sitart_udc_det_inventario " +
|
|
||||||
" GROUP BY cod_mart, posizione), " +
|
|
||||||
" grouped_ord AS ( " +
|
|
||||||
" SELECT dtb_ordr.cod_mart, " +
|
|
||||||
" dtb_ordt.cod_jfas, " +
|
|
||||||
" dtb_ordt.cod_mdep, " +
|
|
||||||
" dtb_ordt.gestione, " +
|
|
||||||
" CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) - " +
|
|
||||||
" SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord, " +
|
|
||||||
" SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord, " +
|
|
||||||
" SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata, " +
|
|
||||||
" SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata " +
|
|
||||||
" FROM dtb_ordr " +
|
|
||||||
" INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND " +
|
|
||||||
" dtb_ordr.data_ord = dtb_ordt.data_ord AND " +
|
|
||||||
" dtb_ordr.num_ord = dtb_ordt.num_ord " +
|
|
||||||
" LEFT OUTER JOIN withdraw_mtb_colr " +
|
|
||||||
" ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND " +
|
|
||||||
" withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND " +
|
|
||||||
" withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND " +
|
|
||||||
" withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart " +
|
|
||||||
" CROSS APPLY input_values " +
|
|
||||||
" WHERE dtb_ordt.gestione = 'L' " +
|
|
||||||
" AND flag_evaso = 'I' " +
|
|
||||||
" AND flag_evaso_prod = 'I' " +
|
|
||||||
" AND dtb_ordr.flag_evaso_forzato = 'N' " +
|
|
||||||
" AND flag_annulla = 'N' " +
|
|
||||||
" AND dtb_ordt.cod_mdep = input_values.cod_mdep " +
|
|
||||||
" AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine " +
|
|
||||||
" GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione " +
|
|
||||||
" ), " +
|
|
||||||
" tmp_ord AS (SELECT grouped_ord.cod_mart, " +
|
|
||||||
" mtb_aart.unt_mis, " +
|
|
||||||
" grouped_ord.cod_jfas, " +
|
|
||||||
" SUM(qta_ord) - SUM(qta_col_scaricata) AS qta_ord, " +
|
|
||||||
" SUM(num_cnf_ord) - SUM(num_cnf_scaricata) AS num_cnf_ord " +
|
|
||||||
" FROM grouped_ord " +
|
|
||||||
" INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart " +
|
|
||||||
" CROSS APPLY input_values " +
|
|
||||||
" GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis, grouped_ord.cod_jfas " +
|
|
||||||
" ), " +
|
|
||||||
" ord_without_positioned_mtb_colt AS ( " +
|
|
||||||
" SELECT tmp_ord.cod_mart, " +
|
|
||||||
" tmp_ord.cod_jfas, " +
|
|
||||||
" ISNULL(custom_mtb_colr_on_linea.posizione, tmp_ord.cod_jfas) AS posizione, " +
|
|
||||||
" unt_mis, " +
|
|
||||||
" qta_ord AS qta_ord_calc, " +
|
|
||||||
" num_cnf_ord AS num_cnf_ord_calc, " +
|
|
||||||
" ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " +
|
|
||||||
" ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " +
|
|
||||||
" qta_ord - ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_fabbisogno, " +
|
|
||||||
" num_cnf_ord - ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_fabbisogno " +
|
|
||||||
" FROM tmp_ord " +
|
|
||||||
" INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " +
|
|
||||||
" AND tmp_ord.cod_jfas = jrl_fase_posizioni.posizione " +
|
|
||||||
" LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " +
|
|
||||||
" ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " +
|
|
||||||
" tmp_ord.cod_jfas = custom_mtb_colr_on_linea.posizione " +
|
|
||||||
" " +
|
|
||||||
" UNION ALL " +
|
|
||||||
" " +
|
|
||||||
" SELECT DISTINCT tmp_ord.cod_mart, " +
|
|
||||||
" null AS cod_jfas, " +
|
|
||||||
" jrl_fase_posizioni.posizione, " +
|
|
||||||
" unt_mis, " +
|
|
||||||
" 0 AS qta_ord_calc, " +
|
|
||||||
" 0 AS num_cnf_ord_calc, " +
|
|
||||||
" ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " +
|
|
||||||
" ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " +
|
|
||||||
" 0 AS qta_fabbisogno, " +
|
|
||||||
" 0 AS num_cnf_fabbisogno " +
|
|
||||||
" FROM tmp_ord " +
|
|
||||||
" INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " +
|
|
||||||
" AND tmp_ord.cod_jfas <> jrl_fase_posizioni.posizione " +
|
|
||||||
" " +
|
|
||||||
" " +
|
|
||||||
" LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " +
|
|
||||||
" ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " +
|
|
||||||
" jrl_fase_posizioni.posizione = custom_mtb_colr_on_linea.posizione " +
|
|
||||||
" ) " +
|
|
||||||
"SELECT cod_mart, " +
|
|
||||||
" unt_mis, " +
|
|
||||||
" input_values.data_inizio, " +
|
|
||||||
" input_values.data_fine, " +
|
|
||||||
" SUM(qta_ord_calc) AS qta_ord, " +
|
|
||||||
" SUM(num_cnf_ord_calc) AS num_cnf_ord, " +
|
|
||||||
" SUM(qta_gia_posizionata) AS qta_col_versata, " +
|
|
||||||
" SUM(num_cnf_gia_posizionata) AS num_cnf_versata, " +
|
|
||||||
" SUM(qta_ord_calc - qta_gia_posizionata) AS qta_fabbisogno, " +
|
|
||||||
" SUM(num_cnf_ord_calc - num_cnf_gia_posizionata) AS num_cnf_fabbisogno " +
|
|
||||||
"FROM ord_without_positioned_mtb_colt " +
|
|
||||||
"CROSS APPLY input_values " +
|
|
||||||
"GROUP BY cod_mart, unt_mis, input_values.data_inizio, input_values.data_fine " +
|
|
||||||
"HAVING SUM(qta_ord_calc - qta_gia_posizionata) > 0 AND SUM(num_cnf_ord_calc - num_cnf_gia_posizionata) > 0 " +
|
|
||||||
"ORDER BY cod_mart";
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<ProdFabbisognoLineeProdDTO>>> call, Throwable t) {
|
||||||
/*
|
onFailed.run(new Exception(t));
|
||||||
* Query splittata per cod_jfas (più pesante)
|
}
|
||||||
WITH input_values AS (SELECT '2021-02-15' AS data_inizio,
|
});
|
||||||
'2021-02-28' AS data_fine,
|
|
||||||
--'SC06' AS linea_prod,
|
|
||||||
'34' AS cod_mdep),
|
|
||||||
withdraw_mtb_colr AS (
|
|
||||||
SELECT cod_mart,
|
|
||||||
SUM(ISNULL(qta_col, 0)) as qta_col,
|
|
||||||
SUM(ISNULL(num_cnf, 0)) as num_cnf,
|
|
||||||
mtb_colr.data_ord,
|
|
||||||
mtb_colr.num_ord,
|
|
||||||
mtb_colr.gestione
|
|
||||||
FROM mtb_colr
|
|
||||||
INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and
|
|
||||||
mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo
|
|
||||||
WHERE segno = -1
|
|
||||||
and cod_dtip IS NULL
|
|
||||||
GROUP BY cod_mart,
|
|
||||||
mtb_colr.data_ord,
|
|
||||||
mtb_colr.num_ord,
|
|
||||||
mtb_colr.gestione
|
|
||||||
),
|
|
||||||
custom_mtb_colr AS (SELECT cod_mart,
|
|
||||||
SUM(qta_col) AS qta_col,
|
|
||||||
SUM(num_cnf) AS num_cnf,
|
|
||||||
posizione
|
|
||||||
FROM mvw_sitart_udc_det_inventario
|
|
||||||
GROUP BY cod_mart, posizione),
|
|
||||||
grouped_ord AS (
|
|
||||||
SELECT dtb_ordr.cod_mart,
|
|
||||||
dtb_ordt.cod_jfas,
|
|
||||||
dtb_ordt.cod_mdep,
|
|
||||||
dtb_ordt.gestione,
|
|
||||||
CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) -
|
|
||||||
SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord,
|
|
||||||
SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord,
|
|
||||||
SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata,
|
|
||||||
SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata
|
|
||||||
FROM dtb_ordr
|
|
||||||
INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND
|
|
||||||
dtb_ordr.data_ord = dtb_ordt.data_ord AND
|
|
||||||
dtb_ordr.num_ord = dtb_ordt.num_ord
|
|
||||||
LEFT OUTER JOIN withdraw_mtb_colr
|
|
||||||
ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND
|
|
||||||
withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND
|
|
||||||
withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND
|
|
||||||
withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart
|
|
||||||
CROSS APPLY input_values
|
|
||||||
WHERE dtb_ordt.gestione = 'L'
|
|
||||||
AND flag_evaso = 'I'
|
|
||||||
AND dtb_ordr.flag_evaso_forzato = 'N'
|
|
||||||
AND flag_annulla = 'N'
|
|
||||||
AND dtb_ordt.cod_mdep = input_values.cod_mdep
|
|
||||||
AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine
|
|
||||||
GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione
|
|
||||||
),
|
|
||||||
tmp_ord AS (SELECT grouped_ord.cod_mart,
|
|
||||||
mtb_aart.unt_mis,
|
|
||||||
grouped_ord.cod_jfas,
|
|
||||||
SUM(qta_ord) - SUM(qta_col_scaricata) AS qta_ord,
|
|
||||||
SUM(num_cnf_ord) - SUM(num_cnf_scaricata) AS num_cnf_ord
|
|
||||||
FROM grouped_ord
|
|
||||||
INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart
|
|
||||||
CROSS APPLY input_values
|
|
||||||
GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis, grouped_ord.cod_jfas
|
|
||||||
),
|
|
||||||
ord_without_positioned_mtb_colt AS (
|
|
||||||
SELECT tmp_ord.cod_mart,
|
|
||||||
tmp_ord.cod_jfas,
|
|
||||||
ISNULL(custom_mtb_colr_on_linea.posizione, tmp_ord.cod_jfas) AS posizione,
|
|
||||||
unt_mis,
|
|
||||||
qta_ord AS qta_ord_calc,
|
|
||||||
num_cnf_ord AS num_cnf_ord_calc,
|
|
||||||
ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata,
|
|
||||||
ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata,
|
|
||||||
qta_ord - ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_fabbisogno,
|
|
||||||
num_cnf_ord - ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_fabbisogno
|
|
||||||
FROM tmp_ord
|
|
||||||
INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas
|
|
||||||
AND tmp_ord.cod_jfas = jrl_fase_posizioni.posizione
|
|
||||||
LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea
|
|
||||||
ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND
|
|
||||||
tmp_ord.cod_jfas = custom_mtb_colr_on_linea.posizione
|
|
||||||
|
|
||||||
UNION ALL
|
|
||||||
|
|
||||||
SELECT DISTINCT tmp_ord.cod_mart,
|
|
||||||
null AS cod_jfas,
|
|
||||||
jrl_fase_posizioni.posizione,
|
|
||||||
unt_mis,
|
|
||||||
0 AS qta_ord_calc,
|
|
||||||
0 AS num_cnf_ord_calc,
|
|
||||||
ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata,
|
|
||||||
ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata,
|
|
||||||
0 AS qta_fabbisogno,
|
|
||||||
0 AS num_cnf_fabbisogno
|
|
||||||
FROM tmp_ord
|
|
||||||
INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas
|
|
||||||
AND tmp_ord.cod_jfas <> jrl_fase_posizioni.posizione
|
|
||||||
|
|
||||||
|
|
||||||
LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea
|
|
||||||
ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND
|
|
||||||
jrl_fase_posizioni.posizione = custom_mtb_colr_on_linea.posizione
|
|
||||||
)
|
|
||||||
SELECT cod_mart,
|
|
||||||
cod_jfas,
|
|
||||||
posizione,
|
|
||||||
unt_mis,
|
|
||||||
qta_ord_calc AS qta_ord,
|
|
||||||
num_cnf_ord_calc AS num_cnf_ord,
|
|
||||||
qta_gia_posizionata AS qta_col_versata,
|
|
||||||
num_cnf_gia_posizionata AS num_cnf_versata,
|
|
||||||
qta_ord_calc - qta_gia_posizionata AS qta_fabbisogno,
|
|
||||||
num_cnf_ord_calc - num_cnf_gia_posizionata AS num_cnf_fabbisogno
|
|
||||||
FROM ord_without_positioned_mtb_colt
|
|
||||||
|
|
||||||
ORDER BY cod_mart, posizione
|
|
||||||
* */
|
|
||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<ProdFabbisognoLineeProdDTO>>() {}.getType();
|
|
||||||
this.mSystemRESTConsumer.processSql(sql, typeOfObjectsList, onComplete, onFailed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
|
public interface ProdFabbisognoLineeProdRESTConsumerService
|
||||||
|
{
|
||||||
|
@GET("wms/approvvigionamento/retrieveFabbisogno")
|
||||||
|
Call<ServiceRESTResponse<List<ProdFabbisognoLineeProdDTO>>> loadFabbisogno(@Query("startDate") String startDate,
|
||||||
|
@Query("endDate") String endDate,
|
||||||
|
@Query("codMdep") String codMdep);
|
||||||
|
}
|
||||||
@@ -45,7 +45,9 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public ProdRecuperoMaterialeViewModel(ProdRecuperMaterialeRESTConsumer prodRecuperMaterialeRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer) {
|
public ProdRecuperoMaterialeViewModel(ProdRecuperMaterialeRESTConsumer prodRecuperMaterialeRESTConsumer,
|
||||||
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
|
PrinterRESTConsumer printerRESTConsumer) {
|
||||||
this.mProdRecuperMaterialeRESTConsumer = prodRecuperMaterialeRESTConsumer;
|
this.mProdRecuperMaterialeRESTConsumer = prodRecuperMaterialeRESTConsumer;
|
||||||
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
||||||
this.mPrinterRESTConsumer = printerRESTConsumer;
|
this.mPrinterRESTConsumer = printerRESTConsumer;
|
||||||
@@ -53,27 +55,25 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
|
|
||||||
public void init(String codJfas) {
|
public void init(String codJfas) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
new Thread(() -> {
|
|
||||||
|
|
||||||
mProdRecuperMaterialeRESTConsumer.loadLastULVersate(codJfas, ulList -> {
|
mProdRecuperMaterialeRESTConsumer.loadLastULVersate(codJfas, ulList -> {
|
||||||
this.mUlList.setValue(ulList);
|
this.mUlList.setValue(ulList);
|
||||||
|
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
|
|
||||||
}).start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void processBarcodeDTO(BarcodeScanDTO data) {
|
public void processBarcodeDTO(BarcodeScanDTO data) {
|
||||||
if (UtilityBarcode.isEtichettaAnonima(data) || UtilityBarcode.isEtichetta128(data)) {
|
if (UtilityBarcode.isEtichettaAnonima(data) || UtilityBarcode.isEtichetta128(data)) {
|
||||||
this.executeEtichettaUL(data);
|
this.executeEtichettaLU(data.getStringValue());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void executeEtichettaUL(BarcodeScanDTO barcodeScanDTO) {
|
private void executeEtichettaLU(String sscc) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
this.mColliMagazzinoRESTConsumer.getBySSCC(barcodeScanDTO.getStringValue(), true, false, mtbColt -> {
|
this.mColliMagazzinoRESTConsumer.getBySSCC(sscc, true, false, mtbColt -> {
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
if (mtbColt != null) {
|
if (mtbColt != null) {
|
||||||
@@ -116,7 +116,7 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
|
|
||||||
if (!UtilityBigDecimal.equalsTo(qtaDaEvadere, BigDecimal.ZERO)) {
|
if (!UtilityBigDecimal.equalsTo(qtaDaEvadere, BigDecimal.ZERO)) {
|
||||||
|
|
||||||
if(item.getMtbAart().isFlagQtaCnfFissaBoolean())
|
if (item.getMtbAart().isFlagQtaCnfFissaBoolean())
|
||||||
numCnfDaEvadere = UtilityBigDecimal.divide(qtaDaEvadere, item.getQtaCnf());
|
numCnfDaEvadere = UtilityBigDecimal.divide(qtaDaEvadere, item.getQtaCnf());
|
||||||
else numCnfDaEvadere = item.getNumCnf();
|
else numCnfDaEvadere = item.getNumCnf();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,97 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_recupero_materiale.views;
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.graphics.Color;
|
|
||||||
import android.graphics.drawable.ColorDrawable;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
|
||||||
import it.integry.integrywmsnative.databinding.DialogInputQuantityToReturnBinding;
|
|
||||||
|
|
||||||
public class InputQuantityToReturnDialog {
|
|
||||||
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
private Dialog currentDialog;
|
|
||||||
|
|
||||||
public static Dialog make(final Context context, MtbAart mtbAart, BigDecimal minQuantity, BigDecimal maxQuantity, RunnableArgs<BigDecimal> onDialogDismiss) {
|
|
||||||
return new InputQuantityToReturnDialog(context, mtbAart, minQuantity, maxQuantity, onDialogDismiss).currentDialog;
|
|
||||||
}
|
|
||||||
|
|
||||||
private InputQuantityToReturnDialog(Context context, MtbAart mtbAart, BigDecimal minQuantity, BigDecimal maxQuantity, RunnableArgs<BigDecimal> onDialogDismiss) {
|
|
||||||
this.mContext = context;
|
|
||||||
|
|
||||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
|
||||||
DialogInputQuantityToReturnBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_input_quantity_to_return, null, false);
|
|
||||||
|
|
||||||
currentDialog = new Dialog(context);
|
|
||||||
currentDialog.setContentView(bindings.getRoot());
|
|
||||||
|
|
||||||
currentDialog.setCanceledOnTouchOutside(false);
|
|
||||||
currentDialog.setCancelable(false);
|
|
||||||
currentDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
|
||||||
|
|
||||||
InputQuantityToReturnViewModel viewModel = new InputQuantityToReturnViewModel();
|
|
||||||
viewModel.setMtbAart(mtbAart)
|
|
||||||
.setMinQuantity(minQuantity)
|
|
||||||
.setMaxQuantity(maxQuantity);
|
|
||||||
|
|
||||||
bindings.setMViewModel(viewModel);
|
|
||||||
|
|
||||||
bindings.buttonConfirm.setOnClickListener(v -> {
|
|
||||||
currentDialog.dismiss();
|
|
||||||
onDialogDismiss.run(BigDecimal.ZERO);
|
|
||||||
});
|
|
||||||
|
|
||||||
bindings.buttonAbort.setOnClickListener(v -> {
|
|
||||||
currentDialog.dismiss();
|
|
||||||
onDialogDismiss.run(BigDecimal.ZERO);
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public class InputQuantityToReturnViewModel {
|
|
||||||
|
|
||||||
public MtbAart mtbAart;
|
|
||||||
public BigDecimal minQuantity;
|
|
||||||
public BigDecimal maxQuantity;
|
|
||||||
|
|
||||||
public MtbAart getMtbAart() {
|
|
||||||
return mtbAart;
|
|
||||||
}
|
|
||||||
|
|
||||||
public InputQuantityToReturnViewModel setMtbAart(MtbAart mtbAart) {
|
|
||||||
this.mtbAart = mtbAart;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getMinQuantity() {
|
|
||||||
return minQuantity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public InputQuantityToReturnViewModel setMinQuantity(BigDecimal minQuantity) {
|
|
||||||
this.minQuantity = minQuantity;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getMaxQuantity() {
|
|
||||||
return maxQuantity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public InputQuantityToReturnViewModel setMaxQuantity(BigDecimal maxQuantity) {
|
|
||||||
this.maxQuantity = maxQuantity;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -10,7 +10,6 @@ import android.view.ViewGroup;
|
|||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.databinding.ObservableField;
|
import androidx.databinding.ObservableField;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
@@ -19,17 +18,23 @@ import com.annimon.stream.Stream;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.MainApplication;
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
import it.integry.integrywmsnative.core.di.BindableString;
|
import it.integry.integrywmsnative.core.di.BindableString;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
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;
|
||||||
@@ -40,20 +45,27 @@ import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeBi
|
|||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.VersamentoMerceOrdineLavListModel;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.VersamentoMerceOrdineLavListModel;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ui.ChooseOrdsLavFromListAdapter;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ui.ChooseOrdsLavFromListAdapter;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||||
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.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUView;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||||
|
|
||||||
public class ProdVersamentoMaterialeFragment extends BaseFragment implements ProdVersamentoMaterialeViewModel.Listener, ITitledFragment {
|
public class ProdVersamentoMaterialeFragment extends BaseFragment implements ProdVersamentoMaterialeViewModel.Listener, ITitledFragment {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ProdVersamentoMaterialeViewModel mViewModel;
|
ProdVersamentoMaterialeViewModel mViewModel;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
DialogInputQuantityV2View mDialogInputQuantityV2View;
|
||||||
|
|
||||||
private FragmentProdVersamentoMaterialeBinding mBinding;
|
private FragmentProdVersamentoMaterialeBinding mBinding;
|
||||||
|
|
||||||
private final ObservableField<MtbColt> mCurrentMtbColt = new ObservableField<>();
|
private final ObservableField<MtbColt> mCurrentMtbColt = new ObservableField<>();
|
||||||
|
private final ObservableField<Boolean> mCurrentMtbColtSet = new ObservableField<>(false);
|
||||||
private final ObservableArrayList<VersamentoMerceOrdineLavListModel> mCurrentOrders = new ObservableArrayList<>();
|
private final ObservableArrayList<VersamentoMerceOrdineLavListModel> mCurrentOrders = new ObservableArrayList<>();
|
||||||
|
|
||||||
public final BindableString codPrimaryArt = new BindableString();
|
public final BindableString codPrimaryArt = new BindableString();
|
||||||
@@ -63,6 +75,8 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
|
|||||||
public final ObservableField<Boolean> fabVisible = new ObservableField<>(false);
|
public final ObservableField<Boolean> fabVisible = new ObservableField<>(false);
|
||||||
|
|
||||||
|
|
||||||
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
|
||||||
public ProdVersamentoMaterialeFragment() {
|
public ProdVersamentoMaterialeFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
@@ -76,7 +90,7 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
|
|||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
// Inflate the layout for this fragment
|
// Inflate the layout for this fragment
|
||||||
setRetainInstance(true);
|
setRetainInstance(true);
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_versamento_materiale, container, false);
|
mBinding = FragmentProdVersamentoMaterialeBinding.inflate(inflater, container, false);
|
||||||
|
|
||||||
MainApplication.appComponent
|
MainApplication.appComponent
|
||||||
.prodVersamentoMaterialeComponent()
|
.prodVersamentoMaterialeComponent()
|
||||||
@@ -99,12 +113,15 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
|
|||||||
this.mViewModel.init(SettingsManager.iDB().isFlagVersamentoDirettoProduzione());
|
this.mViewModel.init(SettingsManager.iDB().isFlagVersamentoDirettoProduzione());
|
||||||
|
|
||||||
this.initView();
|
this.initView();
|
||||||
this.openLU();
|
this.initBarcodeReader();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initView() {
|
private void initView() {
|
||||||
this.mViewModel.getOpenedOrderLavMutableLiveList().observe(getViewLifecycleOwner(), this::refreshList);
|
this.mViewModel.getOpenedOrderLavMutableLiveList().observe(getViewLifecycleOwner(), this::refreshList);
|
||||||
this.mViewModel.getMtbColtMutableLiveData().observe(getViewLifecycleOwner(), this.mCurrentMtbColt::set);
|
this.mViewModel.getMtbColtMutableLiveData().observe(getViewLifecycleOwner(), value -> {
|
||||||
|
this.mCurrentMtbColt.set(value);
|
||||||
|
this.mCurrentMtbColtSet.set(true);
|
||||||
|
});
|
||||||
|
|
||||||
this.mViewModel.getMtbColrMutableLiveData().observe(getViewLifecycleOwner(), firstMtbColr -> {
|
this.mViewModel.getMtbColrMutableLiveData().observe(getViewLifecycleOwner(), firstMtbColr -> {
|
||||||
codPrimaryArt.set(firstMtbColr.getCodMart());
|
codPrimaryArt.set(firstMtbColr.getCodMart());
|
||||||
@@ -174,44 +191,54 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
|
|||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void openLU() {
|
|
||||||
DialogScanOrCreateLUView.newInstance(false, false, true, false, true, (mtbColt, created) -> {
|
|
||||||
if (mtbColt == null) {
|
|
||||||
popMe();
|
|
||||||
} else if ((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE || mtbColt.getGestioneEnum() == GestioneEnum.VENDITA) && mtbColt.getSegno().equals(+1)) {
|
|
||||||
|
|
||||||
if (mtbColt.getMtbColr() == null || mtbColt.getMtbColr().size() == 0) {
|
private void initBarcodeReader() {
|
||||||
DialogSimpleMessageView.makeWarningDialog(
|
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
new SpannableString(Html.fromHtml("E' stata scansionata una UL già vuota")),
|
.setOnScanSuccessful(mViewModel::processBarcodeDTO)
|
||||||
null, this::openLU)
|
.setOnScanFailed(this::onError));
|
||||||
.show((requireActivity()).getSupportFragmentManager(), "tag");
|
|
||||||
|
|
||||||
} else {
|
BarcodeManager.enable();
|
||||||
mViewModel.setMtbColt(mtbColt);
|
|
||||||
choosePosition();
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
this.onError(new Exception("Sono accettate solamente UL di <b>Acquisto</b> o <b>Lavorazione</b> di <b>CARICO</b>"));
|
|
||||||
}
|
|
||||||
}).show(requireActivity().getSupportFragmentManager(), "tag");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void choosePosition() {
|
// private void openLU() {
|
||||||
DialogAskPositionOfLUView.makeBase(true, (status, mtbDepoPosizione) -> {
|
// DialogScanOrCreateLUView.newInstance(false, false, true, false, true, (mtbColt, created) -> {
|
||||||
|
// if (mtbColt == null) {
|
||||||
|
// popMe();
|
||||||
|
// } else if ((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE || mtbColt.getGestioneEnum() == GestioneEnum.VENDITA) && mtbColt.getSegno().equals(+1)) {
|
||||||
|
//
|
||||||
|
// if (mtbColt.getMtbColr() == null || mtbColt.getMtbColr().size() == 0) {
|
||||||
|
// DialogSimpleMessageView.makeWarningDialog(
|
||||||
|
// new SpannableString(Html.fromHtml("E' stata scansionata una UL già vuota")),
|
||||||
|
// null, this::openLU)
|
||||||
|
// .show((requireActivity()).getSupportFragmentManager(), "tag");
|
||||||
|
//
|
||||||
|
// } else {
|
||||||
|
// mViewModel.setMtbColt(mtbColt);
|
||||||
|
// choosePosition();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// } else {
|
||||||
|
// this.onError(new Exception("Sono accettate solamente UL di <b>Acquisto</b> o <b>Lavorazione</b> di <b>CARICO</b>"));
|
||||||
|
// }
|
||||||
|
// }).show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
|
// }
|
||||||
|
|
||||||
if (status == DialogConsts.Results.ABORT) {
|
private void choosePosition(RunnableArgs<MtbDepoPosizione> onComplete) {
|
||||||
popMe();
|
DialogAskPositionOfLUView.makeBase(false, (status, mtbDepoPosizione) -> {
|
||||||
} else {
|
|
||||||
mViewModel.setPosizione(mtbDepoPosizione);
|
|
||||||
}
|
|
||||||
|
|
||||||
}, this::onError).show(requireActivity().getSupportFragmentManager(), "tag");
|
if (status == DialogConsts.Results.ABORT) {
|
||||||
|
popMe();
|
||||||
|
} else {
|
||||||
|
onComplete.run(mtbDepoPosizione);
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this::onError)
|
||||||
|
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void recalcAllQuantities() {
|
private void recalcAllQuantities() {
|
||||||
if(this.mViewModel.getMtbColrMutableLiveData().getValue() == null) return;
|
if (this.mViewModel.getMtbColrMutableLiveData().getValue() == null) return;
|
||||||
|
|
||||||
BigDecimal residuoCol = this.mViewModel.getMtbColrMutableLiveData().getValue().getQtaCol();
|
BigDecimal residuoCol = this.mViewModel.getMtbColrMutableLiveData().getValue().getQtaCol();
|
||||||
BigDecimal residuoCnf = this.mViewModel.getMtbColrMutableLiveData().getValue().getNumCnf();
|
BigDecimal residuoCnf = this.mViewModel.getMtbColrMutableLiveData().getValue().getNumCnf();
|
||||||
@@ -228,14 +255,14 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
|
|||||||
.mapToInt(x -> x.getOriginalOrdineLavorazione().getHrNum())
|
.mapToInt(x -> x.getOriginalOrdineLavorazione().getHrNum())
|
||||||
.sum();
|
.sum();
|
||||||
|
|
||||||
if(selectedOrders.size() > 0 && totalHr <= 0) {
|
if (selectedOrders.size() > 0 && totalHr <= 0) {
|
||||||
this.onError(new Exception("Il totale delle <b>risorse umane</b> è pari a 0"));
|
this.onError(new Exception("Il totale delle <b>risorse umane</b> è pari a 0"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fabVisible.set(selectedOrders.size() > 0);
|
fabVisible.set(selectedOrders.size() > 0);
|
||||||
|
|
||||||
for(VersamentoMerceOrdineLavListModel versamentoMerceOrdineLavListModel : this.mCurrentOrders) {
|
for (VersamentoMerceOrdineLavListModel versamentoMerceOrdineLavListModel : this.mCurrentOrders) {
|
||||||
versamentoMerceOrdineLavListModel.setNumCnfBigDecimal(BigDecimal.ZERO);
|
versamentoMerceOrdineLavListModel.setNumCnfBigDecimal(BigDecimal.ZERO);
|
||||||
versamentoMerceOrdineLavListModel.setQtaBigDecimal(BigDecimal.ZERO);
|
versamentoMerceOrdineLavListModel.setQtaBigDecimal(BigDecimal.ZERO);
|
||||||
|
|
||||||
@@ -243,23 +270,23 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
|
|||||||
versamentoMerceOrdineLavListModel.getOriginalOrdineLavorazione().setNumCnfVersamento(0f);
|
versamentoMerceOrdineLavListModel.getOriginalOrdineLavorazione().setNumCnfVersamento(0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(VersamentoMerceOrdineLavListModel versamentoMerceOrdineLavListModel : selectedOrders) {
|
for (VersamentoMerceOrdineLavListModel versamentoMerceOrdineLavListModel : selectedOrders) {
|
||||||
int usagePerc = (versamentoMerceOrdineLavListModel.getOriginalOrdineLavorazione().getHrNum() * 100) / totalHr;
|
int usagePerc = (versamentoMerceOrdineLavListModel.getOriginalOrdineLavorazione().getHrNum() * 100) / totalHr;
|
||||||
BigDecimal usedCol;
|
BigDecimal usedCol;
|
||||||
BigDecimal usedCnf;
|
BigDecimal usedCnf;
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (versamentoMerceOrdineLavListModel.getOriginalMtbAart() != null && !versamentoMerceOrdineLavListModel.getOriginalMtbAart().isFlagQtaCnfFissaBoolean())){
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (versamentoMerceOrdineLavListModel.getOriginalMtbAart() != null && !versamentoMerceOrdineLavListModel.getOriginalMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
usedCnf = UtilityBigDecimal.divideAndRoundToInteger(residuoCnf.multiply(BigDecimal.valueOf(usagePerc)), BigDecimal.valueOf(100), RoundingMode.FLOOR);
|
usedCnf = UtilityBigDecimal.divideAndRoundToInteger(residuoCnf.multiply(BigDecimal.valueOf(usagePerc)), BigDecimal.valueOf(100), RoundingMode.FLOOR);
|
||||||
|
|
||||||
if(UtilityBigDecimal.equalsOrLowerThan(usedCnf, BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(offsetCnf, BigDecimal.ZERO)) {
|
if (UtilityBigDecimal.equalsOrLowerThan(usedCnf, BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(offsetCnf, BigDecimal.ZERO)) {
|
||||||
usedCnf = BigDecimal.ONE;
|
usedCnf = BigDecimal.ONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
usedCol = usedCnf.multiply(qtaCnf).setScale(0,BigDecimal.ROUND_FLOOR);
|
usedCol = usedCnf.multiply(qtaCnf).setScale(0, BigDecimal.ROUND_FLOOR);
|
||||||
} else {
|
} else {
|
||||||
usedCol = UtilityBigDecimal.divideAndRoundToInteger(residuoCol.multiply(BigDecimal.valueOf(usagePerc)), BigDecimal.valueOf(100), RoundingMode.FLOOR);
|
usedCol = UtilityBigDecimal.divideAndRoundToInteger(residuoCol.multiply(BigDecimal.valueOf(usagePerc)), BigDecimal.valueOf(100), RoundingMode.FLOOR);
|
||||||
|
|
||||||
if (UtilityBigDecimal.equalsOrLowerThan(usedCol, BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(offsetCol, BigDecimal.ZERO)){
|
if (UtilityBigDecimal.equalsOrLowerThan(usedCol, BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(offsetCol, BigDecimal.ZERO)) {
|
||||||
usedCol = BigDecimal.ONE;
|
usedCol = BigDecimal.ONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,8 +309,8 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
|
|||||||
Stream.of(selectedOrders)
|
Stream.of(selectedOrders)
|
||||||
.max((o1, o2) -> Integer.compare(o1.getOriginalOrdineLavorazione().getHrNum(), o2.getOriginalOrdineLavorazione().getHrNum())).get();
|
.max((o1, o2) -> Integer.compare(o1.getOriginalOrdineLavorazione().getHrNum(), o2.getOriginalOrdineLavorazione().getHrNum())).get();
|
||||||
|
|
||||||
if (offsetCnf.floatValue() != 0 || offsetCol.floatValue() != 0){
|
if (offsetCnf.floatValue() != 0 || offsetCol.floatValue() != 0) {
|
||||||
if ( SettingsManager.iDB().isFlagForceAllToColli() || (majorOrder.getOriginalMtbAart() != null && !majorOrder.getOriginalMtbAart().isFlagQtaCnfFissaBoolean())) {
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (majorOrder.getOriginalMtbAart() != null && !majorOrder.getOriginalMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
majorOrder.setNumCnfBigDecimal(majorOrder.getNumCnfBigDecimal().add(offsetCnf));
|
majorOrder.setNumCnfBigDecimal(majorOrder.getNumCnfBigDecimal().add(offsetCnf));
|
||||||
majorOrder.getOriginalOrdineLavorazione().setNumCnfVersamento(majorOrder.getNumCnfBigDecimal().floatValue());
|
majorOrder.getOriginalOrdineLavorazione().setNumCnfVersamento(majorOrder.getNumCnfBigDecimal().floatValue());
|
||||||
|
|
||||||
@@ -307,7 +334,7 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
|
|||||||
.map(VersamentoMerceOrdineLavListModel::getOriginalOrdineLavorazione)
|
.map(VersamentoMerceOrdineLavListModel::getOriginalOrdineLavorazione)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if(selectedOrders.size() > 0) {
|
if (selectedOrders.size() > 0) {
|
||||||
this.mViewModel.save(selectedOrders);
|
this.mViewModel.save(selectedOrders);
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(requireActivity(), "Nessun ordine selezionato!", Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireActivity(), "Nessun ordine selezionato!", Toast.LENGTH_SHORT).show();
|
||||||
@@ -316,6 +343,11 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public ObservableField<Boolean> isCurrentMtbColtSettedObservable() {
|
||||||
|
return mCurrentMtbColtSet;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
titleText.setText(context.getText(R.string.prod_versamento_materiale_title_fragment).toString());
|
titleText.setText(context.getText(R.string.prod_versamento_materiale_title_fragment).toString());
|
||||||
@@ -323,13 +355,53 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void requestLUOpen() {
|
public void requestLUOpen() {
|
||||||
this.openLU();
|
// this.openLU();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRequestChoosePosition(RunnableArgs<MtbDepoPosizione> onComplete) {
|
||||||
|
choosePosition(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, String partitaMag, LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||||
|
.setMtbAart(mtbAart)
|
||||||
|
.setInitialNumCnf(initialNumCnf)
|
||||||
|
.setInitialQtaCnf(initialQtaCnf)
|
||||||
|
.setInitialQtaTot(initialQtaTot)
|
||||||
|
.setTotalQtaAvailable(totalQtaAvailable)
|
||||||
|
.setTotalNumCnfAvailable(totalNumCnfAvailable)
|
||||||
|
.setQtaCnfAvailable(qtaCnfAvailable)
|
||||||
|
.setTotalQtaToBeTaken(totalQtaToBeTaken)
|
||||||
|
.setTotalNumCnfToBeTaken(totalNumCnfToBeTaken)
|
||||||
|
.setQtaCnfToBeTaken(qtaCnfToBeTaken)
|
||||||
|
.setPartitaMag(partitaMag)
|
||||||
|
.setDataScad(dataScad)
|
||||||
|
.setCanOverflowOrderQuantity(canOverflowOrderQuantity)
|
||||||
|
.setCanPartitaMagBeChanged(canPartitaMagBeChanged);
|
||||||
|
|
||||||
|
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");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Exception ex, boolean requestClose) {
|
public void onError(Exception ex, boolean requestClose) {
|
||||||
super.onError(ex);
|
super.onError(ex);
|
||||||
if(requestClose) popMe();
|
if (requestClose) popMe();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -2,15 +2,24 @@ package it.integry.integrywmsnative.gest.prod_versamento_materiale;
|
|||||||
|
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
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.MesRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
|
|
||||||
@Module(subcomponents = ProdVersamentoMaterialeComponent.class)
|
@Module(subcomponents = ProdVersamentoMaterialeComponent.class)
|
||||||
public class ProdVersamentoMaterialeModule {
|
public class ProdVersamentoMaterialeModule {
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
ProdVersamentoMaterialeViewModel providesProdVersamentoMaterialeViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, MesRESTConsumer mesRESTConsumer) {
|
ProdVersamentoMaterialeViewModel providesProdVersamentoMaterialeViewModel(PosizioniRESTConsumer posizioniRESTConsumer,
|
||||||
return new ProdVersamentoMaterialeViewModel(colliMagazzinoRESTConsumer, mesRESTConsumer);
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
|
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
||||||
|
MesRESTConsumer mesRESTConsumer,
|
||||||
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
|
ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
|
return new ProdVersamentoMaterialeViewModel(posizioniRESTConsumer, colliMagazzinoRESTConsumer, colliLavorazioneRESTConsumer, mesRESTConsumer, barcodeRESTConsumer, articoloRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,28 +2,53 @@ package it.integry.integrywmsnative.gest.prod_versamento_materiale;
|
|||||||
|
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.TooManyLUFoundInMonoLUPositionException;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
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.dto.PickDataDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
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.MesRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
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.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
|
|
||||||
public class ProdVersamentoMaterialeViewModel {
|
public class ProdVersamentoMaterialeViewModel {
|
||||||
|
|
||||||
|
private final PosizioniRESTConsumer mPosizioniRESTConsumer;
|
||||||
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
||||||
|
private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
|
||||||
private final MesRESTConsumer mMesRESTConsumer;
|
private final MesRESTConsumer mMesRESTConsumer;
|
||||||
|
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||||
|
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
|
|
||||||
private boolean mFlagVersamentoDirettoProduzione;
|
private boolean mFlagVersamentoDirettoProduzione;
|
||||||
|
|
||||||
@@ -35,9 +60,18 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public ProdVersamentoMaterialeViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, MesRESTConsumer mesRESTConsumer) {
|
public ProdVersamentoMaterialeViewModel(PosizioniRESTConsumer posizioniRESTConsumer,
|
||||||
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
|
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
||||||
|
MesRESTConsumer mesRESTConsumer,
|
||||||
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
|
ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
|
this.mPosizioniRESTConsumer = posizioniRESTConsumer;
|
||||||
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
||||||
|
this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
|
||||||
this.mMesRESTConsumer = mesRESTConsumer;
|
this.mMesRESTConsumer = mesRESTConsumer;
|
||||||
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -46,8 +80,213 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setMtbColt(MtbColt mtbColt) {
|
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO) {
|
||||||
|
if (UtilityBarcode.isEtichettaPosizione(barcodeScanDTO)) {
|
||||||
|
this.executeEtichettaPosizione(barcodeScanDTO);
|
||||||
|
} else if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
|
||||||
|
this.executeEtichettaLU(barcodeScanDTO.getStringValue());
|
||||||
|
} else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
|
||||||
|
this.executeEtichettaEan128(barcodeScanDTO);
|
||||||
|
} else if (UtilityBarcode.isEan13(barcodeScanDTO)) {
|
||||||
|
// this.executeEAN13(barcodeScanDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void executeEtichettaPosizione(BarcodeScanDTO barcodeScanDTO) {
|
||||||
|
|
||||||
|
MtbDepoPosizione foundPosizione = Stream.of(SettingsManager.iDB().getAvailablePosizioni())
|
||||||
|
.filter(x -> x.getPosizione().equalsIgnoreCase(barcodeScanDTO.getStringValue()))
|
||||||
|
.single();
|
||||||
|
this.executePosizione(foundPosizione);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void executePosizione(MtbDepoPosizione posizione) {
|
||||||
|
this.mPosizioniRESTConsumer.getBancaliInPosizione(posizione, mtbColtList -> {
|
||||||
|
|
||||||
|
if (mtbColtList == null || mtbColtList.size() == 0) {
|
||||||
|
this.sendError(new NoLUFoundException());
|
||||||
|
} else if (mtbColtList.size() == 1) {
|
||||||
|
this.mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
|
||||||
|
this.onLUOpened(mtbColt);
|
||||||
|
}, this::sendError);
|
||||||
|
} else {
|
||||||
|
this.sendError(new TooManyLUFoundInMonoLUPositionException());
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void executeEtichettaLU(String sscc) {
|
||||||
|
this.mColliMagazzinoRESTConsumer.getBySSCC(sscc, true, false, mtbColt -> {
|
||||||
|
|
||||||
|
this.onLUOpened(mtbColt);
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO) {
|
||||||
|
mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
|
||||||
|
|
||||||
|
String barcodeProd = null;
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
|
||||||
|
if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
|
||||||
|
if (!UtilityString.isNullOrEmpty(ean128Model.Content))
|
||||||
|
barcodeProd = ean128Model.Content;
|
||||||
|
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(barcodeProd)) {
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
|
||||||
|
this.executeEtichettaLU(ean128Model.Sscc);
|
||||||
|
} else if (!UtilityString.isNullOrEmpty(barcodeProd)) {
|
||||||
|
this.loadArticolo(barcodeProd, ean128Model);
|
||||||
|
} else {
|
||||||
|
this.sendError(new NoLUFoundException());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
|
||||||
|
this.sendError(new NoLUFoundException());
|
||||||
|
}
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadArticolo(String barcodeProd, Ean128Model ean128Model) {
|
||||||
|
mArticoloRESTConsumer.searchByBarcode(barcodeProd, mtbAartList -> {
|
||||||
|
if (mtbAartList != null && mtbAartList.size() > 0) {
|
||||||
|
MtbAart articolo = mtbAartList.get(0);
|
||||||
|
this.dispatchArt(articolo, ean128Model);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.sendError(new NoResultFromBarcodeException(barcodeProd));
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model) {
|
||||||
|
PickingObjectDTO pickingObjectDTO = new PickingObjectDTO()
|
||||||
|
.setMtbAart(mtbAart)
|
||||||
|
.setTempPickData(PickDataDTO.fromEan128(ean128Model));
|
||||||
|
|
||||||
|
BigDecimal numCnfDaPrelevare = null;
|
||||||
|
BigDecimal qtaColDaPrelevare = null;
|
||||||
|
BigDecimal qtaCnfDaPrelevare = null;
|
||||||
|
|
||||||
|
BigDecimal initialNumCnf;
|
||||||
|
BigDecimal initialQtaCnf;
|
||||||
|
BigDecimal initialQtaTot;
|
||||||
|
|
||||||
|
String partitaMag = null;
|
||||||
|
LocalDate dataScad = null;
|
||||||
|
|
||||||
|
if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) {
|
||||||
|
//Oppure le info del barcode scansionato
|
||||||
|
PickDataDTO.ManualPickDTO manualPickDTO = pickingObjectDTO.getTempPickData().getManualPickDTO();
|
||||||
|
|
||||||
|
qtaColDaPrelevare = manualPickDTO.getQtaTot();
|
||||||
|
numCnfDaPrelevare = manualPickDTO.getNumCnf();
|
||||||
|
|
||||||
|
if (mtbAart.isFlagQtaCnfFissaBoolean()) {
|
||||||
|
qtaCnfDaPrelevare = mtbAart.getQtaCnf();
|
||||||
|
|
||||||
|
if (manualPickDTO.isEanPeso()) {
|
||||||
|
if (mtbAart.getUntMisRifPeso() == MtbAart.UntMisRifPesoEnum.M) {
|
||||||
|
if (UtilityBigDecimal.equalsTo(mtbAart.getPesoKg(), BigDecimal.ZERO)) {
|
||||||
|
this.sendError(new InvalidPesoKGException());
|
||||||
|
} else {
|
||||||
|
qtaColDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, mtbAart.getPesoKg());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (qtaColDaPrelevare != null && numCnfDaPrelevare != null) {
|
||||||
|
qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (qtaColDaPrelevare != null && numCnfDaPrelevare == null) {
|
||||||
|
if (!mtbAart.isFlagQtaCnfFissaBoolean()) {
|
||||||
|
numCnfDaPrelevare = UtilityBigDecimal.divideAndRoundToInteger(qtaColDaPrelevare, mtbAart.getQtaCnf());
|
||||||
|
if (UtilityBigDecimal.equalsTo(numCnfDaPrelevare, BigDecimal.ZERO))
|
||||||
|
numCnfDaPrelevare = BigDecimal.ONE;
|
||||||
|
qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
|
||||||
|
} else {
|
||||||
|
numCnfDaPrelevare = UtilityBigDecimal.divideToInteger(qtaColDaPrelevare, mtbAart.getQtaCnf());
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (numCnfDaPrelevare != null && qtaColDaPrelevare == null) {
|
||||||
|
qtaCnfDaPrelevare = mtbAart.getQtaCnf();
|
||||||
|
qtaColDaPrelevare = UtilityBigDecimal.multiply(numCnfDaPrelevare, qtaCnfDaPrelevare);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (manualPickDTO.getMtbPartitaMag() != null) {
|
||||||
|
partitaMag = manualPickDTO.getMtbPartitaMag().getPartitaMag();
|
||||||
|
dataScad = manualPickDTO.getMtbPartitaMag().getDataScad();
|
||||||
|
}
|
||||||
|
|
||||||
|
initialNumCnf = numCnfDaPrelevare;
|
||||||
|
initialQtaCnf = qtaCnfDaPrelevare;
|
||||||
|
initialQtaTot = qtaColDaPrelevare;
|
||||||
|
} else {
|
||||||
|
initialNumCnf = BigDecimal.ONE;
|
||||||
|
initialQtaCnf = mtbAart.getQtaCnf();
|
||||||
|
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (numCnfDaPrelevare == null && qtaColDaPrelevare == null && initialNumCnf == null && initialQtaTot == null) {
|
||||||
|
initialNumCnf = BigDecimal.ONE;
|
||||||
|
initialQtaCnf = mtbAart.getQtaCnf();
|
||||||
|
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
this.sendOnItemDispatched(
|
||||||
|
pickingObjectDTO,
|
||||||
|
mtbAart,
|
||||||
|
initialNumCnf,
|
||||||
|
initialQtaCnf,
|
||||||
|
initialQtaTot,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
partitaMag,
|
||||||
|
dataScad,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
(pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
|
|
||||||
|
this.sendRequestChoosePosition(mtbDepoPosizione -> {
|
||||||
|
|
||||||
|
mColliLavorazioneRESTConsumer.createColloScaricoDaArticolo(mtbAart,
|
||||||
|
pickedQuantityDTO.getPartitaMag(),
|
||||||
|
mtbDepoPosizione,
|
||||||
|
pickedQuantityDTO.getQtaTot(),
|
||||||
|
pickedQuantityDTO.getQtaCnf(),
|
||||||
|
pickedQuantityDTO.getNumCnf(),
|
||||||
|
null, null,
|
||||||
|
this::sendOnDataSaved,
|
||||||
|
this::sendError);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onLUOpened(MtbColt mtbColt) {
|
||||||
this.mtbColtMutableLiveData.setValue(mtbColt);
|
this.mtbColtMutableLiveData.setValue(mtbColt);
|
||||||
|
this.sendRequestChoosePosition(this::setPosizione);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -77,7 +316,7 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
mtbDepoPosizione.getPosizione(),
|
mtbDepoPosizione.getPosizione(),
|
||||||
getIdMaterialeFromCollo(mtbColt),
|
getIdMaterialeFromCollo(mtbColt),
|
||||||
ordini -> {
|
ordini -> {
|
||||||
if(ordini == null || ordini.isEmpty())
|
if (ordini == null || ordini.isEmpty())
|
||||||
this.sendError(new Exception("Nessun ordine compatibile con " + getIdMaterialeFromCollo(mtbColt) + " sulla linea " + mtbDepoPosizione.getPosizione()), true);
|
this.sendError(new Exception("Nessun ordine compatibile con " + getIdMaterialeFromCollo(mtbColt) + " sulla linea " + mtbDepoPosizione.getPosizione()), true);
|
||||||
else {
|
else {
|
||||||
setCurrentOrders(ordini, mtbColt.getMtbColr().get(0));
|
setCurrentOrders(ordini, mtbColt.getMtbColr().get(0));
|
||||||
@@ -104,7 +343,6 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private String getIdMaterialeFromCollo(MtbColt mtbColt) {
|
private String getIdMaterialeFromCollo(MtbColt mtbColt) {
|
||||||
MtbAart articolo = mtbColt.getMtbColr().get(0).getMtbAart();
|
MtbAart articolo = mtbColt.getMtbColr().get(0).getMtbAart();
|
||||||
return UtilityString.isNullOrEmpty(articolo.getIdArtEqui()) ? articolo.getCodMart() : articolo.getIdArtEqui();
|
return UtilityString.isNullOrEmpty(articolo.getIdArtEqui()) ? articolo.getCodMart() : articolo.getIdArtEqui();
|
||||||
@@ -139,7 +377,6 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void save(List<OrdineLavorazioneDTO> selectedOrders) {
|
public void save(List<OrdineLavorazioneDTO> selectedOrders) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
@@ -154,16 +391,6 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public MutableLiveData<MtbColt> getMtbColtMutableLiveData() {
|
public MutableLiveData<MtbColt> getMtbColtMutableLiveData() {
|
||||||
return mtbColtMutableLiveData;
|
return mtbColtMutableLiveData;
|
||||||
}
|
}
|
||||||
@@ -186,6 +413,10 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
if (this.mListener != null) mListener.requestLUOpen();
|
if (this.mListener != null) mListener.requestLUOpen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendRequestChoosePosition(RunnableArgs<MtbDepoPosizione> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onRequestChoosePosition(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
private void sendOnLoadingStarted() {
|
private void sendOnLoadingStarted() {
|
||||||
if (this.mListener != null) mListener.onLoadingStarted();
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
}
|
}
|
||||||
@@ -194,6 +425,40 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
if (this.mListener != null) mListener.onLoadingEnded();
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendOnItemDispatched(PickingObjectDTO pickingObjectDTO,
|
||||||
|
MtbAart mtbAart,
|
||||||
|
BigDecimal initialNumCnf,
|
||||||
|
BigDecimal initialQtaCnf,
|
||||||
|
BigDecimal initialQtaTot,
|
||||||
|
BigDecimal totalQtaAvailable,
|
||||||
|
BigDecimal totalNumCnfAvailable,
|
||||||
|
BigDecimal qtaCnfAvailable,
|
||||||
|
BigDecimal totalQtaToBeTaken,
|
||||||
|
BigDecimal totalNumCnfToBeTaken,
|
||||||
|
BigDecimal qtaCnfToBeTaken,
|
||||||
|
String partitaMag,
|
||||||
|
LocalDate dataScad,
|
||||||
|
boolean canOverflowOrderQuantity,
|
||||||
|
boolean canPartitaMagBeChanged,
|
||||||
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO,
|
||||||
|
mtbAart,
|
||||||
|
initialNumCnf,
|
||||||
|
initialQtaCnf,
|
||||||
|
initialQtaTot,
|
||||||
|
totalQtaAvailable,
|
||||||
|
totalNumCnfAvailable,
|
||||||
|
qtaCnfAvailable,
|
||||||
|
totalQtaToBeTaken,
|
||||||
|
totalNumCnfToBeTaken,
|
||||||
|
qtaCnfToBeTaken,
|
||||||
|
partitaMag,
|
||||||
|
dataScad,
|
||||||
|
canOverflowOrderQuantity,
|
||||||
|
canPartitaMagBeChanged,
|
||||||
|
onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
private void sendWarning(String warningText, Runnable action) {
|
private void sendWarning(String warningText, Runnable action) {
|
||||||
if (this.mListener != null) mListener.onWarning(warningText, action);
|
if (this.mListener != null) mListener.onWarning(warningText, action);
|
||||||
}
|
}
|
||||||
@@ -214,6 +479,25 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
|
|
||||||
void requestLUOpen();
|
void requestLUOpen();
|
||||||
|
|
||||||
|
void onRequestChoosePosition(RunnableArgs<MtbDepoPosizione> onComplete);
|
||||||
|
|
||||||
|
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
||||||
|
MtbAart mtbAart,
|
||||||
|
BigDecimal initialNumCnf,
|
||||||
|
BigDecimal initialQtaCnf,
|
||||||
|
BigDecimal initialQtaTot,
|
||||||
|
BigDecimal totalQtaAvailable,
|
||||||
|
BigDecimal totalNumCnfAvailable,
|
||||||
|
BigDecimal qtaCnfAvailable,
|
||||||
|
BigDecimal totalQtaToBeTaken,
|
||||||
|
BigDecimal totalNumCnfToBeTaken,
|
||||||
|
BigDecimal qtaCnfToBeTaken,
|
||||||
|
String partitaMag,
|
||||||
|
LocalDate dataScad,
|
||||||
|
boolean canOverflowOrderQuantity,
|
||||||
|
boolean canPartitaMagBeChanged,
|
||||||
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
||||||
|
|
||||||
void onError(Exception ex, boolean requestClose);
|
void onError(Exception ex, boolean requestClose);
|
||||||
|
|
||||||
void onWarning(String warningText, Runnable action);
|
void onWarning(String warningText, Runnable action);
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_versamento_materiale_su_mag_prossimita;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface ProdVersamentoMaterialeInBufferComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
ProdVersamentoMaterialeInBufferComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(ProdVersamentoMaterialeInBufferFragment prodVersamentoMaterialeInBufferFragment);
|
||||||
|
}
|
||||||
@@ -0,0 +1,126 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_versamento_materiale_su_mag_prossimita;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeInBufferBinding;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLUView;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_to_return.DialogInputQuantityToReturnView;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUView;
|
||||||
|
|
||||||
|
public class ProdVersamentoMaterialeInBufferFragment extends BaseFragment implements ProdVersamentoMaterialeInBufferViewModel.Listener {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
ProdVersamentoMaterialeInBufferViewModel mViewModel;
|
||||||
|
|
||||||
|
private FragmentProdVersamentoMaterialeInBufferBinding mBindings;
|
||||||
|
|
||||||
|
|
||||||
|
public ProdVersamentoMaterialeInBufferFragment() {
|
||||||
|
// Required empty public constructor
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ProdVersamentoMaterialeInBufferFragment newInstance() {
|
||||||
|
return new ProdVersamentoMaterialeInBufferFragment();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
// Inflate the layout for this fragment
|
||||||
|
setRetainInstance(true);
|
||||||
|
|
||||||
|
mBindings = FragmentProdVersamentoMaterialeInBufferBinding.inflate(inflater, container, false);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.prodVersamentoMaterialeInBufferComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mBindings.setViewmodel(mViewModel);
|
||||||
|
mViewModel.setListener(this);
|
||||||
|
|
||||||
|
return mBindings.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart() {
|
||||||
|
super.onStart();
|
||||||
|
|
||||||
|
this.openLU();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void openLU() {
|
||||||
|
DialogScanOrCreateLUView.newInstance(false, false, true, false, true, (mtbColt, created) -> {
|
||||||
|
if (mtbColt == null) {
|
||||||
|
popMe();
|
||||||
|
} else if ((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO ||
|
||||||
|
mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE ||
|
||||||
|
mtbColt.getGestioneEnum() == GestioneEnum.VENDITA) &&
|
||||||
|
mtbColt.getSegno() == 1) {
|
||||||
|
|
||||||
|
if (mtbColt.getMtbColr() == null || mtbColt.getMtbColr().size() == 0) {
|
||||||
|
DialogSimpleMessageView.makeWarningDialog(
|
||||||
|
new SpannableString(Html.fromHtml("E' stata scansionata una UL già vuota")),
|
||||||
|
null, this::openLU)
|
||||||
|
.show((requireActivity()).getSupportFragmentManager(), "tag");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
mViewModel.setMtbColt(mtbColt);
|
||||||
|
choosePosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.onError(new Exception("Sono accettate solamente UL di <b>Acquisto</b> o <b>Lavorazione</b> di <b>CARICO</b>"));
|
||||||
|
}
|
||||||
|
}).show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void choosePosition() {
|
||||||
|
DialogAskPositionOfLUView.makeBase(true, (status, mtbDepoPosizione) -> {
|
||||||
|
|
||||||
|
if (status == DialogConsts.Results.ABORT) {
|
||||||
|
popMe();
|
||||||
|
} else {
|
||||||
|
mViewModel.setPosizione(mtbDepoPosizione, () -> {
|
||||||
|
popMe();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this::onError)
|
||||||
|
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRequestColliQuantityToConfirm(RunnableArgs<BigDecimal> onComplete) {
|
||||||
|
DialogInputQuantityToReturnView.newInstance(mViewModel.getMtbColr().getMtbAart(),
|
||||||
|
BigDecimal.ZERO,
|
||||||
|
mViewModel.getMtbColr().getNumCnf(),
|
||||||
|
onComplete)
|
||||||
|
.show(this.getParentFragmentManager(), DialogInputQuantityToReturnView.class.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Exception ex, boolean requestClose) {
|
||||||
|
super.onError(ex);
|
||||||
|
if (requestClose) popMe();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_versamento_materiale_su_mag_prossimita;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoBufferRESTConsumer;
|
||||||
|
|
||||||
|
@Module(subcomponents = ProdVersamentoMaterialeInBufferComponent.class)
|
||||||
|
public class ProdVersamentoMaterialeInBufferModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
ProdVersamentoMaterialeInBufferViewModel providesProdVersamentoMaterialeInBufferViewModel(MagazzinoBufferRESTConsumer magazzinoBufferRESTConsumer) {
|
||||||
|
return new ProdVersamentoMaterialeInBufferViewModel(magazzinoBufferRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_versamento_materiale_su_mag_prossimita;
|
||||||
|
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoBufferRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.magazzino_buffer.MagazzinoBufferVersamentoMaterialeCloseRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.magazzino_buffer.MagazzinoBufferVersamentoMaterialeRequestDTO;
|
||||||
|
|
||||||
|
public class ProdVersamentoMaterialeInBufferViewModel {
|
||||||
|
|
||||||
|
private final MagazzinoBufferRESTConsumer magazzinoBufferRESTConsumer;
|
||||||
|
|
||||||
|
private ProdVersamentoMaterialeInBufferViewModel.Listener mListener;
|
||||||
|
|
||||||
|
private final MutableLiveData<MtbColt> mtbColtMutableLiveData = new MutableLiveData<>();
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public ProdVersamentoMaterialeInBufferViewModel(MagazzinoBufferRESTConsumer magazzinoBufferRESTConsumer) {
|
||||||
|
this.magazzinoBufferRESTConsumer = magazzinoBufferRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public MutableLiveData<MtbColt> getMtbColtMutable() {
|
||||||
|
return mtbColtMutableLiveData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MtbColr getMtbColr() {
|
||||||
|
MtbColt mtbColt = mtbColtMutableLiveData.getValue();
|
||||||
|
if(mtbColt == null || mtbColt.getMtbColr() == null || mtbColt.getMtbColr().isEmpty()) return null;
|
||||||
|
|
||||||
|
return mtbColt.getMtbColr().get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMtbColt(MtbColt mtbColt) {
|
||||||
|
this.mtbColtMutableLiveData.setValue(mtbColt);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPosizione(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
var magazzinoRequest = new MagazzinoBufferVersamentoMaterialeRequestDTO()
|
||||||
|
.setInputMtbColt(mtbColtMutableLiveData.getValue());
|
||||||
|
|
||||||
|
magazzinoBufferRESTConsumer.isVersamentoStarted(mtbDepoPosizione, magazzinoRequest, versamentoStarted -> {
|
||||||
|
|
||||||
|
if (!versamentoStarted) {
|
||||||
|
magazzinoBufferRESTConsumer.startVersamentoMateriale(mtbDepoPosizione, magazzinoRequest, () -> {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
onComplete.run();
|
||||||
|
}, this::sendError);
|
||||||
|
} else {
|
||||||
|
this.sendOnRequestColliQuantityToConfirm(inputQuantity -> {
|
||||||
|
if(inputQuantity == null) {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var closeRequest = new MagazzinoBufferVersamentoMaterialeCloseRequestDTO()
|
||||||
|
.setInputMtbColt(mtbColtMutableLiveData.getValue())
|
||||||
|
.setNumCnfDaScaricare(inputQuantity);
|
||||||
|
|
||||||
|
magazzinoBufferRESTConsumer.endVersamentoMateriale(mtbDepoPosizione, closeRequest, () -> {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
onComplete.run();
|
||||||
|
}, this::sendError);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ProdVersamentoMaterialeInBufferViewModel setListener(ProdVersamentoMaterialeInBufferViewModel.Listener listener) {
|
||||||
|
this.mListener = listener;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void sendOnLoadingStarted() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingEnded() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnRequestColliQuantityToConfirm(RunnableArgs<BigDecimal> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onRequestColliQuantityToConfirm(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendError(Exception ex) {
|
||||||
|
if (this.mListener != null) mListener.onError(ex, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Listener extends ILoadingListener {
|
||||||
|
void onRequestColliQuantityToConfirm(RunnableArgs<BigDecimal> onComplete);
|
||||||
|
|
||||||
|
void onError(Exception ex, boolean requestClose);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -73,7 +73,7 @@ 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;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListView;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView;
|
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
|
||||||
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;
|
||||||
@@ -126,7 +126,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
GestioneEnum gestioneCol,
|
GestioneEnum gestioneCol,
|
||||||
int segnoCol,
|
int segnoCol,
|
||||||
Integer defaultCausaleUL,
|
Integer defaultCausaleUL,
|
||||||
Class<? extends BaseDialogRowInfoView> infoDialogClassType) {
|
Class<? extends BaseDialogRowInfoView> infoDialogClassType,
|
||||||
|
boolean divideByGrpMerc) {
|
||||||
Intent myIntent = new Intent(context, SpedizioneActivity.class);
|
Intent myIntent = new Intent(context, SpedizioneActivity.class);
|
||||||
|
|
||||||
String keyPickingList = DataCache.addItem(ordini);
|
String keyPickingList = DataCache.addItem(ordini);
|
||||||
@@ -150,6 +151,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
String keyInfoDialogClassType = DataCache.addItem(infoDialogClassType);
|
String keyInfoDialogClassType = DataCache.addItem(infoDialogClassType);
|
||||||
myIntent.putExtra("keyInfoDialogClassType", keyInfoDialogClassType);
|
myIntent.putExtra("keyInfoDialogClassType", keyInfoDialogClassType);
|
||||||
|
|
||||||
|
String keyDivideByGrpMerc = DataCache.addItem(divideByGrpMerc);
|
||||||
|
myIntent.putExtra("keyDivideByGrpMerc", keyDivideByGrpMerc);
|
||||||
|
|
||||||
context.startActivity(myIntent);
|
context.startActivity(myIntent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,6 +168,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
mSegnoCol = DataCache.retrieveItem(getIntent().getStringExtra("keySegnoCol"));
|
mSegnoCol = DataCache.retrieveItem(getIntent().getStringExtra("keySegnoCol"));
|
||||||
mDefaultCausaleUL = DataCache.retrieveItem(getIntent().getStringExtra("keyDefaultCausaleCol"));
|
mDefaultCausaleUL = DataCache.retrieveItem(getIntent().getStringExtra("keyDefaultCausaleCol"));
|
||||||
mInfoDialogClassType = DataCache.retrieveItem(getIntent().getStringExtra("keyInfoDialogClassType"));
|
mInfoDialogClassType = DataCache.retrieveItem(getIntent().getStringExtra("keyInfoDialogClassType"));
|
||||||
|
mDivideByGrpMerc = DataCache.retrieveItem(getIntent().getStringExtra("keyDivideByGrpMerc"));
|
||||||
|
|
||||||
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione);
|
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione);
|
||||||
|
|
||||||
@@ -178,7 +183,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
|
|
||||||
mFlagShowCodForn = SettingsManager.iDB().isShowCodFornSpedizione();
|
mFlagShowCodForn = SettingsManager.iDB().isShowCodFornSpedizione();
|
||||||
mDivideByGrpMerc = SettingsManager.iDB().isGroupShippingByCommodityGroup();
|
|
||||||
|
|
||||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
mEnableQuantityReset = sharedPreferences.getBoolean("picking_uscita_enable_quantity_reset", true);
|
mEnableQuantityReset = sharedPreferences.getBoolean("picking_uscita_enable_quantity_reset", true);
|
||||||
@@ -849,6 +853,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
.setPartitaMag(partitaMag)
|
.setPartitaMag(partitaMag)
|
||||||
.setDataScad(dataScad)
|
.setDataScad(dataScad)
|
||||||
.setCanOverflowOrderQuantity(canOverflowOrderQuantity)
|
.setCanOverflowOrderQuantity(canOverflowOrderQuantity)
|
||||||
|
.setWarnOnQuantityOverflow(SettingsManager.iDB().isFlagOverflowQuantityWarning())
|
||||||
.setCanLUBeClosed(true)
|
.setCanLUBeClosed(true)
|
||||||
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
||||||
.setStatoPartitaMag(pickingObjectDTO != null ? pickingObjectDTO.getStatoArticoloDTO() : null)
|
.setStatoPartitaMag(pickingObjectDTO != null ? pickingObjectDTO.getStatoArticoloDTO() : null)
|
||||||
@@ -1014,6 +1019,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInfoAggiuntiveRequired(MtbColt mtbColt, RunnableArgss<String, MtbTCol> onComplete) {
|
public void onInfoAggiuntiveRequired(MtbColt mtbColt, RunnableArgss<String, MtbTCol> onComplete) {
|
||||||
DialogInfoAggiuntiveLU.newInstance(mtbColt, onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
DialogInfoAggiuntiveLUView.newInstance(mtbColt, onComplete, this::onLoadingEnded)
|
||||||
|
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -773,6 +773,8 @@ public class SpedizioneViewModel {
|
|||||||
MtbColt refMtbColt = matchedItem.getRefMtbColt();
|
MtbColt refMtbColt = matchedItem.getRefMtbColt();
|
||||||
if (matchedItem.getMtbColts() != null && matchedItem.getMtbColts().size() == 1) {
|
if (matchedItem.getMtbColts() != null && matchedItem.getMtbColts().size() == 1) {
|
||||||
refMtbColt = matchedItem.getMtbColts().get(0);
|
refMtbColt = matchedItem.getMtbColts().get(0);
|
||||||
|
} else if(matchedItem.getTempPickData().getSourceMtbColt() != null){
|
||||||
|
refMtbColt = matchedItem.getTempPickData().getSourceMtbColt();
|
||||||
}
|
}
|
||||||
MtbColr refMtbColr = refMtbColt != null ? refMtbColt.getMtbColr().get(0) : null;
|
MtbColr refMtbColr = refMtbColt != null ? refMtbColt.getMtbColr().get(0) : null;
|
||||||
this.dispatchOrdineRow(matchedItem, refMtbColt, refMtbColr, refMtbColr == null);
|
this.dispatchOrdineRow(matchedItem, refMtbColt, refMtbColr, refMtbColr == null);
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.ui;
|
package it.integry.integrywmsnative.ui;
|
||||||
|
|
||||||
import android.animation.LayoutTransition;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -10,6 +8,8 @@ import android.view.animation.Animation;
|
|||||||
import android.view.animation.Interpolator;
|
import android.view.animation.Interpolator;
|
||||||
import android.view.animation.Transformation;
|
import android.view.animation.Transformation;
|
||||||
|
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
public class DeactivatableViewPager extends ViewPager implements Animation.AnimationListener {
|
public class DeactivatableViewPager extends ViewPager implements Animation.AnimationListener {
|
||||||
|
|
||||||
private View mCurrentView;
|
private View mCurrentView;
|
||||||
@@ -57,7 +57,7 @@ public class DeactivatableViewPager extends ViewPager implements Animation.Anima
|
|||||||
height = getMinimumHeight();
|
height = getMinimumHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
int displayHeight = (int)(getResources().getDisplayMetrics().heightPixels*0.77);
|
int displayHeight = (int)(getResources().getDisplayMetrics().heightPixels*0.5);
|
||||||
|
|
||||||
if(height > displayHeight) height = displayHeight;
|
if(height > displayHeight) height = displayHeight;
|
||||||
|
|
||||||
|
|||||||
@@ -103,7 +103,8 @@ public class BottomSheetFragmentLUContentView extends BottomSheetFragmentBaseVie
|
|||||||
List<MtbColr> mtbColrs = mViewModel.getObservableMtbColt().get().getMtbColr();
|
List<MtbColr> mtbColrs = mViewModel.getObservableMtbColt().get().getMtbColr();
|
||||||
mBinding.textviewArtCounter.setText(String.valueOf(mtbColrs.size()));
|
mBinding.textviewArtCounter.setText(String.valueOf(mtbColrs.size()));
|
||||||
mBinding.textviewArtDescription.setText(mContext.getResources().getQuantityString(R.plurals.articles, mtbColrs.size()));
|
mBinding.textviewArtDescription.setText(mContext.getResources().getQuantityString(R.plurals.articles, mtbColrs.size()));
|
||||||
mViewModel.calcPesi();
|
|
||||||
|
mViewModel.refreshPesi();
|
||||||
}
|
}
|
||||||
|
|
||||||
public BottomSheetFragmentLUContentView setListener(Listener listener) {
|
public BottomSheetFragmentLUContentView setListener(Listener listener) {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class BottomSheetFragmentLUContentViewModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void calcPesi() {
|
public void refreshPesi() {
|
||||||
MtbColt collo = this.mtbColt.get();
|
MtbColt collo = this.mtbColt.get();
|
||||||
if (collo == null) return;
|
if (collo == null) return;
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ public class BottomSheetFragmentLUContentViewModel {
|
|||||||
for (MtbColr mtbColr : collo.getMtbColr()) {
|
for (MtbColr mtbColr : collo.getMtbColr()) {
|
||||||
MtbAart articolo = mtbColr.getMtbAart();
|
MtbAart articolo = mtbColr.getMtbAart();
|
||||||
|
|
||||||
if (articolo == null || articolo.getPesoKg() == null)
|
if (articolo == null || articolo.getPesoKg() == null || articolo.getTaraKg() == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
BigDecimal pesoRiga = articolo.isFlagQtaCnfFissaBoolean() ? mtbColr.getNumCnf().multiply(articolo.getPesoKg()) : mtbColr.getQtaCol();
|
BigDecimal pesoRiga = articolo.isFlagQtaCnfFissaBoolean() ? mtbColr.getNumCnf().multiply(articolo.getPesoKg()) : mtbColr.getQtaCol();
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogAskLineaProdComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogAskLineaProdComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogAskLineaProdView dialogAskLineaProdView);
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogAskLineaProdComponent.class)
|
||||||
|
public class DialogAskLineaProdModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogAskLineaProdViewModel providesDialogAskLineaProdViewModel() {
|
||||||
|
return new DialogAskLineaProdViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
||||||
|
|
||||||
|
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.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogAskLineaProdBinding;
|
||||||
|
|
||||||
|
public class DialogAskLineaProdView extends BaseDialogFragment implements DialogAskLineaProdViewModel.Listener {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
DialogAskLineaProdViewModel mViewModel;
|
||||||
|
|
||||||
|
private final RunnableArgs<String> onComplete;
|
||||||
|
private final Runnable onAbort;
|
||||||
|
|
||||||
|
private DialogAskLineaProdBinding mBindings;
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
|
||||||
|
private int mBarcodeScannerIstanceID;
|
||||||
|
|
||||||
|
//Pass here all external parameters
|
||||||
|
public static DialogAskLineaProdView newInstance(RunnableArgs<String> onComplete, Runnable onAbort) {
|
||||||
|
return new DialogAskLineaProdView(onComplete, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogAskLineaProdView(RunnableArgs<String> onComplete, Runnable onAbort) {
|
||||||
|
super();
|
||||||
|
this.onComplete = onComplete;
|
||||||
|
this.onAbort = onAbort;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
this.mContext = requireContext();
|
||||||
|
|
||||||
|
mBindings = DialogAskLineaProdBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialogAskLineaProdComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mViewModel.setListener(this);
|
||||||
|
|
||||||
|
setCancelable(true);
|
||||||
|
|
||||||
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
|
.setView(mBindings.getRoot())
|
||||||
|
.setCancelable(isCancelable())
|
||||||
|
.setNegativeButton(R.string.abort, (dialogInterface, i) -> {
|
||||||
|
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.initBarcode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initBarcode() {
|
||||||
|
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
|
.setOnScanSuccessful(onScanSuccessful)
|
||||||
|
.setOnScanFailed(this::onError));
|
||||||
|
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
this.mViewModel.processBarcodeDTO(data, BarcodeManager::enable);
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProductionLineSelected(String codJfas) {
|
||||||
|
this.onComplete.run(codJfas);
|
||||||
|
dismiss();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.core.exception.InvalidLineaProdBarcodeException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
||||||
|
|
||||||
|
public class DialogAskLineaProdViewModel {
|
||||||
|
|
||||||
|
private Listener mListener;
|
||||||
|
|
||||||
|
public void processBarcodeDTO(BarcodeScanDTO data, Runnable onComplete) {
|
||||||
|
if (UtilityBarcode.isEtichettaPosizione(data)) {
|
||||||
|
|
||||||
|
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(data.getStringValue());
|
||||||
|
|
||||||
|
if (!foundPosizione.isFlagLineaProduzione()) {
|
||||||
|
this.sendError(new InvalidLineaProdBarcodeException(data.getStringValue()));
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
onComplete.run();
|
||||||
|
this.sendOnProductionLineSelected(foundPosizione.getPosizione());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.sendError(new NoResultFromBarcodeException());
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogAskLineaProdViewModel setListener(Listener listener) {
|
||||||
|
this.mListener = listener;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingStarted() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingEnded() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnProductionLineSelected(String codJfas) {
|
||||||
|
if (this.mListener != null) mListener.onProductionLineSelected(codJfas);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendError(Exception ex) {
|
||||||
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Listener extends ILoadingListener {
|
||||||
|
void onError(Exception ex);
|
||||||
|
void onProductionLineSelected(String codJfas);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ import android.text.TextWatcher;
|
|||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@@ -90,7 +91,7 @@ public class DialogAskPositionOfLUView extends BaseDialogFragment implements Dia
|
|||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
|
|
||||||
if(getDialog() != null) {
|
if (getDialog() != null) {
|
||||||
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
|
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
|
||||||
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
|
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
|
||||||
}
|
}
|
||||||
@@ -180,8 +181,12 @@ public class DialogAskPositionOfLUView extends BaseDialogFragment implements Dia
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
|
Toast.makeText(requireContext(), "Barcode non riconosciuto", Toast.LENGTH_SHORT)
|
||||||
|
.show();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Toast.makeText(requireContext(), "Barcode non riconosciuto", Toast.LENGTH_SHORT)
|
||||||
|
.show();
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public class InactiveBatchLotException extends Exception {
|
||||||
|
public InactiveBatchLotException(String lotto) {
|
||||||
|
super(String.format(UtilityResources.getString(R.string.batch_lot_not_enabled), lotto));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,163 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
|
||||||
|
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.graphics.Color;
|
|
||||||
import android.graphics.drawable.ColorDrawable;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
import android.widget.AdapterView;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.databinding.ObservableField;
|
|
||||||
|
|
||||||
import com.annimon.stream.Optional;
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.MainApplication;
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
|
||||||
import it.integry.integrywmsnative.databinding.DialogNoteAggiuntiveNuovaUlBinding;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloAdapter;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloListModel;
|
|
||||||
|
|
||||||
public class DialogInfoAggiuntiveLU extends BaseDialogFragment implements InfoAggiuntiveLUDialogViewModel.Listener {
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
InfoAggiuntiveLUDialogViewModel mViewModel;
|
|
||||||
|
|
||||||
private DialogNoteAggiuntiveNuovaUlBinding mBindings;
|
|
||||||
private final RunnableArgss<String, MtbTCol> mOnComplete;
|
|
||||||
private MtbColt currentMtbColt;
|
|
||||||
private DialogInputLUProdTipoColloAdapter codTcolArrayAdapter = null;
|
|
||||||
public ObservableField<String> additionalNotes = new ObservableField<>();
|
|
||||||
public ObservableField<String> selectedMtbTcol = new ObservableField<>();
|
|
||||||
public ObservableField<DialogInputLUProdTipoColloListModel> currentMtbTCol = new ObservableField<>();
|
|
||||||
|
|
||||||
public static DialogInfoAggiuntiveLU newInstance(@NotNull RunnableArgss<String, MtbTCol> onComplete) {
|
|
||||||
return new DialogInfoAggiuntiveLU(null, onComplete);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DialogInfoAggiuntiveLU newInstance(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete) {
|
|
||||||
return new DialogInfoAggiuntiveLU(mtbColt, onComplete);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DialogInfoAggiuntiveLU(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete) {
|
|
||||||
super();
|
|
||||||
this.mOnComplete = onComplete;
|
|
||||||
this.currentMtbColt = mtbColt;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStart() {
|
|
||||||
super.onStart();
|
|
||||||
this.init();
|
|
||||||
|
|
||||||
UtilityDialog.setTo90PercentWidth(requireActivity(), this);
|
|
||||||
this.mViewModel.setListener(this);
|
|
||||||
this.mViewModel.init();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
|
||||||
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_note_aggiuntive_nuova_ul, container, false);
|
|
||||||
mBindings.setLifecycleOwner(this);
|
|
||||||
|
|
||||||
MainApplication.appComponent
|
|
||||||
.infoAggiuntiveLUDialogComponent()
|
|
||||||
.create()
|
|
||||||
.inject(this);
|
|
||||||
|
|
||||||
mBindings.setView(this);
|
|
||||||
mBindings.setViewModel(this.mViewModel);
|
|
||||||
|
|
||||||
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
|
||||||
getDialog().setCanceledOnTouchOutside(false);
|
|
||||||
getDialog().setCancelable(false);
|
|
||||||
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
|
||||||
|
|
||||||
|
|
||||||
return mBindings.getRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
|
||||||
if (mOnComplete != null)
|
|
||||||
mOnComplete.run(additionalNotes.get(), mViewModel.getInternalTipoPed());
|
|
||||||
super.onDismiss(dialog);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void init() {
|
|
||||||
|
|
||||||
|
|
||||||
UtilityObservable.addPropertyChanged(this.selectedMtbTcol, (value) -> {
|
|
||||||
if (this.codTcolArrayAdapter != null && this.codTcolArrayAdapter.getDataset() != null) {
|
|
||||||
Optional<DialogInputLUProdTipoColloListModel> selectedItem = Stream.of(this.codTcolArrayAdapter.getDataset())
|
|
||||||
.filter(x -> x.toString().equals(value))
|
|
||||||
.findFirst();
|
|
||||||
|
|
||||||
if (selectedItem.isPresent()) {
|
|
||||||
currentMtbTCol.set(selectedItem.get());
|
|
||||||
this.mViewModel.setInternalTipoPed(selectedItem.get().getOriginalModel());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> {
|
|
||||||
|
|
||||||
|
|
||||||
codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, tipiCollo);
|
|
||||||
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
|
|
||||||
|
|
||||||
if (currentMtbColt != null && !UtilityString.isNullOrEmpty(currentMtbColt.getCodTcol()) && UtilityString.isNullOrEmpty(this.selectedMtbTcol.get())) {
|
|
||||||
MtbTCol tipoPedana = Stream.of(tipiCollo).filter(x -> x.getCodTcol().equalsIgnoreCase(currentMtbColt.getCodTcol())).findFirstOrElse(null);
|
|
||||||
if (tipoPedana != null) {
|
|
||||||
this.selectedMtbTcol.set(tipoPedana.getCodTcol() + " - " + tipoPedana.getDescrizione());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
this.mBindings.filledExposedDropdownCodTcol.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
|
||||||
@Override
|
|
||||||
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
|
|
||||||
currentMtbTCol.set(codTcolArrayAdapter.getItem(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNothingSelected(AdapterView<?> adapterView) {
|
|
||||||
currentMtbTCol.set(null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
mBindings.buttonConfirm.setOnClickListener(v -> {
|
|
||||||
dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
if (this.currentMtbColt != null) {
|
|
||||||
this.additionalNotes.set(currentMtbColt.getAnnotazioni());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogInfoAggiuntiveLUComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogInfoAggiuntiveLUComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogInfoAggiuntiveLUView dialogInfoAggiuntiveLUView);
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogInfoAggiuntiveLUComponent.class)
|
||||||
|
public class DialogInfoAggiuntiveLUModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogInfoAggiuntiveLUViewModel providesDialogInfoAggiuntiveLUViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
||||||
|
return new DialogInfoAggiuntiveLUViewModel(magazzinoRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,163 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.AdapterView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.databinding.ObservableField;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogInfoAggiuntiveLuBinding;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloAdapter;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloListModel;
|
||||||
|
|
||||||
|
public class DialogInfoAggiuntiveLUView extends BaseDialogFragment implements DialogInfoAggiuntiveLUViewModel.Listener {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
DialogInfoAggiuntiveLUViewModel mViewModel;
|
||||||
|
|
||||||
|
|
||||||
|
public ObservableField<String> additionalNotes = new ObservableField<>();
|
||||||
|
public ObservableField<String> selectedMtbTcol = new ObservableField<>();
|
||||||
|
public ObservableField<DialogInputLUProdTipoColloListModel> currentMtbTCol = new ObservableField<>();
|
||||||
|
|
||||||
|
|
||||||
|
private DialogInfoAggiuntiveLuBinding mBindings;
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
|
||||||
|
private final RunnableArgss<String, MtbTCol> mOnComplete;
|
||||||
|
private final Runnable mOnAbort;
|
||||||
|
private final MtbColt currentMtbColt;
|
||||||
|
|
||||||
|
|
||||||
|
public static DialogInfoAggiuntiveLUView newInstance(@NotNull RunnableArgss<String, MtbTCol> onComplete, @NotNull Runnable onAbort) {
|
||||||
|
return new DialogInfoAggiuntiveLUView(null, onComplete, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DialogInfoAggiuntiveLUView newInstance(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete, @NotNull Runnable onAbort) {
|
||||||
|
return new DialogInfoAggiuntiveLUView(mtbColt, onComplete, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogInfoAggiuntiveLUView(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete, @NotNull Runnable onAbort) {
|
||||||
|
super();
|
||||||
|
this.mOnComplete = onComplete;
|
||||||
|
this.mOnAbort = onAbort;
|
||||||
|
this.currentMtbColt = mtbColt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
this.mContext = requireContext();
|
||||||
|
|
||||||
|
mBindings = DialogInfoAggiuntiveLuBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialogInfoAggiuntiveLUComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mBindings.setView(this);
|
||||||
|
mBindings.setViewModel(mViewModel);
|
||||||
|
mViewModel.setListener(this);
|
||||||
|
|
||||||
|
setCancelable(false);
|
||||||
|
|
||||||
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
|
.setView(mBindings.getRoot())
|
||||||
|
.setCancelable(isCancelable())
|
||||||
|
.setPositiveButton(R.string.confirm, (dialogInterface, i) -> {
|
||||||
|
mOnComplete.run(additionalNotes.get(), currentMtbTCol.get() != null ? currentMtbTCol.get().getOriginalModel() : null);
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.abort, (dialogInterface, i) -> {
|
||||||
|
this.mOnAbort.run();
|
||||||
|
})
|
||||||
|
.create();
|
||||||
|
|
||||||
|
alertDialog.setCanceledOnTouchOutside(isCancelable());
|
||||||
|
alertDialog.setOnShowListener(this);
|
||||||
|
return alertDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShow(DialogInterface dialogInterface) {
|
||||||
|
super.onShow(dialogInterface);
|
||||||
|
|
||||||
|
this.init();
|
||||||
|
this.mViewModel.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
if (this.currentMtbColt != null)
|
||||||
|
this.additionalNotes.set(currentMtbColt.getAnnotazioni());
|
||||||
|
|
||||||
|
var codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(requireContext(),
|
||||||
|
R.layout.array_adapter_single_item,
|
||||||
|
this.mViewModel.getTipiCollo());
|
||||||
|
|
||||||
|
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
|
||||||
|
|
||||||
|
this.mViewModel.getTipiCollo().observe(this, tipiCollo -> {
|
||||||
|
|
||||||
|
if (currentMtbColt != null && !UtilityString.isNullOrEmpty(currentMtbColt.getCodTcol()) && UtilityString.isNullOrEmpty(this.selectedMtbTcol.get())) {
|
||||||
|
tipiCollo.stream()
|
||||||
|
.filter(x -> x.getCodTcol().equalsIgnoreCase(currentMtbColt.getCodTcol()))
|
||||||
|
.findFirst()
|
||||||
|
.ifPresent(tipoPedana -> this.selectedMtbTcol.set(tipoPedana.getCodTcol() + " - " + tipoPedana.getDescrizione()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
UtilityObservable.addPropertyChanged(this.selectedMtbTcol, (value) -> {
|
||||||
|
if (codTcolArrayAdapter.getDataset() != null) {
|
||||||
|
codTcolArrayAdapter.getDataset().stream()
|
||||||
|
.filter(x -> x.toString().equals(value))
|
||||||
|
.findFirst()
|
||||||
|
.ifPresent(tipoPedana -> {
|
||||||
|
currentMtbTCol.set(tipoPedana);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
this.mBindings.filledExposedDropdownCodTcol.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
|
||||||
|
currentMtbTCol.set(codTcolArrayAdapter.getItem(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNothingSelected(AdapterView<?> adapterView) {
|
||||||
|
currentMtbTCol.set(null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,23 +10,21 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
|
|||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||||
|
|
||||||
public class InfoAggiuntiveLUDialogViewModel {
|
public class DialogInfoAggiuntiveLUViewModel {
|
||||||
|
|
||||||
public final MutableLiveData<List<MtbTCol>> tipiCollo = new MutableLiveData<>();
|
private final MutableLiveData<List<MtbTCol>> tipiCollo = new MutableLiveData<>();
|
||||||
|
|
||||||
private MtbTCol internalTipoPed;
|
|
||||||
|
|
||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
private final MagazzinoRESTConsumer mMagazzinoRESTConsumer;
|
private final MagazzinoRESTConsumer mMagazzinoRESTConsumer;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public InfoAggiuntiveLUDialogViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
public DialogInfoAggiuntiveLUViewModel(MagazzinoRESTConsumer mMagazzinoRESTConsumer) {
|
||||||
this.mMagazzinoRESTConsumer = magazzinoRESTConsumer;
|
this.mMagazzinoRESTConsumer = mMagazzinoRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
new Thread(this::sendOnLoadingStarted).start();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
mMagazzinoRESTConsumer.getTipiCollo(tipiCollo -> {
|
mMagazzinoRESTConsumer.getTipiCollo(tipiCollo -> {
|
||||||
this.tipiCollo.postValue(tipiCollo);
|
this.tipiCollo.postValue(tipiCollo);
|
||||||
@@ -35,19 +33,14 @@ public class InfoAggiuntiveLUDialogViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public MutableLiveData<List<MtbTCol>> getTipiCollo() {
|
public MutableLiveData<List<MtbTCol>> getTipiCollo() {
|
||||||
return this.tipiCollo;
|
return tipiCollo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setListener(Listener listener) {
|
||||||
public void setInternalTipoPed(MtbTCol internalTipoPed) {
|
this.mListener = listener;
|
||||||
this.internalTipoPed = internalTipoPed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public MtbTCol getInternalTipoPed() {
|
|
||||||
return internalTipoPed;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendOnLoadingStarted() {
|
private void sendOnLoadingStarted() {
|
||||||
if (this.mListener != null) mListener.onLoadingStarted();
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
}
|
}
|
||||||
@@ -60,13 +53,9 @@ public class InfoAggiuntiveLUDialogViewModel {
|
|||||||
if (this.mListener != null) mListener.onError(ex);
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setListener(Listener listener) {
|
|
||||||
this.mListener = listener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface Listener extends ILoadingListener {
|
public interface Listener extends ILoadingListener {
|
||||||
|
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
|
||||||
|
|
||||||
import dagger.Subcomponent;
|
|
||||||
|
|
||||||
@Subcomponent
|
|
||||||
public interface InfoAggiuntiveLUDialogComponent {
|
|
||||||
|
|
||||||
@Subcomponent.Factory
|
|
||||||
interface Factory {
|
|
||||||
InfoAggiuntiveLUDialogComponent create();
|
|
||||||
}
|
|
||||||
|
|
||||||
void inject(DialogInfoAggiuntiveLU infoAggiuntiveLUDialog);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
|
||||||
|
|
||||||
import dagger.Module;
|
|
||||||
import dagger.Provides;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
|
||||||
|
|
||||||
@Module(subcomponents = InfoAggiuntiveLUDialogComponent.class)
|
|
||||||
public class InfoAggiuntiveLUDialogModule {
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
InfoAggiuntiveLUDialogViewModel providesInfoAggiuntiveLUDialogViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
|
||||||
return new InfoAggiuntiveLUDialogViewModel(magazzinoRESTConsumer);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -328,10 +328,11 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, this.mViewModel.getTipiCollo());
|
||||||
|
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
|
||||||
|
|
||||||
this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> {
|
this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> {
|
||||||
|
|
||||||
codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, tipiCollo);
|
|
||||||
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
|
|
||||||
|
|
||||||
if (mDialogInputLUProdDTO.getCodTcol() != null) {
|
if (mDialogInputLUProdDTO.getCodTcol() != null) {
|
||||||
Optional<MtbTCol> optTCol = Stream.of(tipiCollo)
|
Optional<MtbTCol> optTCol = Stream.of(tipiCollo)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
|||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
@@ -13,15 +14,20 @@ import it.integry.integrywmsnative.core.model.MtbTCol;
|
|||||||
|
|
||||||
public class DialogInputLUProdTipoColloAdapter extends ArrayAdapter<DialogInputLUProdTipoColloListModel> {
|
public class DialogInputLUProdTipoColloAdapter extends ArrayAdapter<DialogInputLUProdTipoColloListModel> {
|
||||||
|
|
||||||
private final List<DialogInputLUProdTipoColloListModel> mDataset;
|
private List<DialogInputLUProdTipoColloListModel> mDataset;
|
||||||
|
|
||||||
public DialogInputLUProdTipoColloAdapter(@NonNull Context context, int resource, @NonNull List<MtbTCol> objects) {
|
public DialogInputLUProdTipoColloAdapter(@NonNull Context context, int resource, @NonNull MutableLiveData<List<MtbTCol>> inputData) {
|
||||||
super(context, resource);
|
super(context, resource);
|
||||||
this.mDataset = Stream.of(objects).map(x -> new DialogInputLUProdTipoColloListModel()
|
|
||||||
.setOriginalModel(x))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
addAll(mDataset);
|
inputData.observeForever(data -> {
|
||||||
|
mDataset = Stream.of(data)
|
||||||
|
.map(x -> new DialogInputLUProdTipoColloListModel()
|
||||||
|
.setOriginalModel(x))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
clear();
|
||||||
|
addAll(mDataset);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<DialogInputLUProdTipoColloListModel> getDataset() {
|
public List<DialogInputLUProdTipoColloListModel> getDataset() {
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.input_quantity_to_return;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogInputQuantityToReturnComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogInputQuantityToReturnComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogInputQuantityToReturnView dialogInputQuantityToReturnView);
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.input_quantity_to_return;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogInputQuantityToReturnComponent.class)
|
||||||
|
public class DialogInputQuantityToReturnModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogInputQuantityToReturnViewModel providesDialogInputQuantityToReturnViewModel() {
|
||||||
|
return new DialogInputQuantityToReturnViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.input_quantity_to_return;
|
||||||
|
|
||||||
|
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.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
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.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityFocus;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogInputQuantityToReturnBinding;
|
||||||
|
|
||||||
|
public class DialogInputQuantityToReturnView extends BaseDialogFragment {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
DialogInputQuantityToReturnViewModel mViewModel;
|
||||||
|
|
||||||
|
private DialogInputQuantityToReturnBinding mBindings;
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
|
||||||
|
private final MtbAart mtbAart;
|
||||||
|
private final BigDecimal minQuantity;
|
||||||
|
private final BigDecimal maxQuantity;
|
||||||
|
private final RunnableArgs<BigDecimal> onDialogDismiss;
|
||||||
|
|
||||||
|
public static DialogInputQuantityToReturnView newInstance(@NotNull MtbAart mtbAart, BigDecimal minQuantity, BigDecimal maxQuantity, RunnableArgs<BigDecimal> onDialogDismiss) {
|
||||||
|
return new DialogInputQuantityToReturnView(mtbAart, minQuantity, maxQuantity, onDialogDismiss);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogInputQuantityToReturnView(@NotNull MtbAart mtbAart, BigDecimal minQuantity, BigDecimal maxQuantity, RunnableArgs<BigDecimal> onDialogDismiss) {
|
||||||
|
super();
|
||||||
|
|
||||||
|
this.mtbAart = mtbAart;
|
||||||
|
this.minQuantity = minQuantity;
|
||||||
|
this.maxQuantity = maxQuantity;
|
||||||
|
this.onDialogDismiss = onDialogDismiss;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
this.mContext = requireContext();
|
||||||
|
|
||||||
|
mBindings = DialogInputQuantityToReturnBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialogInputQuantityToReturnComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mViewModel.init(mtbAart, minQuantity, maxQuantity);
|
||||||
|
mBindings.setViewModel(mViewModel);
|
||||||
|
|
||||||
|
setCancelable(false);
|
||||||
|
|
||||||
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
|
.setView(mBindings.getRoot())
|
||||||
|
.setCancelable(isCancelable())
|
||||||
|
.setPositiveButton(R.string.confirm, (dialogInterface, i) -> {
|
||||||
|
onDialogDismiss.run(mViewModel.getInputQuanity());
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.abort, (dialogInterface, i) -> {
|
||||||
|
onDialogDismiss.run(null);
|
||||||
|
})
|
||||||
|
.create();
|
||||||
|
|
||||||
|
alertDialog.setCanceledOnTouchOutside(isCancelable());
|
||||||
|
alertDialog.setOnShowListener(this);
|
||||||
|
return alertDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShow(DialogInterface dialogInterface) {
|
||||||
|
super.onShow(dialogInterface);
|
||||||
|
|
||||||
|
UtilityFocus.focusTextBox(requireContext(), mBindings.additionalNotesText);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.input_quantity_to_return;
|
||||||
|
|
||||||
|
import androidx.databinding.ObservableField;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
|
||||||
|
public class DialogInputQuantityToReturnViewModel {
|
||||||
|
|
||||||
|
private MtbAart mtbAart;
|
||||||
|
private BigDecimal minQuantity;
|
||||||
|
private BigDecimal maxQuantity;
|
||||||
|
|
||||||
|
public ObservableField<BigDecimal> inputQuantity = new ObservableField<>(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
|
||||||
|
public void init(MtbAart mtbAart, BigDecimal minQuantity, BigDecimal maxQuantity) {
|
||||||
|
this.minQuantity = minQuantity;
|
||||||
|
this.maxQuantity = maxQuantity;
|
||||||
|
this.mtbAart = mtbAart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MtbAart getMtbAart() {
|
||||||
|
return mtbAart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getMinQuantity() {
|
||||||
|
return minQuantity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getMaxQuantity() {
|
||||||
|
return maxQuantity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getInputQuanity() {
|
||||||
|
return inputQuantity.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -44,6 +44,7 @@ public class DialogInputQuantityV2DTO {
|
|||||||
private boolean saveOnImeDone = false;
|
private boolean saveOnImeDone = false;
|
||||||
private boolean notifyProductLotStatus = false;
|
private boolean notifyProductLotStatus = false;
|
||||||
private boolean disableTracciabilitaCheck = false;
|
private boolean disableTracciabilitaCheck = false;
|
||||||
|
private boolean warnOnQuantityOverflow = false;
|
||||||
|
|
||||||
private StatoArticoloDTO statoPartitaMag;
|
private StatoArticoloDTO statoPartitaMag;
|
||||||
|
|
||||||
@@ -54,6 +55,8 @@ public class DialogInputQuantityV2DTO {
|
|||||||
|
|
||||||
private boolean canOverflowOrderQuantity;
|
private boolean canOverflowOrderQuantity;
|
||||||
|
|
||||||
|
private String customArtDescription;
|
||||||
|
|
||||||
public MtbAart getMtbAart() {
|
public MtbAart getMtbAart() {
|
||||||
return mtbAart;
|
return mtbAart;
|
||||||
}
|
}
|
||||||
@@ -359,4 +362,22 @@ public class DialogInputQuantityV2DTO {
|
|||||||
this.disableTracciabilitaCheck = disableTracciabilitaCheck;
|
this.disableTracciabilitaCheck = disableTracciabilitaCheck;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCustomArtDescription() {
|
||||||
|
return customArtDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogInputQuantityV2DTO setCustomArtDescription(String customArtDescription) {
|
||||||
|
this.customArtDescription = customArtDescription;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isWarnOnQuantityOverflow() {
|
||||||
|
return warnOnQuantityOverflow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogInputQuantityV2DTO setWarnOnQuantityOverflow(boolean warnOnQuantityOverflow) {
|
||||||
|
this.warnOnQuantityOverflow = warnOnQuantityOverflow;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,13 +41,13 @@ 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;
|
||||||
import it.integry.integrywmsnative.core.model.MtbUntMis;
|
import it.integry.integrywmsnative.core.model.MtbUntMis;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
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;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityFocus;
|
import it.integry.integrywmsnative.core.utility.UtilityFocus;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
|
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
|
|
||||||
@@ -151,6 +151,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
|
|
||||||
this.mViewModel
|
this.mViewModel
|
||||||
.setMtbAart(mDialogInputQuantityV2DTO.getMtbAart())
|
.setMtbAart(mDialogInputQuantityV2DTO.getMtbAart())
|
||||||
|
.setArtDescription(UtilityString.isNull(mDialogInputQuantityV2DTO.getCustomArtDescription(), mDialogInputQuantityV2DTO.getMtbAart().getDescrizioneEstesa()))
|
||||||
.setInitialNumCnf(mDialogInputQuantityV2DTO.getInitialNumCnf())
|
.setInitialNumCnf(mDialogInputQuantityV2DTO.getInitialNumCnf())
|
||||||
.setInitialQtaCnf(mDialogInputQuantityV2DTO.getInitialQtaCnf())
|
.setInitialQtaCnf(mDialogInputQuantityV2DTO.getInitialQtaCnf())
|
||||||
.setInitialQtaTot(mDialogInputQuantityV2DTO.getInitialQtaTot())
|
.setInitialQtaTot(mDialogInputQuantityV2DTO.getInitialQtaTot())
|
||||||
@@ -168,13 +169,15 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
.setTotalQtaAvailable(mDialogInputQuantityV2DTO.getTotalQtaAvailable())
|
.setTotalQtaAvailable(mDialogInputQuantityV2DTO.getTotalQtaAvailable())
|
||||||
.setCanInputZeroQuantity(mDialogInputQuantityV2DTO.isCanInputZeroQuantity())
|
.setCanInputZeroQuantity(mDialogInputQuantityV2DTO.isCanInputZeroQuantity())
|
||||||
.setCanOverflowOrderQuantity(mDialogInputQuantityV2DTO.isCanOverflowOrderQuantity())
|
.setCanOverflowOrderQuantity(mDialogInputQuantityV2DTO.isCanOverflowOrderQuantity())
|
||||||
|
.setWarnOnQuantityOverflow(mDialogInputQuantityV2DTO.isWarnOnQuantityOverflow())
|
||||||
.setQtaCnfAvailable(mDialogInputQuantityV2DTO.getQtaCnfAvailable())
|
.setQtaCnfAvailable(mDialogInputQuantityV2DTO.getQtaCnfAvailable())
|
||||||
.setPartitaMag(mDialogInputQuantityV2DTO.getPartitaMag())
|
.setPartitaMag(mDialogInputQuantityV2DTO.getPartitaMag())
|
||||||
.setNote(mDialogInputQuantityV2DTO.getNote())
|
.setNote(mDialogInputQuantityV2DTO.getNote())
|
||||||
.setIsNoteMandatory(mDialogInputQuantityV2DTO.isNotesMandatory())
|
.setIsNoteMandatory(mDialogInputQuantityV2DTO.isNotesMandatory())
|
||||||
.setSuggestPartitaMagRunnable(mDialogInputQuantityV2DTO.getSuggestPartitaMag())
|
.setSuggestPartitaMagRunnable(mDialogInputQuantityV2DTO.getSuggestPartitaMag())
|
||||||
.setDataScad(mDialogInputQuantityV2DTO.getDataScad())
|
.setDataScad(mDialogInputQuantityV2DTO.getDataScad())
|
||||||
.setDisableTracciabilitaCheck(mDialogInputQuantityV2DTO.isDisableTracciabilitaCheck());
|
.setDisableTracciabilitaCheck(mDialogInputQuantityV2DTO.isDisableTracciabilitaCheck())
|
||||||
|
.setStatoArt(mDialogInputQuantityV2DTO.getStatoPartitaMag() != null ? mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt() : null);
|
||||||
|
|
||||||
mBindings.setView(this);
|
mBindings.setView(this);
|
||||||
mBindings.setViewmodel(this.mViewModel);
|
mBindings.setViewmodel(this.mViewModel);
|
||||||
@@ -212,24 +215,23 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initProductLotStatusNotification() {
|
private void initProductLotStatusNotification() {
|
||||||
StatoPartitaMag statoPartitaMag = StatoPartitaMag.from(this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt());
|
if (this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt() == null)
|
||||||
if (statoPartitaMag == null)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this.mBindings.inputDataScadLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM);
|
this.mBindings.inputDataScadLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM);
|
||||||
switch (statoPartitaMag) {
|
switch (this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt()) {
|
||||||
case SCADUTO:
|
case IN_SCADENZA -> {
|
||||||
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
|
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
|
||||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.warn_color)));
|
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.warn_color)));
|
||||||
break;
|
}
|
||||||
case IN_SCADENZA:
|
case SCADUTO -> {
|
||||||
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
|
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
|
||||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.error_color)));
|
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.error_color)));
|
||||||
break;
|
}
|
||||||
default:
|
case NON_IN_SCADENZA -> {
|
||||||
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_check_white_24dp);
|
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_check_white_24dp);
|
||||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.success_color)));
|
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.success_color)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,19 +256,23 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
};
|
};
|
||||||
|
|
||||||
public void save() {
|
public void save() {
|
||||||
if (this.mViewModel.validate()) {
|
this.mViewModel.validate(validated -> {
|
||||||
this.mAbort = false;
|
if (validated) {
|
||||||
dismiss();
|
this.mAbort = false;
|
||||||
this.mOnComplete.run(this.mViewModel.getResult(), false);
|
dismiss();
|
||||||
}
|
this.mOnComplete.run(this.mViewModel.getResult(), false);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveAndCloseLU() {
|
public void saveAndCloseLU() {
|
||||||
if (this.mViewModel.validate()) {
|
this.mViewModel.validate(validated -> {
|
||||||
this.mAbort = false;
|
if (validated) {
|
||||||
dismiss();
|
this.mAbort = false;
|
||||||
this.mOnComplete.run(this.mViewModel.getResult(), true);
|
dismiss();
|
||||||
}
|
this.mOnComplete.run(this.mViewModel.getResult(), true);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
// @Override
|
||||||
@@ -530,4 +536,13 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
.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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onWarning(String text, RunnableArgs<Boolean> result) {
|
||||||
|
DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(text)),
|
||||||
|
null,
|
||||||
|
() -> result.run(true),
|
||||||
|
() -> result.run(false)
|
||||||
|
).show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,19 +3,24 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
|
|||||||
import androidx.databinding.ObservableField;
|
import androidx.databinding.ObservableField;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
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.di.BindableString;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn;
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
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;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.exception.InactiveBatchLotException;
|
||||||
import it.integry.integrywmsnative.view.dialogs.exception.InvalidBatchLotException;
|
import it.integry.integrywmsnative.view.dialogs.exception.InvalidBatchLotException;
|
||||||
import it.integry.integrywmsnative.view.dialogs.exception.InvalidExpireDateException;
|
import it.integry.integrywmsnative.view.dialogs.exception.InvalidExpireDateException;
|
||||||
import it.integry.integrywmsnative.view.dialogs.exception.InvalidNotesException;
|
import it.integry.integrywmsnative.view.dialogs.exception.InvalidNotesException;
|
||||||
@@ -32,6 +37,7 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
private final int UPDATE_QTA_TOT = 2;
|
private final int UPDATE_QTA_TOT = 2;
|
||||||
|
|
||||||
public ObservableField<MtbAart> mtbAart = new ObservableField<>();
|
public ObservableField<MtbAart> mtbAart = new ObservableField<>();
|
||||||
|
public BindableString artDescription = new BindableString();
|
||||||
|
|
||||||
public ObservableField<Boolean> blockedNumCnf = new ObservableField<>();
|
public ObservableField<Boolean> blockedNumCnf = new ObservableField<>();
|
||||||
public ObservableField<Boolean> blockedQtaCnf = new ObservableField<>();
|
public ObservableField<Boolean> blockedQtaCnf = new ObservableField<>();
|
||||||
@@ -78,11 +84,14 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
private int onNumCnfInputChanged;
|
private int onNumCnfInputChanged;
|
||||||
private int onQtaTotInputChanged;
|
private int onQtaTotInputChanged;
|
||||||
private boolean disableTracciabilitaCheck;
|
private boolean disableTracciabilitaCheck;
|
||||||
|
private boolean warnOnQuantityOverflow;
|
||||||
|
|
||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||||
|
|
||||||
|
private StatoPartitaMag statoArt;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
|
public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
@@ -236,6 +245,11 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DialogInputQuantityV2ViewModel setArtDescription(String artDescription) {
|
||||||
|
this.artDescription.set(artDescription);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public DialogInputQuantityV2ViewModel setInitialNumCnf(BigDecimal initialNumCnf) {
|
public DialogInputQuantityV2ViewModel setInitialNumCnf(BigDecimal initialNumCnf) {
|
||||||
this.initialNumCnf = initialNumCnf;
|
this.initialNumCnf = initialNumCnf;
|
||||||
return this;
|
return this;
|
||||||
@@ -326,6 +340,16 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DialogInputQuantityV2ViewModel setStatoArt(StatoPartitaMag statoArt) {
|
||||||
|
this.statoArt = statoArt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogInputQuantityV2ViewModel setWarnOnQuantityOverflow(boolean warnOnQuantityOverflow) {
|
||||||
|
this.warnOnQuantityOverflow = warnOnQuantityOverflow;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public DialogInputQuantityV2ViewModel setCanPartitaMagBeChanged(boolean canPartitaMagBeChanged) {
|
public DialogInputQuantityV2ViewModel setCanPartitaMagBeChanged(boolean canPartitaMagBeChanged) {
|
||||||
this.canPartitaMagBeChanged = canPartitaMagBeChanged;
|
this.canPartitaMagBeChanged = canPartitaMagBeChanged;
|
||||||
return this;
|
return this;
|
||||||
@@ -450,11 +474,12 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
this.blockedQtaTot.set(false);
|
this.blockedQtaTot.set(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean validate() {
|
public void validate(RunnableArgs<Boolean> onValidated) {
|
||||||
if (this.internalQtaCnf == null || UtilityBigDecimal.equalsTo(this.internalQtaCnf, BigDecimal.ZERO)) {
|
if (this.internalQtaCnf == null || UtilityBigDecimal.equalsTo(this.internalQtaCnf, BigDecimal.ZERO)) {
|
||||||
|
|
||||||
this.mListener.onError(new InvalidQtaCnfQuantityException());
|
this.mListener.onError(new InvalidQtaCnfQuantityException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!disableTracciabilitaCheck && mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
if (!disableTracciabilitaCheck && mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
||||||
@@ -462,51 +487,65 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
internalPartitaMag = suggestPartitaMagRunnable.run(this);
|
internalPartitaMag = suggestPartitaMagRunnable.run(this);
|
||||||
if (internalPartitaMag == null) {
|
if (internalPartitaMag == null) {
|
||||||
this.mListener.onError(new InvalidBatchLotException());
|
this.mListener.onError(new InvalidBatchLotException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.mListener.onError(new InvalidBatchLotException());
|
this.mListener.onError(new InvalidBatchLotException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(this.statoArt == StatoPartitaMag.DISATTIVO){
|
||||||
|
this.mListener.onError(new InactiveBatchLotException(internalPartitaMag));
|
||||||
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.shouldAskDataScad && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
if (this.shouldAskDataScad && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
||||||
|
|
||||||
this.mListener.onError(new InvalidBatchLotException());
|
this.mListener.onError(new InvalidBatchLotException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.shouldAskDataScad && this.internalDataScad == null) {
|
if (this.shouldAskDataScad && this.internalDataScad == null) {
|
||||||
|
|
||||||
this.mListener.onError(new InvalidExpireDateException());
|
this.mListener.onError(new InvalidExpireDateException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
|
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
|
||||||
this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||||
|
|
||||||
this.mListener.onError(new OverflowQtaTotOrderedQuantityException());
|
this.mListener.onError(new OverflowQtaTotOrderedQuantityException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
|
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
|
||||||
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||||
|
|
||||||
this.mListener.onError(new OverflowNumCnfOrderedQuantityException());
|
this.mListener.onError(new OverflowNumCnfOrderedQuantityException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaAvailable)) {
|
if (UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaAvailable)) {
|
||||||
|
|
||||||
this.mListener.onError(new OverflowQtaTotAvailableQuantityException());
|
this.mListener.onError(new OverflowQtaTotAvailableQuantityException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfAvailable) &&
|
if (UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfAvailable) &&
|
||||||
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||||
|
|
||||||
this.mListener.onError(new OverflowNumCnfAvailableQuantityException());
|
this.mListener.onError(new OverflowNumCnfAvailableQuantityException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.canInputZeroQuantity && (this.internalNumCnf == null || this.internalQtaCnf == null || this.internalQtaTot == null ||
|
if (!this.canInputZeroQuantity && (this.internalNumCnf == null || this.internalQtaCnf == null || this.internalQtaTot == null ||
|
||||||
@@ -515,17 +554,36 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO))) {
|
UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO))) {
|
||||||
|
|
||||||
this.mListener.onError(new InvalidQuantityException());
|
this.mListener.onError(new InvalidQuantityException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.isNoteMandatory() && (this.internalNote == null || this.internalNote.length() <= 0)) {
|
if (this.isNoteMandatory() && (this.internalNote == null || this.internalNote.length() <= 0)) {
|
||||||
this.mListener.onError(new InvalidNotesException());
|
this.mListener.onError(new InvalidNotesException());
|
||||||
return false;
|
onValidated.run(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(this.internalPartitaMag))
|
if (!UtilityString.isNullOrEmpty(this.internalPartitaMag))
|
||||||
this.internalPartitaMag = this.internalPartitaMag.toUpperCase();
|
this.internalPartitaMag = this.internalPartitaMag.toUpperCase();
|
||||||
return true;
|
|
||||||
|
//Gli ultimi due controlli sono in coda a causa della callBack di onWarning, non eseguirebbe i controlli messi dopo
|
||||||
|
|
||||||
|
if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
|
||||||
|
this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||||
|
|
||||||
|
this.mListener.onWarning("Hai inserito una quantità superiore rispetto a quella presente nell'ordine. <br>Continuare?", onValidated);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
|
||||||
|
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||||
|
|
||||||
|
this.mListener.onWarning("Hai inserito una quantità superiore rispetto a quella presente nell'ordine. <br>Continuare?", onValidated);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
onValidated.run(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DialogInputQuantityV2ResultDTO getResult() {
|
public DialogInputQuantityV2ResultDTO getResult() {
|
||||||
@@ -536,7 +594,6 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
.setQtaCnf(this.internalQtaCnf)
|
.setQtaCnf(this.internalQtaCnf)
|
||||||
.setNote(this.internalNote)
|
.setNote(this.internalNote)
|
||||||
.setQtaTot(this.internalQtaTot);
|
.setQtaTot(this.internalQtaTot);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setListener(Listener listener) {
|
public void setListener(Listener listener) {
|
||||||
@@ -570,5 +627,6 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
void onDataChanged();
|
void onDataChanged();
|
||||||
|
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
|
void onWarning(String text, RunnableArgs<Boolean> result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
10
app/src/main/res/drawable/ic_add_material3.xml
Normal file
10
app/src/main/res/drawable/ic_add_material3.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="960"
|
||||||
|
android:viewportHeight="960"
|
||||||
|
android:tint="?attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M440,520L200,520L200,440L440,440L440,200L520,200L520,440L760,440L760,520L520,520L520,760L440,760L440,520Z"/>
|
||||||
|
</vector>
|
||||||
10
app/src/main/res/drawable/ic_inventory_2_material3.xml
Normal file
10
app/src/main/res/drawable/ic_inventory_2_material3.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="960"
|
||||||
|
android:viewportHeight="960"
|
||||||
|
android:tint="?attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M200,880Q167,880 143.5,856.5Q120,833 120,800L120,349Q102,338 91,320.5Q80,303 80,280L80,160Q80,127 103.5,103.5Q127,80 160,80L800,80Q833,80 856.5,103.5Q880,127 880,160L880,280Q880,303 869,320.5Q858,338 840,349L840,800Q840,833 816.5,856.5Q793,880 760,880L200,880ZM200,360L200,800Q200,800 200,800Q200,800 200,800L760,800Q760,800 760,800Q760,800 760,800L760,360L200,360ZM160,280L800,280Q800,280 800,280Q800,280 800,280L800,160Q800,160 800,160Q800,160 800,160L160,160Q160,160 160,160Q160,160 160,160L160,280Q160,280 160,280Q160,280 160,280ZM360,560L600,560L600,480L360,480L360,560ZM480,580L480,580L480,580Q480,580 480,580Q480,580 480,580L480,580Q480,580 480,580Q480,580 480,580L480,580Z"/>
|
||||||
|
</vector>
|
||||||
@@ -147,6 +147,18 @@
|
|||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
tools:text="DESCRIZIONE" />
|
tools:text="DESCRIZIONE" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/descrizione_sub_1"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:layout_toStartOf="@id/secondary_unt_mis"
|
||||||
|
android:layout_below="@+id/descrizione"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp"
|
||||||
|
tools:text="DATA ORD" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:id="@+id/secondary_unt_mis"
|
android:id="@+id/secondary_unt_mis"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
|
|
||||||
<variable
|
<variable
|
||||||
name="accettazioneView"
|
name="view"
|
||||||
type="it.integry.integrywmsnative.gest.accettazione_bolla_picking.AccettazioneBollaPickingActivity" />
|
type="it.integry.integrywmsnative.gest.accettazione_bolla_picking.AccettazioneBollaPickingActivity" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:alpha="0.3"
|
android:alpha="0.3"
|
||||||
app:visibility="@{accettazioneView.noItemsToPick}">
|
app:visibility="@{view.noItemsToPick}">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
<androidx.constraintlayout.widget.Guideline
|
||||||
android:id="@+id/guideline_empty_top"
|
android:id="@+id/guideline_empty_top"
|
||||||
@@ -133,66 +133,16 @@
|
|||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionMenu
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
android:id="@+id/accettazione_ordine_inevaso_fab"
|
android:id="@+id/accettazione_ordine_inevaso_fab"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_gravity="bottom|end"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
android:layout_margin="16dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
android:onClick="@{() -> view.showFabMenu()}"
|
||||||
app:visibility="@{accettazioneView.noLUPresent}"
|
app:srcCompat="@drawable/ic_add_24dp"
|
||||||
fab:menu_animationDelayPerItem="50"
|
app:visibility="@{view.noLUPresent}"
|
||||||
fab:menu_backgroundColor="@color/white_bg_alpha"
|
style="?attr/floatingActionButtonPrimaryStyle" />
|
||||||
fab:menu_buttonSpacing="0dp"
|
|
||||||
fab:menu_colorNormal="@color/colorSecondary"
|
|
||||||
fab:menu_colorPressed="@color/colorSecondaryDark"
|
|
||||||
fab:menu_fab_size="normal"
|
|
||||||
fab:menu_labels_colorNormal="@color/white"
|
|
||||||
fab:menu_labels_colorPressed="@color/white_pressed"
|
|
||||||
fab:menu_labels_colorRipple="#66FFFFFF"
|
|
||||||
fab:menu_labels_cornerRadius="3dp"
|
|
||||||
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
|
|
||||||
fab:menu_labels_margin="0dp"
|
|
||||||
fab:menu_labels_padding="8dp"
|
|
||||||
fab:menu_labels_paddingBottom="4dp"
|
|
||||||
fab:menu_labels_paddingLeft="8dp"
|
|
||||||
fab:menu_labels_paddingRight="8dp"
|
|
||||||
fab:menu_labels_paddingTop="4dp"
|
|
||||||
fab:menu_labels_position="left"
|
|
||||||
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
|
|
||||||
fab:menu_labels_showShadow="true"
|
|
||||||
fab:menu_labels_textColor="@color/black_semi_transparent"
|
|
||||||
fab:menu_labels_textSize="18sp"
|
|
||||||
fab:menu_openDirection="up"
|
|
||||||
fab:menu_shadowColor="#66000000"
|
|
||||||
fab:menu_shadowRadius="4dp"
|
|
||||||
fab:menu_shadowXOffset="1dp"
|
|
||||||
fab:menu_shadowYOffset="3dp"
|
|
||||||
fab:menu_showShadow="true">
|
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionButton
|
|
||||||
android:id="@+id/accettazione_ordine_inevaso_fab_item1"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:src="@drawable/ic_box"
|
|
||||||
app:fab_colorNormal="@color/white"
|
|
||||||
app:fab_colorPressed="@color/white_pressed"
|
|
||||||
app:fab_colorRipple="#66FFFFFF"
|
|
||||||
app:onClick="@{() -> accettazioneView.showCreatedUL()}"
|
|
||||||
fab:fab_label="@string/action_show_created_ul" />
|
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionButton
|
|
||||||
android:id="@+id/accettazione_ordine_inevaso_fab_item2"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:src="@drawable/ic_add_24dp"
|
|
||||||
app:fab_colorNormal="@color/white"
|
|
||||||
app:fab_colorPressed="@color/white_pressed"
|
|
||||||
app:fab_colorRipple="#66FFFFFF"
|
|
||||||
app:onClick="@{() -> accettazioneView.createNewLU()}"
|
|
||||||
fab:fab_label="@string/action_create_ul" />
|
|
||||||
|
|
||||||
</com.github.clans.fab.FloatingActionMenu>
|
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
@@ -214,7 +164,7 @@
|
|||||||
app:behavior_hideable="false"
|
app:behavior_hideable="false"
|
||||||
app:behavior_peekHeight="66dp"
|
app:behavior_peekHeight="66dp"
|
||||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
||||||
app:visibility="@{accettazioneView.bottomSheetEnabled}"
|
app:visibility="@{view.bottomSheetEnabled}"
|
||||||
app:parentView="@id/bottom_sheet_lu_content" />
|
app:parentView="@id/bottom_sheet_lu_content" />
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
|
|
||||||
<variable
|
<variable
|
||||||
name="accettazioneView"
|
name="view"
|
||||||
type="it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingActivity" />
|
type="it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingActivity" />
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:alpha="0.3"
|
android:alpha="0.3"
|
||||||
app:visibility="@{accettazioneView.noItemsToPick}">
|
app:visibility="@{view.noItemsToPick}">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
<androidx.constraintlayout.widget.Guideline
|
||||||
android:id="@+id/guideline_empty_top"
|
android:id="@+id/guideline_empty_top"
|
||||||
@@ -129,66 +129,18 @@
|
|||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionMenu
|
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
android:id="@+id/accettazione_ordine_inevaso_fab"
|
android:id="@+id/accettazione_ordine_inevaso_fab"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_gravity="bottom|end"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
android:layout_margin="16dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
android:onClick="@{() -> view.showFabMenu()}"
|
||||||
app:visibility="@{accettazioneView.noLUPresent}"
|
app:srcCompat="@drawable/ic_add_24dp"
|
||||||
fab:menu_animationDelayPerItem="50"
|
app:visibility="@{view.noLUPresent}"
|
||||||
fab:menu_backgroundColor="@color/white_bg_alpha"
|
style="?attr/floatingActionButtonPrimaryStyle" />
|
||||||
fab:menu_buttonSpacing="0dp"
|
|
||||||
fab:menu_colorNormal="@color/colorSecondary"
|
|
||||||
fab:menu_colorPressed="@color/colorSecondaryDark"
|
|
||||||
fab:menu_fab_size="normal"
|
|
||||||
fab:menu_labels_colorNormal="@color/white"
|
|
||||||
fab:menu_labels_colorPressed="@color/white_pressed"
|
|
||||||
fab:menu_labels_colorRipple="#66FFFFFF"
|
|
||||||
fab:menu_labels_cornerRadius="3dp"
|
|
||||||
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
|
|
||||||
fab:menu_labels_margin="0dp"
|
|
||||||
fab:menu_labels_padding="8dp"
|
|
||||||
fab:menu_labels_paddingBottom="4dp"
|
|
||||||
fab:menu_labels_paddingLeft="8dp"
|
|
||||||
fab:menu_labels_paddingRight="8dp"
|
|
||||||
fab:menu_labels_paddingTop="4dp"
|
|
||||||
fab:menu_labels_position="left"
|
|
||||||
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
|
|
||||||
fab:menu_labels_showShadow="true"
|
|
||||||
fab:menu_labels_textColor="@color/black_semi_transparent"
|
|
||||||
fab:menu_labels_textSize="18sp"
|
|
||||||
fab:menu_openDirection="up"
|
|
||||||
fab:menu_shadowColor="#66000000"
|
|
||||||
fab:menu_shadowRadius="4dp"
|
|
||||||
fab:menu_shadowXOffset="1dp"
|
|
||||||
fab:menu_shadowYOffset="3dp"
|
|
||||||
fab:menu_showShadow="true">
|
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionButton
|
|
||||||
android:id="@+id/accettazione_ordine_inevaso_fab_item1"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:src="@drawable/ic_box"
|
|
||||||
app:fab_colorNormal="@color/white"
|
|
||||||
app:fab_colorPressed="@color/white_pressed"
|
|
||||||
app:fab_colorRipple="#66FFFFFF"
|
|
||||||
app:onClick="@{() -> accettazioneView.showCreatedUL()}"
|
|
||||||
fab:fab_label="@string/action_show_created_ul" />
|
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionButton
|
|
||||||
android:id="@+id/accettazione_ordine_inevaso_fab_item2"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:src="@drawable/ic_add_24dp"
|
|
||||||
app:fab_colorNormal="@color/white"
|
|
||||||
app:fab_colorPressed="@color/white_pressed"
|
|
||||||
app:fab_colorRipple="#66FFFFFF"
|
|
||||||
app:onClick="@{() -> accettazioneView.createNewLU()}"
|
|
||||||
fab:fab_label="@string/action_create_ul" />
|
|
||||||
|
|
||||||
</com.github.clans.fab.FloatingActionMenu>
|
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
@@ -210,7 +162,7 @@
|
|||||||
app:behavior_hideable="false"
|
app:behavior_hideable="false"
|
||||||
app:behavior_peekHeight="66dp"
|
app:behavior_peekHeight="66dp"
|
||||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
||||||
app:visibility="@{accettazioneView.bottomSheetEnabled}"
|
app:visibility="@{view.bottomSheetEnabled}"
|
||||||
app:parentView="@id/bottom_sheet_lu_content" />
|
app:parentView="@id/bottom_sheet_lu_content" />
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@color/full_white"
|
android:background="@color/full_white"
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:focusableInTouchMode="true"
|
android:focusableInTouchMode="true"
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
tools:context=".gest.contenuto_bancale.ContenutoBancaleActivity">
|
tools:context=".gest.contenuto_bancale.ContenutoBancaleActivity">
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="8dp"
|
android:layout_marginLeft="8dp"
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="16dp">
|
android:padding="16dp">
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
@@ -91,9 +91,9 @@
|
|||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="22 ottobre 2018" />
|
tools:text="22 ottobre 2018" />
|
||||||
</LinearLayout>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
@@ -113,9 +113,9 @@
|
|||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
android:textStyle="italic"
|
android:textStyle="italic"
|
||||||
tools:text="Vito Falagario" />
|
tools:text="Vito Falagario" />
|
||||||
</LinearLayout>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
@@ -136,9 +136,9 @@
|
|||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="A00F00C00L00" />
|
tools:text="A00F00C00L00" />
|
||||||
</LinearLayout>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
@@ -168,10 +168,10 @@
|
|||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="(Bari)" />
|
tools:text="(Bari)" />
|
||||||
</LinearLayout>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
@@ -186,11 +186,11 @@
|
|||||||
</androidx.recyclerview.widget.RecyclerView>
|
</androidx.recyclerview.widget.RecyclerView>
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
</LinearLayout>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionMenu
|
<com.github.clans.fab.FloatingActionMenu
|
||||||
|
|||||||
66
app/src/main/res/layout/dialog_ask_linea_prod.xml
Normal file
66
app/src/main/res/layout/dialog_ask_linea_prod.xml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical" android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingHorizontal="16dp"
|
||||||
|
android:paddingVertical="16dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Icon.CenterStacked"
|
||||||
|
android:layout_width="36dp"
|
||||||
|
android:layout_height="36dp"
|
||||||
|
android:src="@drawable/ic_error_white_24dp"
|
||||||
|
app:tint="?colorPrimary" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/title_text"
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:text="Linea produzione" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:layout_marginHorizontal="16dp">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/progressBar"
|
||||||
|
style="?android:attr/progressBarStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
style="@style/TextAppearance.Material3.BodyMedium"
|
||||||
|
android:text="Scansiona il codice a barre di una linea di produzione"/>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
</layout>
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
<it.integry.integrywmsnative.ui.DeactivatableViewPager
|
<it.integry.integrywmsnative.ui.DeactivatableViewPager
|
||||||
android:id="@+id/viewpager"
|
android:id="@+id/viewpager"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:animateLayoutChanges="true">
|
android:animateLayoutChanges="true">
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user