Compare commits
114 Commits
v1.13.10(1
...
v1.15.0(18
| Author | SHA1 | Date | |
|---|---|---|---|
| d16cec069c | |||
| 0729b8ce87 | |||
| 92a2cdaec6 | |||
| 497bc54ebd | |||
| b00cd1f097 | |||
| cfc3649807 | |||
| 5ddd2e6235 | |||
| 2174a19c0f | |||
| 44cdbf929f | |||
| 65c0e520c5 | |||
| 062abb4ea3 | |||
| 1d759cdcbf | |||
| 15e1793962 | |||
| 55fee02f36 | |||
| 575ac2577f | |||
| 3fc5cd3660 | |||
| d77fbff509 | |||
| 58865ca34b | |||
| 23aa7f5261 | |||
| 65532a3185 | |||
| 1440c52322 | |||
| 4e36053ba6 | |||
| c7777b261d | |||
| 7b0a86bb81 | |||
| ebf2bd578e | |||
| f90e2acc3e | |||
| 035f058bc3 | |||
| 73e57e9430 | |||
| 13cc9f6053 | |||
| d9844315a3 | |||
| ade37f07d6 | |||
| f02e9921cb | |||
| e8ce7a9eeb | |||
| 61b0049a87 | |||
| 5c4d72dae2 | |||
| 39f52bf3dd | |||
| e50aa1f014 | |||
| b1d06605cd | |||
| ed55eb4279 | |||
| 9ac96ac8fd | |||
| 5be3fd9c25 | |||
| bab558252a | |||
| c256b39119 | |||
| af76627c50 | |||
| f9544566e9 | |||
| 4f02c3a4bc | |||
| ea8d8835cd | |||
| 61e07e8f76 | |||
| 962e1f7fa4 | |||
| 07d889bcd5 | |||
| 170db3eb0a | |||
| 856a807e3e | |||
| c56aa812ff | |||
| 770f014a70 | |||
| f6ff7aa80d | |||
| 4cd3e7e102 | |||
| 69bf5e319e | |||
| 88fe4d82cd | |||
| c8cd794cfc | |||
| 5dcc567eab | |||
| 89eafaf6ca | |||
| 6fc7f80ed4 | |||
| 2464d44222 | |||
| 96d544f2ad | |||
| e85ddc6580 | |||
| 89f6b9ce71 | |||
| c7d0ed1747 | |||
| b84b3c28f3 | |||
| 3a3bf4c2dd | |||
| 4809a96e5b | |||
| 5f206feb12 | |||
| 575762da2f | |||
| a96078c9e6 | |||
| b1941d5c34 | |||
| 4dc688af14 | |||
| 6675757317 | |||
| 1310b34a8d | |||
| 4e8fe26c6b | |||
| 32ff7bfa39 | |||
| c8cfa486e1 | |||
| 0356c912e6 | |||
| 7f448bbbb3 | |||
| f940b6f239 | |||
| a3de73dc66 | |||
| 9fa1aa156e | |||
| 03e1a186b8 | |||
| 598372675f | |||
| ffccd2f3d3 | |||
| 4252e13323 | |||
| 7c55cce6ae | |||
| 45caece076 | |||
| 79dc75fc89 | |||
| f9483e14be | |||
| d3396cdb63 | |||
| 3c0d084c28 | |||
| ba220461db | |||
| 0d9d0ff8b0 | |||
| 74d0369cb5 | |||
| 6fbdce86c7 | |||
| 4bfd68b614 | |||
| b57c452648 | |||
| 0fd4dc668a | |||
| 726afed296 | |||
| 5b04e99c33 | |||
| 5632c6f7ab | |||
| 20a076e705 | |||
| fb85af8bbf | |||
| 6a7f3ee2ed | |||
| de4a87658e | |||
| e87f248a12 | |||
| 4f366a4f38 | |||
| 41b1a0571e | |||
| 641fb3964d | |||
| 6a39512e7b |
@@ -7,8 +7,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 156
|
def appVersionCode = 181
|
||||||
def appVersionName = '1.13.10'
|
def appVersionName = '1.15.0'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
@@ -21,7 +21,7 @@ android {
|
|||||||
|
|
||||||
applicationVariants.all { variant ->
|
applicationVariants.all { variant ->
|
||||||
variant.outputs.all { output ->
|
variant.outputs.all { output ->
|
||||||
output.outputFileName = "android-release_v2.apk"
|
output.outputFileName = "android-release.apk"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ android {
|
|||||||
|
|
||||||
build {
|
build {
|
||||||
doLast {
|
doLast {
|
||||||
delete "$projectDir/build/outputs/apk/release/version_v2.txt"
|
delete "$projectDir/build/outputs/apk/release/version.txt"
|
||||||
file("$projectDir/build/outputs/apk/release/version_v2.txt").text = appVersionCode + '\n' + appVersionName
|
file("$projectDir/build/outputs/apk/release/version.txt").text = appVersionCode + '\n' + appVersionName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,26 +91,27 @@ dependencies {
|
|||||||
//Firebase
|
//Firebase
|
||||||
|
|
||||||
// Import the Firebase BoM
|
// Import the Firebase BoM
|
||||||
implementation platform('com.google.firebase:firebase-bom:25.12.0')
|
implementation platform('com.google.firebase:firebase-bom:26.3.0')
|
||||||
|
implementation 'com.google.firebase:firebase-analytics'
|
||||||
implementation 'com.google.firebase:firebase-core'
|
implementation 'com.google.firebase:firebase-core'
|
||||||
implementation 'com.google.firebase:firebase-crash'
|
implementation 'com.google.firebase:firebase-crash'
|
||||||
implementation 'com.google.firebase:firebase-perf'
|
|
||||||
implementation 'com.google.firebase:firebase-crashlytics'
|
implementation 'com.google.firebase:firebase-crashlytics'
|
||||||
implementation 'com.google.firebase:firebase-analytics'
|
implementation 'com.google.firebase:firebase-perf'
|
||||||
|
implementation 'com.google.android.gms:play-services-basement:17.5.0'
|
||||||
|
|
||||||
|
|
||||||
implementation 'androidx.appcompat:appcompat:1.2.0'
|
implementation 'androidx.appcompat:appcompat:1.2.0'
|
||||||
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.3.0-alpha03'
|
implementation 'com.google.android.material:material:1.3.0-rc01'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||||
implementation 'androidx.cardview:cardview:1.0.0'
|
implementation 'androidx.cardview:cardview:1.0.0'
|
||||||
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
||||||
implementation 'androidx.preference:preference:1.1.1'
|
implementation 'androidx.preference:preference-ktx:1.1.1'
|
||||||
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
|
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
|
||||||
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
|
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
|
||||||
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
|
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
|
||||||
implementation 'com.annimon:stream:1.2.1'
|
implementation 'com.annimon:stream:1.2.1'
|
||||||
implementation 'androidx.lifecycle:lifecycle-runtime:2.2.0'
|
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0'
|
||||||
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
||||||
implementation 'androidx.lifecycle:lifecycle-common-java8:2.2.0'
|
implementation 'androidx.lifecycle:lifecycle-common-java8:2.2.0'
|
||||||
implementation 'org.apache.commons:commons-text:1.9'
|
implementation 'org.apache.commons:commons-text:1.9'
|
||||||
|
|||||||
@@ -14,14 +14,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth_client": [
|
"oauth_client": [
|
||||||
{
|
|
||||||
"client_id": "963231271247-b50hgcd89u9ksfc7189mri044kq8aq1p.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "it.integry.integrywmsnative",
|
|
||||||
"certificate_hash": "864b69dcc40196befa65638a868cec1c61245fa6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"client_id": "963231271247-59qdc1vobbnjfp135ce4hv12c53s9hse.apps.googleusercontent.com",
|
"client_id": "963231271247-59qdc1vobbnjfp135ce4hv12c53s9hse.apps.googleusercontent.com",
|
||||||
"client_type": 1,
|
"client_type": 1,
|
||||||
@@ -30,6 +22,14 @@
|
|||||||
"certificate_hash": "3b6d97a981f446f5011049d781aeb9960f9352af"
|
"certificate_hash": "3b6d97a981f446f5011049d781aeb9960f9352af"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"client_id": "963231271247-b50hgcd89u9ksfc7189mri044kq8aq1p.apps.googleusercontent.com",
|
||||||
|
"client_type": 1,
|
||||||
|
"android_info": {
|
||||||
|
"package_name": "it.integry.integrywmsnative",
|
||||||
|
"certificate_hash": "864b69dcc40196befa65638a868cec1c61245fa6"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"client_id": "963231271247-6jof105pci1g0g7m2e7kjbtrtk2443g4.apps.googleusercontent.com",
|
"client_id": "963231271247-6jof105pci1g0g7m2e7kjbtrtk2443g4.apps.googleusercontent.com",
|
||||||
"client_type": 3
|
"client_type": 3
|
||||||
@@ -41,20 +41,13 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"services": {
|
"services": {
|
||||||
"analytics_service": {
|
|
||||||
"status": 1
|
|
||||||
},
|
|
||||||
"appinvite_service": {
|
"appinvite_service": {
|
||||||
"status": 2,
|
|
||||||
"other_platform_oauth_client": [
|
"other_platform_oauth_client": [
|
||||||
{
|
{
|
||||||
"client_id": "963231271247-6jof105pci1g0g7m2e7kjbtrtk2443g4.apps.googleusercontent.com",
|
"client_id": "963231271247-6jof105pci1g0g7m2e7kjbtrtk2443g4.apps.googleusercontent.com",
|
||||||
"client_type": 3
|
"client_type": 3
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"ads_service": {
|
|
||||||
"status": 2
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,10 +25,14 @@
|
|||||||
android:windowSoftInputMode="adjustNothing" />
|
android:windowSoftInputMode="adjustNothing" />
|
||||||
<activity android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity" />
|
<activity android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".gest.picking_resi.PickingResiActivity"
|
android:name=".gest.picking_resi_OLD.PickingResiActivity"
|
||||||
android:label="@string/activity_ultime_consegne_title"
|
android:label="@string/activity_ultime_consegne_title"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
android:theme="@style/Light" />
|
android:theme="@style/Light" />
|
||||||
|
<activity
|
||||||
|
android:name=".gest.picking_resi.PickingResiActivity"
|
||||||
|
android:screenOrientation="portrait"
|
||||||
|
android:theme="@style/Light" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
|
|||||||
@@ -175,8 +175,8 @@ public class MainActivity extends BaseActivity
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case R.id.nav_logout:
|
case R.id.nav_logout:
|
||||||
UtilitySettings.logout(this.mAppDatabase);
|
|
||||||
ServerStatusChecker.dispose();
|
ServerStatusChecker.dispose();
|
||||||
|
UtilitySettings.logout();
|
||||||
|
|
||||||
startLoginActivity();
|
startLoginActivity();
|
||||||
break;
|
break;
|
||||||
@@ -296,12 +296,12 @@ public class MainActivity extends BaseActivity
|
|||||||
|
|
||||||
if(fragment instanceof IScrollableFragment) {
|
if(fragment instanceof IScrollableFragment) {
|
||||||
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
|
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
|
||||||
((IScrollableFragment) fragment).setOnPreDestroy(() -> {
|
((IScrollableFragment) fragment).setScrollableOnPreDestroy(() -> {
|
||||||
mBinding.appBarMain.elevatedToolbar.resetAll();
|
mBinding.appBarMain.elevatedToolbar.resetAll();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) {
|
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isSelectAllButtonEnabled()) {
|
||||||
mBinding.appBarMain.mainSelectAll.setVisibility(View.VISIBLE);
|
mBinding.appBarMain.mainSelectAll.setVisibility(View.VISIBLE);
|
||||||
mBinding.appBarMain.mainSelectAll.setOnClickListener(new OnSingleClickListener() {
|
mBinding.appBarMain.mainSelectAll.setOnClickListener(new OnSingleClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -309,9 +309,10 @@ public class MainActivity extends BaseActivity
|
|||||||
((ISelectAllFragment)fragment).onSelectAll();
|
((ISelectAllFragment)fragment).onSelectAll();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
((ISelectAllFragment) fragment).setSelectAllOnPreDestroy(() -> {
|
||||||
mBinding.appBarMain.mainSelectAll.setVisibility(View.GONE);
|
mBinding.appBarMain.mainSelectAll.setVisibility(View.GONE);
|
||||||
mBinding.appBarMain.mainSelectAll.setOnClickListener(null);
|
mBinding.appBarMain.mainSelectAll.setOnClickListener(null);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(fragment instanceof IFilterableFragment) {
|
if(fragment instanceof IFilterableFragment) {
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ public class MainApplication extends Application {
|
|||||||
.roomModule(roomModule)
|
.roomModule(roomModule)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
appComponent.inject(appContext);
|
||||||
|
|
||||||
appContext.init();
|
appContext.init();
|
||||||
res = getResources();
|
res = getResources();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,18 @@ package it.integry.integrywmsnative;
|
|||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import dagger.Component;
|
import dagger.Component;
|
||||||
|
import it.integry.integrywmsnative.core.context.AppContext;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
|
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent;
|
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule;
|
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoModule;
|
||||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoComponent;
|
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoComponent;
|
||||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoModule;
|
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoModule;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.PickingResiComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.PickingResiModule;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdModule;
|
||||||
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_ordini_acquisto.PVOrdineAcquistoGrigliaComponent;
|
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdineAcquistoGrigliaComponent;
|
||||||
@@ -16,6 +23,8 @@ import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeComp
|
|||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent;
|
import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
|
import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Component;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Module;
|
||||||
|
|
||||||
// Definition of the Application graph
|
// Definition of the Application graph
|
||||||
@Singleton
|
@Singleton
|
||||||
@@ -28,7 +37,11 @@ import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
|
|||||||
PickingLiberoModule.class,
|
PickingLiberoModule.class,
|
||||||
RettificaGiacenzeModule.class,
|
RettificaGiacenzeModule.class,
|
||||||
SpedizioneModule.class,
|
SpedizioneModule.class,
|
||||||
AccettazionePickingModule.class})
|
AccettazionePickingModule.class,
|
||||||
|
PickingResiModule.class,
|
||||||
|
ProdPosizionamentoDaOrdModule.class,
|
||||||
|
OrdiniUscitaElencoModule.class,
|
||||||
|
DialogInputQuantityV2Module.class})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
MainActivityComponent.Factory mainActivityComponent();
|
MainActivityComponent.Factory mainActivityComponent();
|
||||||
@@ -38,5 +51,13 @@ public interface MainApplicationComponent {
|
|||||||
RettificaGiacenzeComponent.Factory rettificaGiacenzeComponent();
|
RettificaGiacenzeComponent.Factory rettificaGiacenzeComponent();
|
||||||
SpedizioneComponent.Factory spedizioneComponent();
|
SpedizioneComponent.Factory spedizioneComponent();
|
||||||
AccettazionePickingComponent.Factory accettazionePickingComponent();
|
AccettazionePickingComponent.Factory accettazionePickingComponent();
|
||||||
|
PickingResiComponent.Factory pickingResiComponent();
|
||||||
|
ProdPosizionamentoDaOrdComponent.Factory prodPosizionamentoDaOrdComponent();
|
||||||
|
OrdiniUscitaElencoComponent.Factory prodOrdineLavorazioneElencoComponent();
|
||||||
|
DialogInputQuantityV2Component.Factory dialogInputQuantityV2Component();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void inject(AppContext appContext);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
|
|
||||||
@@ -41,8 +42,8 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
OrdiniRESTConsumer provideOrdiniRESTConsumer() {
|
OrdiniRESTConsumer provideOrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
return new OrdiniRESTConsumer();
|
return new OrdiniRESTConsumer(systemRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -59,8 +60,8 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
ColliMagazzinoRESTConsumer provideColliMagazzinoRESTConsumer() {
|
ColliMagazzinoRESTConsumer provideColliMagazzinoRESTConsumer(ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
return new ColliMagazzinoRESTConsumer();
|
return new ColliMagazzinoRESTConsumer(articoloRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -81,5 +82,11 @@ public class MainApplicationModule {
|
|||||||
return new SystemRESTConsumer();
|
return new SystemRESTConsumer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
PosizioniRESTConsumer providesPosizioniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
|
return new PosizioniRESTConsumer(systemRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,15 +3,14 @@ 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.MainAccettazioneFragment;
|
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
|
||||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
|
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.ProdOrdineLavorazioneElencoFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
||||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.UltimiArriviFornitoreFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
|
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
|
||||||
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
|
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.UltimiArriviFornitoreFragment;
|
||||||
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
||||||
|
|
||||||
public class MenuConfiguration extends BaseMenuConfiguration {
|
public class MenuConfiguration extends BaseMenuConfiguration {
|
||||||
@@ -48,7 +47,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.vendita_title_fragment)
|
.setTitleText(R.string.vendita_title_fragment)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_spedizione)
|
.setTitleIcon(R.drawable.ic_dashboard_spedizione)
|
||||||
.setDrawerIcon(R.drawable.ic_black_upload)
|
.setDrawerIcon(R.drawable.ic_black_upload)
|
||||||
.setFragmentFactory(MainVenditaFragment::newInstance))
|
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, GestioneEnum.VENDITA, -1)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_free_picking)
|
.setID(R.id.nav_free_picking)
|
||||||
@@ -79,7 +78,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
|
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
|
||||||
.setDrawerIcon(R.drawable.ic_black_external)
|
.setDrawerIcon(R.drawable.ic_black_external)
|
||||||
.setFragmentFactory(ProdOrdineLavorazioneElencoFragment::newInstance))
|
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_free_lav_picking)
|
.setID(R.id.nav_free_lav_picking)
|
||||||
@@ -88,6 +87,13 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_barcode_scanner)
|
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_barcode_scanner)
|
||||||
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
|
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_prod_posizionamento_da_ord)
|
||||||
|
.setTitleText(it.integry.integrywmsnative.R.string.versamento_merce_fragment_title)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_merce)
|
||||||
|
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_load_shelf)
|
||||||
|
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, 1)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_prod_versamento_materiale)
|
.setID(R.id.nav_prod_versamento_materiale)
|
||||||
.setTitleText(R.string.prod_versamento_materiale_title_fragment)
|
.setTitleText(R.string.prod_versamento_materiale_title_fragment)
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
package it.integry.integrywmsnative.core.class_router.interfaces;
|
package it.integry.integrywmsnative.core.class_router.interfaces;
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.app.ProgressDialog;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
|
||||||
public interface IOrdiniVendita {
|
public interface IOrdiniVendita {
|
||||||
|
|
||||||
void distribuisciCollo(MtbColt mtbColt, List<OrdineVenditaInevasoDTO> testateOrdini, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed);
|
void distribuisciCollo(MtbColt mtbColt, List<OrdineUscitaInevasoDTO> testateOrdini, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,12 +6,16 @@ import com.google.firebase.crashlytics.FirebaseCrashlytics;
|
|||||||
import com.orhanobut.logger.AndroidLogAdapter;
|
import com.orhanobut.logger.AndroidLogAdapter;
|
||||||
import com.orhanobut.logger.Logger;
|
import com.orhanobut.logger.Logger;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.BuildConfig;
|
import it.integry.integrywmsnative.BuildConfig;
|
||||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
|
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
|
||||||
|
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.settings.Stash;
|
import it.integry.integrywmsnative.core.settings.Stash;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityContext;
|
import it.integry.integrywmsnative.core.utility.UtilityContext;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilitySettings;
|
||||||
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;
|
||||||
|
|
||||||
@@ -20,6 +24,9 @@ public class AppContext {
|
|||||||
//Note: this is the Application Context NOT the Activity Context
|
//Note: this is the Application Context NOT the Activity Context
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
AppDatabase mAppDatabase;
|
||||||
|
|
||||||
public AppContext(Context context) {
|
public AppContext(Context context) {
|
||||||
this.mContext = context;
|
this.mContext = context;
|
||||||
}
|
}
|
||||||
@@ -63,6 +70,7 @@ public class AppContext {
|
|||||||
UtilityContext.initApplicationContext(mContext);
|
UtilityContext.initApplicationContext(mContext);
|
||||||
UtilityResources.init(mContext);
|
UtilityResources.init(mContext);
|
||||||
UtilityToast.init(mContext);
|
UtilityToast.init(mContext);
|
||||||
|
UtilitySettings.init(mAppDatabase);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initLogger() {
|
private void initLogger() {
|
||||||
|
|||||||
@@ -3,15 +3,18 @@ package it.integry.integrywmsnative.core.context;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||||
|
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
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.UtilitySettings;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
public class MainContext {
|
public class MainContext {
|
||||||
@@ -44,7 +47,10 @@ public class MainContext {
|
|||||||
private void initDBData(Runnable onComplete) {
|
private void initDBData(Runnable onComplete) {
|
||||||
SettingsManager.loadDBVariables(onComplete, ex -> {
|
SettingsManager.loadDBVariables(onComplete, ex -> {
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(mContext,
|
DialogSimpleMessageHelper.makeErrorDialog(mContext,
|
||||||
new SpannableString(ex.getMessage()), null, mContext::finish).show();
|
new SpannableString(ex.getMessage()), null, mContext::finish, R.string.logout, () -> {
|
||||||
|
UtilitySettings.logout();
|
||||||
|
MainApplication.exit();
|
||||||
|
}).show();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,12 +8,8 @@ import com.google.android.gms.common.util.IOUtils;
|
|||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.DataInputStream;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -22,8 +18,8 @@ import java.util.Random;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.core.CommonConst;
|
import it.integry.integrywmsnative.core.CommonConst;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
|
|
||||||
public class ColliDataRecover {
|
public class ColliDataRecover {
|
||||||
|
|
||||||
@@ -35,7 +31,7 @@ public class ColliDataRecover {
|
|||||||
private String gestioneCollo;
|
private String gestioneCollo;
|
||||||
private String filtro;
|
private String filtro;
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> testateOrdini;
|
private List<OrdineUscitaInevasoDTO> testateOrdini;
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
@@ -91,11 +87,11 @@ public class ColliDataRecover {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<OrdineVenditaInevasoDTO> getTestateOrdini() {
|
public List<OrdineUscitaInevasoDTO> getTestateOrdini() {
|
||||||
return testateOrdini;
|
return testateOrdini;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RecoverDTO setTestateOrdini(List<OrdineVenditaInevasoDTO> testateOrdini) {
|
public RecoverDTO setTestateOrdini(List<OrdineUscitaInevasoDTO> testateOrdini) {
|
||||||
this.testateOrdini = testateOrdini;
|
this.testateOrdini = testateOrdini;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -153,7 +149,7 @@ public class ColliDataRecover {
|
|||||||
return recoverDTOOptional.isPresent() ? recoverDTOOptional.get() : null;
|
return recoverDTOOptional.isPresent() ? recoverDTOOptional.get() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int startNewSession(MtbColt mtbColtSession, List<OrdineVenditaInevasoDTO> testateOrdini) {
|
public static int startNewSession(MtbColt mtbColtSession, List<OrdineUscitaInevasoDTO> testateOrdini) {
|
||||||
Integer newId = null;
|
Integer newId = null;
|
||||||
|
|
||||||
while(newId == null) {
|
while(newId == null) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package it.integry.integrywmsnative.core.data_recover;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
|
||||||
public class ColliDataRecoverDTO {
|
public class ColliDataRecoverDTO {
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ public class ColliDataRecoverDTO {
|
|||||||
private String gestioneCollo;
|
private String gestioneCollo;
|
||||||
private String filtro;
|
private String filtro;
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> testateOrdini;
|
private List<OrdineUscitaInevasoDTO> testateOrdini;
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
@@ -70,11 +70,11 @@ public class ColliDataRecoverDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<OrdineVenditaInevasoDTO> getTestateOrdini() {
|
public List<OrdineUscitaInevasoDTO> getTestateOrdini() {
|
||||||
return testateOrdini;
|
return testateOrdini;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ColliDataRecoverDTO setTestateOrdini(List<OrdineVenditaInevasoDTO> testateOrdini) {
|
public ColliDataRecoverDTO setTestateOrdini(List<OrdineUscitaInevasoDTO> testateOrdini) {
|
||||||
this.testateOrdini = testateOrdini;
|
this.testateOrdini = testateOrdini;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ import javax.inject.Singleton;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.core.CommonConst;
|
import it.integry.integrywmsnative.core.CommonConst;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class ColliDataRecoverService {
|
public class ColliDataRecoverService {
|
||||||
@@ -72,7 +72,7 @@ public class ColliDataRecoverService {
|
|||||||
return recoverDTOOptional.isPresent() ? recoverDTOOptional.get() : null;
|
return recoverDTOOptional.isPresent() ? recoverDTOOptional.get() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int startNewSession(MtbColt mtbColtSession, List<OrdineVenditaInevasoDTO> testateOrdini) {
|
public int startNewSession(MtbColt mtbColtSession, List<OrdineUscitaInevasoDTO> testateOrdini) {
|
||||||
Integer newId = null;
|
Integer newId = null;
|
||||||
|
|
||||||
while(newId == null) {
|
while(newId == null) {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import androidx.room.ForeignKey;
|
|||||||
import androidx.room.Index;
|
import androidx.room.Index;
|
||||||
import androidx.room.PrimaryKey;
|
import androidx.room.PrimaryKey;
|
||||||
|
|
||||||
import java.util.Date;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
@Entity(
|
@Entity(
|
||||||
tableName = "articoli_griglia",
|
tableName = "articoli_griglia",
|
||||||
@@ -159,7 +159,7 @@ public class ArticoloGriglia {
|
|||||||
articolo.setQtaCnf(this.getQtaCnf());
|
articolo.setQtaCnf(this.getQtaCnf());
|
||||||
articolo.setUntMis(this.getUntMis());
|
articolo.setUntMis(this.getUntMis());
|
||||||
articolo.setDescrizione(this.getDescrizione());
|
articolo.setDescrizione(this.getDescrizione());
|
||||||
articolo.setDataIns(new Date());
|
articolo.setDataIns(UtilityDate.getDateInstance());
|
||||||
articolo.setQtaOrd(0);
|
articolo.setQtaOrd(0);
|
||||||
|
|
||||||
return articolo;
|
return articolo;
|
||||||
|
|||||||
@@ -1,23 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.core.di;
|
package it.integry.integrywmsnative.core.di;
|
||||||
|
|
||||||
import androidx.annotation.ColorRes;
|
|
||||||
import androidx.annotation.IdRes;
|
|
||||||
import androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView;
|
|
||||||
import androidx.appcompat.widget.LinearLayoutCompat;
|
|
||||||
import androidx.core.content.res.ResourcesCompat;
|
|
||||||
import androidx.databinding.BindingAdapter;
|
|
||||||
import androidx.databinding.BindingConversion;
|
|
||||||
import androidx.constraintlayout.widget.Guideline;
|
|
||||||
|
|
||||||
import com.google.android.material.textfield.TextInputEditText;
|
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
|
||||||
|
|
||||||
import androidx.core.util.Pair;
|
|
||||||
import androidx.appcompat.widget.AppCompatCheckBox;
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
|
|
||||||
import android.app.DatePickerDialog;
|
import android.app.DatePickerDialog;
|
||||||
import android.content.Context;
|
|
||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -25,10 +8,25 @@ import android.widget.AutoCompleteTextView;
|
|||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.LinearLayout;
|
|
||||||
import android.widget.RadioButton;
|
import android.widget.RadioButton;
|
||||||
import android.widget.RadioGroup;
|
import android.widget.RadioGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.ColorRes;
|
||||||
|
import androidx.appcompat.widget.AppCompatCheckBox;
|
||||||
|
import androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView;
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
import androidx.appcompat.widget.LinearLayoutCompat;
|
||||||
|
import androidx.constraintlayout.widget.Guideline;
|
||||||
|
import androidx.core.content.res.ResourcesCompat;
|
||||||
|
import androidx.core.util.Pair;
|
||||||
|
import androidx.databinding.BindingAdapter;
|
||||||
|
import androidx.databinding.BindingConversion;
|
||||||
|
import androidx.databinding.Observable;
|
||||||
|
import androidx.databinding.ObservableField;
|
||||||
|
|
||||||
|
import com.google.android.material.textfield.TextInputEditText;
|
||||||
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.text.DecimalFormatSymbols;
|
import java.text.DecimalFormatSymbols;
|
||||||
@@ -37,15 +35,10 @@ import java.util.Date;
|
|||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import androidx.databinding.Observable;
|
|
||||||
import androidx.databinding.ObservableField;
|
|
||||||
import androidx.lifecycle.MutableLiveData;
|
|
||||||
|
|
||||||
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.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityContext;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
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;
|
||||||
@@ -178,7 +171,7 @@ public class Converters {
|
|||||||
view.addTextChangedListener(watcher);
|
view.addTextChangedListener(watcher);
|
||||||
}
|
}
|
||||||
String newValue = observableString.get();
|
String newValue = observableString.get();
|
||||||
String viewValue = view.getText().toString().trim();
|
String viewValue = view.getText().toString();
|
||||||
|
|
||||||
if(!viewValue.equalsIgnoreCase(newValue)) {
|
if(!viewValue.equalsIgnoreCase(newValue)) {
|
||||||
view.setText(newValue);
|
view.setText(newValue);
|
||||||
@@ -386,7 +379,7 @@ public class Converters {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@BindingAdapter({"app:visibility"})
|
@BindingAdapter({"visibility"})
|
||||||
public static void bindViewVisibility(View view, final BindableBoolean bindableBoolean) {
|
public static void bindViewVisibility(View view, final BindableBoolean bindableBoolean) {
|
||||||
if (view.getTag(R.id.bound_observable) != bindableBoolean) {
|
if (view.getTag(R.id.bound_observable) != bindableBoolean) {
|
||||||
view.setTag(R.id.bound_observable, bindableBoolean);
|
view.setTag(R.id.bound_observable, bindableBoolean);
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public class InvalidLUMultiCodMdepException extends Exception {
|
||||||
|
|
||||||
|
public InvalidLUMultiCodMdepException() {
|
||||||
|
super(UtilityResources.getString(R.string.error_multiple_cod_mdep_ord));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,6 +5,6 @@ import it.integry.integrywmsnative.core.utility.UtilityResources;
|
|||||||
|
|
||||||
public class NoPrintersFoundException extends Exception {
|
public class NoPrintersFoundException extends Exception {
|
||||||
public NoPrintersFoundException() {
|
public NoPrintersFoundException() {
|
||||||
super(UtilityResources.getString(R.string.exception_printer_not_found));
|
super(UtilityResources.getString(R.string.exception_no_printer_found));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package it.integry.integrywmsnative.core.expansion;
|
||||||
|
|
||||||
|
public interface RunnableArgsWithReturn<T, R> {
|
||||||
|
|
||||||
|
R run(T data);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,6 +6,6 @@ public interface IScrollableFragment {
|
|||||||
|
|
||||||
void setScrollToolbar(ElevatedToolbar toolbar);
|
void setScrollToolbar(ElevatedToolbar toolbar);
|
||||||
|
|
||||||
void setOnPreDestroy(Runnable onPreDestroy);
|
void setScrollableOnPreDestroy(Runnable onPreDestroy);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package it.integry.integrywmsnative.core.interfaces;
|
|||||||
|
|
||||||
public interface ISelectAllFragment {
|
public interface ISelectAllFragment {
|
||||||
|
|
||||||
boolean isEnabled();
|
boolean isSelectAllButtonEnabled();
|
||||||
|
|
||||||
void onSelectAll();
|
void onSelectAll();
|
||||||
|
|
||||||
|
void setSelectAllOnPreDestroy(Runnable onPreDestroy);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package it.integry.integrywmsnative.core.interfaces;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13,4 +12,6 @@ public interface ITitledFragment {
|
|||||||
|
|
||||||
void onCreateActionBar(AppCompatTextView titleText, Context context);
|
void onCreateActionBar(AppCompatTextView titleText, Context context);
|
||||||
|
|
||||||
|
void onActionBarPreDestroy(Runnable onActionBarPreDestroy);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
package it.integry.integrywmsnative.core.interfaces.viewmodel_listeners;
|
package it.integry.integrywmsnative.core.interfaces.viewmodel_listeners;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
|
||||||
public interface ILUBaseOperationsListener {
|
public interface ILUBaseOperationsListener {
|
||||||
|
|
||||||
|
void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete);
|
||||||
|
|
||||||
void onLUOpened(MtbColt mtbColt);
|
void onLUOpened(MtbColt mtbColt);
|
||||||
|
|
||||||
void onLUClosed();
|
void onLUClosed();
|
||||||
|
|
||||||
|
void onRowSaved();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package it.integry.integrywmsnative.core.interfaces.viewmodel_listeners;
|
package it.integry.integrywmsnative.core.interfaces.viewmodel_listeners;
|
||||||
|
|
||||||
public interface ILoadingListener {
|
public interface ILoadingListener {
|
||||||
|
|
||||||
void onLoadingStarted();
|
void onLoadingStarted();
|
||||||
|
|
||||||
void onLoadingEnded();
|
void onLoadingEnded();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ public class DtbDocr {
|
|||||||
|
|
||||||
private MtbAart mtbAart;
|
private MtbAart mtbAart;
|
||||||
|
|
||||||
|
private String dataScadPartitaMag;
|
||||||
|
|
||||||
public String getCodAnag() {
|
public String getCodAnag() {
|
||||||
return codAnag;
|
return codAnag;
|
||||||
}
|
}
|
||||||
@@ -739,6 +741,19 @@ public class DtbDocr {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDataScadPartitaMag() {
|
||||||
|
return dataScadPartitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataScadPartitaMagD() {
|
||||||
|
return UtilityDate.recognizeDateWithExceptionHandler(getDataScadPartitaMag());
|
||||||
|
}
|
||||||
|
|
||||||
|
public DtbDocr setDataScadPartitaMag(String dataScadPartitaMag) {
|
||||||
|
this.dataScadPartitaMag = dataScadPartitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public MtbAart getMtbAart() {
|
public MtbAart getMtbAart() {
|
||||||
return mtbAart;
|
return mtbAart;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ public class MtbColt extends EntityBase {
|
|||||||
private BigDecimal lunghezzaCm;
|
private BigDecimal lunghezzaCm;
|
||||||
private BigDecimal larghezzaCm;
|
private BigDecimal larghezzaCm;
|
||||||
private BigDecimal altezzaCm;
|
private BigDecimal altezzaCm;
|
||||||
|
private String codJcom;
|
||||||
|
|
||||||
private List<MtbCols> mtbCols;
|
private List<MtbCols> mtbCols;
|
||||||
|
|
||||||
@@ -500,6 +501,15 @@ public class MtbColt extends EntityBase {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodJcom() {
|
||||||
|
return codJcom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MtbColt setCodJcom(String codJcom) {
|
||||||
|
this.codJcom = codJcom;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public void generaFiltroOrdineFromDTO(List<FiltroOrdineDTO> filtroOrdineDtos) {
|
public void generaFiltroOrdineFromDTO(List<FiltroOrdineDTO> filtroOrdineDtos) {
|
||||||
|
|
||||||
String xmlPrefix = "{\"whereCond\": \"";
|
String xmlPrefix = "{\"whereCond\": \"";
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package it.integry.integrywmsnative.core.model;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
|
public class OrdineInevasoDTO {
|
||||||
|
|
||||||
|
private String data;
|
||||||
|
private Integer numero;
|
||||||
|
private String gestione;
|
||||||
|
private String codMdep;
|
||||||
|
|
||||||
|
public String getDataOrdS() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataOrdD() {
|
||||||
|
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineInevasoDTO setData(String data) {
|
||||||
|
this.data = data;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNumOrd() {
|
||||||
|
return numero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineInevasoDTO setNumero(Integer numero) {
|
||||||
|
this.numero = numero;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGestione() {
|
||||||
|
return gestione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GestioneEnum getGestioneEnum() {
|
||||||
|
return GestioneEnum.fromString(getGestione());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public OrdineInevasoDTO setGestione(String gestione) {
|
||||||
|
this.gestione = gestione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMdep() {
|
||||||
|
return codMdep;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineInevasoDTO setCodMdep(String codMdep) {
|
||||||
|
this.codMdep = codMdep;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -10,9 +10,19 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
|
|||||||
|
|
||||||
public class PickDataDTO {
|
public class PickDataDTO {
|
||||||
|
|
||||||
|
private MtbColt refMtbColt;
|
||||||
private MtbColt sourceMtbColt;
|
private MtbColt sourceMtbColt;
|
||||||
private ManualPickDTO manualPickDTO;
|
private ManualPickDTO manualPickDTO;
|
||||||
|
|
||||||
|
public MtbColt getRefMtbColt() {
|
||||||
|
return refMtbColt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickDataDTO setRefMtbColt(MtbColt refMtbColt) {
|
||||||
|
this.refMtbColt = refMtbColt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public MtbColt getSourceMtbColt() {
|
public MtbColt getSourceMtbColt() {
|
||||||
return sourceMtbColt;
|
return sourceMtbColt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,11 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void getByCodMart(List<String> codMartToFind, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void getByCodMart(List<String> codMartToFind, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
getByCodMartStatic(codMartToFind, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void getByCodMartStatic(List<String> codMartToFind, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
String joinedCods = Stream.of(codMartToFind)
|
String joinedCods = Stream.of(codMartToFind)
|
||||||
.collect(Collectors.joining(","));
|
.collect(Collectors.joining(","));
|
||||||
|
|||||||
@@ -45,6 +45,13 @@ import retrofit2.Response;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
|
private ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
|
|
||||||
|
public ColliMagazzinoRESTConsumer(ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void saveColloStatic(MtbColt mtbColtToSave, final ISimpleOperationCallback<MtbColt> callback) {
|
public static void saveColloStatic(MtbColt mtbColtToSave, final ISimpleOperationCallback<MtbColt> callback) {
|
||||||
|
|
||||||
for (int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) {
|
for (int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) {
|
||||||
@@ -88,8 +95,11 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void saveColli(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
saveColliStatic(mtbColtsToSave, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
public static void saveColli(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void saveColliStatic(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
for (MtbColt mtbColt : mtbColtsToSave) {
|
for (MtbColt mtbColt : mtbColtsToSave) {
|
||||||
mtbColt.setMtbCols(null);
|
mtbColt.setMtbCols(null);
|
||||||
@@ -375,7 +385,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
onComplete.run(newList);
|
onComplete.run(newList);
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
@@ -430,7 +439,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ArticoloRESTConsumer.getByCodMart(codMarts, arts -> {
|
ArticoloRESTConsumer.getByCodMartStatic(codMarts, arts -> {
|
||||||
|
|
||||||
if (arts != null && arts.size() > 0) {
|
if (arts != null && arts.size() > 0) {
|
||||||
for (MtbColt mtbColt : mtbColts) {
|
for (MtbColt mtbColt : mtbColts) {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import retrofit2.http.Query;
|
|||||||
public interface MesRESTConsumerService {
|
public interface MesRESTConsumerService {
|
||||||
|
|
||||||
|
|
||||||
@GET("mes/getOrdiniLavorazioneMateriale")
|
@GET("mes_v2/getOrdiniLavorazioneMateriale")
|
||||||
Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> getOrdiniLavorazioneMateriale(@Query("codJfas") String codJfas, @Query("idMateriale") String idMateriale);
|
Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> getOrdiniLavorazioneMateriale(@Query("codJfas") String codJfas, @Query("idMateriale") String idMateriale);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,28 @@
|
|||||||
package it.integry.integrywmsnative.core.rest.consumers;
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
import com.orhanobut.logger.Logger;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
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.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.OrdineInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
|
import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
@@ -21,31 +31,10 @@ import retrofit2.Response;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class OrdiniRESTConsumer extends _BaseRESTConsumer {
|
public class OrdiniRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
public static void retrieveListaArticoliFromOrdiniUscita(List<OrdineVenditaInevasoDTO> orders, RunnableArgs<List<SitArtOrdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
private final SystemRESTConsumer mSystemRESTConsumer;
|
||||||
|
|
||||||
List<GetPickingListDTO> getPickingListDTOs = Stream.of(orders)
|
public OrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
.map(x -> new GetPickingListDTO()
|
this.mSystemRESTConsumer = systemRESTConsumer;
|
||||||
.setData(x.getDataOrdS())
|
|
||||||
.setGestione(x.getGestione())
|
|
||||||
.setNumero(x.getNumOrd())
|
|
||||||
.setDataConsegna(x.getDataConsS())
|
|
||||||
.setIdViaggio(x.getIdViaggio()))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class, 90);
|
|
||||||
|
|
||||||
service.getArticoliFromOrdini(getPickingListDTOs).enqueue(new Callback<ServiceRESTResponse<List<SitArtOrdDTO>>>() {
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Response<ServiceRESTResponse<List<SitArtOrdDTO>>> response) {
|
|
||||||
analyzeAnswer(response, "retrieveListaArticoliFromOrdiniVendita", onComplete, onFailed);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
|
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
|
||||||
onFailed.run(new Exception(t));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getSuggestedPickingList(String codMdep, List<SitArtOrdDTO> sitArtOrdList, RunnableArgs<List<PickingObjectDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void getSuggestedPickingList(String codMdep, List<SitArtOrdDTO> sitArtOrdList, RunnableArgs<List<PickingObjectDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
@@ -69,4 +58,91 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getOrdiniInevasi(String codMdep, GestioneEnum gestione, RunnableArgs<List<OrdineUscitaInevasoDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
|
OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class);
|
||||||
|
|
||||||
|
service.getOrdiniInevasi(codMdep, gestione.getText())
|
||||||
|
.enqueue(new Callback<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> response) {
|
||||||
|
analyzeAnswer(response, "getOrdiniInevasi", onComplete, ex -> {
|
||||||
|
Logger.e(ex, "Errore durante il caricamento degli ordini di lavorazione");
|
||||||
|
if(onFailed != null) onFailed.run(ex);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> call, Throwable t) {
|
||||||
|
Logger.e(t, "Errore durante il caricamento degli ordini di lavorazione");
|
||||||
|
if(onFailed != null) onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void retrieveListaArticoliFromOrdiniUscita(List<OrdineUscitaInevasoDTO> orders, RunnableArgs<List<SitArtOrdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
List<GetPickingListDTO> getPickingListDTOs = Stream.of(orders)
|
||||||
|
.map(x -> new GetPickingListDTO()
|
||||||
|
.setData(x.getDataOrdS())
|
||||||
|
.setGestione(x.getGestione())
|
||||||
|
.setNumero(x.getNumOrd())
|
||||||
|
.setDataConsegna(x.getDataConsS())
|
||||||
|
.setIdViaggio(x.getIdViaggio()))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class, 90);
|
||||||
|
|
||||||
|
service.getArticoliFromOrdini(getPickingListDTOs).enqueue(new Callback<ServiceRESTResponse<List<SitArtOrdDTO>>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Response<ServiceRESTResponse<List<SitArtOrdDTO>>> response) {
|
||||||
|
analyzeAnswer(response, "retrieveListaArticoliFromOrdiniUscita", onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
|
||||||
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void getBancaliGiaRegistrati(List<OrdineInevasoDTO> orders, GestioneEnum gestione, int segno, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
String baseSql = "SELECT DISTINCT mtb_colt.* " +
|
||||||
|
"FROM mtb_colt, " +
|
||||||
|
" mtb_colr " +
|
||||||
|
"WHERE mtb_colt.gestione = mtb_colr.gestione " +
|
||||||
|
" AND mtb_colt.ser_collo = mtb_colr.ser_collo " +
|
||||||
|
" AND mtb_colt.data_collo = mtb_colr.data_collo " +
|
||||||
|
" AND mtb_colt.num_collo = mtb_colr.num_collo " +
|
||||||
|
" AND mtb_colt.gestione = " + UtilityDB.valueToString(gestione.getText()) + " " +
|
||||||
|
" AND mtb_colt.segno = " + UtilityDB.valueToString(segno) + " " +
|
||||||
|
" AND mtb_colt.data_doc IS NULL AND ";
|
||||||
|
|
||||||
|
List<HashMap<String, Object>> whereCondMapList = new ArrayList<>();
|
||||||
|
for (OrdineInevasoDTO ordineInevaso : orders) {
|
||||||
|
HashMap<String, Object> whereCondMap = new HashMap<>();
|
||||||
|
whereCondMap.put("mtb_colr.data_ord", ordineInevaso.getDataOrdD());
|
||||||
|
whereCondMap.put("mtb_colr.num_ord", ordineInevaso.getNumOrd());
|
||||||
|
whereCondMap.put("mtb_colr.gestione", ordineInevaso.getGestione());
|
||||||
|
|
||||||
|
whereCondMapList.add(whereCondMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
baseSql += "(" + UtilityQuery.concatFieldListInWhereCond(whereCondMapList) + ")";
|
||||||
|
|
||||||
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
||||||
|
this.mSystemRESTConsumer.processSql(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<MtbColt> value) {
|
||||||
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
if(onFailed != null) onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import java.util.List;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
|
import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.http.Body;
|
import retrofit2.http.Body;
|
||||||
|
import retrofit2.http.GET;
|
||||||
import retrofit2.http.POST;
|
import retrofit2.http.POST;
|
||||||
import retrofit2.http.Query;
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
@@ -18,4 +20,7 @@ public interface OrdiniRESTConsumerService {
|
|||||||
|
|
||||||
@POST("wms/getSuggestedPickingList")
|
@POST("wms/getSuggestedPickingList")
|
||||||
Call<ServiceRESTResponse<List<PickingObjectDTO>>> getSuggestedPickingList(@Query("codMdep") String codMdep, @Body List<SitArtOrdDTO> sitArtOrdDTOList);
|
Call<ServiceRESTResponse<List<PickingObjectDTO>>> getSuggestedPickingList(@Query("codMdep") String codMdep, @Body List<SitArtOrdDTO> sitArtOrdDTOList);
|
||||||
|
|
||||||
|
@GET("SM2GetOrdiniVenditaInevasi")
|
||||||
|
Call<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> getOrdiniInevasi(@Query("codMdep") String codMdep, @Query("gestione") String gestione);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import com.annimon.stream.Stream;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||||
@@ -18,6 +17,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|||||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityThread;
|
import it.integry.integrywmsnative.core.utility.UtilityThread;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.ArtDTO;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.ArtDTO;
|
||||||
@@ -84,7 +84,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ordineDTO.setChiaveGriglia(griglia.getCodAlis());
|
ordineDTO.setChiaveGriglia(griglia.getCodAlis());
|
||||||
ordineDTO.setDataConsD(new Date());
|
ordineDTO.setDataConsD(UtilityDate.getDateInstance());
|
||||||
ordineDTO.setArtRows(artRows);
|
ordineDTO.setArtRows(artRows);
|
||||||
saveDTO.setGestione("O");
|
saveDTO.setGestione("O");
|
||||||
saveDTO.setOrdineDTO(ordineDTO);
|
saveDTO.setOrdineDTO(ordineDTO);
|
||||||
@@ -101,7 +101,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
if (dtoList.size() > 0){
|
if (dtoList.size() > 0){
|
||||||
DtbOrdt dto = dtoList.get(0);
|
DtbOrdt dto = dtoList.get(0);
|
||||||
ordine.setTransmitted(true);
|
ordine.setTransmitted(true);
|
||||||
ordine.setTransmissionDate(new Date());
|
ordine.setTransmissionDate(UtilityDate.getDateInstance());
|
||||||
ordine.setGestione(dto.getGestione());
|
ordine.setGestione(dto.getGestione());
|
||||||
ordine.setDataOrdS(dto.getDataOrd());
|
ordine.setDataOrdS(dto.getDataOrd());
|
||||||
ordine.setCodMdep(dto.getCodMdep());
|
ordine.setCodMdep(dto.getCodMdep());
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import java.lang.reflect.Type;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
@@ -17,8 +19,14 @@ import retrofit2.Call;
|
|||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
import retrofit2.Response;
|
import retrofit2.Response;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
public class PosizioniRESTConsumer extends _BaseRESTConsumer{
|
public class PosizioniRESTConsumer extends _BaseRESTConsumer{
|
||||||
|
|
||||||
|
private final SystemRESTConsumer mSystemRESTConsumer;
|
||||||
|
|
||||||
|
public PosizioniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
|
this.mSystemRESTConsumer = systemRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
public static void getAvailablePosizioni(RunnableArgs<List<MtbDepoPosizione>> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void getAvailablePosizioni(RunnableArgs<List<MtbDepoPosizione>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
@@ -39,12 +47,12 @@ public class PosizioniRESTConsumer extends _BaseRESTConsumer{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getBancaliInPosizione(MtbDepoPosizione mtbDepoPosizione, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
getBancaliInPosizioneStatic(mtbDepoPosizione, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void getBancaliInPosizioneStatic(MtbDepoPosizione mtbDepoPosizione, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
public static void getBancaliInPosizione(MtbDepoPosizione mtbDepoPosizione, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
String sql = "SELECT * FROM mtb_colt WHERE segno > 0 AND cod_mdep = " + UtilityDB.valueToString(mtbDepoPosizione.getCodMdep()) + " AND posizione = " + UtilityDB.valueToString(mtbDepoPosizione.getPosizione());
|
||||||
|
|
||||||
|
|
||||||
String sql = "SELECT * FROM mtb_colt WHERE cod_mdep = " + UtilityDB.valueToString(mtbDepoPosizione.getCodMdep()) + " AND posizione = " + UtilityDB.valueToString(mtbDepoPosizione.getPosizione());
|
|
||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
@@ -11,6 +12,8 @@ import javax.inject.Singleton;
|
|||||||
import it.integry.integrywmsnative.BuildConfig;
|
import it.integry.integrywmsnative.BuildConfig;
|
||||||
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.JasperDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.JasperPairDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
@@ -89,7 +92,10 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
printerService.getAvailablePrinters(codMdep, printerTypeStr).enqueue(new Callback<ServiceRESTResponse<List<String>>>() {
|
printerService.getAvailablePrinters(codMdep, printerTypeStr).enqueue(new Callback<ServiceRESTResponse<List<String>>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<String>>> call, Response<ServiceRESTResponse<List<String>>> response) {
|
public void onResponse(Call<ServiceRESTResponse<List<String>>> call, Response<ServiceRESTResponse<List<String>>> response) {
|
||||||
analyzeAnswer(response, "GetAvailablePrinters", onComplete, onFailed);
|
analyzeAnswer(response, "GetAvailablePrinters", printerList -> {
|
||||||
|
printerList = Stream.of(printerList).filter(x -> !UtilityString.isNullOrEmpty(x)).toList();
|
||||||
|
onComplete.run(printerList);
|
||||||
|
}, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -130,7 +136,7 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
.enqueue(new Callback<ServiceRESTResponse<Object>>() {
|
.enqueue(new Callback<ServiceRESTResponse<Object>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
|
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
|
||||||
analyzeAnswer(response, "PrintCollo", data -> {
|
analyzeAnswer(response, "printCollo", data -> {
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
@@ -142,7 +148,38 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
} else onFailed.run(new Exception(t));
|
} else onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printReport(String printerName, String reportName, HashMap<String, Object> params, int quantity, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
// if(BuildConfig.DEBUG) {
|
||||||
|
// onComplete.run();
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
JasperDTO jasperDTO = new JasperDTO();
|
||||||
|
jasperDTO.setReportName(reportName);
|
||||||
|
|
||||||
|
Stream.of(params)
|
||||||
|
.forEach(x -> jasperDTO.getParams().add(new JasperPairDTO(x.getKey(), x.getValue())));
|
||||||
|
|
||||||
|
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
|
||||||
|
printerService
|
||||||
|
.processPrintReport(printerName, quantity, jasperDTO)
|
||||||
|
.enqueue(new Callback<ServiceRESTResponse<Object>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
|
||||||
|
analyzeAnswer(response, "printReport", data -> {
|
||||||
|
onComplete.run();
|
||||||
|
}, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
|
||||||
|
if(t.getMessage().contains("Printer not found")) {
|
||||||
|
onFailed.run(new NoPrintersFoundException());
|
||||||
|
} else onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package it.integry.integrywmsnative.core.rest.consumers;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.JasperDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.Body;
|
||||||
import retrofit2.http.Field;
|
import retrofit2.http.Field;
|
||||||
import retrofit2.http.FormUrlEncoded;
|
import retrofit2.http.FormUrlEncoded;
|
||||||
import retrofit2.http.POST;
|
import retrofit2.http.POST;
|
||||||
@@ -34,4 +36,11 @@ public interface PrinterRESTConsumerService {
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@POST("processPrintReport")
|
||||||
|
Call<ServiceRESTResponse<Object>> processPrintReport(
|
||||||
|
@Query("printerName") String printerName,
|
||||||
|
@Query("numberOfCopies") int printQuantity,
|
||||||
|
@Body JasperDTO jasperDTO
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
import com.orhanobut.logger.Logger;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@@ -66,7 +67,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
|
||||||
Log.e("ProcessSql", t.toString());
|
Logger.e(t, "ProcessSQL");
|
||||||
onFailed.run(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.rest.model;
|
|||||||
public class Ean13PesoModel {
|
public class Ean13PesoModel {
|
||||||
|
|
||||||
private String precode;
|
private String precode;
|
||||||
|
//TODO: Change to bigdecimal
|
||||||
private Float peso;
|
private Float peso;
|
||||||
|
|
||||||
public String getPrecode() {
|
public String getPrecode() {
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class JasperDTO {
|
||||||
|
|
||||||
|
private String reportName;
|
||||||
|
private List<JasperPairDTO> params = new ArrayList<>();
|
||||||
|
|
||||||
|
public String getReportName() {
|
||||||
|
return reportName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JasperDTO setReportName(String reportName) {
|
||||||
|
this.reportName = reportName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<JasperPairDTO> getParams() {
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JasperDTO setParams(List<JasperPairDTO> params) {
|
||||||
|
this.params = params;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model;
|
||||||
|
|
||||||
|
public class JasperPairDTO {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private Object value;
|
||||||
|
|
||||||
|
public JasperPairDTO(String name, Object value) {
|
||||||
|
this.name = name;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JasperPairDTO setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JasperPairDTO setValue(Object value) {
|
||||||
|
this.value = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,23 +1,18 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita.dto;
|
package it.integry.integrywmsnative.core.rest.model;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
import it.integry.integrywmsnative.core.model.OrdineInevasoDTO;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
public class OrdineVenditaInevasoDTO {
|
public class OrdineUscitaInevasoDTO extends OrdineInevasoDTO {
|
||||||
|
|
||||||
private String data;
|
|
||||||
private Integer numero;
|
|
||||||
private Integer idViaggio;
|
private Integer idViaggio;
|
||||||
private String gestione;
|
|
||||||
private String listino;
|
private String listino;
|
||||||
private String termCons;
|
private String termCons;
|
||||||
private String codAuto;
|
private String codAuto;
|
||||||
private String codMdep;
|
|
||||||
private String descrizioneAuto;
|
private String descrizioneAuto;
|
||||||
private String codVvet;
|
private String codVvet;
|
||||||
private String descrizioneVettore;
|
private String descrizioneVettore;
|
||||||
@@ -49,64 +44,25 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
private String nomeAgente;
|
private String nomeAgente;
|
||||||
private String codJfas;
|
private String codJfas;
|
||||||
|
|
||||||
public BindableBoolean selected;
|
|
||||||
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO() {
|
|
||||||
this.selected = new BindableBoolean(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String getDataOrdS() {
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getDataOrdD() {
|
|
||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setData(String data) {
|
|
||||||
this.data = data;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getNumOrd() {
|
|
||||||
return numero;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setNumero(Integer numero) {
|
|
||||||
this.numero = numero;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getIdViaggio() {
|
public Integer getIdViaggio() {
|
||||||
return idViaggio;
|
return idViaggio;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setIdViaggio(Integer idViaggio) {
|
public OrdineUscitaInevasoDTO setIdViaggio(Integer idViaggio) {
|
||||||
this.idViaggio = idViaggio;
|
this.idViaggio = idViaggio;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGestione() {
|
|
||||||
return gestione;
|
|
||||||
}
|
|
||||||
|
|
||||||
public GestioneEnum getGestioneEnum() {
|
|
||||||
return GestioneEnum.fromString(getGestione());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setGestione(String gestione) {
|
|
||||||
this.gestione = gestione;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getListino() {
|
public String getListino() {
|
||||||
return listino;
|
return listino;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setListino(String listino) {
|
public OrdineUscitaInevasoDTO setListino(String listino) {
|
||||||
this.listino = listino;
|
this.listino = listino;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -115,7 +71,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return termCons;
|
return termCons;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setTermCons(String termCons) {
|
public OrdineUscitaInevasoDTO setTermCons(String termCons) {
|
||||||
this.termCons = termCons;
|
this.termCons = termCons;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -124,25 +80,16 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codAuto;
|
return codAuto;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodAuto(String codAuto) {
|
public OrdineUscitaInevasoDTO setCodAuto(String codAuto) {
|
||||||
this.codAuto = codAuto;
|
this.codAuto = codAuto;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCodMdep() {
|
|
||||||
return codMdep;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodMdep(String codMdep) {
|
|
||||||
this.codMdep = codMdep;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizioneAuto() {
|
public String getDescrizioneAuto() {
|
||||||
return descrizioneAuto;
|
return descrizioneAuto;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDescrizioneAuto(String descrizioneAuto) {
|
public OrdineUscitaInevasoDTO setDescrizioneAuto(String descrizioneAuto) {
|
||||||
this.descrizioneAuto = descrizioneAuto;
|
this.descrizioneAuto = descrizioneAuto;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -151,7 +98,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codVvet;
|
return codVvet;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodVvet(String codVvet) {
|
public OrdineUscitaInevasoDTO setCodVvet(String codVvet) {
|
||||||
this.codVvet = codVvet;
|
this.codVvet = codVvet;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -160,7 +107,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return descrizioneVettore;
|
return descrizioneVettore;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDescrizioneVettore(String descrizioneVettore) {
|
public OrdineUscitaInevasoDTO setDescrizioneVettore(String descrizioneVettore) {
|
||||||
this.descrizioneVettore = descrizioneVettore;
|
this.descrizioneVettore = descrizioneVettore;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -173,7 +120,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataInizTraspS());
|
return UtilityDate.recognizeDateWithExceptionHandler(getDataInizTraspS());
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDataInizTrasp(String dataInizTrasp) {
|
public OrdineUscitaInevasoDTO setDataInizTrasp(String dataInizTrasp) {
|
||||||
this.dataInizTrasp = dataInizTrasp;
|
this.dataInizTrasp = dataInizTrasp;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -182,7 +129,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return descrizionePaga;
|
return descrizionePaga;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDescrizionePaga(String descrizionePaga) {
|
public OrdineUscitaInevasoDTO setDescrizionePaga(String descrizionePaga) {
|
||||||
this.descrizionePaga = descrizionePaga;
|
this.descrizionePaga = descrizionePaga;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -191,7 +138,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return rifOrd;
|
return rifOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setRifOrd(String rifOrd) {
|
public OrdineUscitaInevasoDTO setRifOrd(String rifOrd) {
|
||||||
this.rifOrd = rifOrd;
|
this.rifOrd = rifOrd;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -200,7 +147,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codAnagOrd;
|
return codAnagOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodAnagOrd(String codAnagOrd) {
|
public OrdineUscitaInevasoDTO setCodAnagOrd(String codAnagOrd) {
|
||||||
this.codAnagOrd = codAnagOrd;
|
this.codAnagOrd = codAnagOrd;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -209,7 +156,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codJcom;
|
return codJcom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodJcom(String codJcom) {
|
public OrdineUscitaInevasoDTO setCodJcom(String codJcom) {
|
||||||
this.codJcom = codJcom;
|
this.codJcom = codJcom;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -218,7 +165,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return descrizioneCom;
|
return descrizioneCom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDescrizioneCom(String descrizioneCom) {
|
public OrdineUscitaInevasoDTO setDescrizioneCom(String descrizioneCom) {
|
||||||
this.descrizioneCom = descrizioneCom;
|
this.descrizioneCom = descrizioneCom;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -227,7 +174,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return ragSocCom;
|
return ragSocCom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setRagSocCom(String ragSocCom) {
|
public OrdineUscitaInevasoDTO setRagSocCom(String ragSocCom) {
|
||||||
this.ragSocCom = ragSocCom;
|
this.ragSocCom = ragSocCom;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -236,7 +183,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return ragSocOrd;
|
return ragSocOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setRagSocOrd(String ragSocOrd) {
|
public OrdineUscitaInevasoDTO setRagSocOrd(String ragSocOrd) {
|
||||||
this.ragSocOrd = ragSocOrd;
|
this.ragSocOrd = ragSocOrd;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -245,7 +192,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return destinatario;
|
return destinatario;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDestinatario(String destinatario) {
|
public OrdineUscitaInevasoDTO setDestinatario(String destinatario) {
|
||||||
this.destinatario = destinatario;
|
this.destinatario = destinatario;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -254,7 +201,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return citta;
|
return citta;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCitta(String citta) {
|
public OrdineUscitaInevasoDTO setCitta(String citta) {
|
||||||
this.citta = citta;
|
this.citta = citta;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -263,7 +210,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return provincia;
|
return provincia;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setProvincia(String provincia) {
|
public OrdineUscitaInevasoDTO setProvincia(String provincia) {
|
||||||
this.provincia = provincia;
|
this.provincia = provincia;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -272,7 +219,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return indirizzo;
|
return indirizzo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setIndirizzo(String indirizzo) {
|
public OrdineUscitaInevasoDTO setIndirizzo(String indirizzo) {
|
||||||
this.indirizzo = indirizzo;
|
this.indirizzo = indirizzo;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -281,7 +228,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return pesoTotale;
|
return pesoTotale;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setPesoTotale(BigDecimal pesoTotale) {
|
public OrdineUscitaInevasoDTO setPesoTotale(BigDecimal pesoTotale) {
|
||||||
this.pesoTotale = pesoTotale;
|
this.pesoTotale = pesoTotale;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -290,7 +237,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return numCnfdaEvadere;
|
return numCnfdaEvadere;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setNumCnfdaEvadere(BigDecimal numCnfdaEvadere) {
|
public OrdineUscitaInevasoDTO setNumCnfdaEvadere(BigDecimal numCnfdaEvadere) {
|
||||||
this.numCnfdaEvadere = numCnfdaEvadere;
|
this.numCnfdaEvadere = numCnfdaEvadere;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -299,7 +246,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return numCnfDisp;
|
return numCnfDisp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setNumCnfDisp(BigDecimal numCnfDisp) {
|
public OrdineUscitaInevasoDTO setNumCnfDisp(BigDecimal numCnfDisp) {
|
||||||
this.numCnfDisp = numCnfDisp;
|
this.numCnfDisp = numCnfDisp;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -312,7 +259,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataConsS());
|
return UtilityDate.recognizeDateWithExceptionHandler(getDataConsS());
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDataCons(String dataCons) {
|
public OrdineUscitaInevasoDTO setDataCons(String dataCons) {
|
||||||
this.dataCons = dataCons;
|
this.dataCons = dataCons;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -321,7 +268,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return barcode;
|
return barcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setBarcode(String barcode) {
|
public OrdineUscitaInevasoDTO setBarcode(String barcode) {
|
||||||
this.barcode = barcode;
|
this.barcode = barcode;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -330,7 +277,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return numRighe;
|
return numRighe;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setNumRighe(Integer numRighe) {
|
public OrdineUscitaInevasoDTO setNumRighe(Integer numRighe) {
|
||||||
this.numRighe = numRighe;
|
this.numRighe = numRighe;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -339,7 +286,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return righeInPartenza;
|
return righeInPartenza;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setRigheInPartenza(Integer righeInPartenza) {
|
public OrdineUscitaInevasoDTO setRigheInPartenza(Integer righeInPartenza) {
|
||||||
this.righeInPartenza = righeInPartenza;
|
this.righeInPartenza = righeInPartenza;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -348,7 +295,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return saldoContabile;
|
return saldoContabile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setSaldoContabile(BigDecimal saldoContabile) {
|
public OrdineUscitaInevasoDTO setSaldoContabile(BigDecimal saldoContabile) {
|
||||||
this.saldoContabile = saldoContabile;
|
this.saldoContabile = saldoContabile;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -357,7 +304,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codVzon;
|
return codVzon;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodVzon(String codVzon) {
|
public OrdineUscitaInevasoDTO setCodVzon(String codVzon) {
|
||||||
this.codVzon = codVzon;
|
this.codVzon = codVzon;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -366,7 +313,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return ragSocOrdV;
|
return ragSocOrdV;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setRagSocOrdV(String ragSocOrdV) {
|
public OrdineUscitaInevasoDTO setRagSocOrdV(String ragSocOrdV) {
|
||||||
this.ragSocOrdV = ragSocOrdV;
|
this.ragSocOrdV = ragSocOrdV;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -375,7 +322,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return colliRiservati;
|
return colliRiservati;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setColliRiservati(int colliRiservati) {
|
public OrdineUscitaInevasoDTO setColliRiservati(int colliRiservati) {
|
||||||
this.colliRiservati = colliRiservati;
|
this.colliRiservati = colliRiservati;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -384,7 +331,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return existColloBoolean;
|
return existColloBoolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setExistColloBoolean(boolean existColloBoolean) {
|
public OrdineUscitaInevasoDTO setExistColloBoolean(boolean existColloBoolean) {
|
||||||
this.existColloBoolean = existColloBoolean;
|
this.existColloBoolean = existColloBoolean;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -393,7 +340,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return flagEvaso;
|
return flagEvaso;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setFlagEvaso(boolean flagEvaso) {
|
public OrdineUscitaInevasoDTO setFlagEvaso(boolean flagEvaso) {
|
||||||
this.flagEvaso = flagEvaso;
|
this.flagEvaso = flagEvaso;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -402,7 +349,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return nomeAgente;
|
return nomeAgente;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setNomeAgente(String nomeAgente) {
|
public OrdineUscitaInevasoDTO setNomeAgente(String nomeAgente) {
|
||||||
this.nomeAgente = nomeAgente;
|
this.nomeAgente = nomeAgente;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -411,36 +358,27 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codJfas;
|
return codJfas;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodJfas(String codJfas) {
|
public OrdineUscitaInevasoDTO setCodJfas(String codJfas) {
|
||||||
this.codJfas = codJfas;
|
this.codJfas = codJfas;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSelected() {
|
|
||||||
return selected.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setSelected(boolean selected) {
|
|
||||||
this.selected.set(selected);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (this == o) return true;
|
if (this == o) return true;
|
||||||
if (o == null || getClass() != o.getClass()) return false;
|
if (o == null || getClass() != o.getClass()) return false;
|
||||||
|
|
||||||
OrdineVenditaInevasoDTO that = (OrdineVenditaInevasoDTO) o;
|
OrdineUscitaInevasoDTO that = (OrdineUscitaInevasoDTO) o;
|
||||||
|
|
||||||
if (!data.equals(that.data)) return false;
|
if (!getDataOrdS().equals(that.getDataOrdS())) return false;
|
||||||
if (!numero.equals(that.numero)) return false;
|
if (!getNumOrd().equals(that.getNumOrd())) return false;
|
||||||
return getGestione().equals(that.getGestione());
|
return getGestione().equals(that.getGestione());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
int result = data.hashCode();
|
int result = getDataOrdS().hashCode();
|
||||||
result = 31 * result + numero.hashCode();
|
result = 31 * result + getNumOrd().hashCode();
|
||||||
result = 31 * result + getGestione().hashCode();
|
result = 31 * result + getGestione().hashCode();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -21,6 +21,7 @@ public class DBSettingsModel {
|
|||||||
private String defaultCausaleRettificaGiacenze;
|
private String defaultCausaleRettificaGiacenze;
|
||||||
private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
|
private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
|
||||||
private boolean flagAskClienteInPickingLibero;
|
private boolean flagAskClienteInPickingLibero;
|
||||||
|
private boolean flagAllowEmptyClienteInPickingLibero;
|
||||||
|
|
||||||
private boolean flagCanAddExtraItemSpedizione;
|
private boolean flagCanAddExtraItemSpedizione;
|
||||||
private boolean flagCanAutoOpenNewULAccettazione;
|
private boolean flagCanAutoOpenNewULAccettazione;
|
||||||
@@ -33,6 +34,7 @@ public class DBSettingsModel {
|
|||||||
private boolean flagSpedizioneEnableManualPick;
|
private boolean flagSpedizioneEnableManualPick;
|
||||||
private boolean flagSpedizioneCanSelectMultipleOrders;
|
private boolean flagSpedizioneCanSelectMultipleOrders;
|
||||||
private String produzioneDefaultCodAnag;
|
private String produzioneDefaultCodAnag;
|
||||||
|
private String reportNameSpedizionChiudiOrdine;
|
||||||
|
|
||||||
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
||||||
return flagSpedizioneEnableFakeGiacenza;
|
return flagSpedizioneEnableFakeGiacenza;
|
||||||
@@ -132,6 +134,15 @@ public class DBSettingsModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isFlagAllowEmptyClienteInPickingLibero() {
|
||||||
|
return flagAllowEmptyClienteInPickingLibero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagAllowEmptyClienteInPickingLibero(boolean flagAllowEmptyClienteInPickingLibero) {
|
||||||
|
this.flagAllowEmptyClienteInPickingLibero = flagAllowEmptyClienteInPickingLibero;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isFlagCanAddExtraItemSpedizione() {
|
public boolean isFlagCanAddExtraItemSpedizione() {
|
||||||
return flagCanAddExtraItemSpedizione;
|
return flagCanAddExtraItemSpedizione;
|
||||||
}
|
}
|
||||||
@@ -231,4 +242,13 @@ public class DBSettingsModel {
|
|||||||
this.produzioneDefaultCodAnag = produzioneDefaultCodAnag;
|
this.produzioneDefaultCodAnag = produzioneDefaultCodAnag;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getReportNameSpedizionChiudiOrdine() {
|
||||||
|
return reportNameSpedizionChiudiOrdine;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setReportNameSpedizionChiudiOrdine(String reportNameSpedizionChiudiOrdine) {
|
||||||
|
this.reportNameSpedizionChiudiOrdine = reportNameSpedizionChiudiOrdine;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -202,6 +202,10 @@ public class SettingsManager {
|
|||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("PICKING_LIBERO")
|
.setSection("PICKING_LIBERO")
|
||||||
.setKeySection("FLAG_ASK_CLIENTE"));
|
.setKeySection("FLAG_ASK_CLIENTE"));
|
||||||
|
stbGestSetupList.add(new StbGestSetup()
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("PICKING_LIBERO")
|
||||||
|
.setKeySection("FLAG_ALLOW_EMPTY_CLIENTE"));
|
||||||
stbGestSetupList.add(new StbGestSetup()
|
stbGestSetupList.add(new StbGestSetup()
|
||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("SPEDIZIONE")
|
.setSection("SPEDIZIONE")
|
||||||
@@ -250,6 +254,10 @@ public class SettingsManager {
|
|||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("SPEDIZIONE")
|
.setSection("SPEDIZIONE")
|
||||||
.setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS"));
|
.setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS"));
|
||||||
|
stbGestSetupList.add(new StbGestSetup()
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("SPEDIZIONE")
|
||||||
|
.setKeySection("REPORT_PACKING_LIST"));
|
||||||
|
|
||||||
|
|
||||||
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
|
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
|
||||||
@@ -259,6 +267,7 @@ public class SettingsManager {
|
|||||||
dbSettingsModelIstance.setDefaultCodAnag(getValueFromList(list, "SETUP","COD_ANAG_DEFAULT", String.class));
|
dbSettingsModelIstance.setDefaultCodAnag(getValueFromList(list, "SETUP","COD_ANAG_DEFAULT", String.class));
|
||||||
dbSettingsModelIstance.setDefaultCriterioDistribuzione(getValueFromList(list, "SETUP","DEFAULT_CRITERIO_DISTRIBUZIONE", String.class));
|
dbSettingsModelIstance.setDefaultCriterioDistribuzione(getValueFromList(list, "SETUP","DEFAULT_CRITERIO_DISTRIBUZIONE", String.class));
|
||||||
dbSettingsModelIstance.setFlagAskClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ASK_CLIENTE", Boolean.class));
|
dbSettingsModelIstance.setFlagAskClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ASK_CLIENTE", Boolean.class));
|
||||||
|
dbSettingsModelIstance.setFlagAllowEmptyClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_CLIENTE", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagCanAddExtraItemSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_ITEMS", Boolean.class));
|
dbSettingsModelIstance.setFlagCanAddExtraItemSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_ITEMS", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagCanAutoOpenNewULAccettazione(getValueFromList(list, "ACCETTAZIONE", "FLAG_AUTO_OPEN_NEW_UL", Boolean.class));
|
dbSettingsModelIstance.setFlagCanAutoOpenNewULAccettazione(getValueFromList(list, "ACCETTAZIONE", "FLAG_AUTO_OPEN_NEW_UL", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagCanAddExtraQuantitySpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_QUANTITY", Boolean.class));
|
dbSettingsModelIstance.setFlagCanAddExtraQuantitySpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_QUANTITY", Boolean.class));
|
||||||
@@ -271,6 +280,7 @@ public class SettingsManager {
|
|||||||
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
|
||||||
|
dbSettingsModelIstance.setReportNameSpedizionChiudiOrdine(getValueFromList(list, "SPEDIZIONE", "REPORT_PACKING_LIST", String.class));
|
||||||
|
|
||||||
if(onComplete != null) onComplete.run();
|
if(onComplete != null) onComplete.run();
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
|
|||||||
@@ -26,6 +26,14 @@ public class UtilityBigDecimal {
|
|||||||
return input.compareTo(toCompareWith) < 0;
|
return input.compareTo(toCompareWith) < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean equalsOrLowerThan(BigDecimal input, BigDecimal toCompareWith) {
|
||||||
|
return equalsTo(input, toCompareWith) || lowerThan(input, toCompareWith);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean equalsOrGreaterThan(BigDecimal input, BigDecimal toCompareWith) {
|
||||||
|
return equalsTo(input, toCompareWith) || greaterThan(input, toCompareWith);
|
||||||
|
}
|
||||||
|
|
||||||
public static BigDecimal getLowerBetween(BigDecimal input1, BigDecimal input2) {
|
public static BigDecimal getLowerBetween(BigDecimal input1, BigDecimal input2) {
|
||||||
if(input1 == null) return input2;
|
if(input1 == null) return input2;
|
||||||
if(input2 == null) return input1;
|
if(input2 == null) return input1;
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package it.integry.integrywmsnative.core.utility;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class UtilityReflections {
|
||||||
|
|
||||||
|
|
||||||
|
public static void copy(Object from, Object to) throws Exception {
|
||||||
|
UtilityReflections.copy(from, to, Object.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void copy(Object from, Object to, Class depth) throws Exception {
|
||||||
|
Class fromClass = from.getClass();
|
||||||
|
Class toClass = to.getClass();
|
||||||
|
List<Field> fromFields = collectFields(fromClass, depth);
|
||||||
|
List<Field> toFields = collectFields(toClass, depth);
|
||||||
|
Field target;
|
||||||
|
for (Field source : fromFields) {
|
||||||
|
if ((target = findAndRemove(source, toFields)) != null) {
|
||||||
|
source.setAccessible(true);
|
||||||
|
target.setAccessible(true);
|
||||||
|
target.set(to, source.get(from));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Field> collectFields(Class c, Class depth) {
|
||||||
|
List<Field> accessibleFields = new ArrayList<>();
|
||||||
|
do {
|
||||||
|
int modifiers;
|
||||||
|
for (Field field : c.getDeclaredFields()) {
|
||||||
|
modifiers = field.getModifiers();
|
||||||
|
if (!Modifier.isStatic(modifiers)/* && Modifier.isPublic(modifiers)*/) {
|
||||||
|
accessibleFields.add(field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
c = c.getSuperclass();
|
||||||
|
} while (c != null && c != depth);
|
||||||
|
return accessibleFields;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Field findAndRemove(Field field, List<Field> fields) {
|
||||||
|
Field actual;
|
||||||
|
for (Iterator<Field> i = fields.iterator(); i.hasNext();) {
|
||||||
|
actual = i.next();
|
||||||
|
if (field.getName().equals(actual.getName())
|
||||||
|
&& field.getType().equals(actual.getType())) {
|
||||||
|
i.remove();
|
||||||
|
return actual;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,10 +6,16 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|||||||
public class UtilitySettings {
|
public class UtilitySettings {
|
||||||
|
|
||||||
|
|
||||||
public static void logout(AppDatabase appDatabase){
|
private static AppDatabase mAppDatabase;
|
||||||
|
|
||||||
|
public static void init(AppDatabase appDatabase) {
|
||||||
|
mAppDatabase = appDatabase;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void logout(){
|
||||||
SettingsManager.i().setUser(null);
|
SettingsManager.i().setUser(null);
|
||||||
SettingsManager.i().setUserSession(null);
|
SettingsManager.i().setUserSession(null);
|
||||||
UtilityThread.executeParallel(appDatabase::clearAllTables);
|
UtilityThread.executeParallel(mAppDatabase::clearAllTables);
|
||||||
SettingsManager.update();
|
SettingsManager.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|||||||
|
|
||||||
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
|
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
private FragmentMainAccettazioneBinding mBinding;
|
private FragmentMainAccettazioneBinding mBinding;
|
||||||
@@ -81,11 +81,15 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
mAppBarTitle.setText(context.getText(R.string.accettazione_title_fragment).toString());
|
mAppBarTitle.setText(context.getText(R.string.accettazione_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,7 +114,9 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
if(mOnPreDestroy != null) mOnPreDestroy.run();
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,7 +255,7 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
mOnPreDestroy = onPreDestroy;
|
this.mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
|||||||
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.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
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;
|
||||||
@@ -51,6 +52,7 @@ import it.integry.integrywmsnative.gest.accettazione_picking.core.AccettazioneLi
|
|||||||
import it.integry.integrywmsnative.gest.accettazione_picking.core.AccettazioneListModel;
|
import it.integry.integrywmsnative.gest.accettazione_picking.core.AccettazioneListModel;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.dto.AccettazioneOrdineInevasoOrderBy;
|
import it.integry.integrywmsnative.gest.accettazione_picking.dto.AccettazioneOrdineInevasoOrderBy;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_picking.rest.RecoverMtbColt;
|
||||||
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
@@ -234,6 +236,20 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
|
|
||||||
accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
||||||
|
|
||||||
|
|
||||||
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
|
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
|
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
|
||||||
|
.map(MtbColr::getNumCnf)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
}
|
||||||
|
|
||||||
|
accettazioneListModel.setQtaEvasa(numCnfEvasa);
|
||||||
|
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
||||||
|
accettazioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
|
} else {
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if(x.getWithdrawMtbColrs().size() > 0) {
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
@@ -244,9 +260,9 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
|
|
||||||
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
||||||
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
|
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
|
}
|
||||||
|
|
||||||
accettazioneListModel.setOriginalModel(x);
|
accettazioneListModel.setOriginalModel(x);
|
||||||
|
|
||||||
@@ -271,6 +287,19 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
|
|
||||||
accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
||||||
|
|
||||||
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
|
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
|
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
|
||||||
|
.map(MtbColr::getNumCnf)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
}
|
||||||
|
|
||||||
|
accettazioneListModel.setQtaEvasa(numCnfEvasa);
|
||||||
|
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd());
|
||||||
|
accettazioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
|
} else {
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if(x.getWithdrawMtbColrs().size() > 0) {
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
@@ -281,6 +310,9 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
|
|
||||||
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
||||||
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
|
if (x.getMtbAart() != null)
|
||||||
|
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
|
}
|
||||||
|
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
@@ -309,6 +341,19 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
accettazioneListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
accettazioneListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
||||||
|
|
||||||
|
|
||||||
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
|
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
|
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
|
||||||
|
.map(MtbColr::getNumCnf)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
}
|
||||||
|
|
||||||
|
accettazioneListModel.setQtaEvasa(numCnfEvasa);
|
||||||
|
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd());
|
||||||
|
accettazioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
|
} else {
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if(x.getWithdrawMtbColrs().size() > 0) {
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
@@ -319,10 +364,12 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
|
|
||||||
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
||||||
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
|
if (x.getMtbAart() != null)
|
||||||
|
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
|
}
|
||||||
|
|
||||||
if (x.getMtbAart() != null) {
|
if (x.getMtbAart() != null) {
|
||||||
accettazioneListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
|
accettazioneListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
|
||||||
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
accettazioneListModel.setOriginalModel(x);
|
accettazioneListModel.setOriginalModel(x);
|
||||||
@@ -363,7 +410,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
.anyMatch(x -> !x.isHidden());
|
.anyMatch(x -> !x.isHidden());
|
||||||
}
|
}
|
||||||
|
|
||||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
|
|
||||||
this.openProgress();
|
this.openProgress();
|
||||||
@@ -409,8 +456,13 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){
|
public void startListaBancaliRegistratiActivity(ArrayList<RecoverMtbColt> mtbColts) {
|
||||||
Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, false, PrinterRESTConsumer.Type.SECONDARIA, ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
|
|
||||||
|
Intent myIntent = ListaBancaliActivity.createIntent(this,
|
||||||
|
Stream.of(mtbColts).map(x -> (MtbColt)x).toList(),
|
||||||
|
input -> ((RecoverMtbColt) input).isFlagCanBeRecovered(),
|
||||||
|
PrinterRESTConsumer.Type.SECONDARIA,
|
||||||
|
ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
|
||||||
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -481,7 +533,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
}
|
}
|
||||||
|
|
||||||
@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, Date dataScad, boolean canPartitaMagBeChanged, 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, Date dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||||
.setMtbAart(mtbAart)
|
.setMtbAart(mtbAart)
|
||||||
.setInitialNumCnf(initialNumCnf)
|
.setInitialNumCnf(initialNumCnf)
|
||||||
@@ -498,7 +550,9 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
.setQtaCnfAvailable(qtaCnfAvailable)
|
.setQtaCnfAvailable(qtaCnfAvailable)
|
||||||
.setPartitaMag(partitaMag)
|
.setPartitaMag(partitaMag)
|
||||||
.setDataScad(dataScad)
|
.setDataScad(dataScad)
|
||||||
.setCanPartitaMagBeChanged(canPartitaMagBeChanged);
|
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
||||||
|
.setCanLUBeClosed(true)
|
||||||
|
.setCanOverflowOrderQuantity(canOverflowQuantity);
|
||||||
|
|
||||||
DialogInputQuantityV2
|
DialogInputQuantityV2
|
||||||
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.gest.accettazione_picking;
|
package it.integry.integrywmsnative.gest.accettazione_picking;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
@@ -8,7 +9,9 @@ import com.annimon.stream.Stream;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.GregorianCalendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -48,8 +51,10 @@ 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.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_picking.dto.HistoryMtbAartDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.rest.AccettazionePickingRESTConsumer;
|
import it.integry.integrywmsnative.gest.accettazione_picking.rest.AccettazionePickingRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_picking.rest.RecoverMtbColt;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
@@ -67,12 +72,14 @@ public class AccettazionePickingViewModel {
|
|||||||
|
|
||||||
private List<OrdineAccettazioneInevasoDTO> mOrders;
|
private List<OrdineAccettazioneInevasoDTO> mOrders;
|
||||||
private List<SitArtOrdDTO> mSitArts;
|
private List<SitArtOrdDTO> mSitArts;
|
||||||
private MutableLiveData<List<PickingObjectDTO>> mPickingList = new MutableLiveData<>();
|
private final MutableLiveData<List<PickingObjectDTO>> mPickingList = new MutableLiveData<>();
|
||||||
|
|
||||||
private MtbColt mCurrentMtbColt = null;
|
private MtbColt mCurrentMtbColt = null;
|
||||||
private GestioneEnum defaultGestioneOfUL = null;
|
private GestioneEnum defaultGestioneOfUL = null;
|
||||||
private String mDefaultCodMdep = null;
|
private String mDefaultCodMdep = null;
|
||||||
|
|
||||||
|
private final List<HistoryMtbAartDTO> mHistoryUsedAarts = new ArrayList<>();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public AccettazionePickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
public AccettazionePickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
BarcodeRESTConsumer barcodeRESTConsumer,
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
@@ -133,7 +140,7 @@ public class AccettazionePickingViewModel {
|
|||||||
.map(SitArtOrdDTO::getCodMart)
|
.map(SitArtOrdDTO::getCodMart)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
ArticoloRESTConsumer.getByCodMart(codMarts, listMtbAarts -> {
|
this.mArticoloRESTConsumer.getByCodMart(codMarts, listMtbAarts -> {
|
||||||
List<PickingObjectDTO> pickingList = Stream.of(sitArtOrdList)
|
List<PickingObjectDTO> pickingList = Stream.of(sitArtOrdList)
|
||||||
.map(sitArtOrdDTO -> {
|
.map(sitArtOrdDTO -> {
|
||||||
MtbAart mtbAart = null;
|
MtbAart mtbAart = null;
|
||||||
@@ -159,7 +166,7 @@ public class AccettazionePickingViewModel {
|
|||||||
return mPickingList;
|
return mPickingList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void retrieveExistentLU(RunnableArgs<ArrayList<MtbColt>> onComplete) {
|
public void retrieveExistentLU(RunnableArgs<ArrayList<RecoverMtbColt>> onComplete) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
this.mAccettazionePickingRESTConsumer.getBancaliGiaRegistrati(this.mSitArts, mtbColtList -> {
|
this.mAccettazionePickingRESTConsumer.getBancaliGiaRegistrati(this.mSitArts, mtbColtList -> {
|
||||||
@@ -419,7 +426,7 @@ public class AccettazionePickingViewModel {
|
|||||||
|
|
||||||
|
|
||||||
public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO) {
|
public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO) {
|
||||||
if(this.mCurrentMtbColt == null) return;
|
if (this.mCurrentMtbColt == null) return;
|
||||||
|
|
||||||
BigDecimal totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
|
BigDecimal totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
|
||||||
BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
|
BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
|
||||||
@@ -434,8 +441,8 @@ public class AccettazionePickingViewModel {
|
|||||||
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
||||||
});
|
});
|
||||||
|
|
||||||
BigDecimal numCnfDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd().subtract(numCnfWithdrawRows.getBigDecimalValue());
|
BigDecimal numCnfDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getNumCnfDaEvadere().subtract(numCnfWithdrawRows.getBigDecimalValue());
|
||||||
BigDecimal qtaDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd().subtract(qtaColWithdrawRows.getBigDecimalValue());
|
BigDecimal qtaDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getQtaDaEvadere().subtract(qtaColWithdrawRows.getBigDecimalValue());
|
||||||
BigDecimal qtaCnfDaEvadere = qtaCnfOrd;
|
BigDecimal qtaCnfDaEvadere = qtaCnfOrd;
|
||||||
|
|
||||||
numCnfDaEvadere = UtilityBigDecimal.getGreaterBetween(numCnfDaEvadere, BigDecimal.ZERO);
|
numCnfDaEvadere = UtilityBigDecimal.getGreaterBetween(numCnfDaEvadere, BigDecimal.ZERO);
|
||||||
@@ -493,10 +500,47 @@ public class AccettazionePickingViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BigDecimal initialNumCnf;
|
||||||
|
BigDecimal initialQtaCnf;
|
||||||
|
BigDecimal initialQtaTot;
|
||||||
|
|
||||||
|
if (qtaColDaPrelevare != null) {
|
||||||
|
initialNumCnf = numCnfDaPrelevare;
|
||||||
|
initialQtaCnf = qtaCnfDaPrelevare;
|
||||||
|
initialQtaTot = qtaColDaPrelevare;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
initialNumCnf = totalNumCnfOrd;
|
||||||
|
initialQtaCnf = qtaCnfOrd;
|
||||||
|
initialQtaTot = totalQtaOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (UtilityBigDecimal.greaterThan(pickingObjectDTO.getMtbAart().getColliPedana(), BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(initialNumCnf, pickingObjectDTO.getMtbAart().getColliPedana())) {
|
||||||
|
initialNumCnf = pickingObjectDTO.getMtbAart().getColliPedana();
|
||||||
|
initialQtaTot = initialNumCnf.multiply(initialQtaCnf);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) {
|
||||||
|
dataScad = UtilityDate.getDateInstance();
|
||||||
|
Calendar c = new GregorianCalendar();
|
||||||
|
c.setTime(dataScad);
|
||||||
|
c.add(Calendar.DATE, pickingObjectDTO.getMtbAart().getGgScadPartita());
|
||||||
|
dataScad = c.getTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(partitaMag == null && dataScad == null) {
|
||||||
|
HistoryMtbAartDTO historyMtbAartDTO = this.getHistoryItemIfExists(pickingObjectDTO.getMtbAart().getCodMart());
|
||||||
|
|
||||||
|
if(historyMtbAartDTO != null) {
|
||||||
|
partitaMag = historyMtbAartDTO.getPartitaMag();
|
||||||
|
dataScad = historyMtbAartDTO.getDataScad();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.sendOnItemDispatched(
|
this.sendOnItemDispatched(
|
||||||
pickingObjectDTO,
|
pickingObjectDTO,
|
||||||
pickingObjectDTO.getMtbAart(),
|
pickingObjectDTO.getMtbAart(),
|
||||||
null, null, null,
|
initialNumCnf, initialQtaCnf, initialQtaTot,
|
||||||
qtaDaEvadere,
|
qtaDaEvadere,
|
||||||
numCnfDaEvadere,
|
numCnfDaEvadere,
|
||||||
qtaCnfDaEvadere,
|
qtaCnfDaEvadere,
|
||||||
@@ -543,6 +587,8 @@ public class AccettazionePickingViewModel {
|
|||||||
.setRigaOrd(pickingObjectDTO.getSitArtOrdDTO().getRigaOrd());
|
.setRigaOrd(pickingObjectDTO.getSitArtOrdDTO().getRigaOrd());
|
||||||
|
|
||||||
|
|
||||||
|
this.addHistoryItem(mtbColr);
|
||||||
|
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
@@ -638,6 +684,8 @@ public class AccettazionePickingViewModel {
|
|||||||
|
|
||||||
mtbColt.getMtbColr().add(mtbColr);
|
mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.addHistoryItem(mtbColr);
|
||||||
|
|
||||||
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
|
|
||||||
mtbColr.setNumCnf(numCnf)
|
mtbColr.setNumCnf(numCnf)
|
||||||
@@ -648,7 +696,7 @@ public class AccettazionePickingViewModel {
|
|||||||
.filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToUpdate))
|
.filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToUpdate))
|
||||||
.findSingle();
|
.findSingle();
|
||||||
|
|
||||||
if(pickingObjectDTO.isPresent()) {
|
if (pickingObjectDTO.isPresent()) {
|
||||||
pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate);
|
pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate);
|
||||||
pickingObjectDTO.get().getWithdrawMtbColrs().add(mtbColr);
|
pickingObjectDTO.get().getWithdrawMtbColrs().add(mtbColr);
|
||||||
}
|
}
|
||||||
@@ -744,7 +792,7 @@ public class AccettazionePickingViewModel {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String reportName = ReportManager.getReportNameLUFromGestione(mCurrentMtbColt.getGestioneEnum());
|
String reportName = ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO);
|
||||||
|
|
||||||
this.mPrinterRESTConsumer.printCollo(
|
this.mPrinterRESTConsumer.printCollo(
|
||||||
printerList.get(0),
|
printerList.get(0),
|
||||||
@@ -783,6 +831,30 @@ public class AccettazionePickingViewModel {
|
|||||||
this.sendFilterRemoved();
|
this.sendFilterRemoved();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addHistoryItem(@NonNull MtbColr mtbColr) {
|
||||||
|
Optional<HistoryMtbAartDTO> optional = Stream.of(this.mHistoryUsedAarts)
|
||||||
|
.filter(x -> x.getCodMart().equalsIgnoreCase(mtbColr.getCodMart()))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
if (optional.isPresent()) {
|
||||||
|
optional.get()
|
||||||
|
.setPartitaMag(mtbColr.getPartitaMag())
|
||||||
|
.setDataScad(mtbColr.getDataScadPartitaD());
|
||||||
|
} else {
|
||||||
|
this.mHistoryUsedAarts.add(new HistoryMtbAartDTO()
|
||||||
|
.setCodMart(mtbColr.getCodMart())
|
||||||
|
.setPartitaMag(mtbColr.getPartitaMag())
|
||||||
|
.setDataScad(mtbColr.getDataScadPartitaD()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private HistoryMtbAartDTO getHistoryItemIfExists(@NonNull String codMart) {
|
||||||
|
Optional<HistoryMtbAartDTO> optional = Stream.of(this.mHistoryUsedAarts)
|
||||||
|
.filter(x -> x.getCodMart().equalsIgnoreCase(codMart))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
return optional.isPresent() ? optional.get() : null;
|
||||||
|
}
|
||||||
|
|
||||||
private void sendOnLoadingStarted() {
|
private void sendOnLoadingStarted() {
|
||||||
if (this.mListener != null) mListener.onLoadingStarted();
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
@@ -851,6 +923,7 @@ public class AccettazionePickingViewModel {
|
|||||||
partitaMag,
|
partitaMag,
|
||||||
dataScad,
|
dataScad,
|
||||||
canPartitaMagBeChanged,
|
canPartitaMagBeChanged,
|
||||||
|
true,
|
||||||
onComplete);
|
onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -899,17 +972,14 @@ public class AccettazionePickingViewModel {
|
|||||||
BigDecimal qtaCnfAvailable,
|
BigDecimal qtaCnfAvailable,
|
||||||
String partitaMag,
|
String partitaMag,
|
||||||
Date dataScad,
|
Date dataScad,
|
||||||
boolean canOverflowOrderQuantity,
|
boolean canPartitaMagBeChanged,
|
||||||
|
boolean canOverflowQuantity,
|
||||||
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
||||||
|
|
||||||
void onRowSaved();
|
|
||||||
|
|
||||||
void onFilterApplied(String newValue);
|
void onFilterApplied(String newValue);
|
||||||
|
|
||||||
void onFilterRemoved();
|
void onFilterRemoved();
|
||||||
|
|
||||||
void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.accettazione_picking.dto;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class HistoryMtbAartDTO {
|
||||||
|
|
||||||
|
private String codMart;
|
||||||
|
private String partitaMag;
|
||||||
|
private Date dataScad;
|
||||||
|
|
||||||
|
public String getCodMart() {
|
||||||
|
return codMart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryMtbAartDTO setCodMart(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPartitaMag() {
|
||||||
|
return partitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryMtbAartDTO setPartitaMag(String partitaMag) {
|
||||||
|
this.partitaMag = partitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataScad() {
|
||||||
|
return dataScad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryMtbAartDTO setDataScad(Date dataScad) {
|
||||||
|
this.dataScad = dataScad;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,18 +5,18 @@ import com.google.gson.reflect.TypeToken;
|
|||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
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.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@@ -29,56 +29,120 @@ public class AccettazionePickingRESTConsumer {
|
|||||||
this.mSystemRestConsumer = systemRESTConsumer;
|
this.mSystemRestConsumer = systemRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getBancaliGiaRegistrati(List<SitArtOrdDTO> ordiniToShow, RunnableArgs<ArrayList<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void getBancaliGiaRegistrati(List<SitArtOrdDTO> ordiniToShow, RunnableArgs<ArrayList<RecoverMtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
List<HashMap<String, Object>> whereCondListMap = new ArrayList<>();
|
||||||
|
|
||||||
List<String> colliWhereCond = new ArrayList<>();
|
Stream
|
||||||
|
.of(ordiniToShow)
|
||||||
|
.distinctBy(x -> x.getDataOrd() + " " + x.getGestione() + " " + x.getNumOrd())
|
||||||
Stream.of(ordiniToShow).forEach(x -> {
|
.forEach(x -> {
|
||||||
try {
|
try {
|
||||||
Date date = UtilityDate.recognizeDate(x.getDataOrd());
|
HashMap<String, Object> whereCondMap = new HashMap<>();
|
||||||
String dateString = UtilityDate.formatDate(date, "yyyy/MM/dd");
|
whereCondMap.put("mtb_colr.data_ord", UtilityDate.recognizeDate(x.getDataOrd()));
|
||||||
|
whereCondMap.put("mtb_colr.gestione", x.getGestione().equalsIgnoreCase("P") ? "L" : x.getGestione());
|
||||||
|
whereCondMap.put("mtb_colr.num_ord", x.getNumOrd());
|
||||||
|
|
||||||
if (!colliWhereCond.contains(x.getGestione() + " " + dateString + " " + x.getNumOrd())) {
|
whereCondListMap.add(whereCondMap);
|
||||||
String gestione = x.getGestione().equalsIgnoreCase("P") ? "L" : x.getGestione();
|
} catch (Exception ex) {
|
||||||
colliWhereCond.add(gestione + " " + dateString + " " + x.getNumOrd());
|
|
||||||
}
|
|
||||||
} catch (Exception ex){
|
|
||||||
UtilityLogger.errorMe(ex);
|
UtilityLogger.errorMe(ex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
StringBuilder colliINCondition = new StringBuilder();
|
String sql = "SELECT DISTINCT CAST(CASE WHEN MAX(ISNULL(mtb_colr_scar.num_collo, 0)) = 0 THEN 1 ELSE 0 END AS BIT) AS flagCanBeRecovered, " +
|
||||||
|
" mtb_colt.gestione," +
|
||||||
for(int i = 0; i < colliWhereCond.size(); i ++){
|
" mtb_colt.data_collo," +
|
||||||
colliINCondition.append("'").append(colliWhereCond.get(i)).append("'");
|
" mtb_colt.num_collo," +
|
||||||
|
" segno," +
|
||||||
if(i < (colliWhereCond.size()-1)) colliINCondition.append(",");
|
" peso_kg," +
|
||||||
}
|
" lunghezza_cm," +
|
||||||
|
" larghezza_cm," +
|
||||||
|
" altezza_cm," +
|
||||||
|
" cod_anag," +
|
||||||
|
" cod_dtip," +
|
||||||
|
" mtb_colt.data_doc," +
|
||||||
|
" mtb_colt.ser_doc," +
|
||||||
|
" mtb_colt.num_doc," +
|
||||||
|
" rif_ord," +
|
||||||
|
" mtb_colt.ser_collo," +
|
||||||
|
" cod_tcol," +
|
||||||
|
" mtb_colt.data_ord," +
|
||||||
|
" mtb_colt.num_ord," +
|
||||||
|
" cod_vdes," +
|
||||||
|
" cod_mdep," +
|
||||||
|
" cod_vlis," +
|
||||||
|
" preparato_da," +
|
||||||
|
" ora_iniz_prep," +
|
||||||
|
" ora_fine_prep," +
|
||||||
|
" filtro_ordini," +
|
||||||
|
" annotazioni," +
|
||||||
|
" posizione," +
|
||||||
|
" cod_dtip_provv," +
|
||||||
|
" data_doc_provv," +
|
||||||
|
" ser_doc_provv," +
|
||||||
|
" num_doc_provv," +
|
||||||
|
" cod_jfas," +
|
||||||
|
" data_vers," +
|
||||||
|
" mtb_colt.peso_netto_kg " +
|
||||||
|
"FROM mtb_colt" +
|
||||||
|
" INNER JOIN mtb_colr ON " +
|
||||||
|
" mtb_colt.gestione = mtb_colr.gestione AND " +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo AND " +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo AND " +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo " +
|
||||||
|
" LEFT OUTER JOIN mtb_colr mtb_colr_scar ON mtb_colr_scar.num_collo_rif = mtb_colr.num_collo AND " +
|
||||||
|
" mtb_colr_scar.gestione_rif = mtb_colr.gestione AND " +
|
||||||
|
" mtb_colr_scar.ser_collo_rif = mtb_colr.ser_collo AND " +
|
||||||
|
" mtb_colr_scar.data_collo_rif = mtb_colr.data_collo " +
|
||||||
|
" WHERE (" + UtilityQuery.concatFieldListInWhereCond(whereCondListMap) + ") " +
|
||||||
|
" AND mtb_colt.data_doc IS NULL " +
|
||||||
|
" GROUP BY mtb_colt.gestione," +
|
||||||
|
" mtb_colt.data_collo," +
|
||||||
|
" mtb_colt.num_collo," +
|
||||||
|
" segno," +
|
||||||
|
" peso_kg," +
|
||||||
|
" lunghezza_cm," +
|
||||||
|
" larghezza_cm," +
|
||||||
|
" altezza_cm," +
|
||||||
|
" cod_anag," +
|
||||||
|
" cod_dtip," +
|
||||||
|
" mtb_colt.data_doc," +
|
||||||
|
" mtb_colt.ser_doc," +
|
||||||
|
" mtb_colt.num_doc," +
|
||||||
|
" rif_ord," +
|
||||||
|
" mtb_colt.ser_collo," +
|
||||||
|
" cod_tcol," +
|
||||||
|
" mtb_colt.data_ord," +
|
||||||
|
" mtb_colt.num_ord," +
|
||||||
|
" cod_vdes," +
|
||||||
|
" cod_mdep," +
|
||||||
|
" cod_vlis," +
|
||||||
|
" preparato_da," +
|
||||||
|
" ora_iniz_prep," +
|
||||||
|
" ora_fine_prep," +
|
||||||
|
" filtro_ordini," +
|
||||||
|
" annotazioni," +
|
||||||
|
" posizione," +
|
||||||
|
" cod_dtip_provv," +
|
||||||
|
" data_doc_provv," +
|
||||||
|
" ser_doc_provv," +
|
||||||
|
" num_doc_provv," +
|
||||||
|
" cod_jfas," +
|
||||||
|
" data_vers," +
|
||||||
|
" mtb_colt.peso_netto_kg";
|
||||||
|
|
||||||
|
|
||||||
|
Type typeOfObjectsList = new TypeToken<ArrayList<RecoverMtbColt>>() {
|
||||||
String sql = "SELECT DISTINCT mtb_colt.* " +
|
}.getType();
|
||||||
"FROM mtb_colt, mtb_colr " +
|
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<RecoverMtbColt>>() {
|
||||||
"WHERE mtb_colt.gestione = mtb_colr.gestione AND " +
|
|
||||||
"mtb_colt.ser_collo = mtb_colr.ser_collo AND " +
|
|
||||||
"mtb_colt.data_collo = mtb_colr.data_collo AND " +
|
|
||||||
"mtb_colt.num_collo = mtb_colr.num_collo AND " +
|
|
||||||
"mtb_colt.gestione + ' ' + CONVERT(VARCHAR(15), mtb_colr.data_ord, 111) + ' ' + CONVERT(VARCHAR, mtb_colr.num_ord) IN (" + colliINCondition +
|
|
||||||
") AND mtb_colt.data_doc IS NULL ";
|
|
||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
|
||||||
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbColt>>() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<MtbColt> value) {
|
public void onSuccess(ArrayList<RecoverMtbColt> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if (onComplete != null) onComplete.run(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailed(Exception ex) {
|
public void onFailed(Exception ex) {
|
||||||
if(onFailed != null) onFailed.run(ex);
|
if (onFailed != null) onFailed.run(ex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.accettazione_picking.rest;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
|
||||||
|
public class RecoverMtbColt extends MtbColt {
|
||||||
|
|
||||||
|
private boolean flagCanBeRecovered;
|
||||||
|
|
||||||
|
public boolean isFlagCanBeRecovered() {
|
||||||
|
return flagCanBeRecovered;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RecoverMtbColt setFlagCanBeRecovered(boolean flagCanBeRecovered) {
|
||||||
|
this.flagCanBeRecovered = flagCanBeRecovered;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,21 +3,22 @@ package it.integry.integrywmsnative.gest.contenuto_bancale.viewmodel;
|
|||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import androidx.databinding.ObservableField;
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
|
import androidx.databinding.ObservableField;
|
||||||
|
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
import it.integry.integrywmsnative.core.di.BindableString;
|
import it.integry.integrywmsnative.core.di.BindableString;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
||||||
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.report.ReportManager;
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
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.UtilityProgress;
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
@@ -42,7 +43,7 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
private PrinterRESTConsumer.Type mPrinterType;
|
private PrinterRESTConsumer.Type mPrinterType;
|
||||||
private String mReportName;
|
private String mReportName;
|
||||||
|
|
||||||
public ContenutoBancaleViewModel(ContenutoBancaleActivity context, MtbColt mtbColt, boolean canRecoverUL, PrinterRESTConsumer.Type printerType, String defaultReportName){
|
public ContenutoBancaleViewModel(ContenutoBancaleActivity context, MtbColt mtbColt, boolean canRecoverUL, PrinterRESTConsumer.Type printerType, String defaultReportName) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
this.mtbColt = new ObservableField<>(mtbColt);
|
this.mtbColt = new ObservableField<>(mtbColt);
|
||||||
this.isFabVisible.set(true);
|
this.isFabVisible.set(true);
|
||||||
@@ -85,8 +86,7 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void recoverUL() {
|
||||||
public void recoverUL(){
|
|
||||||
Intent data = new Intent();
|
Intent data = new Intent();
|
||||||
String key = DataCache.addItem(mtbColt.get());
|
String key = DataCache.addItem(mtbColt.get());
|
||||||
data.putExtra("key", key);
|
data.putExtra("key", key);
|
||||||
@@ -102,10 +102,10 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
|
|
||||||
PrinterRESTConsumer.getAvailablePrintersStatic(SettingsManager.i().getUserSession().getDepo().getCodMdep(), mPrinterType, value -> {
|
PrinterRESTConsumer.getAvailablePrintersStatic(SettingsManager.i().getUserSession().getDepo().getCodMdep(), mPrinterType, value -> {
|
||||||
|
|
||||||
if(value.size() > 0) {
|
if (value.size() > 0) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ReportManager.getReportNameLUFromGestione(mtbColt.get().getGestioneEnum(), reportName -> {
|
String reportName = ReportManager.getReportNameLUFromGestione(mtbColt.get().getGestioneEnum());
|
||||||
|
|
||||||
reportName = mReportName != null ? mReportName : reportName;
|
reportName = mReportName != null ? mReportName : reportName;
|
||||||
|
|
||||||
@@ -119,11 +119,9 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr>
|
|||||||
Resources res = mContext.getResources();
|
Resources res = mContext.getResources();
|
||||||
String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
|
String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
|
||||||
DialogSimpleMessageHelper.makeSuccessDialog(mContext, res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show();
|
DialogSimpleMessageHelper.makeSuccessDialog(mContext, res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show();
|
||||||
}, ex -> UtilityExceptions.defaultException(mContext,ex, progress));
|
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
||||||
|
|
||||||
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress)
|
} catch (Exception ex) {
|
||||||
);
|
|
||||||
} catch (Exception ex){
|
|
||||||
UtilityExceptions.defaultException(mContext, ex, progress);
|
UtilityExceptions.defaultException(mContext, ex, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,18 +2,18 @@ package it.integry.integrywmsnative.gest.lista_bancali;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityListaBancaliBinding;
|
import it.integry.integrywmsnative.databinding.ActivityListaBancaliBinding;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
|
||||||
import it.integry.integrywmsnative.gest.lista_bancali.viewmodel.ListaBancaliViewModel;
|
import it.integry.integrywmsnative.gest.lista_bancali.viewmodel.ListaBancaliViewModel;
|
||||||
@@ -25,52 +25,55 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
private static final String CanRecoverUL = "canRecoverUL";
|
private static final String CanRecoverUL = "canRecoverUL";
|
||||||
private static final String PrinterType = "printerType";
|
private static final String PrinterType = "printerType";
|
||||||
private static final String ReportName = "reportName";
|
private static final String ReportName = "reportName";
|
||||||
|
private static final String FlagOnlyResiduo = "flagOnlyResiduo";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActivityListaBancaliBinding bindings;
|
public ActivityListaBancaliBinding bindings;
|
||||||
|
|
||||||
private ListaBancaliViewModel mViewModel;
|
private ListaBancaliViewModel mViewModel;
|
||||||
|
|
||||||
private boolean mCanRecoverUl;
|
private RunnableArgsWithReturn<MtbColt, Boolean> mCanRecoverUl;
|
||||||
private PrinterRESTConsumer.Type mPrinterType;
|
private PrinterRESTConsumer.Type mPrinterType;
|
||||||
private String mReportName;
|
private String mReportName;
|
||||||
|
private boolean mFlagOnlyResiduo;
|
||||||
|
|
||||||
private static final int PICK_UL_REQUEST = 1; // The request code
|
private static final int PICK_UL_REQUEST = 1; // The request code
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static Intent createIntent(Context context, ArrayList<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType, String reportName) {
|
public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, PrinterRESTConsumer.Type printerType, String reportName) {
|
||||||
|
return createIntent(context, items, canRecoverUlAction, printerType, true, reportName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Intent createIntent(Context context, List<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType, boolean onlyResiduo) {
|
||||||
|
return createIntent(context, items, input -> canRecoverUl, printerType, onlyResiduo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, PrinterRESTConsumer.Type printerType, boolean onlyResiduo) {
|
||||||
|
return createIntent(context, items, canRecoverUlAction, printerType, onlyResiduo, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, PrinterRESTConsumer.Type printerType, boolean onlyResiduo, String reportName) {
|
||||||
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
||||||
|
|
||||||
String mtbColtsKey = DataCache.addItem(items);
|
String mtbColtsKey = DataCache.addItem(items);
|
||||||
myIntent.putExtra(Key.MtbColtsKey, mtbColtsKey);
|
myIntent.putExtra(Key.MtbColtsKey, mtbColtsKey);
|
||||||
|
|
||||||
String canRecoverULKey = DataCache.addItem(canRecoverUl);
|
String canRecoverULKey = DataCache.addItem(canRecoverUlAction);
|
||||||
myIntent.putExtra(Key.CanRecoverUL, canRecoverULKey);
|
myIntent.putExtra(Key.CanRecoverUL, canRecoverULKey);
|
||||||
|
|
||||||
String printerTypeKey = DataCache.addItem(printerType);
|
String printerTypeKey = DataCache.addItem(printerType);
|
||||||
myIntent.putExtra(Key.PrinterType, printerTypeKey);
|
myIntent.putExtra(Key.PrinterType, printerTypeKey);
|
||||||
|
|
||||||
|
String flagOnlyResiduoKey = DataCache.addItem(onlyResiduo);
|
||||||
|
myIntent.putExtra(Key.FlagOnlyResiduo, flagOnlyResiduoKey);
|
||||||
|
|
||||||
String reportNameKey = DataCache.addItem(reportName);
|
String reportNameKey = DataCache.addItem(reportName);
|
||||||
myIntent.putExtra(Key.ReportName, reportNameKey);
|
myIntent.putExtra(Key.ReportName, reportNameKey);
|
||||||
|
|
||||||
return myIntent;
|
return myIntent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Intent createIntent(Context context, ArrayList<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType) {
|
|
||||||
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
|
||||||
|
|
||||||
String mtbColtsKey = DataCache.addItem(items);
|
|
||||||
myIntent.putExtra(Key.MtbColtsKey, mtbColtsKey);
|
|
||||||
|
|
||||||
String canRecoverULKey = DataCache.addItem(canRecoverUl);
|
|
||||||
myIntent.putExtra(Key.CanRecoverUL, canRecoverULKey);
|
|
||||||
|
|
||||||
String printerTypeKey = DataCache.addItem(printerType);
|
|
||||||
myIntent.putExtra(Key.PrinterType, printerTypeKey);
|
|
||||||
|
|
||||||
return myIntent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -81,9 +84,10 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
mCanRecoverUl = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL));
|
mCanRecoverUl = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL));
|
||||||
mPrinterType = DataCache.retrieveItem(getIntent().getStringExtra(Key.PrinterType));
|
mPrinterType = DataCache.retrieveItem(getIntent().getStringExtra(Key.PrinterType));
|
||||||
mReportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName));
|
mReportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName));
|
||||||
|
mFlagOnlyResiduo = DataCache.retrieveItem(getIntent().getStringExtra(Key.FlagOnlyResiduo));
|
||||||
|
|
||||||
List<MtbColt> mtbColts = DataCache.retrieveItem(getIntent().getStringExtra(Key.MtbColtsKey));
|
List<MtbColt> mtbColts = DataCache.retrieveItem(getIntent().getStringExtra(Key.MtbColtsKey));
|
||||||
mViewModel = new ListaBancaliViewModel(this, mtbColts);
|
mViewModel = new ListaBancaliViewModel(this, mtbColts, mFlagOnlyResiduo);
|
||||||
|
|
||||||
|
|
||||||
setSupportActionBar(this.bindings.toolbar);
|
setSupportActionBar(this.bindings.toolbar);
|
||||||
@@ -99,7 +103,7 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void startContenutoBancaleActivity(MtbColt item){
|
public void startContenutoBancaleActivity(MtbColt item){
|
||||||
Intent myIntent = ContenutoBancaleActivity.createIntent(this, item, mCanRecoverUl, mPrinterType, mReportName);
|
Intent myIntent = ContenutoBancaleActivity.createIntent(this, item, mCanRecoverUl.run(item), mPrinterType, mReportName);
|
||||||
startActivityForResult(myIntent, PICK_UL_REQUEST);
|
startActivityForResult(myIntent, PICK_UL_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,11 +26,15 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked<MtbColt> {
|
|||||||
|
|
||||||
private MainListListaColliAdapter mAdapter;
|
private MainListListaColliAdapter mAdapter;
|
||||||
|
|
||||||
public ListaBancaliViewModel(ListaBancaliActivity context, List<MtbColt> mtbColts){
|
private boolean mLoadOnlyResiduo;
|
||||||
|
|
||||||
|
public ListaBancaliViewModel(ListaBancaliActivity context, List<MtbColt> mtbColts, boolean loadOnlyResiduo){
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mMtbColts = new ObservableArrayList<>();
|
mMtbColts = new ObservableArrayList<>();
|
||||||
mMtbColts.addAll(mtbColts);
|
mMtbColts.addAll(mtbColts);
|
||||||
|
|
||||||
|
this.mLoadOnlyResiduo = loadOnlyResiduo;
|
||||||
|
|
||||||
initRecyclerView();
|
initRecyclerView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,7 +60,7 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked<MtbColt> {
|
|||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ColliMagazzinoRESTConsumer.getByTestataStatic(item, true, false, mtbColt -> {
|
ColliMagazzinoRESTConsumer.getByTestataStatic(item, mLoadOnlyResiduo, false, mtbColt -> {
|
||||||
|
|
||||||
ObservableArrayList<MtbColr> mtbColrObservableArrayList = new ObservableArrayList<>();
|
ObservableArrayList<MtbColr> mtbColrObservableArrayList = new ObservableArrayList<>();
|
||||||
mtbColrObservableArrayList.addAll(mtbColt.getMtbColr());
|
mtbColrObservableArrayList.addAll(mtbColt.getMtbColr());
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
|
|||||||
|
|
||||||
private FragmentMainBinding mBindings;
|
private FragmentMainBinding mBindings;
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
private LayoutInflater mLayoutInflater;
|
private LayoutInflater mLayoutInflater;
|
||||||
@@ -89,7 +89,9 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
if (mOnPreDestroy != null) mOnPreDestroy.run();
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,14 +210,19 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
|
|||||||
titleText.setText(context.getText(R.string.app_name).toString());
|
titleText.setText(context.getText(R.string.app_name).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||||
mToolbar = toolbar;
|
mToolbar = toolbar;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
mOnPreDestroy = onPreDestroy;
|
mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface OrdiniUscitaElencoComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
OrdiniUscitaElencoComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(OrdiniUscitaElencoFragment ordiniUscitaElencoFragment);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityReflections;
|
||||||
|
|
||||||
|
public class OrdiniUscitaElencoDTO extends OrdineUscitaInevasoDTO {
|
||||||
|
|
||||||
|
private boolean hidden = false;
|
||||||
|
|
||||||
|
public static OrdiniUscitaElencoDTO fromParent(OrdineUscitaInevasoDTO parent) throws Exception {
|
||||||
|
OrdiniUscitaElencoDTO child = new OrdiniUscitaElencoDTO();
|
||||||
|
UtilityReflections.copy(parent, child);
|
||||||
|
return child;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHidden() {
|
||||||
|
return hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoDTO setHidden(boolean hidden) {
|
||||||
|
this.hidden = hidden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,354 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
|
import com.annimon.stream.ComparatorCompat;
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs.DialogVenditaFiltroAvanzato;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs.DialogVenditaFiltroAvanzatoViewModel;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.list.OrdiniUscitaElencoAdapter;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.list.OrdiniUscitaElencoListModel;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
|
||||||
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
|
public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragment, ILifecycleFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment, OrdiniUscitaElencoViewModel.Listener {
|
||||||
|
|
||||||
|
public BindableBoolean fabVisible = new BindableBoolean(false);
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
OrdiniUscitaElencoViewModel mViewModel;
|
||||||
|
|
||||||
|
private FragmentMainOrdiniUscitaBinding mBindings = null;
|
||||||
|
|
||||||
|
private ObservableArrayList<OrdiniUscitaElencoListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
|
||||||
|
|
||||||
|
private GestioneEnum mCurrentGestioneOrd = null;
|
||||||
|
private GestioneEnum mCurrentGestioneCol = null;
|
||||||
|
private int mCurrentSegnoCol = 0;
|
||||||
|
|
||||||
|
private ElevatedToolbar mToolbar;
|
||||||
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
private Dialog mCurrentProgress;
|
||||||
|
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoFragment() {
|
||||||
|
// Required empty public constructor
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OrdiniUscitaElencoFragment newInstance(GestioneEnum gestioneOrd, GestioneEnum gestioneCol, int segnoCol) {
|
||||||
|
OrdiniUscitaElencoFragment fragment = new OrdiniUscitaElencoFragment();
|
||||||
|
Bundle args = new Bundle();
|
||||||
|
|
||||||
|
args.putString("gestioneOrd", gestioneOrd.getText());
|
||||||
|
args.putString("gestioneCol", gestioneCol.getText());
|
||||||
|
args.putInt("segnoCol", segnoCol);
|
||||||
|
|
||||||
|
fragment.setArguments(args);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
mCurrentGestioneOrd = GestioneEnum.fromString(getArguments().getString("gestioneOrd"));
|
||||||
|
mCurrentGestioneCol = GestioneEnum.fromString(getArguments().getString("gestioneCol"));
|
||||||
|
mCurrentSegnoCol = getArguments().getInt("segnoCol");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
|
||||||
|
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_main_ordini_uscita, container, false);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.prodOrdineLavorazioneElencoComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mViewModel.setListener(this);
|
||||||
|
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
mBindings.setView(this);
|
||||||
|
mBindings.setViewmodel(mViewModel);
|
||||||
|
|
||||||
|
this.initRecyclerView();
|
||||||
|
|
||||||
|
return mBindings.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||||
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
|
||||||
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
mViewModel.init(codMdep, mCurrentGestioneOrd, mCurrentGestioneCol, mCurrentSegnoCol);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initRecyclerView() {
|
||||||
|
|
||||||
|
boolean canSelectMultipleOrdini = SettingsManager.iDB().isFlagSpedizioneCanSelectMultipleOrders();
|
||||||
|
boolean canSelectMultipleClienti = SettingsManager.iDB().isFlagMultiClienteOrdV();
|
||||||
|
|
||||||
|
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), this::refreshList);
|
||||||
|
|
||||||
|
OrdiniUscitaElencoAdapter ordiniUscitaElencoAdapter =
|
||||||
|
new OrdiniUscitaElencoAdapter(getActivity(), mOrdiniInevasiMutableData)
|
||||||
|
.setEmptyView(this.mBindings.ordiniVenditaEmptyView)
|
||||||
|
.setOnGroupItemClicked(x -> {
|
||||||
|
if(!canSelectMultipleClienti) {
|
||||||
|
Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get())
|
||||||
|
.forEach(y -> y.getSelectedObservable().set(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean allSelected = Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.filter(y -> y.getGroupTitle().equalsIgnoreCase(x))
|
||||||
|
.allMatch(y -> y.getSelectedObservable().get());
|
||||||
|
|
||||||
|
Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.filter(y -> y.getGroupTitle().equalsIgnoreCase(x))
|
||||||
|
.forEach(y -> y.getSelectedObservable().set(!allSelected));
|
||||||
|
})
|
||||||
|
.setOnItemChecked(x -> {
|
||||||
|
if(!canSelectMultipleClienti && x.getSelectedObservable().get()) {
|
||||||
|
Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x.getGroupTitle()) && y.getSelectedObservable().get())
|
||||||
|
.forEach(y -> y.getSelectedObservable().set(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
fabVisible.set(Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.anyMatch(y -> y.getSelectedObservable().get()));
|
||||||
|
});
|
||||||
|
|
||||||
|
this.mBindings.venditaMainList.setAdapter(ordiniUscitaElencoAdapter);
|
||||||
|
this.mBindings.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
|
|
||||||
|
if(mToolbar != null)
|
||||||
|
mToolbar.setRecyclerView(this.mBindings.venditaMainList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshList(List<OrdiniUscitaElencoDTO> orderList) {
|
||||||
|
this.mOrdiniInevasiMutableData.clear();
|
||||||
|
this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(orderList));
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<OrdiniUscitaElencoListModel> convertDataModelToListModel(List<OrdiniUscitaElencoDTO> dataList) {
|
||||||
|
|
||||||
|
ComparatorCompat<OrdiniUscitaElencoDTO> comparator = ComparatorCompat
|
||||||
|
.comparing(OrdiniUscitaElencoDTO::getRagSocOrd)
|
||||||
|
.thenComparing(ComparatorCompat.comparing(OrdiniUscitaElencoDTO::getNumOrd));
|
||||||
|
|
||||||
|
List<OrdiniUscitaElencoListModel> notHiddenElements = Stream.of(dataList)
|
||||||
|
.filter(x -> !x.isHidden())
|
||||||
|
.sorted(comparator)
|
||||||
|
.map(x -> {
|
||||||
|
OrdiniUscitaElencoListModel listModel = new OrdiniUscitaElencoListModel();
|
||||||
|
|
||||||
|
listModel.setGroupTitle(x.getRagSocOrd());
|
||||||
|
|
||||||
|
String testataOrdString = String.format(getString(R.string.ord_ven_testata), String.valueOf(x.getNumOrd()), UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
|
listModel.setDescription(testataOrdString);
|
||||||
|
|
||||||
|
listModel.setSubDescription(x.getRifOrd());
|
||||||
|
|
||||||
|
String testataDataConsString = String.format(getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
|
listModel.setRightDescription(testataDataConsString);
|
||||||
|
|
||||||
|
listModel.setOriginalModel(x);
|
||||||
|
|
||||||
|
return listModel;
|
||||||
|
})
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
return notHiddenElements;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
Stream.of(this.mOrdiniInevasiMutableData)
|
||||||
|
.forEach(x -> x.getSelectedObservable().set(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPreDestroy(Runnable onComplete) {
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
|
titleText.setText(context.getText(R.string.prod_ordine_lavorazione_title_fragment).toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void dispatchOrders() {
|
||||||
|
|
||||||
|
List<OrdiniUscitaElencoDTO> selectedOrders = Stream.of(this.mOrdiniInevasiMutableData)
|
||||||
|
.filter(x -> x.getSelectedObservable().get())
|
||||||
|
.map(OrdiniUscitaElencoListModel::getOriginalModel)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
this.mViewModel.loadPicking(selectedOrders);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void openProgress() {
|
||||||
|
getActivity().runOnUiThread(() -> {
|
||||||
|
if (this.mCurrentProgress == null) {
|
||||||
|
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void closeProgress() {
|
||||||
|
getActivity().runOnUiThread(() -> {
|
||||||
|
if (mCurrentProgress != null) {
|
||||||
|
mCurrentProgress.dismiss();
|
||||||
|
mCurrentProgress = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingStarted() {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
this.openProgress();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingEnded() {
|
||||||
|
this.closeProgress();
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Exception ex) {
|
||||||
|
this.closeProgress();
|
||||||
|
UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress);
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onOrdersDispatched(List<OrdineUscitaInevasoDTO> orders, List<SitArtOrdDTO> sitArts, List<MtbColt> alreadyRegisteredMtbColts) {
|
||||||
|
List<String> codMarts = Stream.of(sitArts)
|
||||||
|
.distinctBy(SitArtOrdDTO::getCodMart)
|
||||||
|
.map(SitArtOrdDTO::getCodMart)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
int alreadyRegisteredUL = alreadyRegisteredMtbColts.size();
|
||||||
|
|
||||||
|
DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
|
||||||
|
getText(R.string.orders).toString(),
|
||||||
|
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, orders.size()), orders.size())
|
||||||
|
+ "<br />" +
|
||||||
|
"<b>" + codMarts.size() + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, codMarts.size())
|
||||||
|
+ "<br />" +
|
||||||
|
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
|
||||||
|
null,
|
||||||
|
() -> SpedizioneActivity.startActivity(getActivity(), sitArts, orders, alreadyRegisteredMtbColts, mCurrentGestioneCol, mCurrentSegnoCol)
|
||||||
|
).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||||
|
mToolbar = toolbar;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSelectAllButtonEnabled() {
|
||||||
|
return SettingsManager.iDB().isFlagMultiClienteOrdV();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelectAll() {
|
||||||
|
boolean allSelected = Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.allMatch(x -> x.getSelectedObservable().get());
|
||||||
|
|
||||||
|
Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.filter(x -> !x.getOriginalModel().isHidden())
|
||||||
|
.forEach(x -> x.getSelectedObservable().set(!allSelected));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSelectAllOnPreDestroy(Runnable onPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private DialogVenditaFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFilterClick() {
|
||||||
|
DialogVenditaFiltroAvanzato.make(
|
||||||
|
getActivity(),
|
||||||
|
this.mViewModel.getOrderList().getValue(),
|
||||||
|
mAppliedFilterViewModel,
|
||||||
|
|
||||||
|
(filteredOrderList, filter) -> {
|
||||||
|
mAppliedFilterViewModel = filter;
|
||||||
|
|
||||||
|
if(filteredOrderList != null){
|
||||||
|
refreshList(filteredOrderList);
|
||||||
|
}
|
||||||
|
|
||||||
|
}).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
|
|
||||||
|
@Module(subcomponents = OrdiniUscitaElencoComponent.class)
|
||||||
|
public class OrdiniUscitaElencoModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
OrdiniUscitaElencoViewModel providesProdOrdineLavorazioneElencoViewModel(OrdiniRESTConsumer ordiniRESTConsumer) {
|
||||||
|
return new OrdiniUscitaElencoViewModel(ordiniRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
|
||||||
|
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.exception.InvalidLUMultiCodMdepException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.InvalidLUMultiGestioneException;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.OrdineInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
|
|
||||||
|
public class OrdiniUscitaElencoViewModel {
|
||||||
|
|
||||||
|
private final MutableLiveData<List<OrdiniUscitaElencoDTO>> mOrderList = new MutableLiveData<>();
|
||||||
|
|
||||||
|
private final OrdiniRESTConsumer mOrdiniRESTConsumer;
|
||||||
|
private Listener mListener;
|
||||||
|
private String mCurrentCodMdep;
|
||||||
|
private GestioneEnum mCurrentGestioneOrd;
|
||||||
|
private GestioneEnum mCurrentGestioneCol;
|
||||||
|
private int mCurrentSegnoCol;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public OrdiniUscitaElencoViewModel(OrdiniRESTConsumer ordiniRESTConsumer) {
|
||||||
|
this.mOrdiniRESTConsumer = ordiniRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void init(String currentCodMdep, GestioneEnum gestioneOrd, GestioneEnum gestioneCol, int segnoCol) {
|
||||||
|
this.mCurrentCodMdep = currentCodMdep;
|
||||||
|
this.mCurrentGestioneOrd = gestioneOrd;
|
||||||
|
this.mCurrentGestioneCol = gestioneCol;
|
||||||
|
this.mCurrentSegnoCol = segnoCol;
|
||||||
|
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
new Thread(() -> {
|
||||||
|
Date loadingStartDate = new Date();
|
||||||
|
|
||||||
|
this.mOrdiniRESTConsumer.getOrdiniInevasi(this.mCurrentCodMdep, mCurrentGestioneOrd,
|
||||||
|
ordiniLavorazione -> {
|
||||||
|
this.mOrderList.postValue(Stream.of(ordiniLavorazione)
|
||||||
|
.map(x -> {
|
||||||
|
try {
|
||||||
|
return OrdiniUscitaElencoDTO.fromParent(x);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.toList());
|
||||||
|
|
||||||
|
long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000;
|
||||||
|
|
||||||
|
if(2 - forcedDelaySecs > 0) {
|
||||||
|
try {
|
||||||
|
Thread.sleep((2 - forcedDelaySecs) * 1000);
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
}, this::sendError);
|
||||||
|
}).start();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void loadPicking(List<OrdiniUscitaElencoDTO> selectedOrders) {
|
||||||
|
List<GestioneEnum> foundGestioni = Stream.of(selectedOrders)
|
||||||
|
.map(OrdineUscitaInevasoDTO::getGestioneEnum)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if(foundGestioni != null && foundGestioni.size() > 1) {
|
||||||
|
this.sendError(new InvalidLUMultiGestioneException());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<String> foundCodMdep = Stream.of(selectedOrders)
|
||||||
|
.map(OrdineUscitaInevasoDTO::getCodMdep)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if(foundCodMdep != null && foundCodMdep.size() > 1) {
|
||||||
|
this.sendError(new InvalidLUMultiCodMdepException());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
List<OrdineUscitaInevasoDTO> selectedOrdersBase = Stream.of(selectedOrders)
|
||||||
|
.map(x -> (OrdineUscitaInevasoDTO) x)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
this.mOrdiniRESTConsumer.retrieveListaArticoliFromOrdiniUscita(selectedOrdersBase, sitArts -> {
|
||||||
|
|
||||||
|
this.mOrdiniRESTConsumer.getBancaliGiaRegistrati(
|
||||||
|
Stream.of(selectedOrdersBase).map(x -> (OrdineInevasoDTO) x).toList(),
|
||||||
|
mCurrentGestioneCol,
|
||||||
|
mCurrentSegnoCol,
|
||||||
|
mtbColtList -> {
|
||||||
|
this.sendOnOrdersDispatched(selectedOrdersBase, sitArts, mtbColtList);
|
||||||
|
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
}, this::sendError);
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public MutableLiveData<List<OrdiniUscitaElencoDTO>> getOrderList() {
|
||||||
|
return mOrderList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoViewModel 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 sendError(Exception ex) {
|
||||||
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnOrdersDispatched(List<OrdineUscitaInevasoDTO> orders, List<SitArtOrdDTO> sitArts, List<MtbColt> alreadyRegisteredMtbColts) {
|
||||||
|
if (this.mListener != null) mListener.onOrdersDispatched(orders, sitArts, alreadyRegisteredMtbColts);
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Listener {
|
||||||
|
void onLoadingStarted();
|
||||||
|
|
||||||
|
void onLoadingEnded();
|
||||||
|
|
||||||
|
void onError(Exception ex);
|
||||||
|
|
||||||
|
void onOrdersDispatched(List<OrdineUscitaInevasoDTO> orders, List<SitArtOrdDTO> sitArts, List<MtbColt> alreadyRegisteredMtbColts);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita.dialogs;
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs;
|
||||||
|
|
||||||
import android.app.DatePickerDialog;
|
import android.app.DatePickerDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -28,19 +28,19 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
|||||||
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.databinding.DialogVenditaFiltroAvanzatoBinding;
|
import it.integry.integrywmsnative.databinding.DialogVenditaFiltroAvanzatoBinding;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
|
||||||
|
|
||||||
|
|
||||||
public class DialogVenditaFiltroAvanzato {
|
public class DialogVenditaFiltroAvanzato {
|
||||||
|
|
||||||
|
|
||||||
private AlertDialog currentAlert;
|
private final AlertDialog currentAlert;
|
||||||
private Context currentContext;
|
private final Context currentContext;
|
||||||
|
|
||||||
private RunnableArgss<List<OrdineVenditaInevasoDTO>, DialogVenditaFiltroAvanzatoViewModel> currentOnFilterDone;
|
private final RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> currentOnFilterDone;
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> currentOrderList;
|
private final List<OrdiniUscitaElencoDTO> currentOrderList;
|
||||||
private List<OrdineVenditaInevasoDTO> currentFilteredOrderList;
|
private List<OrdiniUscitaElencoDTO> currentFilteredOrderList;
|
||||||
|
|
||||||
private ArrayAdapter<String> arrayAdapterCodMdep;
|
private ArrayAdapter<String> arrayAdapterCodMdep;
|
||||||
private ArrayAdapter<String> arrayAdapterIdViaggio;
|
private ArrayAdapter<String> arrayAdapterIdViaggio;
|
||||||
@@ -51,30 +51,30 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
private ArrayAdapter<String> arrayAdapterAgente;
|
private ArrayAdapter<String> arrayAdapterAgente;
|
||||||
private ArrayAdapter<String> arrayAdapterAutomezzo;
|
private ArrayAdapter<String> arrayAdapterAutomezzo;
|
||||||
|
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentDepositoPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentDepositoPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentIdViaggioPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentIdViaggioPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentNumOrdsPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentNumOrdsPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentClientePredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentClientePredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentDataConsPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentDataConsPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentTermConsPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentTermConsPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentVettorePredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentVettorePredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentAgentePredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentAgentePredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentAutomezzoPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentAutomezzoPredicate = null;
|
||||||
|
|
||||||
private boolean firstInit = true;
|
private boolean firstInit = true;
|
||||||
|
|
||||||
public static AlertDialog make(final Context context, final List<OrdineVenditaInevasoDTO> ordersList, RunnableArgss<List<OrdineVenditaInevasoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
public static AlertDialog make(final Context context, final List<OrdiniUscitaElencoDTO> ordersList, RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||||
return new DialogVenditaFiltroAvanzato(context, ordersList, null, onDismiss).currentAlert;
|
return new DialogVenditaFiltroAvanzato(context, ordersList, null, onDismiss).currentAlert;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AlertDialog make(final Context context,
|
public static AlertDialog make(final Context context,
|
||||||
final List<OrdineVenditaInevasoDTO> ordersList,
|
final List<OrdiniUscitaElencoDTO> ordersList,
|
||||||
DialogVenditaFiltroAvanzatoViewModel baseViewModel,
|
DialogVenditaFiltroAvanzatoViewModel baseViewModel,
|
||||||
RunnableArgss<List<OrdineVenditaInevasoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||||
return new DialogVenditaFiltroAvanzato(context, ordersList, baseViewModel, onDismiss).currentAlert;
|
return new DialogVenditaFiltroAvanzato(context, ordersList, baseViewModel, onDismiss).currentAlert;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DialogVenditaFiltroAvanzato(final Context context, final List<OrdineVenditaInevasoDTO> ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgss<List<OrdineVenditaInevasoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
private DialogVenditaFiltroAvanzato(final Context context, final List<OrdiniUscitaElencoDTO> ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||||
currentContext = context;
|
currentContext = context;
|
||||||
currentOrderList = ordersList;
|
currentOrderList = ordersList;
|
||||||
currentOnFilterDone = onDismiss;
|
currentOnFilterDone = onDismiss;
|
||||||
@@ -456,7 +456,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
if(currentAgentePredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null && currentDepositoPredicate == null){
|
if(currentAgentePredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null && currentDepositoPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -473,10 +473,10 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
|
|
||||||
return Stream
|
return Stream
|
||||||
.of(currentFilteredOrderList)
|
.of(currentFilteredOrderList)
|
||||||
|
.filter(x -> x.getIdViaggio() != null)
|
||||||
|
.sortBy(x -> -x.getIdViaggio())
|
||||||
.map(x -> x.getIdViaggio() != null ? x.getIdViaggio().toString() : null)
|
.map(x -> x.getIdViaggio() != null ? x.getIdViaggio().toString() : null)
|
||||||
.withoutNulls()
|
|
||||||
.distinct()
|
.distinct()
|
||||||
.sorted()
|
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -484,7 +484,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
if(currentDepositoPredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
if(currentDepositoPredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -500,14 +500,14 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getNomeAgente).distinct().withoutNulls().sorted().toList();
|
return Stream.of(currentFilteredOrderList).map(OrdiniUscitaElencoDTO::getNomeAgente).distinct().withoutNulls().sorted().toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableCodMdeps(boolean skipRecalc) {
|
private List<String> getAvailableCodMdeps(boolean skipRecalc) {
|
||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -522,14 +522,14 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getCodMdep).distinct().withoutNulls().sorted().toList();
|
return Stream.of(currentFilteredOrderList).map(OrdiniUscitaElencoDTO::getCodMdep).distinct().withoutNulls().sorted().toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableCliente(boolean skipRecalc) {
|
private List<String> getAvailableCliente(boolean skipRecalc) {
|
||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentDepositoPredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentDepositoPredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
@@ -544,14 +544,14 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getRagSocOrd).distinct().withoutNulls().sorted().toList();
|
return Stream.of(currentFilteredOrderList).map(OrdiniUscitaElencoDTO::getRagSocOrd).distinct().withoutNulls().sorted().toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableNumOrds(boolean skipRecalc) {
|
private List<String> getAvailableNumOrds(boolean skipRecalc) {
|
||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentDepositoPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentDepositoPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -573,7 +573,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -588,14 +588,14 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getTermCons).distinct().withoutNulls().sorted().toList();
|
return Stream.of(currentFilteredOrderList).map(OrdiniUscitaElencoDTO::getTermCons).distinct().withoutNulls().sorted().toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableVettori(boolean skipRecalc) {
|
private List<String> getAvailableVettori(boolean skipRecalc) {
|
||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -617,7 +617,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -632,7 +632,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getDescrizioneAuto).distinct().withoutNulls().sorted().toList();
|
return Stream.of(currentFilteredOrderList).map(OrdiniUscitaElencoDTO::getDescrizioneAuto).distinct().withoutNulls().sorted().toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshList() {
|
private void refreshList() {
|
||||||
@@ -640,7 +640,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else {
|
} else {
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita.dialogs;
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@@ -0,0 +1,176 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco.list;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.databinding.ObservableList;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaListGroupModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaListModelBinding;
|
||||||
|
|
||||||
|
public class OrdiniUscitaElencoAdapter extends SectionedRecyclerViewAdapter<OrdiniUscitaElencoAdapter.SubheaderHolder, OrdiniUscitaElencoAdapter.SingleItemViewHolder> {
|
||||||
|
|
||||||
|
private final Context mContext;
|
||||||
|
private final List<OrdiniUscitaElencoListModel> mDataset = new ArrayList<>();
|
||||||
|
private View mEmptyView;
|
||||||
|
|
||||||
|
private RunnableArgs<String> mOnGroupItemClicked;
|
||||||
|
private RunnableArgs<OrdiniUscitaElencoListModel> mOnItemChecked;
|
||||||
|
|
||||||
|
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
FragmentMainOrdiniUscitaListModelBinding mBinding;
|
||||||
|
|
||||||
|
SubheaderHolder(FragmentMainOrdiniUscitaListModelBinding binding) {
|
||||||
|
super(binding.getRoot());
|
||||||
|
this.mBinding = binding;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
FragmentMainOrdiniUscitaListGroupModelBinding mBinding;
|
||||||
|
|
||||||
|
SingleItemViewHolder(FragmentMainOrdiniUscitaListGroupModelBinding binding) {
|
||||||
|
super(binding.getRoot());
|
||||||
|
this.mBinding = binding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoAdapter(Context context, ObservableArrayList<OrdiniUscitaElencoListModel> mutableDataSet) {
|
||||||
|
this.mContext = context;
|
||||||
|
|
||||||
|
mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void onChanged(ObservableList sender) {
|
||||||
|
mDataset.clear();
|
||||||
|
mDataset.addAll(sender);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
notifyDataChanged();
|
||||||
|
checkIfEmpty();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoAdapter setOnGroupItemClicked(RunnableArgs<String> onGroupItemClicked) {
|
||||||
|
this.mOnGroupItemClicked = onGroupItemClicked;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoAdapter setOnItemChecked(RunnableArgs<OrdiniUscitaElencoListModel> onItemChecked) {
|
||||||
|
this.mOnItemChecked = onItemChecked;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoAdapter setEmptyView(View emptyView) {
|
||||||
|
this.mEmptyView = emptyView;
|
||||||
|
this.checkIfEmpty();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkIfEmpty() {
|
||||||
|
if (mEmptyView != null) {
|
||||||
|
final boolean emptyViewVisible = getItemCount() == 0;
|
||||||
|
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OrdiniUscitaElencoAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||||
|
FragmentMainOrdiniUscitaListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_main_ordini_uscita__list_model, parent, false);
|
||||||
|
return new OrdiniUscitaElencoAdapter.SubheaderHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OrdiniUscitaElencoAdapter.SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||||
|
FragmentMainOrdiniUscitaListGroupModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_main_ordini_uscita__list_group_model, parent, false);
|
||||||
|
return new OrdiniUscitaElencoAdapter.SingleItemViewHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindSubheaderViewHolder(OrdiniUscitaElencoAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||||
|
OrdiniUscitaElencoListModel pickingObjectDTO = this.mDataset.get(nextItemPosition);
|
||||||
|
|
||||||
|
subheaderHolder.mBinding.groupTitle.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getGroupTitle()) ? View.GONE : View.VISIBLE);
|
||||||
|
subheaderHolder.mBinding.groupTitle.setText(Html.fromHtml(pickingObjectDTO.getGroupTitle()));
|
||||||
|
|
||||||
|
subheaderHolder.mBinding.getRoot().setOnClickListener(new OnSingleClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onSingleClick(View v) {
|
||||||
|
if(mOnGroupItemClicked != null) mOnGroupItemClicked.run(pickingObjectDTO.getGroupTitle());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindItemViewHolder(final OrdiniUscitaElencoAdapter.SingleItemViewHolder holder, final int position) {
|
||||||
|
OrdiniUscitaElencoListModel listModel = this.mDataset.get(position);
|
||||||
|
|
||||||
|
listModel.getSelectedObservable().resetOnPropertyChangedCallback();
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(listModel.getDescription()))
|
||||||
|
holder.mBinding.descrizione.setText(Html.fromHtml(listModel.getDescription()));
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(listModel.getSubDescription()))
|
||||||
|
holder.mBinding.subDescrizione.setText(Html.fromHtml(listModel.getSubDescription()));
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(listModel.getRightDescription()))
|
||||||
|
holder.mBinding.rightDescrizione.setText(Html.fromHtml(listModel.getRightDescription()));
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(listModel.getRightSubDescription()))
|
||||||
|
holder.mBinding.rightSubDescrizione.setText(Html.fromHtml(listModel.getRightSubDescription()));
|
||||||
|
|
||||||
|
holder.mBinding.setSelected(listModel.getSelectedObservable());
|
||||||
|
holder.mBinding.executePendingBindings();
|
||||||
|
holder.mBinding.checkbox.jumpDrawablesToCurrentState();
|
||||||
|
|
||||||
|
listModel.getSelectedObservable().addOnPropertyChangedCallback(() -> {
|
||||||
|
if(this.mOnItemChecked != null) this.mOnItemChecked.run(listModel);
|
||||||
|
});
|
||||||
|
|
||||||
|
holder.mBinding.getRoot().setOnClickListener(v -> {
|
||||||
|
listModel.getSelectedObservable().set(!listModel.getSelectedObservable().get());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPlaceSubheaderBetweenItems(int position) {
|
||||||
|
|
||||||
|
if (getItemSize() == 1) return true;
|
||||||
|
else if (getItemSize() > 1) {
|
||||||
|
OrdiniUscitaElencoListModel compare1 = this.mDataset.get(position);
|
||||||
|
OrdiniUscitaElencoListModel compare2 = this.mDataset.get(position + 1);
|
||||||
|
|
||||||
|
if (UtilityString.equalsIgnoreCase(compare1.getGroupTitle(), compare2.getGroupTitle())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemSize() {
|
||||||
|
return mDataset.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco.list;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
|
||||||
|
|
||||||
|
public class OrdiniUscitaElencoListModel implements Cloneable {
|
||||||
|
private String groupTitle;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
private String subDescription;
|
||||||
|
private String rightDescription;
|
||||||
|
private String rightSubDescription;
|
||||||
|
|
||||||
|
private boolean hidden;
|
||||||
|
private BindableBoolean selected = new BindableBoolean();
|
||||||
|
|
||||||
|
|
||||||
|
private OrdiniUscitaElencoDTO originalModel;
|
||||||
|
|
||||||
|
|
||||||
|
public String getGroupTitle() {
|
||||||
|
return groupTitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setGroupTitle(String groupTitle) {
|
||||||
|
this.groupTitle = groupTitle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSubDescription() {
|
||||||
|
return subDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setSubDescription(String subDescription) {
|
||||||
|
this.subDescription = subDescription;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRightDescription() {
|
||||||
|
return rightDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setRightDescription(String rightDescription) {
|
||||||
|
this.rightDescription = rightDescription;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRightSubDescription() {
|
||||||
|
return rightSubDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setRightSubDescription(String rightSubDescription) {
|
||||||
|
this.rightSubDescription = rightSubDescription;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHidden() {
|
||||||
|
return hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setHidden(boolean hidden) {
|
||||||
|
this.hidden = hidden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BindableBoolean getSelectedObservable() {
|
||||||
|
return selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoDTO getOriginalModel() {
|
||||||
|
return originalModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setOriginalModel(OrdiniUscitaElencoDTO originalModel) {
|
||||||
|
this.originalModel = originalModel;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,6 +20,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||||||
import com.tfb.fbtoast.FBToast;
|
import com.tfb.fbtoast.FBToast;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
public BindableBoolean thereIsAnyRowInUL = new BindableBoolean(false);
|
public BindableBoolean thereIsAnyRowInUL = new BindableBoolean(false);
|
||||||
public BindableBoolean thereIsAnOpenULWithoutRows = new BindableBoolean(false);
|
public BindableBoolean thereIsAnOpenULWithoutRows = new BindableBoolean(false);
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
private AppCompatTextView mToolbarTitleText;
|
private AppCompatTextView mToolbarTitleText;
|
||||||
|
|
||||||
@@ -107,6 +108,11 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
mToolbarTitleText.setText(context.getText(R.string.free_picking_title_fragment).toString());
|
mToolbarTitleText.setText(context.getText(R.string.free_picking_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -191,7 +197,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
mAdapter = null;
|
mAdapter = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
|
|
||||||
this.openProgress();
|
this.openProgress();
|
||||||
@@ -231,7 +237,9 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
if (mOnPreDestroy != null) mOnPreDestroy.run();
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,8 +249,8 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
mOnPreDestroy = onPreDestroy;
|
mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -258,6 +266,8 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLUOpened(MtbColt mtbColt) {
|
public void onLUOpened(MtbColt mtbColt) {
|
||||||
|
mToolbarTitleText.setText(String.format(getActivity().getText(R.string.lu_number_text).toString(), mtbColt.getNumCollo()));
|
||||||
|
|
||||||
initAdapter();
|
initAdapter();
|
||||||
|
|
||||||
thereIsAnOpenedUL.set(true);
|
thereIsAnOpenedUL.set(true);
|
||||||
@@ -275,6 +285,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLUClosed() {
|
public void onLUClosed() {
|
||||||
|
mToolbarTitleText.setText(getActivity().getText(R.string.free_picking_title_fragment).toString());
|
||||||
destroyAdapter();
|
destroyAdapter();
|
||||||
|
|
||||||
thereIsAnyRowInUL.set(false);
|
thereIsAnyRowInUL.set(false);
|
||||||
@@ -306,10 +317,10 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLUClienteRequired(RunnableArgs<VtbDest> onComplete, Runnable onAbort) {
|
public void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
|
||||||
DialogAskCliente.makeBase(getActivity(), (status, result) -> {
|
DialogAskCliente.makeBase(getActivity(), (status, result, codJcom) -> {
|
||||||
if (status == DialogConsts.Results.YES) {
|
if (status == DialogConsts.Results.YES) {
|
||||||
onComplete.run(result);
|
onComplete.run(result, codJcom);
|
||||||
} else {
|
} else {
|
||||||
onAbort.run();
|
onAbort.run();
|
||||||
}
|
}
|
||||||
@@ -398,7 +409,8 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPreDestroy(Runnable onComplete) {
|
public void onPreDestroy(Runnable onComplete) {
|
||||||
if(thereIsAnOpenedUL.get()) mViewModel.closeLU(onComplete);
|
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
|
if(thereIsAnOpenedUL.get()) mViewModel.closeLU(onComplete);
|
||||||
|
else onComplete.run();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ 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.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
|
||||||
|
|
||||||
@Module(subcomponents = {PickingLiberoComponent.class})
|
@Module(subcomponents = {PickingLiberoComponent.class})
|
||||||
public class PickingLiberoModule {
|
public class PickingLiberoModule {
|
||||||
@@ -16,8 +15,7 @@ public class PickingLiberoModule {
|
|||||||
@Singleton
|
@Singleton
|
||||||
PickingLiberoViewModel providesPickingLiberoViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
PickingLiberoViewModel providesPickingLiberoViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
PrinterRESTConsumer printerRESTConsumer,
|
|
||||||
BarcodeRESTConsumer barcodeRESTConsumer) {
|
BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
return new PickingLiberoViewModel(articoloRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, barcodeRESTConsumer);
|
return new PickingLiberoViewModel(articoloRESTConsumer, colliMagazzinoRESTConsumer, barcodeRESTConsumer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ 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.VtbDest;
|
import it.integry.integrywmsnative.core.model.VtbDest;
|
||||||
|
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.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
|
||||||
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.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
@@ -37,7 +37,6 @@ 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.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
|
|
||||||
@@ -48,7 +47,6 @@ public class PickingLiberoViewModel {
|
|||||||
|
|
||||||
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
||||||
private final PrinterRESTConsumer mPrinterRESTConsumer;
|
|
||||||
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||||
|
|
||||||
|
|
||||||
@@ -62,11 +60,9 @@ public class PickingLiberoViewModel {
|
|||||||
@Inject
|
@Inject
|
||||||
public PickingLiberoViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
public PickingLiberoViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
PrinterRESTConsumer printerRESTConsumer,
|
|
||||||
BarcodeRESTConsumer barcodeRESTConsumer) {
|
BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
||||||
this.mPrinterRESTConsumer = printerRESTConsumer;
|
|
||||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,15 +179,15 @@ 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 -> {
|
this.sendLUClienteRequired((vtbDest, codJcom) -> {
|
||||||
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, onComplete);
|
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, codJcom, onComplete);
|
||||||
}, onComplete);
|
}, onComplete);
|
||||||
} else {
|
} else {
|
||||||
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, null, onComplete);
|
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, null, null, onComplete);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, Runnable onComplete) {
|
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, String codJcom, Runnable onComplete) {
|
||||||
MtbColt mtbColt = new MtbColt();
|
MtbColt mtbColt = new MtbColt();
|
||||||
mtbColt.initDefaultFields();
|
mtbColt.initDefaultFields();
|
||||||
mtbColt.setGestione(mDefaultGestione)
|
mtbColt.setGestione(mDefaultGestione)
|
||||||
@@ -213,6 +209,10 @@ public class PickingLiberoViewModel {
|
|||||||
mtbColt.setCodVdes(vtbDest.getCodVdes());
|
mtbColt.setCodVdes(vtbDest.getCodVdes());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(codJcom)) {
|
||||||
|
mtbColt.setCodJcom(codJcom);
|
||||||
|
}
|
||||||
|
|
||||||
mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
|
mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
|
||||||
mtbColt
|
mtbColt
|
||||||
.setNumCollo(value.getNumCollo())
|
.setNumCollo(value.getNumCollo())
|
||||||
@@ -235,9 +235,9 @@ public class PickingLiberoViewModel {
|
|||||||
BigDecimal qtaColDaPrelevare = null;
|
BigDecimal qtaColDaPrelevare = null;
|
||||||
BigDecimal qtaCnfDaPrelevare = null;
|
BigDecimal qtaCnfDaPrelevare = null;
|
||||||
|
|
||||||
BigDecimal initialNumCnf = null;
|
BigDecimal initialNumCnf;
|
||||||
BigDecimal initialQtaCnf = null;
|
BigDecimal initialQtaCnf;
|
||||||
BigDecimal initialQtaTot = null;
|
BigDecimal initialQtaTot;
|
||||||
|
|
||||||
String partitaMag = null;
|
String partitaMag = null;
|
||||||
Date dataScad = null;
|
Date dataScad = null;
|
||||||
@@ -760,7 +760,7 @@ public class PickingLiberoViewModel {
|
|||||||
if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete);
|
if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendLUClienteRequired(RunnableArgs<VtbDest> onComplete, Runnable onAbort) {
|
private void sendLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
|
||||||
if (this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort);
|
if (this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -815,11 +815,10 @@ public class PickingLiberoViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public interface Listener extends ILoadingListener, ILUBaseOperationsListener {
|
public interface Listener extends ILoadingListener, ILUBaseOperationsListener {
|
||||||
void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete);
|
|
||||||
|
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
|
|
||||||
void onLUClienteRequired(RunnableArgs<VtbDest> onComplete, Runnable onAbort);
|
void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
|
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
@@ -840,8 +839,6 @@ public class PickingLiberoViewModel {
|
|||||||
boolean canPartitaMagBeChanged,
|
boolean canPartitaMagBeChanged,
|
||||||
boolean canLUBeClosed,
|
boolean canLUBeClosed,
|
||||||
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
||||||
|
|
||||||
void onRowSaved();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,109 +1,135 @@
|
|||||||
package it.integry.integrywmsnative.gest.picking_resi;
|
package it.integry.integrywmsnative.gest.picking_resi;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.databinding.ObservableField;
|
|
||||||
import androidx.databinding.ObservableList;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.text.SpannableString;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
import com.tfb.fbtoast.FBToast;
|
import com.tfb.fbtoast.FBToast;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import 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.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
|
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.report.ReportManager;
|
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
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.databinding.ActivityPickingResiBinding;
|
import it.integry.integrywmsnative.databinding.ActivityPickingResiBinding;
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.dto.WithdrawableDtbDocr;
|
|
||||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.core.PickingResiListAdapter;
|
import it.integry.integrywmsnative.gest.picking_resi.core.PickingResiListAdapter;
|
||||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
import it.integry.integrywmsnative.gest.picking_resi.core.PickingResiListModel;
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
|
import it.integry.integrywmsnative.gest.picking_resi.rest.WithdrawableDtbDocr;
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView;
|
||||||
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
|
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.note_aggiuntive_lu.NoteAggiuntiveLUDialog;
|
import it.integry.integrywmsnative.view.dialogs.note_aggiuntive_lu.NoteAggiuntiveLUDialog;
|
||||||
|
|
||||||
public class PickingResiActivity extends BaseActivity implements IOnColloClosedCallback {
|
public class PickingResiActivity extends BaseActivity implements BottomSheetFragmentLUContentView.Listener, BottomSheetFragmentLUContentViewModel.Listener, PickingResiViewModel.Listener {
|
||||||
|
|
||||||
|
|
||||||
|
private ActivityPickingResiBinding mBindings;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
PickingResiViewModel mViewmodel;
|
||||||
|
|
||||||
|
private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel;
|
||||||
|
|
||||||
|
private ObservableArrayList<PickingResiListModel> mPickingResiMutableData = new ObservableArrayList<>();
|
||||||
|
|
||||||
|
public BindableBoolean noLUPresent = new BindableBoolean(true);
|
||||||
|
public BindableBoolean noItemsToPick = new BindableBoolean(false);
|
||||||
|
public BindableBoolean bottomSheetEnabled = new BindableBoolean(false);
|
||||||
|
|
||||||
|
private String mTitle;
|
||||||
private List<DocumentoResoDTO> mDocumentiResiList;
|
private List<DocumentoResoDTO> mDocumentiResiList;
|
||||||
public ObservableList<WithdrawableDtbDocr> mDtbDocrList;
|
|
||||||
private final List<MtbColt> mColliRegistrati = new ArrayList<>();
|
|
||||||
|
|
||||||
private ActivityPickingResiBinding mBinding;
|
|
||||||
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
|
||||||
|
|
||||||
public ObservableField<MtbColt> currentMtbColt = new ObservableField<>();
|
|
||||||
|
|
||||||
private PickingResiListAdapter mAdapter;
|
|
||||||
|
|
||||||
private int barcodeScannerIstanceID = -1;
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
|
||||||
private String mActivityTitle;
|
private boolean mShouldCloseActivity;
|
||||||
private String mDefaultGestioneOfUL;
|
|
||||||
private String mDefaultCodAnagOfUL;
|
|
||||||
private Integer mDefaultSegnoOfUL;
|
|
||||||
|
|
||||||
|
|
||||||
public static void startActivity(Context context, String activityTitle, List<DocumentoResoDTO> documentoResoDTOList, Integer segno) {
|
public static void startActivity(Context context, String activityTitle, List<DocumentoResoDTO> documentoResoDTOList, Integer segno) {
|
||||||
String consegneCacheKey = DataCache.addItem(documentoResoDTOList);
|
|
||||||
|
|
||||||
Intent intent = new Intent(context, PickingResiActivity.class);
|
Intent intent = new Intent(context, PickingResiActivity.class);
|
||||||
|
|
||||||
intent.putExtra("activity_title", activityTitle);
|
intent.putExtra("activity_title", activityTitle);
|
||||||
|
|
||||||
|
String consegneCacheKey = DataCache.addItem(documentoResoDTOList);
|
||||||
intent.putExtra("key", consegneCacheKey);
|
intent.putExtra("key", consegneCacheKey);
|
||||||
|
|
||||||
intent.putExtra("segno", segno);
|
intent.putExtra("segno", segno);
|
||||||
|
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_picking_resi);
|
|
||||||
mBinding.setViewmodel(this);
|
|
||||||
|
|
||||||
this.mDtbDocrList = new ObservableArrayList<>();
|
|
||||||
|
|
||||||
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, this.mBinding.bottomSheetInclude);
|
|
||||||
mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
|
|
||||||
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback(this::onItemEdited);
|
|
||||||
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback(this::onItemDeleted);
|
|
||||||
|
|
||||||
|
|
||||||
|
mTitle = getIntent().getStringExtra("activity_title");
|
||||||
mDocumentiResiList = DataCache.retrieveItem(getIntent().getStringExtra("key"));
|
mDocumentiResiList = DataCache.retrieveItem(getIntent().getStringExtra("key"));
|
||||||
mDefaultSegnoOfUL = getIntent().getIntExtra("segno", +1);
|
int defaultSegnoLU = getIntent().getIntExtra("segno", +1);
|
||||||
|
|
||||||
mActivityTitle = getIntent().getStringExtra("activity_title");
|
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_picking_resi);
|
||||||
|
|
||||||
this.initView();
|
MainApplication.appComponent
|
||||||
|
.pickingResiComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mViewmodel.setListener(this);
|
||||||
|
|
||||||
|
setSupportActionBar(mBindings.toolbar);
|
||||||
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
|
|
||||||
|
getSupportActionBar().setTitle(mTitle);
|
||||||
|
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
mBindings.setPickingResiView(this);
|
||||||
|
|
||||||
|
mBindings.bottomSheetLuContent.init(mBindings.bottomSheetLuContent, null);
|
||||||
|
mBottomSheetFragmentLUContentViewModel = mBindings.bottomSheetLuContent.getViewModelInstance();
|
||||||
|
mBindings.bottomSheetLuContent.setListener(this);
|
||||||
|
mBottomSheetFragmentLUContentViewModel.setListener(this);
|
||||||
|
|
||||||
|
|
||||||
|
this.initVars();
|
||||||
|
this.initBarcodeReader();
|
||||||
|
this.initRecyclerView();
|
||||||
|
|
||||||
|
|
||||||
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
|
||||||
|
this.mViewmodel.init(mDocumentiResiList, defaultSegnoLU, codMdep);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -114,435 +140,255 @@ public class PickingResiActivity extends BaseActivity implements IOnColloClosedC
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
if(mArticoliInColloBottomSheetViewModel.isExpanded()){
|
|
||||||
mArticoliInColloBottomSheetViewModel.collapse();
|
if (this.mBindings.bottomSheetLuContent.isExpanded()) {
|
||||||
}
|
this.mBindings.bottomSheetLuContent.collapse();
|
||||||
else if(thereIsAnOpenedUL()) {
|
} else if (!noLUPresent.get()) {
|
||||||
mArticoliInColloBottomSheetViewModel.closeCurrentUL(() -> {
|
this.mShouldCloseActivity = true;
|
||||||
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
|
this.mViewmodel.closeLU(true);
|
||||||
|
} else {
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
super.onBackPressed();
|
super.onBackPressed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initVars() {
|
||||||
|
this.noLUPresent.addOnPropertyChangedCallback(() -> {
|
||||||
|
this.bottomSheetEnabled.set(!this.noLUPresent.get());
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
|
||||||
super.onBackPressed();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initView() {
|
private void initBarcodeReader() {
|
||||||
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
.setOnScanSuccessfull(this::onScanSuccessful)
|
.setOnScanSuccessfull(onScanSuccessful)
|
||||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
|
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
|
||||||
|
|
||||||
|
|
||||||
setSupportActionBar(this.mBinding.toolbar);
|
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
|
||||||
|
|
||||||
getSupportActionBar().setTitle(mActivityTitle);
|
|
||||||
|
|
||||||
this.mBinding.elevatedToolbar.setRecyclerView(this.mBinding.mainList);
|
|
||||||
|
|
||||||
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(this);
|
|
||||||
UltimeConsegneClienteRESTConsumer.loadDocRowFromConsegna(mDocumentiResiList, dtbDocrToPick -> {
|
|
||||||
progressDialog.dismiss();
|
|
||||||
this.mDtbDocrList.addAll(dtbDocrToPick);
|
|
||||||
|
|
||||||
try {
|
|
||||||
this.initDatiPicking();
|
|
||||||
} catch (Exception ex) {
|
|
||||||
DialogSimpleMessageHelper.showSimpleErrorDialog(this, ex.getMessage());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.initList();
|
private void initRecyclerView() {
|
||||||
}, ex -> {
|
this.mBindings.elevatedToolbar.setRecyclerView(this.mBindings.mainList);
|
||||||
UtilityExceptions.defaultException(this, ex, progressDialog);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initList() {
|
this.mViewmodel.getPickingList().observe(this, updatedData -> {
|
||||||
|
this.mPickingResiMutableData.clear();
|
||||||
mAdapter = new PickingResiListAdapter(this, this.mDtbDocrList);
|
this.mPickingResiMutableData.addAll(convertDataModelToListModel(updatedData));
|
||||||
mAdapter.setOnItemClicked(this::onOrdineRowDispatch);
|
this.noItemsToPick.set(updatedData.isEmpty());
|
||||||
|
|
||||||
this.mBinding.mainList.setLayoutManager(new LinearLayoutManager(this));
|
|
||||||
this.mBinding.mainList.setAdapter(mAdapter);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initDatiPicking() throws Exception {
|
|
||||||
List<String> foundGestioni = Stream.of(this.mDocumentiResiList)
|
|
||||||
.map(DocumentoResoDTO::getGestione)
|
|
||||||
.distinct()
|
|
||||||
.withoutNulls()
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if(foundGestioni.size() > 1) {
|
|
||||||
throw new Exception("Sono stati caricati documenti con diverse gestioni");
|
|
||||||
} else mDefaultGestioneOfUL = foundGestioni.get(0);
|
|
||||||
|
|
||||||
|
|
||||||
List<String> foundCodAnags = Stream.of(this.mDocumentiResiList)
|
|
||||||
.map(DocumentoResoDTO::getCodAnag)
|
|
||||||
.distinct()
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if(foundCodAnags.size() > 1) {
|
|
||||||
throw new Exception("Sono stati caricati documenti con diversi codici anagrafici");
|
|
||||||
} else mDefaultCodAnagOfUL = foundCodAnags.get(0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void onScanSuccessful(BarcodeScanDTO data) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void createNewUL() {
|
|
||||||
this.createNewUL(null, null, null, false, true, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void createNewUL(Integer customNumCollo, String customSerCollo, Dialog progress, boolean disablePrint, boolean closeProgress, Runnable onComplete) {
|
|
||||||
this.mBinding.mainFab.close(true);
|
|
||||||
|
|
||||||
if (progress == null){
|
|
||||||
progress = UtilityProgress.createDefaultProgressDialog(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
MtbColt mtbColt = new MtbColt();
|
|
||||||
mtbColt.initDefaultFields();
|
|
||||||
mtbColt .setGestione(mDefaultGestioneOfUL)
|
|
||||||
.setSegno(mDefaultSegnoOfUL)
|
|
||||||
.setCodAnag(mDefaultCodAnagOfUL)
|
|
||||||
.setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
|
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
|
||||||
|
|
||||||
|
|
||||||
if(customNumCollo != null) {
|
|
||||||
mtbColt.setNumCollo(customNumCollo);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!UtilityString.isNullOrEmpty(customSerCollo)) {
|
|
||||||
mtbColt.setSerCollo(customSerCollo);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Dialog finalProgress = progress;
|
|
||||||
ColliMagazzinoRESTConsumer.saveColloStatic(mtbColt, value -> {
|
|
||||||
|
|
||||||
value.setDisablePrint(disablePrint);
|
|
||||||
|
|
||||||
setULToCurrentContext(value);
|
|
||||||
|
|
||||||
if(closeProgress) finalProgress.dismiss();
|
|
||||||
|
|
||||||
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
|
||||||
|
|
||||||
if(onComplete != null) onComplete.run();
|
|
||||||
|
|
||||||
}, ex -> {
|
|
||||||
UtilityExceptions.defaultException(this, ex, finalProgress);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
PickingResiListAdapter pickingResiListAdapter = new PickingResiListAdapter(this, mPickingResiMutableData);
|
||||||
|
this.mBindings.mainList.setAdapter(pickingResiListAdapter);
|
||||||
|
this.mBindings.mainList.setLayoutManager(new LinearLayoutManager(this));
|
||||||
|
|
||||||
|
pickingResiListAdapter.setOnItemClicked(clickedItem -> {
|
||||||
|
if (!noLUPresent.get()) {
|
||||||
|
this.mViewmodel.dispatchOrdineRow(clickedItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setULToCurrentContext(MtbColt mtbColt){
|
|
||||||
if(mtbColt != null && mtbColt.getMtbColr() == null) {
|
|
||||||
mtbColt.setMtbColr(new ObservableArrayList<>());
|
|
||||||
}
|
|
||||||
|
|
||||||
this.currentMtbColt.set(mtbColt);
|
|
||||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(mtbColt);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void onOrdineRowDispatch(final WithdrawableDtbDocr item) {
|
|
||||||
if(currentMtbColt.get() != null){
|
|
||||||
|
|
||||||
List<MtbColr> currentMtbColrs = item.getWithdrawRows();
|
|
||||||
|
|
||||||
BigDecimal qtaEvasaTotaleInMtbColr = BigDecimal.ZERO;
|
|
||||||
for (MtbColr mtbColr : currentMtbColrs) {
|
|
||||||
qtaEvasaTotaleInMtbColr.add(mtbColr.getQtaCol());
|
|
||||||
}
|
|
||||||
|
|
||||||
BigDecimal qtaDaEvadere = item.getQtaDoc().subtract(qtaEvasaTotaleInMtbColr);
|
|
||||||
if(qtaDaEvadere.floatValue() < 0) qtaDaEvadere = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
|
||||||
.setBatchLot(item.getPartitaMag())
|
|
||||||
.setCodArtFor(item.getCodArtFor())
|
|
||||||
.setMtbAart(item.getMtbAart())
|
|
||||||
.setQtaDisponibile(qtaDaEvadere)
|
|
||||||
.setQtaTot(qtaDaEvadere)
|
|
||||||
.setQtaEvasa(qtaEvasaTotaleInMtbColr)
|
|
||||||
.setCanPartitaMagBeChanged(false)
|
|
||||||
.setMaxQta(qtaDaEvadere);
|
|
||||||
|
|
||||||
|
|
||||||
DialogInputQuantity.makeBase(this, dto, false, (quantityDTO, closeUL) -> {
|
|
||||||
onOrdineRowDispatched(item, quantityDTO, closeUL);
|
|
||||||
|
|
||||||
}, null).show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void onOrdineRowDispatched(WithdrawableDtbDocr item, QuantityDTO quantityDTO, boolean closeUL){
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
|
||||||
|
|
||||||
final MtbColr mtbColr = new MtbColr()
|
|
||||||
.setCodMart(item.getCodMart())
|
|
||||||
.setPartitaMag(UtilityString.empty2null(quantityDTO.batchLot.get()))
|
|
||||||
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
|
|
||||||
.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
|
|
||||||
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
|
|
||||||
.setDescrizione(item.getDescrizioneEstesa())
|
|
||||||
.setDatetimeRow(UtilityDate.getDateInstance())
|
|
||||||
|
|
||||||
.setCodAnagDoc(item.getCodAnag())
|
|
||||||
.setCodDtipDoc(item.getCodDtip())
|
|
||||||
.setSerDoc(item.getSerDoc())
|
|
||||||
.setNumDoc(item.getNumDoc())
|
|
||||||
.setDataDoc(item.getDataDocS())
|
|
||||||
.setIdRigaDoc(item.getIdRiga());
|
|
||||||
// .setCodJcom(item.getCodJcom());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) currentMtbColt.get().clone();
|
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
|
||||||
|
|
||||||
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
|
||||||
cloneMtbColt.getMtbColr().add(mtbColr);
|
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveColloStatic(cloneMtbColt, value -> {
|
|
||||||
|
|
||||||
mtbColr
|
|
||||||
.setDataCollo(value.getDataColloS())
|
|
||||||
.setNumCollo(value.getNumCollo())
|
|
||||||
.setGestione(value.getGestione())
|
|
||||||
.setSerCollo(value.getSerCollo())
|
|
||||||
.setRiga(value.getMtbColr().get(0).getRiga())
|
|
||||||
.setUntMis(item.getMtbAart().getUntMis())
|
|
||||||
.setMtbAart(item.getMtbAart());
|
|
||||||
|
|
||||||
item.getWithdrawRows().add(mtbColr);
|
|
||||||
|
|
||||||
this.refreshDtbDocrItem(item);
|
|
||||||
|
|
||||||
currentMtbColt.get().getMtbColr().add(mtbColr);
|
|
||||||
|
|
||||||
//Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei
|
|
||||||
removeListFilter();
|
|
||||||
|
|
||||||
FBToast.successToast(this, this.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
|
||||||
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
// if(closeUL) onColloClosed(null);
|
|
||||||
}, ex -> {
|
|
||||||
UtilityExceptions.defaultException(this, ex, progress);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
private List<PickingResiListModel> convertDataModelToListModel(List<WithdrawableDtbDocr> dataList) {
|
||||||
public void onColloClosed(Runnable onComplete, boolean shouldPrint) {
|
List<PickingResiListModel> pickingResiListModels = new ArrayList<>();
|
||||||
if(thereIsAnOpenedUL()) {
|
|
||||||
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
Stream.of(dataList)
|
||||||
progress.show();
|
.sortBy(x -> x.getNumDoc() + " " + x.getDataDocS() + " " + x.getCodDtip() + " " + x.getSerDoc() + " " + x.getCodAnag() + " " + x.getIdRiga())
|
||||||
|
.forEach(x -> {
|
||||||
|
|
||||||
if(thereIsAnyRowInUL()) {
|
PickingResiListModel pickingResiListModel = new PickingResiListModel();
|
||||||
NoteAggiuntiveLUDialog.make(this, noteString -> {
|
|
||||||
|
|
||||||
MtbColt currentLU = currentMtbColt.get();
|
pickingResiListModel.setGroupTitle(x.getCodDtip() + " - N° " + x.getNumDoc() + " del " + UtilityDate.formatDate(x.getDataDocD(), UtilityDate.COMMONS_DATE_FORMATS.DM_HUMAN));
|
||||||
|
pickingResiListModel.setBadge1(x.getCodMart());
|
||||||
|
pickingResiListModel.setDescrizione(UtilityString.isNull(x.getDescrizioneEstesa(), x.getDescrizione()));
|
||||||
|
pickingResiListModel.setActive(true);
|
||||||
|
pickingResiListModel.setOriginalModel(x);
|
||||||
|
|
||||||
Runnable postNoteSave = () -> {
|
BigDecimal qtaColEvasa = BigDecimal.ZERO;
|
||||||
ColliMagazzinoRESTConsumer.updateDataFineStatic(
|
BigDecimal numCnfColEvasa = BigDecimal.ZERO;
|
||||||
currentLU,
|
|
||||||
() -> printCollo(progress, currentMtbColt.get(), onComplete),
|
for (MtbColr mtbColr : x.getWithdrawRows()) {
|
||||||
ex -> UtilityExceptions.defaultException(this, ex, progress));
|
qtaColEvasa = qtaColEvasa.add(mtbColr.getQtaCol());
|
||||||
|
numCnfColEvasa = numCnfColEvasa.add(mtbColr.getNumCnf());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
|
pickingResiListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
|
pickingResiListModel.setQtaEvasa(numCnfColEvasa);
|
||||||
|
pickingResiListModel.setQtaTot(x.getNumCnf());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (x.getMtbAart() != null)
|
||||||
|
pickingResiListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
|
else pickingResiListModel.setUntMis(x.getUntDoc());
|
||||||
|
pickingResiListModel.setQtaEvasa(qtaColEvasa);
|
||||||
|
pickingResiListModel.setQtaTot(x.getQtaDoc());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pickingResiListModels.add(pickingResiListModel);
|
||||||
|
});
|
||||||
|
|
||||||
|
return pickingResiListModels;
|
||||||
|
}
|
||||||
|
|
||||||
|
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
|
||||||
|
this.openProgress();
|
||||||
|
|
||||||
|
this.mViewmodel.processBarcodeDTO(data, () -> {
|
||||||
|
BarcodeManager.enable();
|
||||||
|
this.closeProgress();
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
if(!UtilityString.isNullOrEmpty(noteString)) {
|
public void createNewLU() {
|
||||||
currentLU.setAnnotazioni(noteString);
|
this.mBindings.mainFab.close(true);
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveColloStatic(currentLU, mtbColt -> {
|
this.openProgress();
|
||||||
postNoteSave.run();
|
|
||||||
}, ex -> UtilityExceptions.defaultException(this, ex, progress));
|
|
||||||
} else postNoteSave.run();
|
|
||||||
|
|
||||||
|
this.mViewmodel.createNewLU(null, null, () -> {
|
||||||
|
this.closeProgress();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMtbColrEdit(MtbColr mtbColr) {
|
||||||
|
this.mViewmodel.dispatchRowEdit(mtbColr);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMtbColrDelete(MtbColr mtbColr) {
|
||||||
|
this.mViewmodel.deleteRow(mtbColr);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBottomSheetLUClose() {
|
||||||
|
this.mViewmodel.closeLU(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNoteAggiuntiveRequired(RunnableArgs<String> onComplete, Runnable onAbort) {
|
||||||
|
NoteAggiuntiveLUDialog.make(this, onComplete, onAbort).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Exception ex) {
|
||||||
|
this.closeProgress();
|
||||||
|
|
||||||
|
if(ex instanceof InvalidPesoKGException) {
|
||||||
|
UtilityToast.showToast(ex.getMessage());
|
||||||
|
} else {
|
||||||
|
UtilityExceptions.defaultException(this, ex, mCurrentProgress);
|
||||||
|
}
|
||||||
|
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemDispatched(MtbAart mtbAart,
|
||||||
|
BigDecimal initialNumCnf,
|
||||||
|
BigDecimal initialQtaCnf,
|
||||||
|
BigDecimal initialQtaTot,
|
||||||
|
BigDecimal totalQtaAvailable,
|
||||||
|
BigDecimal totalNumCnfAvailable,
|
||||||
|
BigDecimal qtaCnfAvailable,
|
||||||
|
String partitaMag,
|
||||||
|
Date dataScad,
|
||||||
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||||
|
.setMtbAart(mtbAart)
|
||||||
|
.setInitialNumCnf(initialNumCnf)
|
||||||
|
.setInitialQtaCnf(initialQtaCnf)
|
||||||
|
.setInitialQtaTot(initialQtaTot)
|
||||||
|
.setTotalQtaAvailable(totalQtaAvailable)
|
||||||
|
.setTotalNumCnfAvailable(totalNumCnfAvailable)
|
||||||
|
.setQtaCnfAvailable(qtaCnfAvailable)
|
||||||
|
.setPartitaMag(partitaMag)
|
||||||
|
.setDataScad(dataScad)
|
||||||
|
.setCanOverflowOrderQuantity(false)
|
||||||
|
.setCanLUBeClosed(false)
|
||||||
|
.setCanPartitaMagBeChanged(false);
|
||||||
|
|
||||||
|
DialogInputQuantityV2
|
||||||
|
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||||
|
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||||
|
.setNumCnf(resultDTO.getNumCnf())
|
||||||
|
.setQtaCnf(resultDTO.getQtaCnf())
|
||||||
|
.setQtaTot(resultDTO.getQtaTot())
|
||||||
|
.setPartitaMag(resultDTO.getPartitaMag())
|
||||||
|
.setDataScad(resultDTO.getDataScad());
|
||||||
|
|
||||||
|
this.openProgress();
|
||||||
|
onComplete.run(pickedQuantityDTO, shouldCloseLU);
|
||||||
}, () -> {
|
}, () -> {
|
||||||
|
// this.mViewmodel.resetMatchedRows();
|
||||||
}).show();
|
})
|
||||||
} else {
|
.show(getSupportFragmentManager(), "tag");
|
||||||
deleteCollo(progress, onComplete);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
@Override
|
||||||
if(onComplete != null) onComplete.run();
|
public void onRowSaved() {
|
||||||
}
|
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onItemEdited(MtbColr mtbColrOriginal, MtbColr mtbColrEdited) {
|
@Override
|
||||||
for(int i = 0; i < mDtbDocrList.size(); i++) {
|
public void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
int foundIndex = mDtbDocrList.get(i).getWithdrawRows().indexOf(mtbColrOriginal);
|
String text = getResources().getString(R.string.alert_delete_mtb_colr);
|
||||||
|
DialogSimpleMessageHelper.makeWarningDialog(this,
|
||||||
if(foundIndex >= 0){
|
new SpannableString(text),
|
||||||
mDtbDocrList.get(i).getWithdrawRows().remove(foundIndex);
|
null,
|
||||||
mDtbDocrList.get(i).getWithdrawRows().add(foundIndex, mtbColrEdited);
|
() -> onComplete.run(true),
|
||||||
|
() -> onComplete.run(false)
|
||||||
refreshDtbDocrItem(this.mDtbDocrList.get(i));
|
).show();
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onItemDeleted(MtbColr mtbColrDeleted) {
|
@Override
|
||||||
for(int i = 0; i < mDtbDocrList.size(); i++) {
|
public void onLUOpened(MtbColt mtbColt) {
|
||||||
int foundIndex = mDtbDocrList.get(i).getWithdrawRows().indexOf(mtbColrDeleted);
|
noLUPresent.set(false);
|
||||||
|
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
|
|
||||||
if(foundIndex >= 0){
|
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(mtbColt);
|
||||||
mDtbDocrList.get(i).getWithdrawRows().remove(foundIndex);
|
|
||||||
|
|
||||||
refreshDtbDocrItem(this.mDtbDocrList.get(i));
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void printCollo(Dialog progress, MtbColt mtbColtToPrint, Runnable onComplete) {
|
@Override
|
||||||
DialogAskShouldPrint.make(this, "Packing List", shouldPrint -> {
|
public void onLUClosed() {
|
||||||
|
noLUPresent.set(true);
|
||||||
|
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
|
||||||
|
|
||||||
if(shouldPrint) {
|
if (this.mShouldCloseActivity) super.onBackPressed();
|
||||||
PrinterRESTConsumer.getAvailablePrintersStatic(SettingsManager.i().getUserSession().getDepo().getCodMdep(), PrinterRESTConsumer.Type.PRIMARIA, printerList -> {
|
}
|
||||||
|
|
||||||
if (printerList.size() > 0) {
|
@Override
|
||||||
try {
|
public void onLUSuccessullyPrinted() {
|
||||||
singlePrint(mtbColtToPrint, printerList.get(0), () -> {
|
Resources res = getResources();
|
||||||
postCloseOperations(mtbColtToPrint, onComplete);
|
String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
|
||||||
progress.dismiss();
|
DialogSimpleMessageHelper.makeSuccessDialog(this, res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show();
|
||||||
}, ex -> {
|
}
|
||||||
progress.dismiss();
|
|
||||||
String errorMessage = ex.getMessage();
|
@Override
|
||||||
|
public void onLUPrintRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
|
DialogAskShouldPrint.make(this, "Packing List", onComplete).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUPrintError(Exception ex, Runnable onComplete) {
|
||||||
|
this.closeProgress();
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(
|
DialogSimpleMessageHelper.makeErrorDialog(
|
||||||
this,
|
this,
|
||||||
new SpannableString(errorMessage),
|
new SpannableString(ex.getMessage()),
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
R.string.button_ignore_print,
|
R.string.button_ignore_print,
|
||||||
() -> postCloseOperations(mtbColtToPrint, onComplete)).show();
|
onComplete).show();
|
||||||
});
|
|
||||||
|
|
||||||
} catch (Exception ex) {
|
|
||||||
UtilityExceptions.defaultException(this, ex, progress);
|
|
||||||
postCloseOperations(mtbColtToPrint, onComplete);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
progress.dismiss();
|
|
||||||
String errorMessage = "Nessuna stampante configurata";
|
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(this, new SpannableString(errorMessage), null, () -> postCloseOperations(mtbColtToPrint, onComplete)).show();
|
|
||||||
}
|
|
||||||
}, ex -> {
|
|
||||||
UtilityExceptions.defaultException(this, ex, progress);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
postCloseOperations(mtbColtToPrint, onComplete);
|
|
||||||
progress.dismiss();
|
|
||||||
}
|
|
||||||
}).show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingStarted() {
|
||||||
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
this.openProgress();
|
||||||
ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
|
||||||
|
|
||||||
PrinterRESTConsumer.printColloStatic(
|
|
||||||
printerName,
|
|
||||||
mtbColtToPrint,
|
|
||||||
1,
|
|
||||||
reportName, onComplete, onAbort);
|
|
||||||
|
|
||||||
}, onAbort);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void postCloseOperations(MtbColt generatedMtbColt, Runnable onComplete) {
|
@Override
|
||||||
this.mColliRegistrati.add(generatedMtbColt);
|
public void onLoadingEnded() {
|
||||||
|
this.closeProgress();
|
||||||
setULToCurrentContext(null);
|
|
||||||
|
|
||||||
for(int i = 0; i < this.mDtbDocrList.size(); i++) {
|
|
||||||
WithdrawableDtbDocr dtbDocr = this.mDtbDocrList.get(i);
|
|
||||||
|
|
||||||
List<MtbColr> withdraws = dtbDocr.getWithdrawRows();
|
|
||||||
|
|
||||||
for(int k = 0; k < withdraws.size(); k++) {
|
|
||||||
MtbColr withdrawRow = withdraws.get(k);
|
|
||||||
|
|
||||||
dtbDocr.setQtaDoc(dtbDocr.getQtaDoc().subtract(withdrawRow.getQtaCol()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dtbDocr.getWithdrawRows().clear();
|
|
||||||
|
|
||||||
if(UtilityNumber.decimalToFloat(dtbDocr.getQtaDoc()) <= 0) {
|
|
||||||
this.mDtbDocrList.remove(dtbDocr);
|
|
||||||
i--;
|
|
||||||
} else this.refreshDtbDocrItem(dtbDocr);
|
|
||||||
}
|
|
||||||
|
|
||||||
removeListFilter();
|
|
||||||
|
|
||||||
if(onComplete != null) onComplete.run();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void deleteCollo(Dialog progress, Runnable onComplete) {
|
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.deleteColloStatic(currentMtbColt.get(), () -> {
|
|
||||||
setULToCurrentContext(null);
|
|
||||||
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
|
|
||||||
if(onComplete != null) onComplete.run();
|
|
||||||
}, ex -> UtilityExceptions.defaultException(this, ex, progress)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public boolean thereIsAnOpenedUL() {
|
|
||||||
return currentMtbColt.get() != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean thereIsAnyRowInUL() {
|
|
||||||
return currentMtbColt.get() != null &&
|
|
||||||
currentMtbColt.get().getMtbColr() != null &&
|
|
||||||
currentMtbColt.get().getMtbColr().size() > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void refreshDtbDocrItem(WithdrawableDtbDocr dtbDocr) {
|
|
||||||
int index = this.mDtbDocrList.indexOf(dtbDocr);
|
|
||||||
this.mDtbDocrList.remove(dtbDocr);
|
|
||||||
this.mDtbDocrList.add(index, dtbDocr);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void removeListFilter() {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.picking_resi;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface PickingResiComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
PickingResiComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(PickingResiActivity pickingResiActivity);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.picking_resi;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.rest.PickingResiRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
||||||
|
|
||||||
|
@Module(subcomponents = PickingResiComponent.class)
|
||||||
|
public class PickingResiModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
PickingResiRESTConsumer providesPickingResiRESTConsumer(SystemRESTConsumer systemRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
|
return new PickingResiRESTConsumer(systemRESTConsumer, articoloRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
BottomSheetFragmentLUContentViewModel providesBottomSheetFragmentLUContentViewModel() {
|
||||||
|
return new BottomSheetFragmentLUContentViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
PickingResiViewModel providesPickingResiViewModel(ArticoloRESTConsumer articoloRESTConsumer, ColliDataRecoverService colliDataRecoverService, OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, PickingResiRESTConsumer pickingResiRESTConsumer) {
|
||||||
|
return new PickingResiViewModel(articoloRESTConsumer, barcodeRESTConsumer, colliDataRecoverService, ordiniRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, pickingResiRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,576 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.picking_resi;
|
||||||
|
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import com.annimon.stream.Optional;
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOperationsListener;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPrintListener;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
|
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.exceptions.DocumentsLoadException;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.rest.PickingResiRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.rest.WithdrawableDtbDocr;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
|
|
||||||
|
public class PickingResiViewModel {
|
||||||
|
|
||||||
|
|
||||||
|
private Listener mListener;
|
||||||
|
|
||||||
|
private final MutableLiveData<List<WithdrawableDtbDocr>> mPickingList = new MutableLiveData<>();
|
||||||
|
private final List<MtbColt> mColliRegistrati = new ArrayList<>();
|
||||||
|
|
||||||
|
private MtbColt mCurrentMtbColt = null;
|
||||||
|
|
||||||
|
private String mDefaultGestioneOfLU;
|
||||||
|
private String mDefaultCodAnagOfLU;
|
||||||
|
private int mDefaultSegnoOfLU;
|
||||||
|
private String mDefaultCodMdepOfLU;
|
||||||
|
|
||||||
|
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
|
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||||
|
private final ColliDataRecoverService mColliDataRecoverService;
|
||||||
|
private final OrdiniRESTConsumer mOrdiniRestConsumerService;
|
||||||
|
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
||||||
|
private final PrinterRESTConsumer mPrinterRESTConsumer;
|
||||||
|
private final PickingResiRESTConsumer mPickingResiRESTConsumer;
|
||||||
|
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public PickingResiViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
|
ColliDataRecoverService colliDataRecoverService,
|
||||||
|
OrdiniRESTConsumer ordiniRESTConsumer,
|
||||||
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
|
PrinterRESTConsumer printerRESTConsumer,
|
||||||
|
PickingResiRESTConsumer mPickingResiRESTConsumer) {
|
||||||
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
|
this.mColliDataRecoverService = colliDataRecoverService;
|
||||||
|
this.mOrdiniRestConsumerService = ordiniRESTConsumer;
|
||||||
|
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
||||||
|
this.mPrinterRESTConsumer = printerRESTConsumer;
|
||||||
|
this.mPickingResiRESTConsumer = mPickingResiRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void init(List<DocumentoResoDTO> documentList, int defaultSegnoLU, String codMdep) {
|
||||||
|
this.mDefaultSegnoOfLU = defaultSegnoLU;
|
||||||
|
this.mDefaultCodMdepOfLU = codMdep;
|
||||||
|
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
this.initDatiPicking(documentList);
|
||||||
|
|
||||||
|
this.mPickingResiRESTConsumer.loadDocRows(documentList, withdrawableDtbDocr -> {
|
||||||
|
this.mPickingList.postValue(withdrawableDtbDocr);
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
}, ex -> this.sendError(new DocumentsLoadException(ex)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initDatiPicking(List<DocumentoResoDTO> documentList) {
|
||||||
|
List<String> foundGestioni = Stream.of(documentList)
|
||||||
|
.map(DocumentoResoDTO::getGestione)
|
||||||
|
.distinct()
|
||||||
|
.withoutNulls()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if (foundGestioni.size() > 1) {
|
||||||
|
this.sendError(new Exception("Sono stati caricati documenti con diverse gestioni"));
|
||||||
|
} else mDefaultGestioneOfLU = foundGestioni.get(0);
|
||||||
|
|
||||||
|
|
||||||
|
List<String> foundCodAnags = Stream.of(documentList)
|
||||||
|
.map(DocumentoResoDTO::getCodAnag)
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if (foundCodAnags.size() > 1) {
|
||||||
|
this.sendError(new Exception("Sono stati caricati documenti con diversi codici anagrafici"));
|
||||||
|
} else mDefaultCodAnagOfLU = foundCodAnags.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
|
||||||
|
MtbColt mtbColt = new MtbColt();
|
||||||
|
mtbColt.initDefaultFields();
|
||||||
|
mtbColt.setGestione(mDefaultGestioneOfLU)
|
||||||
|
.setSegno(mDefaultSegnoOfLU)
|
||||||
|
.setCodAnag(mDefaultCodAnagOfLU)
|
||||||
|
.setCodMdep(mDefaultCodMdepOfLU)
|
||||||
|
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
if (customNumCollo != null) mtbColt.setNumCollo(customNumCollo);
|
||||||
|
if (!UtilityString.isNullOrEmpty(customSerCollo)) mtbColt.setSerCollo(customSerCollo);
|
||||||
|
|
||||||
|
mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
|
||||||
|
mtbColt
|
||||||
|
.setNumCollo(value.getNumCollo())
|
||||||
|
.setDataCollo(value.getDataColloS())
|
||||||
|
.setMtbColr(new ObservableArrayList<>());
|
||||||
|
|
||||||
|
this.mCurrentMtbColt = mtbColt;
|
||||||
|
|
||||||
|
if (onComplete != null) onComplete.run();
|
||||||
|
this.sendLUOpened(mtbColt);
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void closeLU(boolean shouldPrint) {
|
||||||
|
if (mCurrentMtbColt == null) return;
|
||||||
|
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
mColliMagazzinoRESTConsumer.canLUBeDeleted(mCurrentMtbColt, canBeDeleted -> {
|
||||||
|
|
||||||
|
if (canBeDeleted) {
|
||||||
|
deleteLU(() -> {
|
||||||
|
this.sendLUClosed();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.sendOnNoteAggiuntiveRequired(noteAggiuntive -> {
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(noteAggiuntive)) {
|
||||||
|
this.mCurrentMtbColt.setAnnotazioni(noteAggiuntive);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.mColliMagazzinoRESTConsumer.updateDataFine(mCurrentMtbColt, () -> {
|
||||||
|
|
||||||
|
if (shouldPrint) {
|
||||||
|
printCollo(mCurrentMtbColt, () -> {
|
||||||
|
postCloseOperations(mCurrentMtbColt, () -> {
|
||||||
|
this.sendLUClosed();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
postCloseOperations(mCurrentMtbColt, () -> {
|
||||||
|
this.sendLUClosed();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
|
||||||
|
}, () -> {
|
||||||
|
this.sendLUClosed();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteLU(Runnable onComplete) {
|
||||||
|
mColliMagazzinoRESTConsumer.deleteCollo(mCurrentMtbColt, () -> {
|
||||||
|
|
||||||
|
this.mCurrentMtbColt = null;
|
||||||
|
if (onComplete != null) onComplete.run();
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void printCollo(MtbColt mtbColtToPrint, Runnable onComplete) {
|
||||||
|
this.sendLUPrintRequest(shouldPrint -> {
|
||||||
|
if (!shouldPrint) {
|
||||||
|
onComplete.run();
|
||||||
|
} else {
|
||||||
|
this.mPrinterRESTConsumer.getAvailablePrinters(mDefaultCodMdepOfLU, PrinterRESTConsumer.Type.PRIMARIA, printerList -> {
|
||||||
|
if (printerList == null || printerList.size() == 0) {
|
||||||
|
this.sendError(new NoPrintersFoundException());
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
singlePrint(mtbColtToPrint, printerList.get(0), onComplete, ex -> this.sendLUPrintError(ex, onComplete));
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
String reportName = ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum());
|
||||||
|
|
||||||
|
this.mPrinterRESTConsumer.printCollo(
|
||||||
|
printerName,
|
||||||
|
mtbColtToPrint,
|
||||||
|
1,
|
||||||
|
reportName, onComplete, onFailed);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void postCloseOperations(MtbColt mtbColt, Runnable onComplete) {
|
||||||
|
this.mColliRegistrati.add(mtbColt);
|
||||||
|
|
||||||
|
Stream.of(this.mPickingList.getValue())
|
||||||
|
.forEach(x -> {
|
||||||
|
List<MtbColr> withdraws = x.getWithdrawRows();
|
||||||
|
|
||||||
|
for (int k = 0; k < withdraws.size(); k++) {
|
||||||
|
MtbColr withdrawRow = withdraws.get(k);
|
||||||
|
x.setQtaDoc(x.getQtaDoc().subtract(withdrawRow.getQtaCol()));
|
||||||
|
}
|
||||||
|
|
||||||
|
x.getWithdrawRows().clear();
|
||||||
|
|
||||||
|
if (UtilityBigDecimal.equalsOrLowerThan(x.getQtaDoc(), BigDecimal.ZERO)) {
|
||||||
|
this.mPickingList.getValue().remove(x);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.mPickingList.postValue(this.mPickingList.getValue());
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
|
|
||||||
|
//Se non c'è una UL aperta
|
||||||
|
if (mCurrentMtbColt == null) {
|
||||||
|
|
||||||
|
//Se è un'etichetta anonima
|
||||||
|
if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
|
||||||
|
//Se il collo non esiste allora lo creo associandolo a questa etichetta anonima
|
||||||
|
//invece se esiste apro un collo nuovo e cerco gli articoli presenti nell'ul
|
||||||
|
//dell'etichetta anonima
|
||||||
|
// this.executeEtichettaAnonimaNotOpenedLU(barcodeScanDTO, onComplete);
|
||||||
|
} else {
|
||||||
|
// this.processBarcodeNotOpenedLU(barcodeScanDTO, onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
|
||||||
|
//Cerco gli articoli presenti nell'ul dell'etichetta anonima
|
||||||
|
// this.executeEtichettaLU(barcodeScanDTO.getStringValue(), onComplete);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// this.processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dispatchOrdineRow(final WithdrawableDtbDocr withdrawableDtbDocr) {
|
||||||
|
BigDecimal totalQtaDoc = withdrawableDtbDocr.getQtaDoc();
|
||||||
|
BigDecimal totalNumCnfDoc = withdrawableDtbDocr.getNumCnf();
|
||||||
|
BigDecimal qtaCnfDoc = withdrawableDtbDocr.getQtaCnf();
|
||||||
|
|
||||||
|
|
||||||
|
this.sendOnItemDispatched(
|
||||||
|
withdrawableDtbDocr.getMtbAart(),
|
||||||
|
totalNumCnfDoc,
|
||||||
|
qtaCnfDoc,
|
||||||
|
totalQtaDoc,
|
||||||
|
totalQtaDoc,
|
||||||
|
totalNumCnfDoc,
|
||||||
|
qtaCnfDoc,
|
||||||
|
withdrawableDtbDocr.getPartitaMag(),
|
||||||
|
withdrawableDtbDocr.getDataScadPartitaMagD(),
|
||||||
|
(pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
|
|
||||||
|
this.saveNewRow(withdrawableDtbDocr,
|
||||||
|
pickedQuantityDTO.getNumCnf(),
|
||||||
|
pickedQuantityDTO.getQtaCnf(),
|
||||||
|
pickedQuantityDTO.getQtaTot(),
|
||||||
|
pickedQuantityDTO.getPartitaMag(),
|
||||||
|
pickedQuantityDTO.getDataScad(),
|
||||||
|
shouldCloseLU);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dispatchRowEdit(final MtbColr mtbColrToEdit) {
|
||||||
|
|
||||||
|
this.sendOnItemDispatched(
|
||||||
|
mtbColrToEdit.getMtbAart(),
|
||||||
|
mtbColrToEdit.getNumCnf(),
|
||||||
|
mtbColrToEdit.getQtaCnf(),
|
||||||
|
mtbColrToEdit.getQtaCol(),
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
mtbColrToEdit.getPartitaMag(),
|
||||||
|
mtbColrToEdit.getDataScadPartitaD(),
|
||||||
|
(pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
|
|
||||||
|
this.saveEditedRow(mtbColrToEdit,
|
||||||
|
pickedQuantityDTO.getNumCnf(),
|
||||||
|
pickedQuantityDTO.getQtaCnf(),
|
||||||
|
pickedQuantityDTO.getQtaTot(),
|
||||||
|
pickedQuantityDTO.getPartitaMag(),
|
||||||
|
pickedQuantityDTO.getDataScad(),
|
||||||
|
shouldCloseLU);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void saveNewRow(WithdrawableDtbDocr withdrawableDtbDocr, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
final MtbColr mtbColr = new MtbColr()
|
||||||
|
.setCodMart(withdrawableDtbDocr.getMtbAart().getCodMart())
|
||||||
|
.setPartitaMag(partitaMag)
|
||||||
|
.setDataScadPartita(dataScad)
|
||||||
|
.setQtaCol(qtaTot)
|
||||||
|
.setQtaCnf(qtaCnf)
|
||||||
|
.setNumCnf(numCnf)
|
||||||
|
.setDescrizione(withdrawableDtbDocr.getMtbAart().getDescrizioneEstesa())
|
||||||
|
.setDatetimeRow(UtilityDate.getDateInstance())
|
||||||
|
|
||||||
|
.setCodAnagDoc(withdrawableDtbDocr.getCodAnag())
|
||||||
|
.setCodDtipDoc(withdrawableDtbDocr.getCodDtip())
|
||||||
|
.setSerDoc(withdrawableDtbDocr.getSerDoc())
|
||||||
|
.setNumDoc(withdrawableDtbDocr.getNumDoc())
|
||||||
|
.setDataDoc(withdrawableDtbDocr.getDataDocS())
|
||||||
|
.setIdRigaDoc(withdrawableDtbDocr.getIdRiga());
|
||||||
|
|
||||||
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||||
|
|
||||||
|
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||||
|
cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone());
|
||||||
|
|
||||||
|
boolean shouldPrint = true;
|
||||||
|
|
||||||
|
//Se è l'unico articolo del collo (controllo se è uguale a 0 perché ancora non è stato aggiunto nella lista delle righe)
|
||||||
|
if (shouldCloseLU && mCurrentMtbColt.getMtbColr().size() == 0) {
|
||||||
|
shouldPrint = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
if (shouldCloseLU) closeLU(shouldPrint);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean finalShouldPrint = shouldPrint;
|
||||||
|
this.mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
|
||||||
|
|
||||||
|
mtbColr
|
||||||
|
.setDataCollo(value.getDataColloS())
|
||||||
|
.setNumCollo(value.getNumCollo())
|
||||||
|
.setGestione(value.getGestione())
|
||||||
|
.setSerCollo(value.getSerCollo())
|
||||||
|
.setRiga(value.getMtbColr().get(0).getRiga())
|
||||||
|
.setUntMis(withdrawableDtbDocr.getMtbAart().getUntMis())
|
||||||
|
.setMtbAart(withdrawableDtbDocr.getMtbAart());
|
||||||
|
|
||||||
|
withdrawableDtbDocr.getWithdrawRows().add(mtbColr);
|
||||||
|
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.mPickingList.postValue(this.mPickingList.getValue());
|
||||||
|
|
||||||
|
this.sendOnRowSaved();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
if (shouldCloseLU) closeLU(finalShouldPrint);
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
||||||
|
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
MtbColt mtbColt = new MtbColt()
|
||||||
|
.setNumCollo(mtbColrToUpdate.getNumCollo())
|
||||||
|
.setDataCollo(mtbColrToUpdate.getDataColloS())
|
||||||
|
.setSerCollo(mtbColrToUpdate.getSerCollo())
|
||||||
|
.setGestione(mtbColrToUpdate.getGestione())
|
||||||
|
.setMtbColr(new ObservableArrayList<>());
|
||||||
|
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
|
final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
|
||||||
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
|
mtbColr.setRiga(null)
|
||||||
|
.setNumCnf(numCnf.subtract(mtbColrToUpdate.getNumCnf()))
|
||||||
|
.setQtaCnf(qtaCnf)
|
||||||
|
.setQtaCol(qtaTot.subtract(mtbColrToUpdate.getQtaCol()))
|
||||||
|
.setPartitaMag(partitaMag)
|
||||||
|
.setDataScadPartita(dataScad);
|
||||||
|
|
||||||
|
mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
|
|
||||||
|
mtbColr.setNumCnf(numCnf)
|
||||||
|
.setQtaCnf(qtaCnf)
|
||||||
|
.setQtaCol(qtaTot);
|
||||||
|
|
||||||
|
Optional<WithdrawableDtbDocr> pickingObjectDTO = Stream.of(this.mPickingList.getValue())
|
||||||
|
.filter(x -> Stream.of(x.getWithdrawRows()).anyMatch(y -> y == mtbColrToUpdate))
|
||||||
|
.findSingle();
|
||||||
|
|
||||||
|
if (pickingObjectDTO.isPresent()) {
|
||||||
|
pickingObjectDTO.get().getWithdrawRows().remove(mtbColrToUpdate);
|
||||||
|
pickingObjectDTO.get().getWithdrawRows().add(mtbColr);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
||||||
|
this.mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.sendOnRowSaved();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deleteRow(MtbColr mtbColrToDelete) {
|
||||||
|
this.sendMtbColrDeleteRequest(canDelete -> {
|
||||||
|
if (canDelete) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
MtbColt mtbColt = new MtbColt()
|
||||||
|
.setNumCollo(mtbColrToDelete.getNumCollo())
|
||||||
|
.setDataCollo(mtbColrToDelete.getDataColloS())
|
||||||
|
.setSerCollo(mtbColrToDelete.getSerCollo())
|
||||||
|
.setGestione(mtbColrToDelete.getGestione())
|
||||||
|
.setMtbColr(new ObservableArrayList<>());
|
||||||
|
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
|
MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
|
||||||
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
|
mtbColr.setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1)))
|
||||||
|
.setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1)))
|
||||||
|
.setRiga(null);
|
||||||
|
|
||||||
|
mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
|
|
||||||
|
Optional<WithdrawableDtbDocr> pickingObjectDTO = Stream.of(this.mPickingList.getValue())
|
||||||
|
.filter(x -> Stream.of(x.getWithdrawRows()).anyMatch(y -> y == mtbColrToDelete))
|
||||||
|
.findSingle();
|
||||||
|
|
||||||
|
if (pickingObjectDTO.isPresent()) {
|
||||||
|
pickingObjectDTO.get().getWithdrawRows().remove(mtbColrToDelete);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
|
||||||
|
|
||||||
|
this.sendOnRowSaved();
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public MutableLiveData<List<WithdrawableDtbDocr>> getPickingList() {
|
||||||
|
return mPickingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnNoteAggiuntiveRequired(RunnableArgs<String> onComplete, Runnable onAbort) {
|
||||||
|
if (this.mListener != null) this.mListener.onNoteAggiuntiveRequired(onComplete, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingStarted() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingEnded() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendError(Exception ex) {
|
||||||
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLUOpened(MtbColt mtbColt) {
|
||||||
|
if (this.mListener != null) mListener.onLUOpened(mtbColt);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLUClosed() {
|
||||||
|
if (this.mListener != null) mListener.onLUClosed();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLUPrintRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onLUPrintRequest(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendLUPrintError(Exception ex, Runnable onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onLUPrintError(ex, onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnItemDispatched(MtbAart mtbAart,
|
||||||
|
BigDecimal initialNumCnf,
|
||||||
|
BigDecimal initialQtaCnf,
|
||||||
|
BigDecimal initialQtaTot,
|
||||||
|
BigDecimal totalQtaAvailable,
|
||||||
|
BigDecimal totalNumCnfAvailable,
|
||||||
|
BigDecimal qtaCnfAvailable,
|
||||||
|
String partitaMag,
|
||||||
|
Date dataScad,
|
||||||
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onItemDispatched(mtbAart,
|
||||||
|
initialNumCnf,
|
||||||
|
initialQtaCnf,
|
||||||
|
initialQtaTot,
|
||||||
|
totalQtaAvailable,
|
||||||
|
totalNumCnfAvailable,
|
||||||
|
qtaCnfAvailable,
|
||||||
|
partitaMag,
|
||||||
|
dataScad,
|
||||||
|
onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnRowSaved() {
|
||||||
|
if (this.mListener != null) mListener.onRowSaved();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public PickingResiViewModel setListener(Listener listener) {
|
||||||
|
this.mListener = listener;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Listener extends ILUPrintListener, ILoadingListener, ILUBaseOperationsListener {
|
||||||
|
|
||||||
|
void onNoteAggiuntiveRequired(RunnableArgs<String> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
|
void onError(Exception ex);
|
||||||
|
|
||||||
|
void onItemDispatched(MtbAart mtbAart,
|
||||||
|
BigDecimal initialNumCnf,
|
||||||
|
BigDecimal initialQtaCnf,
|
||||||
|
BigDecimal initialQtaTot,
|
||||||
|
BigDecimal totalQtaAvailable,
|
||||||
|
BigDecimal totalNumCnfAvailable,
|
||||||
|
BigDecimal qtaCnfAvailable,
|
||||||
|
String partitaMag,
|
||||||
|
Date dataScad,
|
||||||
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,197 +1,149 @@
|
|||||||
package it.integry.integrywmsnative.gest.picking_resi.core;
|
package it.integry.integrywmsnative.gest.picking_resi.core;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.graphics.Color;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.databinding.ObservableList;
|
import androidx.databinding.ObservableList;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
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.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.DtbDocr;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
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.UtilityResources;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemBinding;
|
import it.integry.integrywmsnative.databinding.PickingResiMainListItemBinding;
|
||||||
import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemHeaderBinding;
|
import it.integry.integrywmsnative.databinding.PickingResiMainListItemHeaderBinding;
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.dto.WithdrawableDtbDocr;
|
import it.integry.integrywmsnative.gest.picking_resi.rest.WithdrawableDtbDocr;
|
||||||
|
|
||||||
public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<PickingResiListAdapter.SubheaderHolder, PickingResiListAdapter.SingleItemViewHolder> {
|
public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<PickingResiListAdapter.SubheaderHolder, PickingResiListAdapter.SingleItemViewHolder> {
|
||||||
|
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private final List<PickingResiListModel> mDataset = new ArrayList<>();
|
||||||
private List<WithdrawableDtbDocr> mDataset;
|
|
||||||
|
|
||||||
private RunnableArgs<WithdrawableDtbDocr> mOnItemClicked;
|
private RunnableArgs<WithdrawableDtbDocr> mOnItemClicked;
|
||||||
|
|
||||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||||
|
PickingResiMainListItemHeaderBinding mBinding;
|
||||||
|
|
||||||
UltimeConsegneMainListItemHeaderBinding mBinding;
|
SubheaderHolder(PickingResiMainListItemHeaderBinding binding) {
|
||||||
|
|
||||||
SubheaderHolder(UltimeConsegneMainListItemHeaderBinding binding) {
|
|
||||||
super(binding.getRoot());
|
super(binding.getRoot());
|
||||||
this.mBinding = binding;
|
this.mBinding = binding;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
PickingResiMainListItemBinding mBinding;
|
||||||
|
|
||||||
UltimeConsegneMainListItemBinding mBinding;
|
SingleItemViewHolder(PickingResiMainListItemBinding binding) {
|
||||||
|
|
||||||
SingleItemViewHolder(UltimeConsegneMainListItemBinding binding) {
|
|
||||||
super(binding.getRoot());
|
super(binding.getRoot());
|
||||||
this.mBinding = binding;
|
this.mBinding = binding;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PickingResiListAdapter(AppCompatActivity context, ObservableArrayList<PickingResiListModel> mutableDataSet) {
|
||||||
public PickingResiListAdapter(Context context, ObservableList<WithdrawableDtbDocr> data) {
|
|
||||||
this.mContext = context;
|
this.mContext = context;
|
||||||
this.mDataset = new ArrayList<>();
|
|
||||||
|
|
||||||
refreshData(data);
|
mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() {
|
||||||
|
|
||||||
data.addOnListChangedCallback(new ObservableList.OnListChangedCallback<ObservableList<WithdrawableDtbDocr>>() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onChanged(ObservableList<WithdrawableDtbDocr> sender) {
|
public void onChanged(ObservableList sender) {
|
||||||
refreshData(sender);
|
mDataset.clear();
|
||||||
}
|
mDataset.addAll(sender);
|
||||||
|
notifyDataSetChanged();
|
||||||
@Override
|
notifyDataChanged();
|
||||||
public void onItemRangeChanged(ObservableList<WithdrawableDtbDocr> sender, int positionStart, int itemCount) {
|
|
||||||
refreshData(sender);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeInserted(ObservableList<WithdrawableDtbDocr> sender, int positionStart, int itemCount) {
|
|
||||||
refreshData(sender);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeMoved(ObservableList<WithdrawableDtbDocr> sender, int fromPosition, int toPosition, int itemCount) {
|
|
||||||
refreshData(sender);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeRemoved(ObservableList<WithdrawableDtbDocr> sender, int positionStart, int itemCount) {
|
|
||||||
refreshData(sender);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshData(List<WithdrawableDtbDocr> data) {
|
|
||||||
this.mDataset.clear();
|
|
||||||
this.mDataset.addAll(Stream.of(data)
|
|
||||||
.sortBy(x -> x.getNumDoc() + " " + x.getDataDocS() + " " + x.getCodDtip() + " " + x.getSerDoc() + " " + x.getCodAnag() + " " + x.getIdRiga())
|
|
||||||
.toList());
|
|
||||||
|
|
||||||
this.notifyDataChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOnItemClicked(RunnableArgs<WithdrawableDtbDocr> onItemClicked) {
|
public void setOnItemClicked(RunnableArgs<WithdrawableDtbDocr> onItemClicked) {
|
||||||
this.mOnItemClicked = onItemClicked;
|
this.mOnItemClicked = onItemClicked;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
public PickingResiListAdapter.SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||||
UltimeConsegneMainListItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.ultime_consegne_main_list__item, parent, false);
|
PickingResiMainListItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.picking_resi_main_list__item, parent, false);
|
||||||
return new SingleItemViewHolder(binding);
|
return new PickingResiListAdapter.SingleItemViewHolder(binding);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
public PickingResiListAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||||
UltimeConsegneMainListItemHeaderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.ultime_consegne_main_list__item_header, parent, false);
|
PickingResiMainListItemHeaderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.picking_resi_main_list__item_header, parent, false);
|
||||||
return new SubheaderHolder(binding);
|
return new PickingResiListAdapter.SubheaderHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindSubheaderViewHolder(PickingResiListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||||
|
PickingResiListModel pickingResiListModel = this.mDataset.get(nextItemPosition);
|
||||||
|
|
||||||
|
subheaderHolder.mBinding.groupTitle.setVisibility(UtilityString.isNullOrEmpty(pickingResiListModel.getGroupTitle()) ? View.GONE : View.VISIBLE);
|
||||||
|
subheaderHolder.mBinding.groupTitle.setText(pickingResiListModel.getGroupTitle());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindItemViewHolder(final SingleItemViewHolder holder, final int position) {
|
public void onBindItemViewHolder(final PickingResiListAdapter.SingleItemViewHolder holder, final int position) {
|
||||||
final WithdrawableDtbDocr dtbDocr = this.mDataset.get(position);
|
PickingResiListModel pickingResiListModel = this.mDataset.get(position);
|
||||||
|
|
||||||
BigDecimal qtaColEvasa = BigDecimal.ZERO;
|
if (pickingResiListModel.getQtaEvasa().subtract(pickingResiListModel.getQtaTot()).floatValue() >= 0) {
|
||||||
BigDecimal numCnfColEvasa = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
for(MtbColr mtbColr : dtbDocr.getWithdrawRows()) {
|
|
||||||
qtaColEvasa = qtaColEvasa.add(mtbColr.getQtaCol());
|
|
||||||
numCnfColEvasa = numCnfColEvasa.add(mtbColr.getNumCnf());
|
|
||||||
}
|
|
||||||
|
|
||||||
Float qtaDaEvadere = UtilityNumber.decimalToFloat(dtbDocr.getQtaDoc().subtract(qtaColEvasa));
|
|
||||||
|
|
||||||
holder.mBinding.badge1.setText(dtbDocr.getCodMart());
|
|
||||||
holder.mBinding.descrizione.setText(UtilityString.isNullOrEmpty(dtbDocr.getDescrizioneEstesa()) ? dtbDocr.getDescrizioneEstesa() : dtbDocr.getDescrizione());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Setting qty with unt_mis
|
|
||||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (dtbDocr.getMtbAart() == null || dtbDocr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
|
||||||
holder.mBinding.qtaEvasa.setText(UtilityNumber.decimalToString(qtaColEvasa));
|
|
||||||
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getQtaDoc()));
|
|
||||||
holder.mBinding.untMis.setText(dtbDocr.getUntDoc());
|
|
||||||
} else {
|
|
||||||
holder.mBinding.qtaEvasa.setText(UtilityNumber.decimalToString(numCnfColEvasa));
|
|
||||||
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(dtbDocr.getNumCnf()));
|
|
||||||
holder.mBinding.untMis.setText(UtilityResources.getString(R.string.unt_mis_col));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (qtaDaEvadere <= 0 ) {
|
|
||||||
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
|
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
|
||||||
} else if (qtaDaEvadere > 0 && qtaColEvasa.floatValue() > 0) {
|
} else if (pickingResiListModel.getQtaEvasa().floatValue() > 0) {
|
||||||
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
|
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
|
||||||
|
} else if (position % 2 == 1) {
|
||||||
|
holder.mBinding.getRoot().setBackgroundColor(Color.WHITE);
|
||||||
} else {
|
} else {
|
||||||
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.full_white));
|
holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
holder.mBinding.deactivatedOverBg.setVisibility(!pickingResiListModel.isActive() ? View.VISIBLE : View.GONE);
|
||||||
|
holder.mBinding.getRoot().setAlpha(!pickingResiListModel.isActive() ? 0.8f : 1);
|
||||||
|
holder.mBinding.badge1.setBackground(mContext.getResources().getDrawable(!pickingResiListModel.isActive() ? R.drawable.badge_gray_round_corner : R.drawable.badge1_round_corner));
|
||||||
|
holder.mBinding.qtaEvasa.setTextColor(mContext.getResources().getColor(!pickingResiListModel.isActive() ? R.color.gray_600 : R.color.green_700));
|
||||||
|
|
||||||
|
holder.mBinding.descrizione.setText(pickingResiListModel.getDescrizione());
|
||||||
|
holder.mBinding.descrizione.setTextColor(pickingResiListModel.isDescrizionePresente() ? Color.BLACK : Color.GRAY);
|
||||||
|
|
||||||
|
|
||||||
|
holder.mBinding.badge1.setText(pickingResiListModel.getBadge1());
|
||||||
|
|
||||||
|
holder.mBinding.qtaEvasa.setText(UtilityNumber.decimalToString(pickingResiListModel.getQtaEvasa()));
|
||||||
|
holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(pickingResiListModel.getQtaTot()));
|
||||||
|
|
||||||
|
holder.mBinding.untMis.setText(pickingResiListModel.getUntMis());
|
||||||
|
holder.mBinding.untMis.setVisibility(UtilityString.isNullOrEmpty(pickingResiListModel.getUntMis()) ? View.GONE : View.VISIBLE);
|
||||||
|
|
||||||
holder.mBinding.getRoot().setOnClickListener(v -> {
|
holder.mBinding.getRoot().setOnClickListener(v -> {
|
||||||
if(this.mOnItemClicked != null) this.mOnItemClicked.run(dtbDocr);
|
if (this.mOnItemClicked != null)
|
||||||
|
this.mOnItemClicked.run(pickingResiListModel.getOriginalModel());
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindSubheaderViewHolder(SubheaderHolder subheaderHolder, int nextItemPosition) {
|
|
||||||
DtbDocr nextDtbDocr = this.mDataset.get(nextItemPosition);
|
|
||||||
subheaderHolder.mBinding.descrizione.setText(nextDtbDocr.getCodDtip() + " - N° " + nextDtbDocr.getNumDoc() + " del " + UtilityDate.formatDate(nextDtbDocr.getDataDocD(), UtilityDate.COMMONS_DATE_FORMATS.DM_HUMAN));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
public boolean onPlaceSubheaderBetweenItems(int position) {
|
||||||
|
if (getItemSize() == 1) return true;
|
||||||
|
else if (getItemSize() > 1) {
|
||||||
|
PickingResiListModel compare1 = this.mDataset.get(position);
|
||||||
|
PickingResiListModel compare2 = this.mDataset.get(position + 1);
|
||||||
|
|
||||||
DtbDocr compare1 = this.mDataset.get(position);
|
if (UtilityString.equalsIgnoreCase(compare1.getGroupTitle(), compare2.getGroupTitle())) {
|
||||||
DtbDocr compare2 = this.mDataset.get(position + 1);
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if( !compare1.getDataDocS().equalsIgnoreCase(compare2.getDataDocS()) ||
|
|
||||||
!compare1.getSerDoc().equalsIgnoreCase(compare2.getSerDoc()) ||
|
|
||||||
!compare1.getNumDoc().equals(compare2.getNumDoc()) ||
|
|
||||||
!compare1.getCodAnag().equalsIgnoreCase(compare2.getCodAnag()) ||
|
|
||||||
!compare1.getCodDtip().equalsIgnoreCase(compare2.getCodDtip())) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemSize() {
|
public int getItemSize() {
|
||||||
return this.mDataset.size();
|
return this.mDataset.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,103 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.picking_resi.core;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.rest.WithdrawableDtbDocr;
|
||||||
|
|
||||||
|
public class PickingResiListModel {
|
||||||
|
|
||||||
|
private String groupTitle;
|
||||||
|
|
||||||
|
private String badge1;
|
||||||
|
|
||||||
|
private String descrizione;
|
||||||
|
private boolean descrizionePresente;
|
||||||
|
private BigDecimal qtaEvasa;
|
||||||
|
private BigDecimal qtaTot;
|
||||||
|
private String untMis;
|
||||||
|
|
||||||
|
private boolean active;
|
||||||
|
|
||||||
|
private WithdrawableDtbDocr mOriginalModel;
|
||||||
|
|
||||||
|
public String getGroupTitle() {
|
||||||
|
return groupTitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingResiListModel setGroupTitle(String groupTitle) {
|
||||||
|
this.groupTitle = groupTitle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBadge1() {
|
||||||
|
return badge1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingResiListModel setBadge1(String badge1) {
|
||||||
|
this.badge1 = badge1;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizione() {
|
||||||
|
return descrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingResiListModel setDescrizione(String descrizione) {
|
||||||
|
this.descrizione = descrizione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDescrizionePresente() {
|
||||||
|
return descrizionePresente;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingResiListModel setDescrizionePresente(boolean descrizionePresente) {
|
||||||
|
this.descrizionePresente = descrizionePresente;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaEvasa() {
|
||||||
|
return qtaEvasa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingResiListModel setQtaEvasa(BigDecimal qtaEvasa) {
|
||||||
|
this.qtaEvasa = qtaEvasa;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaTot() {
|
||||||
|
return qtaTot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingResiListModel setQtaTot(BigDecimal qtaTot) {
|
||||||
|
this.qtaTot = qtaTot;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUntMis() {
|
||||||
|
return untMis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingResiListModel setUntMis(String untMis) {
|
||||||
|
this.untMis = untMis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isActive() {
|
||||||
|
return active;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingResiListModel setActive(boolean active) {
|
||||||
|
this.active = active;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WithdrawableDtbDocr getOriginalModel() {
|
||||||
|
return mOriginalModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingResiListModel setOriginalModel(WithdrawableDtbDocr originalModel) {
|
||||||
|
this.mOriginalModel = originalModel;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.picking_resi.exceptions;
|
||||||
|
|
||||||
|
public class DocumentsLoadException extends Exception {
|
||||||
|
|
||||||
|
public DocumentsLoadException(Throwable cause) {
|
||||||
|
super("Errore durante il caricamento dei documenti");
|
||||||
|
initCause(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.picking_resi.rest;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.DtbDocr;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class PickingResiRESTConsumer {
|
||||||
|
|
||||||
|
|
||||||
|
private final SystemRESTConsumer mSystemRestConsumer;
|
||||||
|
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public PickingResiRESTConsumer(SystemRESTConsumer systemRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
|
this.mSystemRestConsumer = systemRESTConsumer;
|
||||||
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loadDocRows(List<DocumentoResoDTO> documents, RunnableArgs<ArrayList<WithdrawableDtbDocr>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
List<HashMap<String, Object>> filterCond = new ArrayList<>();
|
||||||
|
|
||||||
|
for(int i = 0; i < documents.size(); i++) {
|
||||||
|
HashMap<String, Object> filter = new HashMap<>();
|
||||||
|
|
||||||
|
filter.put("data_doc", documents.get(i).getDataDocD());
|
||||||
|
filter.put("num_doc", documents.get(i).getNumDoc());
|
||||||
|
filter.put("ser_doc", documents.get(i).getSerDoc());
|
||||||
|
filter.put("cod_anag", documents.get(i).getCodAnag());
|
||||||
|
filter.put("cod_dtip", documents.get(i).getCodDtip());
|
||||||
|
|
||||||
|
filterCond.add(filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
String sql = "SELECT * FROM dvw_situazione_qta_docs " +
|
||||||
|
"WHERE " +
|
||||||
|
UtilityQuery.concatFieldListInWhereCond(filterCond) +
|
||||||
|
"ORDER BY cod_mart";
|
||||||
|
|
||||||
|
|
||||||
|
Type typeOfObjectsList = new TypeToken<ArrayList<WithdrawableDtbDocr>>() {}.getType();
|
||||||
|
this.mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<WithdrawableDtbDocr>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(ArrayList<WithdrawableDtbDocr> values) {
|
||||||
|
|
||||||
|
if(values != null && values.size() > 0){
|
||||||
|
List<String> codMarts = Stream.of(values)
|
||||||
|
.map(DtbDocr::getCodMart)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
mArticoloRESTConsumer.getByCodMart(codMarts, arts -> {
|
||||||
|
|
||||||
|
if(arts != null && arts.size() > 0) {
|
||||||
|
for (DtbDocr value : values) {
|
||||||
|
|
||||||
|
MtbAart foundMtbAart = null;
|
||||||
|
|
||||||
|
List<MtbAart> mtbAartStream = Stream.of(arts)
|
||||||
|
.filter(x -> x.getCodMart().equalsIgnoreCase(value.getCodMart())).toList();
|
||||||
|
|
||||||
|
if(mtbAartStream != null && mtbAartStream.size() > 0){
|
||||||
|
foundMtbAart = mtbAartStream.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
value.setMtbAart(foundMtbAart);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(onComplete != null) onComplete.run(values);
|
||||||
|
}
|
||||||
|
|
||||||
|
}, onFailed);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if(onComplete != null) onComplete.run(values);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
if(onFailed != null) onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package it.integry.integrywmsnative.gest.picking_resi.dto;
|
package it.integry.integrywmsnative.gest.picking_resi.rest;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -48,7 +48,7 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|||||||
*/
|
*/
|
||||||
public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
private FragmentProdOrdineProduzioneElencoBinding mBinding;
|
private FragmentProdOrdineProduzioneElencoBinding mBinding;
|
||||||
@@ -102,12 +102,26 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
|
|||||||
return mBinding.getRoot();
|
return mBinding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
mAppBarTitle = titleText;
|
mAppBarTitle = titleText;
|
||||||
mAppBarTitle.setText(context.getText(R.string.prod_ordine_produzione_title_fragment).toString());
|
mAppBarTitle.setText(context.getText(R.string.prod_ordine_produzione_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||||
@@ -139,8 +153,8 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
mOnPreDestroy = onPreDestroy;
|
mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,275 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione;
|
|
||||||
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
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 androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
||||||
import it.integry.integrywmsnative.core.rest.CommonRESTException;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneElencoBinding;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core.ProdOrdineLavorazioneHelper;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core.ProdOrdineLavorazioneListAdapter;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A simple {@link Fragment} subclass.
|
|
||||||
*/
|
|
||||||
public class ProdOrdineLavorazioneElencoFragment extends Fragment implements ITitledFragment, IScrollableFragment {
|
|
||||||
private FragmentProdOrdineLavorazioneElencoBinding mBinding;
|
|
||||||
private ProdOrdineLavorazioneHelper mHelper;
|
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
|
||||||
private ElevatedToolbar mToolbar;
|
|
||||||
|
|
||||||
private ProdOrdineLavorazioneListAdapter mAdapter;
|
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> mOriginalOrderList;
|
|
||||||
private List<OrdineVenditaInevasoDTO> mRenderedOrderList = new ArrayList<>();
|
|
||||||
|
|
||||||
|
|
||||||
public ProdOrdineLavorazioneElencoFragment() {
|
|
||||||
// Required empty public constructor
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static ProdOrdineLavorazioneElencoFragment newInstance() {
|
|
||||||
ProdOrdineLavorazioneElencoFragment fragment = new ProdOrdineLavorazioneElencoFragment();
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
fragment.setArguments(args);
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
||||||
Bundle savedInstanceState) {
|
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_ordine_lavorazione_elenco, container, false);
|
|
||||||
|
|
||||||
mBinding.ordineLavorazioneMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
|
||||||
mBinding.ordineLavorazioneMainFab.hide();
|
|
||||||
|
|
||||||
mBinding.ordineLavorazioneMainFab.setOnClickListener(v -> onVenditaMainFabClick());
|
|
||||||
|
|
||||||
if (mToolbar != null) mToolbar.setRecyclerView(mBinding.ordineLavorazioneMainList);
|
|
||||||
|
|
||||||
init();
|
|
||||||
return mBinding.getRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
|
||||||
titleText.setText(context.getText(R.string.prod_ordine_lavorazione_title_fragment).toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
|
||||||
mToolbar = toolbar;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
|
||||||
mOnPreDestroy = onPreDestroy;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void init() {
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
|
||||||
|
|
||||||
mHelper = new ProdOrdineLavorazioneHelper(getActivity());
|
|
||||||
// mViewModel = new VenditaViewModel(getActivity(), this, mBinding, mHelper);
|
|
||||||
|
|
||||||
mHelper.loadOrdini(ordini -> {
|
|
||||||
if (ordini != null) {
|
|
||||||
UtilityToast.showToast("Caricati " + ordini.size() + " ordini");
|
|
||||||
mOriginalOrderList = ordini;
|
|
||||||
// mViewModel.setListOrder(ordini);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
mBinding.ordineLavorazioneEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
|
|
||||||
|
|
||||||
refreshOrdini(ordini);
|
|
||||||
initRecyclerView();
|
|
||||||
progress.dismiss();
|
|
||||||
}, ex -> {
|
|
||||||
mOriginalOrderList = new ArrayList<>();
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
|
||||||
if (errorMessage == null) errorMessage = ex.getMessage();
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void refreshOrdini(List<OrdineVenditaInevasoDTO> ordini) {
|
|
||||||
|
|
||||||
mRenderedOrderList.clear();
|
|
||||||
if (ordini != null && ordini.size() > 0) mRenderedOrderList.addAll(ordini);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initRecyclerView() {
|
|
||||||
mAdapter = new ProdOrdineLavorazioneListAdapter(getActivity(), mRenderedOrderList, onSingleSelectionChanged);
|
|
||||||
mBinding.ordineLavorazioneMainList.setAdapter(mAdapter);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void refreshRecyclerView() {
|
|
||||||
mAdapter.updateItems(mRenderedOrderList);
|
|
||||||
}
|
|
||||||
|
|
||||||
private RunnableArgs<OrdineVenditaInevasoDTO> onSingleSelectionChanged = dto -> {
|
|
||||||
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
|
||||||
|
|
||||||
if (!SettingsManager.iDB().isFlagMultiClienteOrdV()) {
|
|
||||||
boolean allMatch = Stream.of(selectedOrders).allMatch(x -> dto.getCodAnagOrd().equalsIgnoreCase(x.getCodAnagOrd()));
|
|
||||||
|
|
||||||
if (!allMatch) {
|
|
||||||
Stream.of(selectedOrders)
|
|
||||||
.filter(x -> !x.getCodAnagOrd().equalsIgnoreCase(dto.getCodAnagOrd()))
|
|
||||||
.forEach(x -> x.setSelected(false));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (selectedOrders != null && selectedOrders.size() > 0) {
|
|
||||||
mBinding.ordineLavorazioneMainFab.show();
|
|
||||||
} else {
|
|
||||||
mBinding.ordineLavorazioneMainFab.hide();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
private void onVenditaMainFabClick() {
|
|
||||||
|
|
||||||
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
|
||||||
List<String> barcodes = new ArrayList<>();
|
|
||||||
|
|
||||||
String dataCons = null;
|
|
||||||
|
|
||||||
for (OrdineVenditaInevasoDTO ordine : selectedOrders) {
|
|
||||||
if (!barcodes.contains(ordine.getBarcode())) barcodes.add(ordine.getBarcode());
|
|
||||||
|
|
||||||
if (dataCons == null) dataCons = ordine.getDataConsS();
|
|
||||||
else if (!dataCons.equalsIgnoreCase(ordine.getDataConsS())) dataCons = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
|
||||||
|
|
||||||
|
|
||||||
checkSelectedOrders(selectedOrders, () -> {
|
|
||||||
RunnableArgs<List<SitArtOrdDTO>> onPostGetListaArts = sitArtsDTO -> {
|
|
||||||
mHelper.getBancaliLavorazioneGiaRegistrati(selectedOrders, mtbColtList -> {
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
List<String> codMarts = Stream.of(sitArtsDTO)
|
|
||||||
.distinctBy(SitArtOrdDTO::getCodMart)
|
|
||||||
.map(SitArtOrdDTO::getCodMart)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
int alreadyRegisteredUL = mtbColtList.size();
|
|
||||||
|
|
||||||
|
|
||||||
DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
|
|
||||||
getText(R.string.orders).toString(),
|
|
||||||
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, selectedOrders.size()), selectedOrders.size())
|
|
||||||
+ "<br />" +
|
|
||||||
"<b>" + codMarts.size() + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, codMarts.size())
|
|
||||||
+ "<br />" +
|
|
||||||
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
|
|
||||||
null,
|
|
||||||
() -> startPickingActivity(sitArtsDTO, selectedOrders, mtbColtList)
|
|
||||||
).show();
|
|
||||||
|
|
||||||
}, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
|
|
||||||
};
|
|
||||||
|
|
||||||
OrdiniRESTConsumer.retrieveListaArticoliFromOrdiniUscita(selectedOrders, onPostGetListaArts, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
|
|
||||||
|
|
||||||
}, progress::dismiss);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkSelectedOrders(List<OrdineVenditaInevasoDTO> selectedOrders, Runnable onComplete, Runnable onFailed) {
|
|
||||||
if (selectedOrders != null && selectedOrders.size() > 0) {
|
|
||||||
|
|
||||||
//Definizione della gestione collo di default
|
|
||||||
List<GestioneEnum> foundGestioni = Stream.of(selectedOrders)
|
|
||||||
.map(OrdineVenditaInevasoDTO::getGestioneEnum)
|
|
||||||
.withoutNulls()
|
|
||||||
.distinctBy(x -> x)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if (foundGestioni != null && foundGestioni.size() > 1) {
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_gest)), null, onFailed::run).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Definizione del deposito di default
|
|
||||||
List<String> foundCodMdep = Stream.of(selectedOrders)
|
|
||||||
.map(OrdineVenditaInevasoDTO::getCodMdep)
|
|
||||||
.withoutNulls()
|
|
||||||
.distinctBy(x -> x)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if (foundCodMdep != null && foundCodMdep.size() > 1) {
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_cod_mdep_ordv)), null, onFailed::run).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onComplete.run();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void startPickingActivity(List<SitArtOrdDTO> ordini, List<OrdineVenditaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
|
|
||||||
Intent myIntent = new Intent(getActivity(), SpedizioneActivity.class);
|
|
||||||
|
|
||||||
String keyPickingList = DataCache.addItem(ordini);
|
|
||||||
myIntent.putExtra("keyPickingList", keyPickingList);
|
|
||||||
|
|
||||||
String keyTestateOrdini = DataCache.addItem(selectedOrders);
|
|
||||||
myIntent.putExtra("keyTestateOrdini", keyTestateOrdini);
|
|
||||||
|
|
||||||
String keyColliRegistrati = DataCache.addItem(mtbColtList);
|
|
||||||
myIntent.putExtra("keyColliRegistrati", keyColliRegistrati);
|
|
||||||
|
|
||||||
getActivity().startActivity(myIntent);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,183 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
import com.google.firebase.perf.metrics.Trace;
|
|
||||||
import com.google.gson.reflect.TypeToken;
|
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.EsitoType;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityFirebase;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.rest.OrdiniVenditaRESTConsumerService;
|
|
||||||
import retrofit2.Call;
|
|
||||||
import retrofit2.Callback;
|
|
||||||
import retrofit2.Response;
|
|
||||||
|
|
||||||
public class ProdOrdineLavorazioneHelper {
|
|
||||||
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
public ProdOrdineLavorazioneHelper(Context context){
|
|
||||||
mContext = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void loadOrdini(RunnableArgs<List<OrdineVenditaInevasoDTO>> onComplete, RunnableArgs<Exception> onFailed){
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
|
||||||
|
|
||||||
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_ords_lavorazione");
|
|
||||||
perfTrace.start();
|
|
||||||
|
|
||||||
OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class);
|
|
||||||
service
|
|
||||||
.listOrdiniInevasi(codMdep, "P")
|
|
||||||
.enqueue(new Callback<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> response) {
|
|
||||||
|
|
||||||
if(response.isSuccessful()) {
|
|
||||||
|
|
||||||
if(response.body() != null) {
|
|
||||||
if(response.body().getEsito() == EsitoType.OK) {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, false);
|
|
||||||
onComplete.run(response.body().getDto());
|
|
||||||
} else {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
Log.e("Ord Lavorazione", response.body().getErrorMessage());
|
|
||||||
onFailed.run(new Exception(response.body().getErrorMessage()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
Log.e("Ord Lavorazione", response.message());
|
|
||||||
onFailed.run(new Exception(response.message()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
Log.e("Ord Lavorazione", "Status " + response.code() + ": " + response.message());
|
|
||||||
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> call, Throwable t) {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
Log.e("Ord Lavorazione", t.toString());
|
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
|
||||||
onFailed.run(new Exception(t));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<OrdineVenditaInevasoDTO> getSelectedOrders(List<OrdineVenditaInevasoDTO> ordiniList) {
|
|
||||||
return Stream.of(ordiniList)
|
|
||||||
.filter(OrdineVenditaInevasoDTO::isSelected)
|
|
||||||
.toList();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// public void retrievePickingList(List<OrdineLavorazioneInevasoDTO> orders, RunnableArgs<List<SitArtOrdDTO>> onComplete, RunnableArgs<Exception> onFailed){
|
|
||||||
// String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_pick_lavorazione");
|
|
||||||
// perfTrace.start();
|
|
||||||
//
|
|
||||||
// List<GetPickingListDTO> getPickingListDTOs = Stream.of(orders)
|
|
||||||
// .map(x -> new GetPickingListDTO()
|
|
||||||
// .setData(x.getDataOrdS())
|
|
||||||
// .setGestione(x.getGestione())
|
|
||||||
// .setNumero(x.getNumOrd())
|
|
||||||
// .setDataConsegna(x.getDataConsS())
|
|
||||||
// .setIdViaggio(x.getIdViaggio()))
|
|
||||||
// .toList();
|
|
||||||
//
|
|
||||||
// OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class, 90);
|
|
||||||
// service.getArticoliFromOrdini(getPickingListDTOs).enqueue(new Callback<ServiceRESTResponse<List<SitArtOrdDTO>>>() {
|
|
||||||
// @Override
|
|
||||||
// public void onResponse(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Response<ServiceRESTResponse<List<SitArtOrdDTO>>> response) {
|
|
||||||
// analyzeAnswer(response, "retrieveListaArticoliFromOrdiniVendita", onComplete, onFailed);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
|
|
||||||
// UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
// Log.e("Ord Lavorazione", t.toString());
|
|
||||||
// UtilityLogger.errorMe(new Exception(t));
|
|
||||||
// onFailed.run(new Exception(t));
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void getBancaliLavorazioneGiaRegistrati(List<OrdineVenditaInevasoDTO> orders, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
|
||||||
|
|
||||||
String baseSql = "SELECT DISTINCT mtb_colt.* " +
|
|
||||||
"FROM mtb_colt, " +
|
|
||||||
" mtb_colr " +
|
|
||||||
"WHERE mtb_colt.gestione = mtb_colr.gestione " +
|
|
||||||
" AND mtb_colt.ser_collo = mtb_colr.ser_collo " +
|
|
||||||
" AND mtb_colt.data_collo = mtb_colr.data_collo " +
|
|
||||||
" AND mtb_colt.num_collo = mtb_colr.num_collo " +
|
|
||||||
" AND mtb_colt.gestione = 'L' " +
|
|
||||||
" AND mtb_colt.segno = -1 " +
|
|
||||||
// " AND mtb_colt.ser_collo = '/' " +
|
|
||||||
" AND mtb_colt.data_doc IS NULL AND ";
|
|
||||||
|
|
||||||
StringBuilder whereCond = new StringBuilder();
|
|
||||||
|
|
||||||
for(int i = 0; i < orders.size(); i++){
|
|
||||||
|
|
||||||
|
|
||||||
whereCond
|
|
||||||
.append("(mtb_colr.data_ord = '").append(UtilityDate.formatDate(orders.get(i).getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)).append("' ")
|
|
||||||
.append("AND mtb_colr.num_ord = ").append(orders.get(i).getNumOrd()).append(" ")
|
|
||||||
.append("AND mtb_colr.gestione = ").append(UtilityDB.valueToString(orders.get(i).getGestione()))
|
|
||||||
.append(") ");
|
|
||||||
|
|
||||||
if(i != (orders.size() - 1)){
|
|
||||||
whereCond.append("OR ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
baseSql += "( " + whereCond + ")";
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
|
||||||
SystemRESTConsumer.processSqlStatic(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(List<MtbColt> value) {
|
|
||||||
if(onComplete != null) onComplete.run(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
if(onFailed != null) onFailed.run(ex);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,174 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.text.Html;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.databinding.Observable;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneListGroupModelBinding;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneListModelBinding;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
|
||||||
|
|
||||||
public class ProdOrdineLavorazioneListAdapter extends SectionedRecyclerViewAdapter<ProdOrdineLavorazioneListAdapter.SubheaderHolder, ProdOrdineLavorazioneListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> mDataset;
|
|
||||||
private RunnableArgs<OrdineVenditaInevasoDTO> mOnSingleSelectionChanged;
|
|
||||||
|
|
||||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
FragmentProdOrdineLavorazioneListModelBinding binding;
|
|
||||||
|
|
||||||
SubheaderHolder(FragmentProdOrdineLavorazioneListModelBinding binding) {
|
|
||||||
super(binding.getRoot());
|
|
||||||
this.binding = binding;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
FragmentProdOrdineLavorazioneListGroupModelBinding binding;
|
|
||||||
|
|
||||||
SingleItemViewHolder(FragmentProdOrdineLavorazioneListGroupModelBinding binding) {
|
|
||||||
super(binding.getRoot());
|
|
||||||
this.binding = binding;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public ProdOrdineLavorazioneListAdapter(Context context, List<OrdineVenditaInevasoDTO> myDataset, RunnableArgs<OrdineVenditaInevasoDTO> onSingleSelectionChanged) {
|
|
||||||
mContext = context;
|
|
||||||
mDataset = orderItems(myDataset);
|
|
||||||
mOnSingleSelectionChanged = onSingleSelectionChanged;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateItems(List<OrdineVenditaInevasoDTO> updatedDataset) {
|
|
||||||
mDataset.clear();
|
|
||||||
mDataset.addAll(orderItems(updatedDataset));
|
|
||||||
notifyDataSetChanged();
|
|
||||||
notifyDataChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> orderItems(List<OrdineVenditaInevasoDTO> dataset) {
|
|
||||||
return Stream.of(dataset)
|
|
||||||
.sortBy(OrdineVenditaInevasoDTO::getRagSocOrd)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ProdOrdineLavorazioneListAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
FragmentProdOrdineLavorazioneListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_prod_ordine_lavorazione__list_model, parent, false);
|
|
||||||
return new ProdOrdineLavorazioneListAdapter.SubheaderHolder(binding);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ProdOrdineLavorazioneListAdapter.SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
FragmentProdOrdineLavorazioneListGroupModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_prod_ordine_lavorazione__list_group_model, parent, false);
|
|
||||||
return new ProdOrdineLavorazioneListAdapter.SingleItemViewHolder(binding);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindSubheaderViewHolder(ProdOrdineLavorazioneListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
|
||||||
subheaderHolder.binding.ordineLavorazioneMainListGroupHeader.setText(mDataset.get(nextItemPosition).getRagSocOrd());
|
|
||||||
|
|
||||||
subheaderHolder.binding.getRoot().setOnClickListener(v -> {
|
|
||||||
|
|
||||||
boolean anySelected = Stream.of(mDataset)
|
|
||||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
|
||||||
.anyMatch(OrdineVenditaInevasoDTO::isSelected);
|
|
||||||
|
|
||||||
Stream.of(mDataset)
|
|
||||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
|
||||||
.forEach(x -> x.setSelected(!anySelected));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindItemViewHolder(SingleItemViewHolder h, int itemPosition) {
|
|
||||||
final OrdineVenditaInevasoDTO ordine = mDataset.get(itemPosition);
|
|
||||||
final SingleItemViewHolder holder = h;
|
|
||||||
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.setTag(ordine.getNumOrd());
|
|
||||||
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.setOnCheckedChangeListener(null);
|
|
||||||
|
|
||||||
ordine.selected.resetOnPropertyChangedCallback();
|
|
||||||
|
|
||||||
|
|
||||||
String testataOrdString = String.format(mContext.getString(R.string.ord_ven_testata), String.valueOf(ordine.getNumOrd()), UtilityDate.formatDate(ordine.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerTestataOrd.setText(Html.fromHtml(testataOrdString));
|
|
||||||
|
|
||||||
String testataDataConsString = String.format(mContext.getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(ordine.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerTestataDataCons.setText(Html.fromHtml(testataDataConsString));
|
|
||||||
|
|
||||||
holder.binding.venditaMainListGroupItemContainerDetailOrd.setText(ordine.getRifOrd());
|
|
||||||
|
|
||||||
if(!UtilityString.isNullOrEmpty(ordine.getCodJcom())) {
|
|
||||||
// holder.binding.ordineLavorazioneMainListGroupItemContainerTestataCodJcom.setText(ordine.getCodJcom());
|
|
||||||
}
|
|
||||||
|
|
||||||
holder.binding.setCheckboxValue(ordine.selected);
|
|
||||||
|
|
||||||
holder.binding.getRoot().setOnClickListener(v -> {
|
|
||||||
ordine.setSelected(!ordine.isSelected());
|
|
||||||
});
|
|
||||||
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.setChecked(ordine.isSelected());
|
|
||||||
|
|
||||||
//Bindable to View
|
|
||||||
ordine.selected.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
|
||||||
@Override
|
|
||||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
|
||||||
if(holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.getTag().equals(ordine.getNumOrd())) {
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.setChecked(((BindableBoolean) sender).get());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
//View to Bindable
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
|
||||||
ordine.setSelected(isChecked);
|
|
||||||
mOnSingleSelectionChanged.run(ordine);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
|
||||||
return !this.mDataset.get(position).getRagSocOrd().equalsIgnoreCase(this.mDataset.get(position + 1).getRagSocOrd());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getItemSize() {
|
|
||||||
return mDataset.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSectionTitle(int position) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,447 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.dto;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
|
|
||||||
public class OrdineLavorazioneInevasoDTO {
|
|
||||||
|
|
||||||
private String data;
|
|
||||||
private Integer numero;
|
|
||||||
private Integer idViaggio;
|
|
||||||
private String gestione;
|
|
||||||
private String listino;
|
|
||||||
private String termCons;
|
|
||||||
private String codAuto;
|
|
||||||
private String codMdep;
|
|
||||||
private String descrizioneAuto;
|
|
||||||
private String codVvet;
|
|
||||||
private String descrizioneVettore;
|
|
||||||
private String dataInizTrasp;
|
|
||||||
private String descrizionePaga;
|
|
||||||
private String rifOrd;
|
|
||||||
private String codAnagOrd;
|
|
||||||
private String codJcom;
|
|
||||||
private String descrizioneCom;
|
|
||||||
private String ragSocCom;
|
|
||||||
private String ragSocOrd;
|
|
||||||
private String destinatario;
|
|
||||||
private String citta;
|
|
||||||
private String provincia;
|
|
||||||
private String indirizzo;
|
|
||||||
private BigDecimal pesoTotale;
|
|
||||||
private BigDecimal numCnfdaEvadere;
|
|
||||||
private BigDecimal numCnfDisp;
|
|
||||||
private String dataCons;
|
|
||||||
private String barcode;
|
|
||||||
private Integer numRighe;
|
|
||||||
private Integer righeInPartenza;
|
|
||||||
private BigDecimal saldoContabile;
|
|
||||||
private String codVzon;
|
|
||||||
private String ragSocOrdV;
|
|
||||||
private int colliRiservati;
|
|
||||||
private boolean existColloBoolean;
|
|
||||||
private boolean flagEvaso;
|
|
||||||
private String nomeAgente;
|
|
||||||
private String codJfas;
|
|
||||||
|
|
||||||
public BindableBoolean selected;
|
|
||||||
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO() {
|
|
||||||
this.selected = new BindableBoolean(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String getDataOrdS() {
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getDataOrdD() {
|
|
||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setData(String data) {
|
|
||||||
this.data = data;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getNumOrd() {
|
|
||||||
return numero;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setNumero(Integer numero) {
|
|
||||||
this.numero = numero;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getIdViaggio() {
|
|
||||||
return idViaggio;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setIdViaggio(Integer idViaggio) {
|
|
||||||
this.idViaggio = idViaggio;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGestione() {
|
|
||||||
return gestione;
|
|
||||||
}
|
|
||||||
|
|
||||||
public GestioneEnum getGestioneEnum() {
|
|
||||||
return GestioneEnum.fromString(getGestione());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setGestione(String gestione) {
|
|
||||||
this.gestione = gestione;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getListino() {
|
|
||||||
return listino;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setListino(String listino) {
|
|
||||||
this.listino = listino;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTermCons() {
|
|
||||||
return termCons;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setTermCons(String termCons) {
|
|
||||||
this.termCons = termCons;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodAuto() {
|
|
||||||
return codAuto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodAuto(String codAuto) {
|
|
||||||
this.codAuto = codAuto;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodMdep() {
|
|
||||||
return codMdep;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodMdep(String codMdep) {
|
|
||||||
this.codMdep = codMdep;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizioneAuto() {
|
|
||||||
return descrizioneAuto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDescrizioneAuto(String descrizioneAuto) {
|
|
||||||
this.descrizioneAuto = descrizioneAuto;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodVvet() {
|
|
||||||
return codVvet;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodVvet(String codVvet) {
|
|
||||||
this.codVvet = codVvet;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizioneVettore() {
|
|
||||||
return descrizioneVettore;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDescrizioneVettore(String descrizioneVettore) {
|
|
||||||
this.descrizioneVettore = descrizioneVettore;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDataInizTraspS() {
|
|
||||||
return dataInizTrasp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getDataInizTraspD() throws ParseException {
|
|
||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataInizTraspS());
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDataInizTrasp(String dataInizTrasp) {
|
|
||||||
this.dataInizTrasp = dataInizTrasp;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizionePaga() {
|
|
||||||
return descrizionePaga;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDescrizionePaga(String descrizionePaga) {
|
|
||||||
this.descrizionePaga = descrizionePaga;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRifOrd() {
|
|
||||||
return rifOrd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setRifOrd(String rifOrd) {
|
|
||||||
this.rifOrd = rifOrd;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodAnagOrd() {
|
|
||||||
return codAnagOrd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodAnagOrd(String codAnagOrd) {
|
|
||||||
this.codAnagOrd = codAnagOrd;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodJcom() {
|
|
||||||
return codJcom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodJcom(String codJcom) {
|
|
||||||
this.codJcom = codJcom;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizioneCom() {
|
|
||||||
return descrizioneCom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDescrizioneCom(String descrizioneCom) {
|
|
||||||
this.descrizioneCom = descrizioneCom;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRagSocCom() {
|
|
||||||
return ragSocCom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setRagSocCom(String ragSocCom) {
|
|
||||||
this.ragSocCom = ragSocCom;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRagSocOrd() {
|
|
||||||
return ragSocOrd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setRagSocOrd(String ragSocOrd) {
|
|
||||||
this.ragSocOrd = ragSocOrd;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDestinatario() {
|
|
||||||
return destinatario;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDestinatario(String destinatario) {
|
|
||||||
this.destinatario = destinatario;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCitta() {
|
|
||||||
return citta;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCitta(String citta) {
|
|
||||||
this.citta = citta;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getProvincia() {
|
|
||||||
return provincia;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setProvincia(String provincia) {
|
|
||||||
this.provincia = provincia;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIndirizzo() {
|
|
||||||
return indirizzo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setIndirizzo(String indirizzo) {
|
|
||||||
this.indirizzo = indirizzo;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getPesoTotale() {
|
|
||||||
return pesoTotale;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setPesoTotale(BigDecimal pesoTotale) {
|
|
||||||
this.pesoTotale = pesoTotale;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getNumCnfdaEvadere() {
|
|
||||||
return numCnfdaEvadere;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setNumCnfdaEvadere(BigDecimal numCnfdaEvadere) {
|
|
||||||
this.numCnfdaEvadere = numCnfdaEvadere;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getNumCnfDisp() {
|
|
||||||
return numCnfDisp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setNumCnfDisp(BigDecimal numCnfDisp) {
|
|
||||||
this.numCnfDisp = numCnfDisp;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDataConsS() {
|
|
||||||
return dataCons;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getDataConsD() {
|
|
||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataConsS());
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDataCons(String dataCons) {
|
|
||||||
this.dataCons = dataCons;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBarcode() {
|
|
||||||
return barcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setBarcode(String barcode) {
|
|
||||||
this.barcode = barcode;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getNumRighe() {
|
|
||||||
return numRighe;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setNumRighe(Integer numRighe) {
|
|
||||||
this.numRighe = numRighe;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getRigheInPartenza() {
|
|
||||||
return righeInPartenza;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setRigheInPartenza(Integer righeInPartenza) {
|
|
||||||
this.righeInPartenza = righeInPartenza;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getSaldoContabile() {
|
|
||||||
return saldoContabile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setSaldoContabile(BigDecimal saldoContabile) {
|
|
||||||
this.saldoContabile = saldoContabile;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodVzon() {
|
|
||||||
return codVzon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodVzon(String codVzon) {
|
|
||||||
this.codVzon = codVzon;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRagSocOrdV() {
|
|
||||||
return ragSocOrdV;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setRagSocOrdV(String ragSocOrdV) {
|
|
||||||
this.ragSocOrdV = ragSocOrdV;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getColliRiservati() {
|
|
||||||
return colliRiservati;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setColliRiservati(int colliRiservati) {
|
|
||||||
this.colliRiservati = colliRiservati;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isExistColloBoolean() {
|
|
||||||
return existColloBoolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setExistColloBoolean(boolean existColloBoolean) {
|
|
||||||
this.existColloBoolean = existColloBoolean;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isFlagEvaso() {
|
|
||||||
return flagEvaso;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setFlagEvaso(boolean flagEvaso) {
|
|
||||||
this.flagEvaso = flagEvaso;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNomeAgente() {
|
|
||||||
return nomeAgente;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setNomeAgente(String nomeAgente) {
|
|
||||||
this.nomeAgente = nomeAgente;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodJfas() {
|
|
||||||
return codJfas;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodJfas(String codJfas) {
|
|
||||||
this.codJfas = codJfas;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isSelected() {
|
|
||||||
return selected.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setSelected(boolean selected) {
|
|
||||||
this.selected.set(selected);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o) return true;
|
|
||||||
if (o == null || getClass() != o.getClass()) return false;
|
|
||||||
|
|
||||||
OrdineLavorazioneInevasoDTO that = (OrdineLavorazioneInevasoDTO) o;
|
|
||||||
|
|
||||||
if (!data.equals(that.data)) return false;
|
|
||||||
if (!numero.equals(that.numero)) return false;
|
|
||||||
return getGestione().equals(that.getGestione());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
int result = data.hashCode();
|
|
||||||
result = 31 * result + numero.hashCode();
|
|
||||||
result = 31 * result + getGestione().hashCode();
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface ProdPosizionamentoDaOrdComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
|
||||||
|
ProdPosizionamentoDaOrdComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(ProdPosizionamentoDaOrdFragment prodPosizionamentoDaOrdFragment);
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentProdPosizionamentoDaOrdBinding;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A simple {@link Fragment} subclass.
|
||||||
|
* Use the {@link ProdPosizionamentoDaOrdFragment#newInstance} factory method to
|
||||||
|
* create an instance of this fragment.
|
||||||
|
*/
|
||||||
|
public class ProdPosizionamentoDaOrdFragment extends Fragment {
|
||||||
|
|
||||||
|
private FragmentProdPosizionamentoDaOrdBinding mBinding = null;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
ProdPosizionamentoDaOrdViewModel mViewModel;
|
||||||
|
|
||||||
|
public ProdPosizionamentoDaOrdFragment() {
|
||||||
|
// Required empty public constructor
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static ProdPosizionamentoDaOrdFragment newInstance() {
|
||||||
|
ProdPosizionamentoDaOrdFragment fragment = new ProdPosizionamentoDaOrdFragment();
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
// Inflate the layout for this fragment
|
||||||
|
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_posizionamento_da_ord, container,false);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.prodPosizionamentoDaOrdComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
// mViewModel.setListener(this);
|
||||||
|
|
||||||
|
mBinding.setLifecycleOwner(this);
|
||||||
|
mBinding.setView(this);
|
||||||
|
mBinding.setViewmodel(mViewModel);
|
||||||
|
|
||||||
|
return mBinding.getRoot();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = ProdPosizionamentoDaOrdComponent.class)
|
||||||
|
public class ProdPosizionamentoDaOrdModule {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
ProdPosizionamentoDaOrdViewModel providesProdPosizionamentoDaOrdViewModel() {
|
||||||
|
return new ProdPosizionamentoDaOrdViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
public class ProdPosizionamentoDaOrdViewModel {
|
||||||
|
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public ProdPosizionamentoDaOrdViewModel() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,27 +3,23 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import java.util.ArrayList;
|
||||||
import android.view.View;
|
import java.util.List;
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
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.interfaces.IPoppableActivity;
|
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdRecuperoMaterialeBinding;
|
import it.integry.integrywmsnative.databinding.FragmentProdRecuperoMaterialeBinding;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuperoMaterialeHelper;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuperoMaterialeHelper;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.viewmodel.ProdRecuperoMaterialeViewModel;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.viewmodel.ProdRecuperoMaterialeViewModel;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.viewmodel.ProdVersamentoMaterialViewModel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A simple {@link Fragment} subclass.
|
* A simple {@link Fragment} subclass.
|
||||||
@@ -33,6 +29,8 @@ public class ProdRecuperoMaterialeFragment extends Fragment implements ITitledFr
|
|||||||
private ProdRecuperoMaterialeViewModel mViewmodel;
|
private ProdRecuperoMaterialeViewModel mViewmodel;
|
||||||
private ProdRecuperoMaterialeHelper mHelper;
|
private ProdRecuperoMaterialeHelper mHelper;
|
||||||
|
|
||||||
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
public ProdRecuperoMaterialeFragment() {
|
public ProdRecuperoMaterialeFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
@@ -57,7 +55,6 @@ public class ProdRecuperoMaterialeFragment extends Fragment implements ITitledFr
|
|||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_recupero_materiale, container, false);
|
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_recupero_materiale, container, false);
|
||||||
|
|
||||||
|
|
||||||
init();
|
init();
|
||||||
return mBinding.getRoot();
|
return mBinding.getRoot();
|
||||||
}
|
}
|
||||||
@@ -75,10 +72,17 @@ public class ProdRecuperoMaterialeFragment extends Fragment implements ITitledFr
|
|||||||
titleText.setText(context.getText(R.string.prod_recupero_materiale_title_fragment).toString());
|
titleText.setText(context.getText(R.string.prod_recupero_materiale_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -262,7 +262,7 @@ public class ProdRecuperoMaterialeHelper {
|
|||||||
.distinct()
|
.distinct()
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
ArticoloRESTConsumer.getByCodMart(codMarts, arts -> {
|
ArticoloRESTConsumer.getByCodMartStatic(codMarts, arts -> {
|
||||||
|
|
||||||
if(arts != null && arts.size() > 0) {
|
if(arts != null && arts.size() > 0) {
|
||||||
for (HistoryVersamentoProdULDTO value : newUlList) {
|
for (HistoryVersamentoProdULDTO value : newUlList) {
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_recupero_materiale.viewmodel;
|
package it.integry.integrywmsnative.gest.prod_recupero_materiale.viewmodel;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.databinding.ObservableField;
|
import androidx.databinding.ObservableField;
|
||||||
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
@@ -18,6 +17,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
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.BarcodeCallbackDTO;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
@@ -31,6 +31,7 @@ import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsume
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.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.UtilityProgress;
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
@@ -39,15 +40,16 @@ import it.integry.integrywmsnative.databinding.FragmentProdRecuperoMaterialeBind
|
|||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.HistoryULsListAdapter;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.HistoryULsListAdapter;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuperoMaterialeHelper;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuperoMaterialeHelper;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersamentoProdULDTO;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersamentoProdULDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
|
||||||
|
|
||||||
public class ProdRecuperoMaterialeViewModel {
|
public class ProdRecuperoMaterialeViewModel {
|
||||||
|
|
||||||
private Context mContext;
|
private FragmentActivity mContext;
|
||||||
|
|
||||||
private FragmentProdRecuperoMaterialeBinding mBinding;
|
private FragmentProdRecuperoMaterialeBinding mBinding;
|
||||||
private ProdRecuperoMaterialeHelper mHelper;
|
private ProdRecuperoMaterialeHelper mHelper;
|
||||||
@@ -61,7 +63,7 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
|
|
||||||
private int barcodeScannerIstanceID = -1;
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
|
||||||
public void init(Activity context, FragmentProdRecuperoMaterialeBinding binding, ProdRecuperoMaterialeHelper helper, Runnable onRecuperoCompleted) {
|
public void init(FragmentActivity context, FragmentProdRecuperoMaterialeBinding binding, ProdRecuperoMaterialeHelper helper, Runnable onRecuperoCompleted) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mBinding = binding;
|
mBinding = binding;
|
||||||
mHelper = helper;
|
mHelper = helper;
|
||||||
@@ -79,7 +81,6 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void initBarcode() {
|
private void initBarcode() {
|
||||||
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
.setOnScanSuccessfull(onScanSuccessful)
|
.setOnScanSuccessfull(onScanSuccessful)
|
||||||
@@ -97,13 +98,12 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
|
|
||||||
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||||
|
|
||||||
if(UtilityBarcode.isEtichettaAnonima(data) || UtilityBarcode.isEtichetta128(data)){
|
if (UtilityBarcode.isEtichettaAnonima(data) || UtilityBarcode.isEtichetta128(data)) {
|
||||||
this.executeEtichettaUL(data, progressDialog);
|
this.executeEtichettaUL(data, progressDialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,10 +112,10 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
private void executeEtichettaUL(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) {
|
private void executeEtichettaUL(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) {
|
||||||
ColliMagazzinoRESTConsumer.getBySSCCStatic(barcodeScanDTO.getStringValue(), true, false, mtbColt -> {
|
ColliMagazzinoRESTConsumer.getBySSCCStatic(barcodeScanDTO.getStringValue(), true, false, mtbColt -> {
|
||||||
|
|
||||||
if(mtbColt != null) {
|
if (mtbColt != null) {
|
||||||
|
|
||||||
HistoryVersamentoProdULDTO historyVersamentoProdULRestDTO = this.getHistoryElementFromMtbColt(mtbColt);
|
HistoryVersamentoProdULDTO historyVersamentoProdULRestDTO = this.getHistoryElementFromMtbColt(mtbColt);
|
||||||
if(historyVersamentoProdULRestDTO != null) {
|
if (historyVersamentoProdULRestDTO != null) {
|
||||||
this.dispatchItem(historyVersamentoProdULRestDTO, mtbColt, progressDialog);
|
this.dispatchItem(historyVersamentoProdULRestDTO, mtbColt, progressDialog);
|
||||||
} else {
|
} else {
|
||||||
DialogCommon.showNoULFound(mContext, () -> {
|
DialogCommon.showNoULFound(mContext, () -> {
|
||||||
@@ -146,7 +146,7 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
x.getGestioneRif().equalsIgnoreCase(mtbColt.getGestione()))
|
x.getGestioneRif().equalsIgnoreCase(mtbColt.getGestione()))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if(filteredItems != null && filteredItems.size() > 0) {
|
if (filteredItems != null && filteredItems.size() > 0) {
|
||||||
return filteredItems.get(0);
|
return filteredItems.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -154,38 +154,75 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// private void dispatchItem(HistoryVersamentoProdULDTO item, MtbColt sourceMtbColt, Dialog dialogProgress) {
|
||||||
|
// BigDecimal qtaDaEvadere = BigDecimal.ZERO;
|
||||||
|
//
|
||||||
|
// qtaDaEvadere = qtaDaEvadere.add(item.getQtaCol());
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
||||||
|
// .setBatchLot(item.getPartitaMag())
|
||||||
|
// .setQtaDaEvadere(null)
|
||||||
|
// .setQtaOrd(null)
|
||||||
|
// .setMtbAart(item.getMtbAart())
|
||||||
|
// .setCanPartitaMagBeChanged(false)
|
||||||
|
// .setNumCnf(1)
|
||||||
|
// .setQtaCnf(item.getQtaCnf())
|
||||||
|
// .setQtaTot(item.getQtaCnf())
|
||||||
|
// .setMaxQta(qtaDaEvadere)
|
||||||
|
// .setQtaDisponibile(qtaDaEvadere);
|
||||||
|
//
|
||||||
|
// DialogInputQuantity.makeBase(mContext, dto, false, quantity -> {
|
||||||
|
// onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress);
|
||||||
|
// }, () -> {
|
||||||
|
// if (dialogProgress != null) dialogProgress.dismiss();
|
||||||
|
// }).show();
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
private void dispatchItem(HistoryVersamentoProdULDTO item, MtbColt sourceMtbColt, Dialog dialogProgress) {
|
private void dispatchItem(HistoryVersamentoProdULDTO item, MtbColt sourceMtbColt, Dialog dialogProgress) {
|
||||||
BigDecimal qtaDaEvadere = BigDecimal.ZERO;
|
BigDecimal qtaDaEvadere = BigDecimal.ZERO;
|
||||||
|
BigDecimal numCnfDaEvadere = BigDecimal.ZERO;
|
||||||
|
|
||||||
qtaDaEvadere = qtaDaEvadere.add(item.getQtaCol());
|
qtaDaEvadere = qtaDaEvadere.add(item.getQtaCol());
|
||||||
|
|
||||||
|
if(!UtilityBigDecimal.equalsTo(qtaDaEvadere, BigDecimal.ZERO)) {
|
||||||
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
numCnfDaEvadere = UtilityBigDecimal.divide(qtaDaEvadere, item.getQtaCnf());
|
||||||
.setBatchLot(item.getPartitaMag())
|
|
||||||
.setQtaDaEvadere(null)
|
|
||||||
.setQtaOrd(null)
|
|
||||||
.setMtbAart(item.getMtbAart())
|
|
||||||
.setCanPartitaMagBeChanged(false)
|
|
||||||
.setNumCnf(1)
|
|
||||||
.setQtaCnf(item.getQtaCnf())
|
|
||||||
.setQtaTot(item.getQtaCnf())
|
|
||||||
.setMaxQta(qtaDaEvadere)
|
|
||||||
.setQtaDisponibile(qtaDaEvadere);
|
|
||||||
|
|
||||||
DialogInputQuantity.makeBase(mContext, dto, false, quantity -> {
|
|
||||||
onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress);
|
|
||||||
}, () -> {
|
|
||||||
if(dialogProgress != null) dialogProgress.dismiss();
|
|
||||||
}).show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||||
|
.setMtbAart(item.getMtbAart())
|
||||||
|
.setInitialNumCnf(BigDecimal.ONE)
|
||||||
|
.setInitialQtaCnf(item.getQtaCnf())
|
||||||
|
.setInitialQtaTot(item.getQtaCnf())
|
||||||
|
|
||||||
|
.setTotalQtaAvailable(qtaDaEvadere)
|
||||||
|
.setTotalNumCnfAvailable(numCnfDaEvadere)
|
||||||
|
.setQtaCnfAvailable(item.getQtaCnf())
|
||||||
|
.setPartitaMag(item.getPartitaMag())
|
||||||
|
// .setDataScad(item.getDa)
|
||||||
|
.setCanOverflowOrderQuantity(false)
|
||||||
|
.setCanLUBeClosed(false);
|
||||||
|
|
||||||
|
DialogInputQuantityV2
|
||||||
|
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||||
|
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||||
|
.setNumCnf(resultDTO.getNumCnf())
|
||||||
|
.setQtaCnf(resultDTO.getQtaCnf())
|
||||||
|
.setQtaTot(resultDTO.getQtaTot())
|
||||||
|
.setPartitaMag(resultDTO.getPartitaMag())
|
||||||
|
.setDataScad(resultDTO.getDataScad());
|
||||||
|
|
||||||
|
onItemDispatched(item, resultDTO.getQtaTot(), sourceMtbColt, dialogProgress);
|
||||||
|
}, () -> {
|
||||||
|
if (dialogProgress != null) dialogProgress.dismiss();
|
||||||
|
})
|
||||||
|
.show(mContext.getSupportFragmentManager(), "tag");
|
||||||
|
}
|
||||||
|
|
||||||
private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal quantity, MtbColt sourceMtbColt, Dialog progress) {
|
private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal quantity, MtbColt sourceMtbColt, Dialog progress) {
|
||||||
|
|
||||||
if(progress == null) {
|
if (progress == null) {
|
||||||
progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||||
}
|
}
|
||||||
Dialog finalProgress = progress;
|
Dialog finalProgress = progress;
|
||||||
@@ -197,7 +234,7 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
.setGestione(item.getGestione())
|
.setGestione(item.getGestione())
|
||||||
.setMtbColr(new ObservableArrayList<>());
|
.setMtbColr(new ObservableArrayList<>());
|
||||||
|
|
||||||
for(HistoryVersamentoProdULDTO.OrdineDto ordine : item.getOrdini()) {
|
for (HistoryVersamentoProdULDTO.OrdineDto ordine : item.getOrdini()) {
|
||||||
BigDecimal qtaCol = quantity.multiply(new BigDecimal(-1).multiply(new BigDecimal(ordine.getPercentageHr()))).divide(new BigDecimal(100), 3, RoundingMode.HALF_EVEN);
|
BigDecimal qtaCol = quantity.multiply(new BigDecimal(-1).multiply(new BigDecimal(ordine.getPercentageHr()))).divide(new BigDecimal(100), 3, RoundingMode.HALF_EVEN);
|
||||||
|
|
||||||
final MtbColr mtbColrScarico = new MtbColr()
|
final MtbColr mtbColrScarico = new MtbColr()
|
||||||
@@ -220,18 +257,17 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mtbColtScarico.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
mtbColtScarico.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
|
||||||
RunnableArgss<MtbColt, Boolean> saveRunnable = (mtbColt, createdLU) -> {
|
RunnableArgss<MtbColt, Boolean> saveRunnable = (mtbColt, createdLU) -> {
|
||||||
|
|
||||||
if(mtbColt != null) {
|
if (mtbColt != null) {
|
||||||
|
|
||||||
List<MtbColt> colliToSave = new ArrayList<>();
|
List<MtbColt> colliToSave = new ArrayList<>();
|
||||||
boolean shouldPrint = false;
|
boolean shouldPrint = false;
|
||||||
|
|
||||||
if(!Objects.equals(mtbColt.getNumCollo(), item.getNumColloRif()) ||
|
if (!Objects.equals(mtbColt.getNumCollo(), item.getNumColloRif()) ||
|
||||||
!Objects.equals(mtbColt.getSerCollo(), item.getSerColloRif()) ||
|
!Objects.equals(mtbColt.getSerCollo(), item.getSerColloRif()) ||
|
||||||
!Objects.equals(mtbColt.getDataColloS(), item.getDataColloRif()) ||
|
!Objects.equals(mtbColt.getDataColloS(), item.getDataColloRif()) ||
|
||||||
!Objects.equals(mtbColt.getGestione(), item.getGestioneRif())) {
|
!Objects.equals(mtbColt.getGestione(), item.getGestioneRif())) {
|
||||||
@@ -263,11 +299,11 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
colliToSave.add(mtbColtScarico);
|
colliToSave.add(mtbColtScarico);
|
||||||
|
|
||||||
boolean finalShouldPrint = shouldPrint;
|
boolean finalShouldPrint = shouldPrint;
|
||||||
ColliMagazzinoRESTConsumer.saveColli(colliToSave, value -> {
|
ColliMagazzinoRESTConsumer.saveColliStatic(colliToSave, value -> {
|
||||||
|
|
||||||
FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
|
|
||||||
if(finalShouldPrint) {
|
if (finalShouldPrint) {
|
||||||
printCollo(finalProgress, value.get(0), () -> {
|
printCollo(finalProgress, value.get(0), () -> {
|
||||||
this.refreshAdapter();
|
this.refreshAdapter();
|
||||||
mOnRecuperoCompleted.run();
|
mOnRecuperoCompleted.run();
|
||||||
@@ -287,7 +323,7 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if(sourceMtbColt != null) saveRunnable.run(sourceMtbColt, false);
|
if (sourceMtbColt != null) saveRunnable.run(sourceMtbColt, false);
|
||||||
else DialogScanOrCreateLU.make(mContext, true, false, saveRunnable).show();
|
else DialogScanOrCreateLU.make(mContext, true, false, saveRunnable).show();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -329,9 +365,8 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
||||||
ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
String reportName = ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum());
|
||||||
|
|
||||||
PrinterRESTConsumer.printColloStatic(
|
PrinterRESTConsumer.printColloStatic(
|
||||||
printerName,
|
printerName,
|
||||||
@@ -339,11 +374,9 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
1,
|
1,
|
||||||
reportName, onComplete, onAbort);
|
reportName, onComplete, onAbort);
|
||||||
|
|
||||||
}, onAbort);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void refreshAdapter() {
|
private void refreshAdapter() {
|
||||||
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||||
|
|
||||||
@@ -360,5 +393,4 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,16 @@ package it.integry.integrywmsnative.gest.prod_versamento_materiale;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import java.util.ArrayList;
|
||||||
import android.view.View;
|
import java.util.List;
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||||
@@ -17,7 +19,6 @@ import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
|||||||
import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeBinding;
|
import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeBinding;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.viewmodel.ProdVersamentoMaterialViewModel;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.viewmodel.ProdVersamentoMaterialViewModel;
|
||||||
import it.integry.integrywmsnative.gest.versamento_merce.viewmodel.VersamentoMerceViewModel;
|
|
||||||
|
|
||||||
public class ProdVersamentoMaterialeFragment extends Fragment implements ITitledFragment {
|
public class ProdVersamentoMaterialeFragment extends Fragment implements ITitledFragment {
|
||||||
|
|
||||||
@@ -25,6 +26,8 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
|
|||||||
private ProdVersamentoMaterialViewModel mViewmodel;
|
private ProdVersamentoMaterialViewModel mViewmodel;
|
||||||
private ProdVersamentoMaterialHelper mHelper;
|
private ProdVersamentoMaterialHelper mHelper;
|
||||||
|
|
||||||
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
public ProdVersamentoMaterialeFragment() {
|
public ProdVersamentoMaterialeFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
@@ -40,9 +43,7 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
|
|||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
|
||||||
mViewmodel = new ProdVersamentoMaterialViewModel();
|
mViewmodel = new ProdVersamentoMaterialViewModel();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -58,17 +59,13 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Context context) {
|
public void onDestroy() {
|
||||||
super.onAttach(context);
|
super.onDestroy();
|
||||||
|
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDetach() {
|
|
||||||
super.onDetach();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -81,7 +78,6 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
|
|||||||
});
|
});
|
||||||
|
|
||||||
mViewmodel.openLU();
|
mViewmodel.openLU();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -89,4 +85,9 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
|
|||||||
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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ public class ProdVersamentoMaterialViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void choosePosition() {
|
private void choosePosition() {
|
||||||
DialogAskPositionOfLU.makeBase(mContext, null, true, (status, mtbDepoPosizione) -> {
|
DialogAskPositionOfLU.makeBase(mContext, true, (status, mtbDepoPosizione) -> {
|
||||||
|
|
||||||
if (status == DialogConsts.Results.ABORT) {
|
if (status == DialogConsts.Results.ABORT) {
|
||||||
((IPoppableActivity) mContext).pop();
|
((IPoppableActivity) mContext).pop();
|
||||||
|
|||||||
@@ -58,12 +58,17 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
|||||||
private List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
private List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
||||||
private boolean mRedirectToNewOrder = true;
|
private boolean mRedirectToNewOrder = true;
|
||||||
|
|
||||||
|
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
GrigliaRepository mGrigliaRepository;
|
GrigliaRepository mGrigliaRepository;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ArticoliOrdineRepository mArticoliOrdineRepository;
|
ArticoliOrdineRepository mArticoliOrdineRepository;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ArticoloGrigliaRepository mArticoloGrigliaRepository;
|
ArticoloGrigliaRepository mArticoloGrigliaRepository;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
OrdineRepository mOrdineRepository;
|
OrdineRepository mOrdineRepository;
|
||||||
|
|
||||||
@@ -117,6 +122,11 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
|||||||
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
private void setGriglia(Griglia griglia) {
|
private void setGriglia(Griglia griglia) {
|
||||||
mGriglia = griglia;
|
mGriglia = griglia;
|
||||||
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
|
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
|
||||||
@@ -191,8 +201,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void deleteOrdine(Ordine ordine) {
|
private void deleteOrdine(Ordine ordine) {
|
||||||
|
|
||||||
|
|
||||||
String text = "Stai per eliminare un ordine sei sicuro?";
|
String text = "Stai per eliminare un ordine sei sicuro?";
|
||||||
|
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(getActivity(), new SpannableString(Html.fromHtml(text)), null, () -> getActivity().runOnUiThread(() -> {
|
DialogSimpleMessageHelper.makeWarningDialog(getActivity(), new SpannableString(Html.fromHtml(text)), null, () -> getActivity().runOnUiThread(() -> {
|
||||||
@@ -231,8 +239,8 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -242,4 +250,13 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
|||||||
fetchOrders();
|
fetchOrders();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,114 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.pv_ordini_acquisto;
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.text.SpannableString;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.implementations.OrdineDataSource;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniATrasmessiElencoBinding;
|
|
||||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.core.OrdineAcquistoPvTransmittedListAdapter;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzato;
|
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|
||||||
|
|
||||||
public class PVOrdiniAcquistoTransmittedListFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
|
||||||
|
|
||||||
private FragmentPvOrdiniATrasmessiElencoBinding mBinding;
|
|
||||||
private OrdineAcquistoPvTransmittedListAdapter mAdapter;
|
|
||||||
|
|
||||||
private List<OrdineWithGriglia> mOriginalOrderList;
|
|
||||||
private List<OrdineWithGriglia> mRenderedOrderList = new ArrayList<>();
|
|
||||||
|
|
||||||
private DialogOrdineProduzioneFiltroAvanzato.DialogOrdineProduzioneFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
|
||||||
|
|
||||||
public PVOrdiniAcquistoTransmittedListFragment() {
|
|
||||||
// Required empty public constructor
|
|
||||||
}
|
|
||||||
|
|
||||||
public static PVOrdiniAcquistoTransmittedListFragment newInstance() {
|
|
||||||
PVOrdiniAcquistoTransmittedListFragment fragment = new PVOrdiniAcquistoTransmittedListFragment();
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
fragment.setArguments(args);
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
|
|
||||||
// Inflate the layout for this fragment
|
|
||||||
|
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_pv_ordini_a_trasmessi_elenco, container, false);
|
|
||||||
mBinding.setView(this);
|
|
||||||
|
|
||||||
|
|
||||||
//init();
|
|
||||||
return mBinding.getRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
|
||||||
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFilterClick() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void init(){
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
|
||||||
|
|
||||||
|
|
||||||
//TODO: resolve databinding
|
|
||||||
OrdineDataSource repository = null; //new OrdineDataSource();
|
|
||||||
|
|
||||||
repository.selectAllTransmitted((ordini)->{
|
|
||||||
mOriginalOrderList = ordini;
|
|
||||||
mBinding.ordiniAEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
|
|
||||||
refreshRenderedOrdini(ordini);
|
|
||||||
initRecyclerView();
|
|
||||||
progress.dismiss();
|
|
||||||
},(e)->{
|
|
||||||
progress.dismiss();
|
|
||||||
String errorMessage = e.getMessage();
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initRecyclerView() {
|
|
||||||
mAdapter = new OrdineAcquistoPvTransmittedListAdapter(getActivity(), mRenderedOrderList);
|
|
||||||
mBinding.ordineAMainList.setAdapter(mAdapter);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void refreshRenderedOrdini(List<OrdineWithGriglia> ordini) {
|
|
||||||
mRenderedOrderList.clear();
|
|
||||||
if(ordini != null) mRenderedOrderList.addAll(ordini);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,133 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.pv_ordini_acquisto.core;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.text.Html;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentOrdineAPvTransmittedListModelBinding;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentOrdiniAPvListSingleItemBinding;
|
|
||||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
|
||||||
|
|
||||||
public class OrdineAcquistoPvTransmittedListAdapter extends SectionedRecyclerViewAdapter<OrdineAcquistoPvTransmittedListAdapter.SubheaderHolder, OrdineAcquistoPvTransmittedListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
|
||||||
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
private List<OrdineWithGriglia> mOriginalDataset;
|
|
||||||
private List<OrdineWithGriglia> mDataset;
|
|
||||||
|
|
||||||
|
|
||||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
FragmentOrdineAPvTransmittedListModelBinding binding;
|
|
||||||
|
|
||||||
SubheaderHolder(FragmentOrdineAPvTransmittedListModelBinding binding) {
|
|
||||||
super(binding.getRoot());
|
|
||||||
this.binding = binding;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
FragmentOrdiniAPvListSingleItemBinding binding;
|
|
||||||
|
|
||||||
SingleItemViewHolder(FragmentOrdiniAPvListSingleItemBinding binding) {
|
|
||||||
super(binding.getRoot());
|
|
||||||
this.binding = binding;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public OrdineAcquistoPvTransmittedListAdapter(Context context, List<OrdineWithGriglia> myDataset) {
|
|
||||||
mContext = context;
|
|
||||||
mOriginalDataset = myDataset;
|
|
||||||
mDataset = orderItems(myDataset);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateItems(List<OrdineWithGriglia> updatedDataset) {
|
|
||||||
mDataset.clear();
|
|
||||||
mDataset.addAll(orderItems(updatedDataset));
|
|
||||||
notifyDataSetChanged();
|
|
||||||
notifyDataChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private List<OrdineWithGriglia> orderItems(List<OrdineWithGriglia> dataset) {
|
|
||||||
return Stream.of(dataset)
|
|
||||||
.distinctBy(OrdineWithGriglia::getGriglia)
|
|
||||||
.sortBy(x -> UtilityDate.formatDate(x.getOrdine().getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
FragmentOrdineAPvTransmittedListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_ordine_a_pv_transmitted__list_model, parent, false);
|
|
||||||
return new SubheaderHolder(binding);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
FragmentOrdiniAPvListSingleItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_ordini_a_pv__list_single_item, parent, false);
|
|
||||||
return new SingleItemViewHolder(binding);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindSubheaderViewHolder(OrdineAcquistoPvTransmittedListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
|
||||||
subheaderHolder.binding.ordineAPvMainListGroupHeader.setText(mDataset.get(nextItemPosition).getGriglia().getCodAlis());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindItemViewHolder(OrdineAcquistoPvTransmittedListAdapter.SingleItemViewHolder h, int itemPosition) {
|
|
||||||
final OrdineWithGriglia ordine = mDataset.get(itemPosition);
|
|
||||||
final OrdineAcquistoPvTransmittedListAdapter.SingleItemViewHolder holder = h;
|
|
||||||
|
|
||||||
|
|
||||||
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdine().getOrdineId()), UtilityDate.formatDate(ordine.getOrdine().getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
|
||||||
|
|
||||||
holder.binding.badge1.setText(ordine.getOrdine().isTransmitted() ? "TRASMESSO" : "NON TRASMESSO");
|
|
||||||
|
|
||||||
holder.binding.descriptionMain.setText(Html.fromHtml(testataOrdString));
|
|
||||||
|
|
||||||
|
|
||||||
holder.binding.getRoot().setOnClickListener(v -> {
|
|
||||||
//TODO: aprire descrizione Ordine
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
|
||||||
return !(this.mDataset.get(position).getGriglia().getGrigliaId() == this.mDataset.get(position + 1).getGriglia().getGrigliaId());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getItemSize() {
|
|
||||||
return mDataset.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSectionTitle(int position) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -75,7 +75,7 @@ public class DialogScanLisA {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
|
|
||||||
final Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
final Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||||
@@ -16,6 +15,7 @@ import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepositor
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
public class OrdineAcquistoPvHelper {
|
public class OrdineAcquistoPvHelper {
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ public class OrdineAcquistoPvHelper {
|
|||||||
|
|
||||||
public void createNewOrder(Griglia griglia, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {
|
public void createNewOrder(Griglia griglia, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {
|
||||||
Ordine ordine = new Ordine();
|
Ordine ordine = new Ordine();
|
||||||
ordine.setDataIns(new Date());
|
ordine.setDataIns(UtilityDate.getDateInstance());
|
||||||
ordine.setIdGriglia(griglia.getGrigliaId());
|
ordine.setIdGriglia(griglia.getGrigliaId());
|
||||||
mOrdineRepository.insert(ordine, id -> {
|
mOrdineRepository.insert(ordine, id -> {
|
||||||
ordine.setOrdineId(id);
|
ordine.setOrdineId(id);
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.tfb.fbtoast.FBToast;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -83,6 +84,8 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
|
|
||||||
private Dialog mCurrentProgress;
|
private Dialog mCurrentProgress;
|
||||||
|
|
||||||
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
public RettificaGiacenzeFragment() {
|
public RettificaGiacenzeFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
@@ -198,12 +201,25 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
for(Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
super.onDestroy();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
titleText.setText(context.getText(R.string.rettifica_giacenze_fragment_title).toString());
|
titleText.setText(context.getText(R.string.rettifica_giacenze_fragment_title).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
@@ -489,7 +505,7 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
DialogYesNo.make(getActivity(), "Posiziona UL", "Vuoi cambiare la posizione della UL corrente?", result -> {
|
DialogYesNo.make(getActivity(), "Posiziona UL", "Vuoi cambiare la posizione della UL corrente?", result -> {
|
||||||
switch (result) {
|
switch (result) {
|
||||||
case YES:
|
case YES:
|
||||||
DialogAskPositionOfLU.makeBase(getActivity(), mViewModel.getCurrentMtbColt(), false, (status, mtbDepoPosizione) -> {
|
DialogAskPositionOfLU.makeBase(getActivity(), false, (status, mtbDepoPosizione) -> {
|
||||||
if (status == DialogConsts.Results.ABORT) {
|
if (status == DialogConsts.Results.ABORT) {
|
||||||
onComplete.run(false, null);
|
onComplete.run(false, null);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package it.integry.integrywmsnative.gest.rettifica_giacenze;
|
package it.integry.integrywmsnative.gest.rettifica_giacenze;
|
||||||
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.GregorianCalendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -25,12 +25,12 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbCols;
|
import it.integry.integrywmsnative.core.model.MtbCols;
|
||||||
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.report.ReportManager;
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
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.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
@@ -38,7 +38,6 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
|
|||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeRESTConsumer;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
|
|
||||||
@@ -59,6 +58,8 @@ public class RettificaGiacenzeViewModel {
|
|||||||
private String mCurrentCodMdep;
|
private String mCurrentCodMdep;
|
||||||
private boolean mIsCreatedLU;
|
private boolean mIsCreatedLU;
|
||||||
|
|
||||||
|
private boolean mAnyEditDone = false;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public RettificaGiacenzeViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
public RettificaGiacenzeViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
@@ -87,14 +88,10 @@ public class RettificaGiacenzeViewModel {
|
|||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
this.sendOnLUOpenRequest((mtbColt, created) -> {
|
this.sendOnLUOpenRequest((mtbColt, created) -> {
|
||||||
//if(mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO) {
|
|
||||||
// this.sendError(new InvalidLUGestioneException(GestioneEnum.ACQUISTO));
|
|
||||||
//} else {
|
|
||||||
this.mCurrentMtbColt = mtbColt;
|
this.mCurrentMtbColt = mtbColt;
|
||||||
this.mIsCreatedLU = created;
|
this.mIsCreatedLU = created;
|
||||||
|
|
||||||
this.sendLUOpened(mtbColt);
|
this.sendLUOpened(mtbColt);
|
||||||
//}
|
|
||||||
});
|
});
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
@@ -277,6 +274,14 @@ public class RettificaGiacenzeViewModel {
|
|||||||
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
|
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) {
|
||||||
|
dataScad = UtilityDate.getDateInstance();
|
||||||
|
Calendar c = new GregorianCalendar();
|
||||||
|
c.setTime(dataScad);
|
||||||
|
c.add(Calendar.DATE, pickingObjectDTO.getMtbAart().getGgScadPartita());
|
||||||
|
dataScad = c.getTime();
|
||||||
|
}
|
||||||
|
|
||||||
this.sendOnItemDispatched(
|
this.sendOnItemDispatched(
|
||||||
pickingObjectDTO,
|
pickingObjectDTO,
|
||||||
pickingObjectDTO.getMtbAart(),
|
pickingObjectDTO.getMtbAart(),
|
||||||
@@ -317,7 +322,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
|
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
if (!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
// if (!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
||||||
mtbColr
|
mtbColr
|
||||||
.setQtaCol(BigDecimal.ZERO)
|
.setQtaCol(BigDecimal.ZERO)
|
||||||
.setNumCnf(BigDecimal.ZERO)
|
.setNumCnf(BigDecimal.ZERO)
|
||||||
@@ -340,42 +345,46 @@ public class RettificaGiacenzeViewModel {
|
|||||||
|
|
||||||
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
this.sendOnRowSaved();
|
this.mAnyEditDone = true;
|
||||||
this.sendOnLoadingEnded();
|
|
||||||
|
|
||||||
if (shouldCloseLU) closeLU(false, null);
|
|
||||||
}, this::sendError);
|
|
||||||
} else {
|
|
||||||
mtbColr
|
|
||||||
.setQtaCol(qtaTot)
|
|
||||||
.setQtaCnf(qtaCnf)
|
|
||||||
.setNumCnf(numCnf);
|
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
|
||||||
|
|
||||||
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
|
||||||
|
|
||||||
cloneMtbColt.getMtbColr().add(mtbColr);
|
|
||||||
|
|
||||||
mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
|
|
||||||
mtbColr
|
|
||||||
.setDataCollo(value.getDataColloS())
|
|
||||||
.setNumCollo(value.getNumCollo())
|
|
||||||
.setGestione(value.getGestione())
|
|
||||||
.setSerCollo(value.getSerCollo())
|
|
||||||
.setRiga(value.getMtbColr().get(0).getRiga())
|
|
||||||
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
|
|
||||||
.setMtbAart(pickingObjectDTO.getMtbAart());
|
|
||||||
|
|
||||||
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
|
||||||
|
|
||||||
this.sendOnRowSaved();
|
this.sendOnRowSaved();
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
if (shouldCloseLU) closeLU(false, null);
|
if (shouldCloseLU) closeLU(true, null);
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
// } else {
|
||||||
|
// mtbColr
|
||||||
|
// .setQtaCol(qtaTot)
|
||||||
|
// .setQtaCnf(qtaCnf)
|
||||||
|
// .setNumCnf(numCnf);
|
||||||
|
//
|
||||||
|
// MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
|
// cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
//
|
||||||
|
// cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||||
|
//
|
||||||
|
// cloneMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
//
|
||||||
|
// mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
|
||||||
|
// mtbColr
|
||||||
|
// .setDataCollo(value.getDataColloS())
|
||||||
|
// .setNumCollo(value.getNumCollo())
|
||||||
|
// .setGestione(value.getGestione())
|
||||||
|
// .setSerCollo(value.getSerCollo())
|
||||||
|
// .setRiga(value.getMtbColr().get(0).getRiga())
|
||||||
|
// .setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
|
||||||
|
// .setMtbAart(pickingObjectDTO.getMtbAart());
|
||||||
|
//
|
||||||
|
// mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
//
|
||||||
|
// this.mAnyEditDone = true;
|
||||||
|
//
|
||||||
|
// this.sendOnRowSaved();
|
||||||
|
// this.sendOnLoadingEnded();
|
||||||
|
//
|
||||||
|
// if (shouldCloseLU) closeLU(true, null);
|
||||||
|
// }, this::sendError);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -407,9 +416,11 @@ public class RettificaGiacenzeViewModel {
|
|||||||
|
|
||||||
if(shouldChangePosition) {
|
if(shouldChangePosition) {
|
||||||
this.savePosizione(mtbDepoPosizione, () -> {
|
this.savePosizione(mtbDepoPosizione, () -> {
|
||||||
|
this.mAnyEditDone = false;
|
||||||
postSaveBehaviour(onComplete);
|
postSaveBehaviour(onComplete);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
this.mAnyEditDone = false;
|
||||||
postSaveBehaviour(onComplete);
|
postSaveBehaviour(onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -417,7 +428,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(mDefaultCausale) && saveCausale) {
|
if (!UtilityString.isNullOrEmpty(mDefaultCausale) && (saveCausale || mAnyEditDone)) {
|
||||||
this.saveCausaleRettificaGiacenze(saveAction);
|
this.saveCausaleRettificaGiacenze(saveAction);
|
||||||
} else {
|
} else {
|
||||||
saveAction.run();
|
saveAction.run();
|
||||||
@@ -538,7 +549,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
// if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
||||||
|
|
||||||
this.mColliMagazzinoRESTConsumer.creaRettificaCollo(
|
this.mColliMagazzinoRESTConsumer.creaRettificaCollo(
|
||||||
mtbColrToUpdate,
|
mtbColrToUpdate,
|
||||||
@@ -554,49 +565,53 @@ public class RettificaGiacenzeViewModel {
|
|||||||
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
||||||
this.mCurrentMtbColt.getMtbColr().add(mtbColrToUpdate);
|
this.mCurrentMtbColt.getMtbColr().add(mtbColrToUpdate);
|
||||||
|
|
||||||
|
this.mAnyEditDone = true;
|
||||||
|
|
||||||
this.sendOnRowSaved();
|
this.sendOnRowSaved();
|
||||||
},
|
},
|
||||||
this::sendError
|
this::sendError
|
||||||
);
|
);
|
||||||
|
|
||||||
} else {
|
// } else {
|
||||||
|
//
|
||||||
MtbColt mtbColt = new MtbColt()
|
// MtbColt mtbColt = new MtbColt()
|
||||||
.setNumCollo(mtbColrToUpdate.getNumCollo())
|
// .setNumCollo(mtbColrToUpdate.getNumCollo())
|
||||||
.setDataCollo(mtbColrToUpdate.getDataColloS())
|
// .setDataCollo(mtbColrToUpdate.getDataColloS())
|
||||||
.setSerCollo(mtbColrToUpdate.getSerCollo())
|
// .setSerCollo(mtbColrToUpdate.getSerCollo())
|
||||||
.setGestione(mtbColrToUpdate.getGestione())
|
// .setGestione(mtbColrToUpdate.getGestione())
|
||||||
.setMtbColr(new ObservableArrayList<>());
|
// .setMtbColr(new ObservableArrayList<>());
|
||||||
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
// mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
//
|
||||||
final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
|
// final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
// mtbColr
|
||||||
mtbColr
|
// .setNumCnf(numCnf.subtract(mtbColr.getNumCnf()))
|
||||||
.setNumCnf(numCnf)
|
// .setQtaCnf(qtaCnf)
|
||||||
.setQtaCnf(qtaCnf)
|
// .setQtaCol(qtaTot.subtract(mtbColr.getQtaCol()))
|
||||||
.setQtaCol(qtaTot)
|
// .setPartitaMag(partitaMag)
|
||||||
.setPartitaMag(partitaMag)
|
// .setDataScadPartita(dataScad)
|
||||||
.setDataScadPartita(dataScad)
|
// .setUtente(SettingsManager.i().getUser().getFullname())
|
||||||
.setUtente(SettingsManager.i().getUser().getFullname())
|
// .setCausale(MtbColr.Causale.RETTIFICA)
|
||||||
.setCausale(MtbColr.Causale.RETTIFICA)
|
// .setDatetimeRow(UtilityDate.getDateInstance())
|
||||||
.setDatetimeRow(UtilityDate.getDateInstance());
|
// .setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
|
//
|
||||||
mtbColt.getMtbColr().add(mtbColr);
|
// mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
//
|
||||||
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
// this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
|
//
|
||||||
mtbColr.setNumCnf(numCnf)
|
// mtbColr.setNumCnf(numCnf)
|
||||||
.setQtaCnf(qtaCnf)
|
// .setQtaCnf(qtaCnf)
|
||||||
.setQtaCol(qtaTot);
|
// .setQtaCol(qtaTot);
|
||||||
|
//
|
||||||
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
// this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
||||||
this.mCurrentMtbColt.getMtbColr().add(mtbColr);
|
// this.mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
//
|
||||||
this.sendOnRowSaved();
|
// this.mAnyEditDone = true;
|
||||||
this.sendOnLoadingEnded();
|
//
|
||||||
|
// this.sendOnRowSaved();
|
||||||
}, this::sendError);
|
// this.sendOnLoadingEnded();
|
||||||
}
|
//
|
||||||
|
// }, this::sendError);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteRow(MtbColr mtbColrToDelete) {
|
public void deleteRow(MtbColr mtbColrToDelete) {
|
||||||
@@ -604,7 +619,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
if (shouldDelete) {
|
if (shouldDelete) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
// if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
||||||
this.mColliMagazzinoRESTConsumer.creaRettificaCollo(
|
this.mColliMagazzinoRESTConsumer.creaRettificaCollo(
|
||||||
mtbColrToDelete,
|
mtbColrToDelete,
|
||||||
BigDecimal.ZERO,
|
BigDecimal.ZERO,
|
||||||
@@ -616,28 +631,37 @@ public class RettificaGiacenzeViewModel {
|
|||||||
},
|
},
|
||||||
this::sendError
|
this::sendError
|
||||||
);
|
);
|
||||||
} else {
|
// } else {
|
||||||
MtbColt mtbColt = new MtbColt()
|
// MtbColt mtbColt = new MtbColt()
|
||||||
.setNumCollo(mtbColrToDelete.getNumCollo())
|
// .setNumCollo(mtbColrToDelete.getNumCollo())
|
||||||
.setDataCollo(mtbColrToDelete.getDataColloS())
|
// .setDataCollo(mtbColrToDelete.getDataColloS())
|
||||||
.setSerCollo(mtbColrToDelete.getSerCollo())
|
// .setSerCollo(mtbColrToDelete.getSerCollo())
|
||||||
.setGestione(mtbColrToDelete.getGestione())
|
// .setGestione(mtbColrToDelete.getGestione())
|
||||||
.setMtbColr(new ObservableArrayList<>());
|
// .setMtbColr(new ObservableArrayList<>());
|
||||||
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
// mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
//
|
||||||
MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
|
// MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
|
||||||
|
// mtbColr
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.DELETE);
|
// .setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1)))
|
||||||
mtbColt.getMtbColr().add(mtbColr);
|
// .setQtaCnf(mtbColr.getQtaCnf())
|
||||||
|
// .setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1)))
|
||||||
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
// .setPartitaMag(mtbColr.getPartitaMag())
|
||||||
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
|
// .setDataScadPartita(mtbColr.getDataScadPartitaD())
|
||||||
|
// .setUtente(SettingsManager.i().getUser().getFullname())
|
||||||
this.sendOnRowSaved();
|
// .setCausale(MtbColr.Causale.RETTIFICA)
|
||||||
this.sendOnLoadingEnded();
|
// .setDatetimeRow(UtilityDate.getDateInstance())
|
||||||
|
// .setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
}, this::sendError);
|
//
|
||||||
}
|
// mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
//
|
||||||
|
// this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
|
// this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
|
||||||
|
//
|
||||||
|
// this.sendOnRowSaved();
|
||||||
|
// this.sendOnLoadingEnded();
|
||||||
|
//
|
||||||
|
// }, this::sendError);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,12 @@
|
|||||||
package it.integry.integrywmsnative.gest.settings;
|
package it.integry.integrywmsnative.gest.settings;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentMainSettingsBinding;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
|
|
||||||
public class MainSettingsFragment extends PreferenceFragmentCompat implements ITitledFragment {
|
public class MainSettingsFragment extends PreferenceFragmentCompat implements ITitledFragment {
|
||||||
@@ -25,6 +18,11 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT
|
|||||||
titleText.setText(context.getText(R.string.settings_category).toString());
|
titleText.setText(context.getText(R.string.settings_category).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||||
setPreferencesFromResource(R.xml.app_preferences, rootKey);
|
setPreferencesFromResource(R.xml.app_preferences, rootKey);
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user