Compare commits
87 Commits
v1.13.10(1
...
v1.13.30(1
| Author | SHA1 | Date | |
|---|---|---|---|
| 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 = 176
|
||||||
def appVersionName = '1.13.10'
|
def appVersionName = '1.13.30'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
@@ -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.0.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-alpha04'
|
||||||
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;
|
||||||
|
|||||||
@@ -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,14 @@ 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.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.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 +19,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 +33,9 @@ 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,
|
||||||
|
DialogInputQuantityV2Module.class})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
MainActivityComponent.Factory mainActivityComponent();
|
MainActivityComponent.Factory mainActivityComponent();
|
||||||
@@ -38,5 +45,11 @@ public interface MainApplicationComponent {
|
|||||||
RettificaGiacenzeComponent.Factory rettificaGiacenzeComponent();
|
RettificaGiacenzeComponent.Factory rettificaGiacenzeComponent();
|
||||||
SpedizioneComponent.Factory spedizioneComponent();
|
SpedizioneComponent.Factory spedizioneComponent();
|
||||||
AccettazionePickingComponent.Factory accettazionePickingComponent();
|
AccettazionePickingComponent.Factory accettazionePickingComponent();
|
||||||
|
PickingResiComponent.Factory pickingResiComponent();
|
||||||
|
DialogInputQuantityV2Component.Factory dialogInputQuantityV2Component();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void inject(AppContext appContext);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -234,20 +235,34 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
|
|
||||||
accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
||||||
|
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
if(x.getWithdrawMtbColrs().size() > 0) {
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
||||||
.map(MtbColr::getQtaCol)
|
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
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;
|
||||||
|
|
||||||
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
|
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
||||||
|
.map(MtbColr::getQtaCol)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
}
|
||||||
|
|
||||||
|
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
||||||
|
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
|
if (x.getMtbAart() != null)
|
||||||
|
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
}
|
}
|
||||||
|
|
||||||
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
|
||||||
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
|
||||||
|
|
||||||
if (x.getMtbAart() != null)
|
|
||||||
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
|
||||||
|
|
||||||
accettazioneListModel.setOriginalModel(x);
|
accettazioneListModel.setOriginalModel(x);
|
||||||
|
|
||||||
list.add(accettazioneListModel);
|
list.add(accettazioneListModel);
|
||||||
@@ -271,17 +286,33 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
|
|
||||||
accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
|
||||||
|
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
|
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if(x.getWithdrawMtbColrs().size() > 0) {
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
|
||||||
.map(MtbColr::getQtaCol)
|
.map(MtbColr::getNumCnf)
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
.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;
|
||||||
|
|
||||||
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
|
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
||||||
|
.map(MtbColr::getQtaCol)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
}
|
||||||
|
|
||||||
|
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
||||||
|
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
|
if (x.getMtbAart() != null)
|
||||||
|
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
}
|
}
|
||||||
|
|
||||||
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
|
||||||
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
|
||||||
|
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
|
|
||||||
@@ -309,20 +340,35 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
accettazioneListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
accettazioneListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
|
||||||
|
|
||||||
|
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
|
BigDecimal numCnfEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
if(x.getWithdrawMtbColrs().size() > 0) {
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
|
||||||
.map(MtbColr::getQtaCol)
|
.map(MtbColr::getNumCnf)
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
.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;
|
||||||
|
|
||||||
|
if(x.getWithdrawMtbColrs().size() > 0) {
|
||||||
|
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
||||||
|
.map(MtbColr::getQtaCol)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
}
|
||||||
|
|
||||||
|
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
||||||
|
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
||||||
|
if (x.getMtbAart() != null)
|
||||||
|
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
}
|
}
|
||||||
|
|
||||||
accettazioneListModel.setQtaEvasa(qtaEvasa);
|
|
||||||
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
|
|
||||||
|
|
||||||
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 +409,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();
|
||||||
@@ -481,7 +527,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 +544,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,6 +51,7 @@ 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.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
@@ -67,12 +71,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,
|
||||||
@@ -419,7 +425,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 +440,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 +499,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 +586,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 +683,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 +695,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 +791,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 +830,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 +922,7 @@ public class AccettazionePickingViewModel {
|
|||||||
partitaMag,
|
partitaMag,
|
||||||
dataScad,
|
dataScad,
|
||||||
canPartitaMagBeChanged,
|
canPartitaMagBeChanged,
|
||||||
|
true,
|
||||||
onComplete);
|
onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -899,17 +971,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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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,39 +102,37 @@ 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;
|
||||||
|
|
||||||
PrinterRESTConsumer.printColloStatic(value.get(0),
|
PrinterRESTConsumer.printColloStatic(value.get(0),
|
||||||
mtbColt.get(),
|
mtbColt.get(),
|
||||||
1,
|
1,
|
||||||
reportName,
|
reportName,
|
||||||
() -> {
|
() -> {
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
|
|
||||||
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) {
|
||||||
);
|
UtilityExceptions.defaultException(mContext, ex, progress);
|
||||||
} catch (Exception ex){
|
|
||||||
UtilityExceptions.defaultException(mContext, ex, progress);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
progress.dismiss();
|
|
||||||
String errorMessage = "Nessuna stampante configurata";
|
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(errorMessage), null, null).show();
|
|
||||||
}
|
}
|
||||||
}, ex -> {
|
|
||||||
UtilityExceptions.defaultException(mContext, ex, progress);
|
} else {
|
||||||
});
|
progress.dismiss();
|
||||||
|
String errorMessage = "Nessuna stampante configurata";
|
||||||
|
DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(errorMessage), null, null).show();
|
||||||
|
}
|
||||||
|
}, ex -> {
|
||||||
|
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 androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
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.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.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,6 +25,7 @@ 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;
|
||||||
@@ -34,6 +35,7 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
private boolean mCanRecoverUl;
|
private 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
|
||||||
|
|
||||||
@@ -54,10 +56,13 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
String reportNameKey = DataCache.addItem(reportName);
|
String reportNameKey = DataCache.addItem(reportName);
|
||||||
myIntent.putExtra(Key.ReportName, reportNameKey);
|
myIntent.putExtra(Key.ReportName, reportNameKey);
|
||||||
|
|
||||||
|
String flagOnlyResiduoKey = DataCache.addItem(true);
|
||||||
|
myIntent.putExtra(Key.FlagOnlyResiduo, flagOnlyResiduoKey);
|
||||||
|
|
||||||
return myIntent;
|
return myIntent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Intent createIntent(Context context, ArrayList<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType) {
|
public static Intent createIntent(Context context, ArrayList<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType, boolean onlyResiduo) {
|
||||||
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
||||||
|
|
||||||
String mtbColtsKey = DataCache.addItem(items);
|
String mtbColtsKey = DataCache.addItem(items);
|
||||||
@@ -69,6 +74,9 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
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);
|
||||||
|
|
||||||
return myIntent;
|
return myIntent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,9 +89,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);
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -191,7 +191,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();
|
||||||
@@ -258,6 +258,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 +277,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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,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.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -24,11 +26,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 +39,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 +49,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 +62,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -815,7 +813,6 @@ 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);
|
||||||
|
|
||||||
@@ -840,8 +837,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();
|
|
||||||
}
|
|
||||||
else if(thereIsAnOpenedUL()) {
|
|
||||||
mArticoliInColloBottomSheetViewModel.closeCurrentUL(() -> {
|
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
|
||||||
super.onBackPressed();
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
if (this.mBindings.bottomSheetLuContent.isExpanded()) {
|
||||||
else {
|
this.mBindings.bottomSheetLuContent.collapse();
|
||||||
|
} else if (!noLUPresent.get()) {
|
||||||
|
this.mShouldCloseActivity = true;
|
||||||
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
|
this.mViewmodel.closeLU(true);
|
||||||
|
} else {
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
super.onBackPressed();
|
super.onBackPressed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initView() {
|
|
||||||
|
private void initVars() {
|
||||||
|
this.noLUPresent.addOnPropertyChangedCallback(() -> {
|
||||||
|
this.bottomSheetEnabled.set(!this.noLUPresent.get());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
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)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initRecyclerView() {
|
||||||
|
this.mBindings.elevatedToolbar.setRecyclerView(this.mBindings.mainList);
|
||||||
|
|
||||||
setSupportActionBar(this.mBinding.toolbar);
|
this.mViewmodel.getPickingList().observe(this, updatedData -> {
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
this.mPickingResiMutableData.clear();
|
||||||
|
this.mPickingResiMutableData.addAll(convertDataModelToListModel(updatedData));
|
||||||
|
this.noItemsToPick.set(updatedData.isEmpty());
|
||||||
|
});
|
||||||
|
|
||||||
getSupportActionBar().setTitle(mActivityTitle);
|
PickingResiListAdapter pickingResiListAdapter = new PickingResiListAdapter(this, mPickingResiMutableData);
|
||||||
|
this.mBindings.mainList.setAdapter(pickingResiListAdapter);
|
||||||
|
this.mBindings.mainList.setLayoutManager(new LinearLayoutManager(this));
|
||||||
|
|
||||||
this.mBinding.elevatedToolbar.setRecyclerView(this.mBinding.mainList);
|
pickingResiListAdapter.setOnItemClicked(clickedItem -> {
|
||||||
|
if (!noLUPresent.get()) {
|
||||||
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(this);
|
this.mViewmodel.dispatchOrdineRow(clickedItem);
|
||||||
UltimeConsegneClienteRESTConsumer.loadDocRowFromConsegna(mDocumentiResiList, dtbDocrToPick -> {
|
|
||||||
progressDialog.dismiss();
|
|
||||||
this.mDtbDocrList.addAll(dtbDocrToPick);
|
|
||||||
|
|
||||||
try {
|
|
||||||
this.initDatiPicking();
|
|
||||||
} catch (Exception ex) {
|
|
||||||
DialogSimpleMessageHelper.showSimpleErrorDialog(this, ex.getMessage());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.initList();
|
|
||||||
}, ex -> {
|
|
||||||
UtilityExceptions.defaultException(this, ex, progressDialog);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initList() {
|
|
||||||
|
|
||||||
mAdapter = new PickingResiListAdapter(this, this.mDtbDocrList);
|
private List<PickingResiListModel> convertDataModelToListModel(List<WithdrawableDtbDocr> dataList) {
|
||||||
mAdapter.setOnItemClicked(this::onOrdineRowDispatch);
|
List<PickingResiListModel> pickingResiListModels = new ArrayList<>();
|
||||||
|
|
||||||
this.mBinding.mainList.setLayoutManager(new LinearLayoutManager(this));
|
Stream.of(dataList)
|
||||||
this.mBinding.mainList.setAdapter(mAdapter);
|
.sortBy(x -> x.getNumDoc() + " " + x.getDataDocS() + " " + x.getCodDtip() + " " + x.getSerDoc() + " " + x.getCodAnag() + " " + x.getIdRiga())
|
||||||
|
.forEach(x -> {
|
||||||
|
|
||||||
|
PickingResiListModel pickingResiListModel = new PickingResiListModel();
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
BigDecimal qtaColEvasa = BigDecimal.ZERO;
|
||||||
|
BigDecimal numCnfColEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
for (MtbColr mtbColr : x.getWithdrawRows()) {
|
||||||
|
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 void initDatiPicking() throws Exception {
|
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
List<String> foundGestioni = Stream.of(this.mDocumentiResiList)
|
BarcodeManager.disable();
|
||||||
.map(DocumentoResoDTO::getGestione)
|
|
||||||
.distinct()
|
|
||||||
.withoutNulls()
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if(foundGestioni.size() > 1) {
|
this.openProgress();
|
||||||
throw new Exception("Sono stati caricati documenti con diverse gestioni");
|
|
||||||
} else mDefaultGestioneOfUL = foundGestioni.get(0);
|
|
||||||
|
|
||||||
|
this.mViewmodel.processBarcodeDTO(data, () -> {
|
||||||
|
BarcodeManager.enable();
|
||||||
|
this.closeProgress();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
List<String> foundCodAnags = Stream.of(this.mDocumentiResiList)
|
public void createNewLU() {
|
||||||
.map(DocumentoResoDTO::getCodAnag)
|
this.mBindings.mainFab.close(true);
|
||||||
.distinct()
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if(foundCodAnags.size() > 1) {
|
this.openProgress();
|
||||||
throw new Exception("Sono stati caricati documenti con diversi codici anagrafici");
|
|
||||||
} else mDefaultCodAnagOfUL = foundCodAnags.get(0);
|
|
||||||
|
|
||||||
}
|
this.mViewmodel.createNewLU(null, null, () -> {
|
||||||
|
this.closeProgress();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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);
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
@Override
|
||||||
public void onColloClosed(Runnable onComplete, boolean shouldPrint) {
|
public void onMtbColrEdit(MtbColr mtbColr) {
|
||||||
if(thereIsAnOpenedUL()) {
|
this.mViewmodel.dispatchRowEdit(mtbColr);
|
||||||
|
}
|
||||||
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
|
@Override
|
||||||
progress.show();
|
public void onMtbColrDelete(MtbColr mtbColr) {
|
||||||
|
this.mViewmodel.deleteRow(mtbColr);
|
||||||
|
}
|
||||||
|
|
||||||
if(thereIsAnyRowInUL()) {
|
@Override
|
||||||
NoteAggiuntiveLUDialog.make(this, noteString -> {
|
public void onBottomSheetLUClose() {
|
||||||
|
this.mViewmodel.closeLU(true);
|
||||||
|
}
|
||||||
|
|
||||||
MtbColt currentLU = currentMtbColt.get();
|
@Override
|
||||||
|
public void onNoteAggiuntiveRequired(RunnableArgs<String> onComplete, Runnable onAbort) {
|
||||||
|
NoteAggiuntiveLUDialog.make(this, onComplete, onAbort).show();
|
||||||
|
}
|
||||||
|
|
||||||
Runnable postNoteSave = () -> {
|
@Override
|
||||||
ColliMagazzinoRESTConsumer.updateDataFineStatic(
|
public void onError(Exception ex) {
|
||||||
currentLU,
|
this.closeProgress();
|
||||||
() -> printCollo(progress, currentMtbColt.get(), onComplete),
|
|
||||||
ex -> UtilityExceptions.defaultException(this, ex, progress));
|
|
||||||
};
|
|
||||||
|
|
||||||
if(!UtilityString.isNullOrEmpty(noteString)) {
|
|
||||||
currentLU.setAnnotazioni(noteString);
|
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveColloStatic(currentLU, mtbColt -> {
|
|
||||||
postNoteSave.run();
|
|
||||||
}, ex -> UtilityExceptions.defaultException(this, ex, progress));
|
|
||||||
} else postNoteSave.run();
|
|
||||||
|
|
||||||
|
|
||||||
}, () -> {
|
|
||||||
|
|
||||||
}).show();
|
|
||||||
} else {
|
|
||||||
deleteCollo(progress, onComplete);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if(ex instanceof InvalidPesoKGException) {
|
||||||
|
UtilityToast.showToast(ex.getMessage());
|
||||||
} else {
|
} else {
|
||||||
if(onComplete != null) onComplete.run();
|
UtilityExceptions.defaultException(this, ex, mCurrentProgress);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onItemEdited(MtbColr mtbColrOriginal, MtbColr mtbColrEdited) {
|
|
||||||
for(int i = 0; i < mDtbDocrList.size(); i++) {
|
|
||||||
int foundIndex = mDtbDocrList.get(i).getWithdrawRows().indexOf(mtbColrOriginal);
|
|
||||||
|
|
||||||
if(foundIndex >= 0){
|
|
||||||
mDtbDocrList.get(i).getWithdrawRows().remove(foundIndex);
|
|
||||||
mDtbDocrList.get(i).getWithdrawRows().add(foundIndex, mtbColrEdited);
|
|
||||||
|
|
||||||
refreshDtbDocrItem(this.mDtbDocrList.get(i));
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onItemDeleted(MtbColr mtbColrDeleted) {
|
|
||||||
for(int i = 0; i < mDtbDocrList.size(); i++) {
|
|
||||||
int foundIndex = mDtbDocrList.get(i).getWithdrawRows().indexOf(mtbColrDeleted);
|
|
||||||
|
|
||||||
if(foundIndex >= 0){
|
|
||||||
mDtbDocrList.get(i).getWithdrawRows().remove(foundIndex);
|
|
||||||
|
|
||||||
refreshDtbDocrItem(this.mDtbDocrList.get(i));
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void printCollo(Dialog progress, MtbColt mtbColtToPrint, Runnable onComplete) {
|
|
||||||
DialogAskShouldPrint.make(this, "Packing List", shouldPrint -> {
|
|
||||||
|
|
||||||
if(shouldPrint) {
|
|
||||||
PrinterRESTConsumer.getAvailablePrintersStatic(SettingsManager.i().getUserSession().getDepo().getCodMdep(), PrinterRESTConsumer.Type.PRIMARIA, printerList -> {
|
|
||||||
|
|
||||||
if (printerList.size() > 0) {
|
|
||||||
try {
|
|
||||||
singlePrint(mtbColtToPrint, printerList.get(0), () -> {
|
|
||||||
postCloseOperations(mtbColtToPrint, onComplete);
|
|
||||||
progress.dismiss();
|
|
||||||
}, ex -> {
|
|
||||||
progress.dismiss();
|
|
||||||
String errorMessage = ex.getMessage();
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(
|
|
||||||
this,
|
|
||||||
new SpannableString(errorMessage),
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
R.string.button_ignore_print,
|
|
||||||
() -> postCloseOperations(mtbColtToPrint, 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();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
|
||||||
ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
|
||||||
|
|
||||||
PrinterRESTConsumer.printColloStatic(
|
|
||||||
printerName,
|
|
||||||
mtbColtToPrint,
|
|
||||||
1,
|
|
||||||
reportName, onComplete, onAbort);
|
|
||||||
|
|
||||||
}, onAbort);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void postCloseOperations(MtbColt generatedMtbColt, Runnable onComplete) {
|
|
||||||
this.mColliRegistrati.add(generatedMtbColt);
|
|
||||||
|
|
||||||
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();
|
BarcodeManager.enable();
|
||||||
|
|
||||||
if(onComplete != null) onComplete.run();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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);
|
||||||
|
|
||||||
private void deleteCollo(Dialog progress, Runnable onComplete) {
|
DialogInputQuantityV2
|
||||||
|
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||||
|
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||||
|
.setNumCnf(resultDTO.getNumCnf())
|
||||||
|
.setQtaCnf(resultDTO.getQtaCnf())
|
||||||
|
.setQtaTot(resultDTO.getQtaTot())
|
||||||
|
.setPartitaMag(resultDTO.getPartitaMag())
|
||||||
|
.setDataScad(resultDTO.getDataScad());
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.deleteColloStatic(currentMtbColt.get(), () -> {
|
this.openProgress();
|
||||||
setULToCurrentContext(null);
|
onComplete.run(pickedQuantityDTO, shouldCloseLU);
|
||||||
|
}, () -> {
|
||||||
progress.dismiss();
|
// this.mViewmodel.resetMatchedRows();
|
||||||
|
})
|
||||||
|
.show(getSupportFragmentManager(), "tag");
|
||||||
if(onComplete != null) onComplete.run();
|
|
||||||
}, ex -> UtilityExceptions.defaultException(this, ex, progress)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean thereIsAnOpenedUL() {
|
public void onRowSaved() {
|
||||||
return currentMtbColt.get() != null;
|
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean thereIsAnyRowInUL() {
|
@Override
|
||||||
return currentMtbColt.get() != null &&
|
public void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
currentMtbColt.get().getMtbColr() != null &&
|
String text = getResources().getString(R.string.alert_delete_mtb_colr);
|
||||||
currentMtbColt.get().getMtbColr().size() > 0;
|
DialogSimpleMessageHelper.makeWarningDialog(this,
|
||||||
|
new SpannableString(text),
|
||||||
|
null,
|
||||||
|
() -> onComplete.run(true),
|
||||||
|
() -> onComplete.run(false)
|
||||||
|
).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUOpened(MtbColt mtbColt) {
|
||||||
|
noLUPresent.set(false);
|
||||||
|
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
|
|
||||||
private void refreshDtbDocrItem(WithdrawableDtbDocr dtbDocr) {
|
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(mtbColt);
|
||||||
int index = this.mDtbDocrList.indexOf(dtbDocr);
|
|
||||||
this.mDtbDocrList.remove(dtbDocr);
|
|
||||||
this.mDtbDocrList.add(index, dtbDocr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUClosed() {
|
||||||
|
noLUPresent.set(true);
|
||||||
|
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
|
||||||
|
|
||||||
public void removeListFilter() {
|
if (this.mShouldCloseActivity) super.onBackPressed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUSuccessullyPrinted() {
|
||||||
|
Resources res = getResources();
|
||||||
|
String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
|
||||||
|
DialogSimpleMessageHelper.makeSuccessDialog(this, res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@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(
|
||||||
|
this,
|
||||||
|
new SpannableString(ex.getMessage()),
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
R.string.button_ignore_print,
|
||||||
|
onComplete).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingStarted() {
|
||||||
|
this.openProgress();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingEnded() {
|
||||||
|
this.closeProgress();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
return new PickingResiRESTConsumer(systemRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@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 false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@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,102 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public PickingResiRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
|
this.mSystemRestConsumer = systemRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
|
||||||
|
ArticoloRESTConsumer.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;
|
||||||
@@ -79,7 +79,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 +96,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 +110,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, () -> {
|
||||||
@@ -144,9 +142,9 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
x.getDataColloRif().equals(mtbColt.getDataColloS()) &&
|
x.getDataColloRif().equals(mtbColt.getDataColloS()) &&
|
||||||
x.getSerColloRif().equalsIgnoreCase(mtbColt.getSerCollo()) &&
|
x.getSerColloRif().equalsIgnoreCase(mtbColt.getSerCollo()) &&
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,17 +173,14 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
DialogInputQuantity.makeBase(mContext, dto, false, quantity -> {
|
DialogInputQuantity.makeBase(mContext, dto, false, quantity -> {
|
||||||
onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress);
|
onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress);
|
||||||
}, () -> {
|
}, () -> {
|
||||||
if(dialogProgress != null) dialogProgress.dismiss();
|
if (dialogProgress != null) dialogProgress.dismiss();
|
||||||
}).show();
|
}).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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 +192,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 +215,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())) {
|
||||||
@@ -267,7 +261,7 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
|
|
||||||
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 +281,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,21 +323,18 @@ 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,
|
||||||
mtbColtToPrint,
|
mtbColtToPrint,
|
||||||
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 +351,4 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -6,7 +6,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;
|
||||||
@@ -59,6 +61,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,
|
||||||
@@ -277,6 +281,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(),
|
||||||
@@ -340,10 +352,12 @@ public class RettificaGiacenzeViewModel {
|
|||||||
|
|
||||||
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.mAnyEditDone = true;
|
||||||
|
|
||||||
this.sendOnRowSaved();
|
this.sendOnRowSaved();
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
if (shouldCloseLU) closeLU(false, null);
|
if (shouldCloseLU) closeLU(true, null);
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
} else {
|
} else {
|
||||||
mtbColr
|
mtbColr
|
||||||
@@ -370,10 +384,12 @@ public class RettificaGiacenzeViewModel {
|
|||||||
|
|
||||||
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.mAnyEditDone = true;
|
||||||
|
|
||||||
this.sendOnRowSaved();
|
this.sendOnRowSaved();
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
if (shouldCloseLU) closeLU(false, null);
|
if (shouldCloseLU) closeLU(true, null);
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -407,9 +423,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 +435,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();
|
||||||
@@ -554,6 +572,8 @@ 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
|
||||||
@@ -570,16 +590,16 @@ public class RettificaGiacenzeViewModel {
|
|||||||
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)
|
.setNumCnf(numCnf.subtract(mtbColr.getNumCnf()))
|
||||||
.setQtaCnf(qtaCnf)
|
.setQtaCnf(qtaCnf)
|
||||||
.setQtaCol(qtaTot)
|
.setQtaCol(qtaTot.subtract(mtbColr.getQtaCol()))
|
||||||
.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);
|
||||||
|
|
||||||
@@ -592,6 +612,8 @@ public class RettificaGiacenzeViewModel {
|
|||||||
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
||||||
this.mCurrentMtbColt.getMtbColr().add(mtbColr);
|
this.mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.mAnyEditDone = true;
|
||||||
|
|
||||||
this.sendOnRowSaved();
|
this.sendOnRowSaved();
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
@@ -626,8 +648,17 @@ public class RettificaGiacenzeViewModel {
|
|||||||
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
|
MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
|
||||||
|
mtbColr
|
||||||
|
.setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1)))
|
||||||
|
.setQtaCnf(mtbColr.getQtaCnf())
|
||||||
|
.setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1)))
|
||||||
|
.setPartitaMag(mtbColr.getPartitaMag())
|
||||||
|
.setDataScadPartita(mtbColr.getDataScadPartitaD())
|
||||||
|
.setUtente(SettingsManager.i().getUser().getFullname())
|
||||||
|
.setCausale(MtbColr.Causale.RETTIFICA)
|
||||||
|
.setDatetimeRow(UtilityDate.getDateInstance())
|
||||||
|
.setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
|
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.DELETE);
|
|
||||||
mtbColt.getMtbColr().add(mtbColr);
|
mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.gest.spedizione;
|
package it.integry.integrywmsnative.gest.spedizione;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -44,6 +45,7 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
import it.integry.integrywmsnative.core.utility.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.ActivitySpedizioneBinding;
|
import it.integry.integrywmsnative.databinding.ActivitySpedizioneBinding;
|
||||||
@@ -96,6 +98,21 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
private final int PICK_UL_REQUEST = 1;
|
private final int PICK_UL_REQUEST = 1;
|
||||||
|
|
||||||
|
public static void startActivity(Context context, List<SitArtOrdDTO> ordini, List<OrdineVenditaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
|
||||||
|
Intent myIntent = new Intent(context, 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);
|
||||||
|
|
||||||
|
context.startActivity(myIntent);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -187,9 +204,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
this.mBindings.spedizionePickingList.setAdapter(spedizioneListAdapter);
|
this.mBindings.spedizionePickingList.setAdapter(spedizioneListAdapter);
|
||||||
this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this));
|
this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this));
|
||||||
|
|
||||||
spedizioneListAdapter.setOnItemClicked(clickedItem -> {
|
spedizioneListAdapter.setOnItemClicked((clickedItem, refMtbColt) -> {
|
||||||
if (!noLUPresent.get() && SettingsManager.iDB().isFlagSpedizioneEnableManualPick() && clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale()) {
|
if (!noLUPresent.get() && SettingsManager.iDB().isFlagSpedizioneEnableManualPick() && clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale()) {
|
||||||
this.mViewmodel.dispatchOrdineRow(clickedItem);
|
this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -249,7 +266,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
spedizioneListModel.setBadge2(x.getSitArtOrdDTO().getCodJcom());
|
spedizioneListModel.setBadge2(x.getSitArtOrdDTO().getCodJcom());
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
spedizioneListModel.setUntMis("col");
|
spedizioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
spedizioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd());
|
spedizioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd());
|
||||||
spedizioneListModel.setQtaEvasa(numCnfWithdrawRows.getBigDecimalValue());
|
spedizioneListModel.setQtaEvasa(numCnfWithdrawRows.getBigDecimalValue());
|
||||||
} else {
|
} else {
|
||||||
@@ -287,7 +304,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
cloneModel.setSubDescrizione2(String.format(getString(R.string.lu_number_data_text), mtbColtToPick.getNumCollo(), UtilityDate.formatDate(mtbColtToPick.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
cloneModel.setSubDescrizione2(String.format(getString(R.string.lu_number_data_text), mtbColtToPick.getNumCollo(), UtilityDate.formatDate(mtbColtToPick.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
cloneModel.setUntMis("col");
|
cloneModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
|
|
||||||
BigDecimal numCnfOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter);
|
BigDecimal numCnfOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter);
|
||||||
|
|
||||||
@@ -412,7 +429,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
spedizioneListModel.setBadge2(x.getSitArtOrdDTO().getCodJcom());
|
spedizioneListModel.setBadge2(x.getSitArtOrdDTO().getCodJcom());
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
spedizioneListModel.setUntMis("col");
|
spedizioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
spedizioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd());
|
spedizioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd());
|
||||||
spedizioneListModel.setQtaEvasa(numCnfWithdrawRows.getBigDecimalValue());
|
spedizioneListModel.setQtaEvasa(numCnfWithdrawRows.getBigDecimalValue());
|
||||||
} else {
|
} else {
|
||||||
@@ -426,8 +443,18 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
spedizioneListModels.add(spedizioneListModel);
|
spedizioneListModels.add(spedizioneListModel);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
BigDecimal qtaColOrdCounter = x.getSitArtOrdDTO().getQtaOrd();
|
||||||
|
BigDecimal numCnfOrdCounter = x.getSitArtOrdDTO().getNumCnfOrd();
|
||||||
|
|
||||||
|
|
||||||
for (MtbColt mtbColtToPick : x.getMtbColts()) {
|
for (MtbColt mtbColtToPick : x.getMtbColts()) {
|
||||||
|
|
||||||
|
if(UtilityBigDecimal.equalsTo(qtaColOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaColOrdCounter, BigDecimal.ZERO))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if(UtilityBigDecimal.equalsTo(numCnfOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(numCnfOrdCounter, BigDecimal.ZERO))
|
||||||
|
break;
|
||||||
|
|
||||||
SpedizioneListModel cloneModel = (SpedizioneListModel) spedizioneListModel.clone();
|
SpedizioneListModel cloneModel = (SpedizioneListModel) spedizioneListModel.clone();
|
||||||
|
|
||||||
|
|
||||||
@@ -440,12 +467,50 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
cloneModel.setSubDescrizione2(String.format(getString(R.string.lu_number_data_text), mtbColtToPick.getNumCollo(), UtilityDate.formatDate(mtbColtToPick.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
cloneModel.setSubDescrizione2(String.format(getString(R.string.lu_number_data_text), mtbColtToPick.getNumCollo(), UtilityDate.formatDate(mtbColtToPick.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
||||||
|
|
||||||
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
|
||||||
cloneModel.setUntMis("col");
|
cloneModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
cloneModel.setQtaTot(mtbColrToDispatch != null ? mtbColrToDispatch.getNumCnf() : x.getSitArtOrdDTO().getNumCnfOrd());
|
|
||||||
cloneModel.setQtaEvasa(numCnfWithdrawRows.getBigDecimalValue());
|
BigDecimal numCnfOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter);
|
||||||
|
|
||||||
|
BigDecimal qtaTot = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter);
|
||||||
|
if(UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaTot, BigDecimal.ZERO)) continue;
|
||||||
|
cloneModel.setQtaTot(qtaTot);
|
||||||
|
|
||||||
|
numCnfOrdCounter = numCnfOrdCounter.subtract(numCnfOrdToSubstract);
|
||||||
|
|
||||||
|
BigDecimal qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
||||||
|
.filter(y -> y.getRefMtbColr() != null &&
|
||||||
|
y.getRefMtbColr().getNumCollo().equals(mtbColrToDispatch.getNumCollo()) &&
|
||||||
|
y.getRefMtbColr().getDataColloD().equals(mtbColrToDispatch.getDataColloD()) &&
|
||||||
|
y.getRefMtbColr().getSerCollo().equals(mtbColrToDispatch.getSerCollo()) &&
|
||||||
|
y.getRefMtbColr().getGestioneEnum().equals(mtbColrToDispatch.getGestioneEnum()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodMart(), mtbColrToDispatch.getCodMart()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodTagl(), mtbColrToDispatch.getCodTagl()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol()))
|
||||||
|
.map(MtbColr::getNumCnf)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
cloneModel.setQtaEvasa(qtaEvasa);
|
||||||
} else {
|
} else {
|
||||||
cloneModel.setQtaTot(mtbColrToDispatch != null ? mtbColrToDispatch.getQtaCol() : x.getSitArtOrdDTO().getQtaOrd());
|
BigDecimal qtaOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter);
|
||||||
cloneModel.setQtaEvasa(qtaColWithdrawRows.getBigDecimalValue());
|
|
||||||
|
BigDecimal qtaTot = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter);
|
||||||
|
if(UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaTot, BigDecimal.ZERO)) continue;
|
||||||
|
cloneModel.setQtaTot(qtaTot);
|
||||||
|
qtaColOrdCounter = qtaColOrdCounter.subtract(qtaOrdToSubstract);
|
||||||
|
|
||||||
|
BigDecimal qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
|
||||||
|
.filter(y -> y.getRefMtbColr() != null &&
|
||||||
|
y.getRefMtbColr().getNumCollo().equals(mtbColrToDispatch.getNumCollo()) &&
|
||||||
|
y.getRefMtbColr().getDataColloD().equals(mtbColrToDispatch.getDataColloD()) &&
|
||||||
|
y.getRefMtbColr().getSerCollo().equals(mtbColrToDispatch.getSerCollo()) &&
|
||||||
|
y.getRefMtbColr().getGestioneEnum().equals(mtbColrToDispatch.getGestioneEnum()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodMart(), mtbColrToDispatch.getCodMart()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodTagl(), mtbColrToDispatch.getCodTagl()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol()))
|
||||||
|
.map(MtbColr::getQtaCol)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
|
cloneModel.setQtaEvasa(qtaEvasa);
|
||||||
if (x.getMtbAart() != null)
|
if (x.getMtbAart() != null)
|
||||||
cloneModel.setUntMis(x.getMtbAart().getUntMis());
|
cloneModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
}
|
}
|
||||||
@@ -480,7 +545,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
|
|
||||||
this.openProgress();
|
this.openProgress();
|
||||||
@@ -536,7 +601,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
ArrayList<MtbColt> createdMtbColts = this.mViewmodel.getCreatedMtbColts();
|
ArrayList<MtbColt> createdMtbColts = this.mViewmodel.getCreatedMtbColts();
|
||||||
|
|
||||||
Intent myIntent = ListaBancaliActivity.createIntent(this, createdMtbColts, true, PrinterRESTConsumer.Type.PRIMARIA);
|
Intent myIntent = ListaBancaliActivity.createIntent(this, createdMtbColts, true, PrinterRESTConsumer.Type.PRIMARIA, false);
|
||||||
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -671,7 +736,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
.setQtaCnfAvailable(qtaCnfAvailable)
|
.setQtaCnfAvailable(qtaCnfAvailable)
|
||||||
.setPartitaMag(partitaMag)
|
.setPartitaMag(partitaMag)
|
||||||
.setDataScad(dataScad)
|
.setDataScad(dataScad)
|
||||||
.setCanOverflowOrderQuantity(canOverflowOrderQuantity);
|
.setCanOverflowOrderQuantity(canOverflowOrderQuantity)
|
||||||
|
.setCanLUBeClosed(true);
|
||||||
|
|
||||||
DialogInputQuantityV2
|
DialogInputQuantityV2
|
||||||
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||||
|
|||||||
@@ -103,12 +103,12 @@ public class SpedizioneViewModel {
|
|||||||
private final PrinterRESTConsumer mPrinterRESTConsumer;
|
private final PrinterRESTConsumer mPrinterRESTConsumer;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public SpedizioneViewModel( ArticoloRESTConsumer articoloRESTConsumer,
|
public SpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
BarcodeRESTConsumer barcodeRESTConsumer,
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
ColliDataRecoverService colliDataRecoverService,
|
ColliDataRecoverService colliDataRecoverService,
|
||||||
OrdiniRESTConsumer ordiniRESTConsumer,
|
OrdiniRESTConsumer ordiniRESTConsumer,
|
||||||
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
PrinterRESTConsumer printerRESTConsumer) {
|
PrinterRESTConsumer printerRESTConsumer) {
|
||||||
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
this.mColliDataRecoverService = colliDataRecoverService;
|
this.mColliDataRecoverService = colliDataRecoverService;
|
||||||
@@ -298,7 +298,8 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void sendLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete) {
|
private void sendLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete) {
|
||||||
if (this.mListener != null) mListener.onLUPesoRequired(codTcol, netWeightKG, grossWeightKG, onComplete);
|
if (this.mListener != null)
|
||||||
|
mListener.onLUPesoRequired(codTcol, netWeightKG, grossWeightKG, onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendLUPrintRequest(RunnableArgs<Boolean> onComplete) {
|
private void sendLUPrintRequest(RunnableArgs<Boolean> onComplete) {
|
||||||
@@ -489,7 +490,7 @@ public class SpedizioneViewModel {
|
|||||||
mColliMagazzinoRESTConsumer.getBySSCC(SSCC, true, false, mtbColt -> {
|
mColliMagazzinoRESTConsumer.getBySSCC(SSCC, true, false, mtbColt -> {
|
||||||
|
|
||||||
if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
|
if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
|
||||||
if(mtbColt.getSegno() != -1) {
|
if (mtbColt.getSegno() != -1) {
|
||||||
searchArtFromUL(mtbColt, onComplete);
|
searchArtFromUL(mtbColt, onComplete);
|
||||||
} else this.sendError(new InvalidLUException());
|
} else this.sendError(new InvalidLUException());
|
||||||
} else {
|
} else {
|
||||||
@@ -587,7 +588,7 @@ public class SpedizioneViewModel {
|
|||||||
if (UtilityString.equalsIgnoreCase(x.getCodMart(), pickingObject.getSitArtOrdDTO().getCodMart()) &&
|
if (UtilityString.equalsIgnoreCase(x.getCodMart(), pickingObject.getSitArtOrdDTO().getCodMart()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getCodTagl(), pickingObject.getSitArtOrdDTO().getCodTagl()) &&
|
UtilityString.equalsIgnoreCase(x.getCodTagl(), pickingObject.getSitArtOrdDTO().getCodTagl()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getCodCol(), pickingObject.getSitArtOrdDTO().getCodCol()) &&
|
UtilityString.equalsIgnoreCase(x.getCodCol(), pickingObject.getSitArtOrdDTO().getCodCol()) &&
|
||||||
(!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(x.getPartitaMag(), pickingObject.getSitArtOrdDTO().getPartitaMag()))) {
|
(!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(x.getPartitaMag(), pickingObject.getSitArtOrdDTO().getPartitaMag()) || UtilityString.isNullOrEmpty(pickingObject.getSitArtOrdDTO().getPartitaMag()))) {
|
||||||
|
|
||||||
if (!matchPickingObject.contains(pickingObject)) {
|
if (!matchPickingObject.contains(pickingObject)) {
|
||||||
matchPickingObject.add(pickingObject);
|
matchPickingObject.add(pickingObject);
|
||||||
@@ -606,7 +607,7 @@ public class SpedizioneViewModel {
|
|||||||
.filter(x -> !(UtilityString.equalsIgnoreCase(x.getCodMart(), matchedObject.getSitArtOrdDTO().getCodMart()) &&
|
.filter(x -> !(UtilityString.equalsIgnoreCase(x.getCodMart(), matchedObject.getSitArtOrdDTO().getCodMart()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getCodTagl(), matchedObject.getSitArtOrdDTO().getCodTagl()) &&
|
UtilityString.equalsIgnoreCase(x.getCodTagl(), matchedObject.getSitArtOrdDTO().getCodTagl()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getCodCol(), matchedObject.getSitArtOrdDTO().getCodCol()) &&
|
UtilityString.equalsIgnoreCase(x.getCodCol(), matchedObject.getSitArtOrdDTO().getCodCol()) &&
|
||||||
(!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(x.getPartitaMag(), matchedObject.getSitArtOrdDTO().getPartitaMag()))))
|
(!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(x.getPartitaMag(), matchedObject.getSitArtOrdDTO().getPartitaMag()) || UtilityString.isNullOrEmpty(matchedObject.getSitArtOrdDTO().getPartitaMag()))))
|
||||||
.forEach(cloneMtbColrs::remove);
|
.forEach(cloneMtbColrs::remove);
|
||||||
|
|
||||||
cloneMtbColt.setMtbColr(cloneMtbColrs);
|
cloneMtbColt.setMtbColr(cloneMtbColrs);
|
||||||
@@ -647,7 +648,23 @@ public class SpedizioneViewModel {
|
|||||||
if (matchedRows == null || matchedRows.size() == 0) {
|
if (matchedRows == null || matchedRows.size() == 0) {
|
||||||
this.sendError(new NoArtsFoundException());
|
this.sendError(new NoArtsFoundException());
|
||||||
} else if (matchedRows.size() == 1) {
|
} else if (matchedRows.size() == 1) {
|
||||||
this.dispatchOrdineRow(matchedRows.get(0));
|
PickingObjectDTO matchedItem = matchedRows.get(0);
|
||||||
|
|
||||||
|
|
||||||
|
if (matchedItem.getMtbColts() != null && matchedItem.getMtbColts().size() > 1) {
|
||||||
|
|
||||||
|
List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
||||||
|
|
||||||
|
Stream.of(pickingList)
|
||||||
|
.filter(x -> x != matchedItem)
|
||||||
|
.forEach(x -> x.setHidden(true));
|
||||||
|
|
||||||
|
this.sendFilterApplied(null);
|
||||||
|
this.getPickingList().postValue(pickingList);
|
||||||
|
} else {
|
||||||
|
this.dispatchOrdineRow(matchedItem, matchedItem.getRefMtbColt());
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
||||||
|
|
||||||
@@ -664,7 +681,7 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO) {
|
public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt) {
|
||||||
|
|
||||||
BigDecimal totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
|
BigDecimal totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
|
||||||
BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
|
BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
|
||||||
@@ -700,27 +717,47 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
|
|
||||||
//TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'è ne una che corrisponde con la partita richiesta
|
//TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'è ne una che corrisponde con la partita richiesta
|
||||||
MtbColr mtbColrToDispatch = pickingObjectDTO.getTempPickData() != null &&
|
MtbColr scannedMtbColr = pickingObjectDTO.getTempPickData() != null &&
|
||||||
pickingObjectDTO.getTempPickData().getSourceMtbColt() != null &&
|
pickingObjectDTO.getTempPickData().getSourceMtbColt() != null &&
|
||||||
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null &&
|
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null &&
|
||||||
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ?
|
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ?
|
||||||
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null;
|
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null;
|
||||||
|
|
||||||
|
|
||||||
if (mtbColrToDispatch != null) {
|
if (refMtbColt == null && pickingObjectDTO.getMtbColts() != null && pickingObjectDTO.getMtbColts().size() == 1) {
|
||||||
if (UtilityBigDecimal.lowerThan(mtbColrToDispatch.getQtaCol(), qtaDaEvadere)) {
|
refMtbColt = pickingObjectDTO.getMtbColts().get(0);
|
||||||
numCnfDaPrelevare = mtbColrToDispatch.getNumCnf();
|
}
|
||||||
qtaColDaPrelevare = mtbColrToDispatch.getQtaCol();
|
|
||||||
|
MtbColr refMtbColr = null;
|
||||||
|
|
||||||
|
if (scannedMtbColr != null && refMtbColt != null && refMtbColt.getMtbColr().size() > 0) {
|
||||||
|
Optional<MtbColr> optionalMtbColr = Stream.of(refMtbColt.getMtbColr())
|
||||||
|
.filter(y -> UtilityString.equalsIgnoreCase(y.getCodMart(), scannedMtbColr.getCodMart()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(y.getCodTagl(), scannedMtbColr.getCodTagl()) &&
|
||||||
|
UtilityString.equalsIgnoreCase(y.getCodCol(), scannedMtbColr.getCodCol()) &&
|
||||||
|
(!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(y.getPartitaMag(), scannedMtbColr.getPartitaMag()) || UtilityString.isNullOrEmpty(scannedMtbColr.getPartitaMag())))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
if (optionalMtbColr.isPresent()) refMtbColr = optionalMtbColr.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
MtbColr mtbColrToUse = refMtbColr != null ? refMtbColr : scannedMtbColr;
|
||||||
|
|
||||||
|
if (mtbColrToUse != null) {
|
||||||
|
if (UtilityBigDecimal.equalsOrLowerThan(mtbColrToUse.getQtaCol(), qtaDaEvadere)) {
|
||||||
|
numCnfDaPrelevare = mtbColrToUse.getNumCnf();
|
||||||
|
qtaColDaPrelevare = mtbColrToUse.getQtaCol();
|
||||||
} else {
|
} else {
|
||||||
numCnfDaPrelevare = numCnfDaEvadere;
|
numCnfDaPrelevare = numCnfDaEvadere;
|
||||||
qtaColDaPrelevare = qtaDaEvadere;
|
qtaColDaPrelevare = qtaDaEvadere;
|
||||||
}
|
}
|
||||||
qtaCnfDaPrelevare = mtbColrToDispatch.getQtaCnf();
|
|
||||||
|
qtaCnfDaPrelevare = mtbColrToUse.getQtaCnf();
|
||||||
|
|
||||||
|
|
||||||
totalQtaAvailable = mtbColrToDispatch.getQtaCol();
|
totalQtaAvailable = mtbColrToUse.getQtaCol();
|
||||||
totalNumCnfAvailable = mtbColrToDispatch.getNumCnf();
|
totalNumCnfAvailable = mtbColrToUse.getNumCnf();
|
||||||
qtaCnfAvailable = mtbColrToDispatch.getQtaCnf();
|
qtaCnfAvailable = mtbColrToUse.getQtaCnf();
|
||||||
|
|
||||||
|
|
||||||
if (UtilityBigDecimal.lowerThan(numCnfDaPrelevare, BigDecimal.ZERO))
|
if (UtilityBigDecimal.lowerThan(numCnfDaPrelevare, BigDecimal.ZERO))
|
||||||
@@ -729,8 +766,8 @@ public class SpedizioneViewModel {
|
|||||||
if (UtilityBigDecimal.lowerThan(qtaColDaPrelevare, BigDecimal.ZERO))
|
if (UtilityBigDecimal.lowerThan(qtaColDaPrelevare, BigDecimal.ZERO))
|
||||||
qtaColDaPrelevare = BigDecimal.ZERO;
|
qtaColDaPrelevare = BigDecimal.ZERO;
|
||||||
|
|
||||||
partitaMag = mtbColrToDispatch.getPartitaMag();
|
partitaMag = scannedMtbColr.getPartitaMag();
|
||||||
dataScad = mtbColrToDispatch.getDataScadPartitaD();
|
dataScad = scannedMtbColr.getDataScadPartitaD();
|
||||||
|
|
||||||
} else if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) {
|
} else if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) {
|
||||||
//Oppure le info del barcode scansionato
|
//Oppure le info del barcode scansionato
|
||||||
@@ -744,8 +781,8 @@ public class SpedizioneViewModel {
|
|||||||
if (mtbAart.isFlagQtaCnfFissaBoolean()) {
|
if (mtbAart.isFlagQtaCnfFissaBoolean()) {
|
||||||
qtaCnfDaPrelevare = mtbAart.getQtaCnf();
|
qtaCnfDaPrelevare = mtbAart.getQtaCnf();
|
||||||
|
|
||||||
if(manualPickDTO.isEanPeso()) {
|
if (manualPickDTO.isEanPeso()) {
|
||||||
if(mtbAart.getUntMisRifPeso() == MtbAart.UntMisRifPesoEnum.M) {
|
if (mtbAart.getUntMisRifPeso() == MtbAart.UntMisRifPesoEnum.M) {
|
||||||
if (UtilityBigDecimal.equalsTo(mtbAart.getPesoKg(), BigDecimal.ZERO)) {
|
if (UtilityBigDecimal.equalsTo(mtbAart.getPesoKg(), BigDecimal.ZERO)) {
|
||||||
this.sendError(new InvalidPesoKGException());
|
this.sendError(new InvalidPesoKGException());
|
||||||
} else {
|
} else {
|
||||||
@@ -761,8 +798,9 @@ public class SpedizioneViewModel {
|
|||||||
if (qtaColDaPrelevare != null && numCnfDaPrelevare == null) {
|
if (qtaColDaPrelevare != null && numCnfDaPrelevare == null) {
|
||||||
numCnfDaPrelevare = UtilityBigDecimal.divideToInteger(qtaColDaPrelevare, mtbAart.getQtaCnf());
|
numCnfDaPrelevare = UtilityBigDecimal.divideToInteger(qtaColDaPrelevare, mtbAart.getQtaCnf());
|
||||||
|
|
||||||
if(!mtbAart.isFlagQtaCnfFissaBoolean()) {
|
if (!mtbAart.isFlagQtaCnfFissaBoolean()) {
|
||||||
if(UtilityBigDecimal.equalsTo(numCnfDaPrelevare, BigDecimal.ZERO)) numCnfDaPrelevare = BigDecimal.ONE;
|
if (UtilityBigDecimal.equalsTo(numCnfDaPrelevare, BigDecimal.ZERO))
|
||||||
|
numCnfDaPrelevare = BigDecimal.ONE;
|
||||||
qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
|
qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
|
||||||
}
|
}
|
||||||
} else if (numCnfDaPrelevare != null && qtaColDaPrelevare == null) {
|
} else if (numCnfDaPrelevare != null && qtaColDaPrelevare == null) {
|
||||||
@@ -776,6 +814,7 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MtbColt finalRefMtbColt = refMtbColt;
|
||||||
this.sendOnItemDispatched(
|
this.sendOnItemDispatched(
|
||||||
pickingObjectDTO,
|
pickingObjectDTO,
|
||||||
pickingObjectDTO.getMtbAart(),
|
pickingObjectDTO.getMtbAart(),
|
||||||
@@ -794,6 +833,7 @@ public class SpedizioneViewModel {
|
|||||||
mCanOverflowOrderQuantity,
|
mCanOverflowOrderQuantity,
|
||||||
(pickedQuantityDTO, shouldCloseLU) -> {
|
(pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
this.saveNewRow(pickingObjectDTO,
|
this.saveNewRow(pickingObjectDTO,
|
||||||
|
finalRefMtbColt,
|
||||||
pickedQuantityDTO.getNumCnf(),
|
pickedQuantityDTO.getNumCnf(),
|
||||||
pickedQuantityDTO.getQtaCnf(),
|
pickedQuantityDTO.getQtaCnf(),
|
||||||
pickedQuantityDTO.getQtaTot(),
|
pickedQuantityDTO.getQtaTot(),
|
||||||
@@ -853,7 +893,7 @@ public class SpedizioneViewModel {
|
|||||||
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
|
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(numCnfDaPrelevare == null && qtaColDaPrelevare == null && initialNumCnf == null && initialQtaTot == null) {
|
if (numCnfDaPrelevare == null && qtaColDaPrelevare == null && initialNumCnf == null && initialQtaTot == null) {
|
||||||
initialNumCnf = BigDecimal.ONE;
|
initialNumCnf = BigDecimal.ONE;
|
||||||
initialQtaCnf = mtbAart.getQtaCnf();
|
initialQtaCnf = mtbAart.getQtaCnf();
|
||||||
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
|
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
|
||||||
@@ -880,6 +920,7 @@ public class SpedizioneViewModel {
|
|||||||
mCanOverflowOrderQuantity,
|
mCanOverflowOrderQuantity,
|
||||||
(pickedQuantityDTO, shouldCloseLU) -> {
|
(pickedQuantityDTO, shouldCloseLU) -> {
|
||||||
this.saveNewRow(pickingObjectDTO,
|
this.saveNewRow(pickingObjectDTO,
|
||||||
|
null,
|
||||||
pickedQuantityDTO.getNumCnf(),
|
pickedQuantityDTO.getNumCnf(),
|
||||||
pickedQuantityDTO.getQtaCnf(),
|
pickedQuantityDTO.getQtaCnf(),
|
||||||
pickedQuantityDTO.getQtaTot(),
|
pickedQuantityDTO.getQtaTot(),
|
||||||
@@ -899,7 +940,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
PickingObjectDTO pickingObjectDTO = null;
|
PickingObjectDTO pickingObjectDTO = null;
|
||||||
|
|
||||||
if(optionalPickingObjectDTO.isPresent()) {
|
if (optionalPickingObjectDTO.isPresent()) {
|
||||||
pickingObjectDTO = optionalPickingObjectDTO.get();
|
pickingObjectDTO = optionalPickingObjectDTO.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -915,7 +956,7 @@ public class SpedizioneViewModel {
|
|||||||
BigDecimal qtaDaEvadere = null;
|
BigDecimal qtaDaEvadere = null;
|
||||||
BigDecimal qtaCnfDaEvadere = null;
|
BigDecimal qtaCnfDaEvadere = null;
|
||||||
|
|
||||||
if(finalPickingObjectDTO != null) {
|
if (finalPickingObjectDTO != null) {
|
||||||
totalQtaOrd = finalPickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
|
totalQtaOrd = finalPickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
|
||||||
totalNumCnfOrd = finalPickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
|
totalNumCnfOrd = finalPickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
|
||||||
qtaCnfOrd = finalPickingObjectDTO.getSitArtOrdDTO().getQtaCnfOrd();
|
qtaCnfOrd = finalPickingObjectDTO.getSitArtOrdDTO().getQtaCnfOrd();
|
||||||
@@ -954,12 +995,14 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
if (mtbColrRifs != null && mtbColrRifs.size() > 0) {
|
if (mtbColrRifs != null && mtbColrRifs.size() > 0) {
|
||||||
//TODO: Da capire se è necessario controllare anche il cod_jcom
|
//TODO: Da capire se è necessario controllare anche il cod_jcom
|
||||||
mtbColrRif = Stream.of(mtbColrRifs)
|
Optional<MtbColr> optionalMtbColr = Stream.of(mtbColrRifs)
|
||||||
.filter(x -> UtilityString.equalsIgnoreCase(x.getCodMart(), mtbColrToEdit.getCodMart()) &&
|
.filter(x -> UtilityString.equalsIgnoreCase(x.getCodMart(), mtbColrToEdit.getCodMart()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getCodCol(), mtbColrToEdit.getCodCol()) &&
|
UtilityString.equalsIgnoreCase(x.getCodCol(), mtbColrToEdit.getCodCol()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getCodTagl(), mtbColrToEdit.getCodTagl()) &&
|
UtilityString.equalsIgnoreCase(x.getCodTagl(), mtbColrToEdit.getCodTagl()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getPartitaMag(), mtbColrToEdit.getPartitaMag()))
|
UtilityString.equalsIgnoreCase(x.getPartitaMag(), mtbColrToEdit.getPartitaMag()))
|
||||||
.single();
|
.findSingle();
|
||||||
|
|
||||||
|
mtbColrRif = optionalMtbColr.isPresent() ? optionalMtbColr.get() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -969,6 +1012,9 @@ public class SpedizioneViewModel {
|
|||||||
totalNumCnfAvailable = mtbColrRif.getNumCnf();
|
totalNumCnfAvailable = mtbColrRif.getNumCnf();
|
||||||
qtaCnfAvailable = mtbColrRif.getQtaCnf();
|
qtaCnfAvailable = mtbColrRif.getQtaCnf();
|
||||||
|
|
||||||
|
totalNumCnfAvailable = totalNumCnfAvailable.add(mtbColrToEdit.getNumCnf());
|
||||||
|
totalQtaAvailable = totalQtaAvailable.add(mtbColrToEdit.getQtaCol());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
totalQtaAvailable = mtbColrToEdit.getQtaCol();
|
totalQtaAvailable = mtbColrToEdit.getQtaCol();
|
||||||
@@ -977,9 +1023,6 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
totalNumCnfAvailable = totalNumCnfAvailable.add(mtbColrToEdit.getNumCnf());
|
|
||||||
totalQtaAvailable = totalQtaAvailable.add(mtbColrToEdit.getQtaCol());
|
|
||||||
|
|
||||||
|
|
||||||
if (UtilityBigDecimal.lowerThan(numCnfDaPrelevare, BigDecimal.ZERO))
|
if (UtilityBigDecimal.lowerThan(numCnfDaPrelevare, BigDecimal.ZERO))
|
||||||
numCnfDaPrelevare = BigDecimal.ZERO;
|
numCnfDaPrelevare = BigDecimal.ZERO;
|
||||||
@@ -1082,7 +1125,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
public void saveNewRow(PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
final MtbColr mtbColr = new MtbColr()
|
final MtbColr mtbColr = new MtbColr()
|
||||||
@@ -1103,7 +1146,8 @@ public class SpedizioneViewModel {
|
|||||||
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null;
|
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null;
|
||||||
|
|
||||||
if (mtbColrToDispatch != null) {
|
if (mtbColrToDispatch != null) {
|
||||||
|
if (UtilityString.isNullOrEmpty(mCurrentMtbColt.getCodTcol()))
|
||||||
|
mCurrentMtbColt.setCodTcol(UtilityString.empty2null(pickingObjectDTO.getTempPickData().getSourceMtbColt().getCodTcol()));
|
||||||
|
|
||||||
mtbColr
|
mtbColr
|
||||||
.setCodJcom(UtilityString.empty2null(mtbColrToDispatch.getCodJcom()))
|
.setCodJcom(UtilityString.empty2null(mtbColrToDispatch.getCodJcom()))
|
||||||
@@ -1113,13 +1157,13 @@ public class SpedizioneViewModel {
|
|||||||
.setDataColloRif(UtilityString.empty2null(mtbColrToDispatch.getDataColloS()));
|
.setDataColloRif(UtilityString.empty2null(mtbColrToDispatch.getDataColloS()));
|
||||||
|
|
||||||
|
|
||||||
if(mtbColrToDispatch.getPesoNettoKg() != null) {
|
if (mtbColrToDispatch.getPesoNettoKg() != null) {
|
||||||
//Proporzione
|
//Proporzione
|
||||||
BigDecimal pesoNettoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoNettoKg()), mtbColrToDispatch.getQtaCol());
|
BigDecimal pesoNettoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoNettoKg()), mtbColrToDispatch.getQtaCol());
|
||||||
mtbColr.setPesoNettoKg(pesoNettoKg);
|
mtbColr.setPesoNettoKg(pesoNettoKg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(mtbColrToDispatch.getPesoLordoKg() != null) {
|
if (mtbColrToDispatch.getPesoLordoKg() != null) {
|
||||||
//Proporzione
|
//Proporzione
|
||||||
BigDecimal pesoLordoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoLordoKg()), mtbColrToDispatch.getQtaCol());
|
BigDecimal pesoLordoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoLordoKg()), mtbColrToDispatch.getQtaCol());
|
||||||
mtbColr.setPesoLordoKg(pesoLordoKg);
|
mtbColr.setPesoLordoKg(pesoLordoKg);
|
||||||
@@ -1149,14 +1193,10 @@ public class SpedizioneViewModel {
|
|||||||
//Se è l'unico articolo del collo (controllo se è uguale a 0 perché ancora non è stato aggiunto nella lista delle righe)
|
//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) {
|
if (shouldCloseLU && mCurrentMtbColt.getMtbColr().size() == 0) {
|
||||||
shouldPrint = false;
|
shouldPrint = false;
|
||||||
// if(UtilityString.isNullOrEmpty(cloneMtbColt.getCodTcol())) {
|
|
||||||
// cloneMtbColt.setCodTcol(pickingObjectDTO.getSitArtOrdDTO().getCodTcol());
|
|
||||||
// cloneMtbColt.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
|
if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
|
||||||
resetMatchedRows();
|
resetMatchedRows();
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
@@ -1176,7 +1216,18 @@ public class SpedizioneViewModel {
|
|||||||
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
|
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
|
||||||
.setMtbAart(pickingObjectDTO.getMtbAart());
|
.setMtbAart(pickingObjectDTO.getMtbAart());
|
||||||
|
|
||||||
mtbColr.setRefMtbColr(mtbColrToDispatch);
|
|
||||||
|
if(mEnableGiacenza) {
|
||||||
|
mtbColr.setRefMtbColr(new MtbColr()
|
||||||
|
.setCodMart(mtbColr.getCodMart())
|
||||||
|
.setPartitaMag(mtbColr.getPartitaMag())
|
||||||
|
.setCodTagl(mtbColr.getCodTagl())
|
||||||
|
.setCodCol(mtbColr.getCodCol())
|
||||||
|
.setNumCollo(refMtbColt.getNumCollo())
|
||||||
|
.setDataCollo(refMtbColt.getDataColloS())
|
||||||
|
.setSerCollo(refMtbColt.getSerCollo())
|
||||||
|
.setGestione(refMtbColt.getGestione()));
|
||||||
|
}
|
||||||
|
|
||||||
pickingObjectDTO.getWithdrawMtbColrs().add(mtbColr);
|
pickingObjectDTO.getWithdrawMtbColrs().add(mtbColr);
|
||||||
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
@@ -1225,7 +1276,7 @@ public class SpedizioneViewModel {
|
|||||||
.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);
|
||||||
}
|
}
|
||||||
@@ -1269,7 +1320,7 @@ public class SpedizioneViewModel {
|
|||||||
.filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToDelete))
|
.filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToDelete))
|
||||||
.findSingle();
|
.findSingle();
|
||||||
|
|
||||||
if(pickingObjectDTO.isPresent()) {
|
if (pickingObjectDTO.isPresent()) {
|
||||||
pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToDelete);
|
pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToDelete);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1379,15 +1430,14 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum(), reportName -> {
|
String reportName = ReportManager.getReportNameLUFromGestione(mtbColtToPrint.getGestioneEnum());
|
||||||
|
|
||||||
PrinterRESTConsumer.printColloStatic(
|
this.mPrinterRESTConsumer.printCollo(
|
||||||
printerName,
|
printerName,
|
||||||
mtbColtToPrint,
|
mtbColtToPrint,
|
||||||
1,
|
1,
|
||||||
reportName, onComplete, onFailed);
|
reportName, onComplete, onFailed);
|
||||||
|
|
||||||
}, onFailed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1395,14 +1445,18 @@ public class SpedizioneViewModel {
|
|||||||
this.mCurrentMtbColt = mtbColt;
|
this.mCurrentMtbColt = mtbColt;
|
||||||
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
|
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
|
||||||
|
|
||||||
|
this.mCurrentMtbColt.generaFiltroOrdineFromDTO(mDefaultFiltroOrdine);
|
||||||
|
|
||||||
this.resetMatchedRows();
|
this.resetMatchedRows();
|
||||||
this.sendLUOpened(this.mCurrentMtbColt);
|
this.sendLUOpened(this.mCurrentMtbColt);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void postCloseOperations(List<MtbColt> mtbColtList) {
|
private void postCloseOperations(List<MtbColt> mtbColtList) {
|
||||||
this.mColliRegistrati.addAll(mtbColtList);
|
Stream.of(mtbColtList)
|
||||||
|
.filter(x -> !this.mColliRegistrati.contains(x))
|
||||||
|
.forEach(x -> this.mColliRegistrati.add(x));
|
||||||
|
|
||||||
for(MtbColt mtbColt : mtbColtList) {
|
for (MtbColt mtbColt : mtbColtList) {
|
||||||
Stream.of(mTestateOrdini)
|
Stream.of(mTestateOrdini)
|
||||||
.filter(x -> x.getNumOrd().equals(mtbColt.getNumOrd()) && x.getDataOrdD().equals(mtbColt.getDataOrdD()) && x.getGestioneEnum() == mtbColt.getGestioneEnum())
|
.filter(x -> x.getNumOrd().equals(mtbColt.getNumOrd()) && x.getDataOrdD().equals(mtbColt.getDataOrdD()) && x.getGestioneEnum() == mtbColt.getGestioneEnum())
|
||||||
.forEach(x -> x.setExistColloBoolean(true));
|
.forEach(x -> x.setExistColloBoolean(true));
|
||||||
@@ -1436,7 +1490,7 @@ public class SpedizioneViewModel {
|
|||||||
.findFirst();
|
.findFirst();
|
||||||
|
|
||||||
|
|
||||||
if(optionalMtbColrReference.isPresent()) {
|
if (optionalMtbColrReference.isPresent()) {
|
||||||
//looking for real refMtbColr instance
|
//looking for real refMtbColr instance
|
||||||
MtbColr mtbColr = optionalMtbColrReference.get();
|
MtbColr mtbColr = optionalMtbColrReference.get();
|
||||||
|
|
||||||
@@ -1507,15 +1561,12 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
public interface Listener extends ILUPrintListener, ILoadingListener, ILUBaseOperationsListener {
|
public interface Listener extends ILUPrintListener, ILoadingListener, ILUBaseOperationsListener {
|
||||||
|
|
||||||
|
|
||||||
void onLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete);
|
void onLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete);
|
||||||
|
|
||||||
void onFilterApplied(String newValue);
|
void onFilterApplied(String newValue);
|
||||||
|
|
||||||
void onFilterRemoved();
|
void onFilterRemoved();
|
||||||
|
|
||||||
void onMtbColrDeleteRequest(RunnableArgs<Boolean> onComplete);
|
|
||||||
|
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
|
|
||||||
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
||||||
@@ -1536,8 +1587,6 @@ public class SpedizioneViewModel {
|
|||||||
Date dataScad,
|
Date dataScad,
|
||||||
boolean canOverflowOrderQuantity,
|
boolean canOverflowOrderQuantity,
|
||||||
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
||||||
|
|
||||||
void onRowSaved();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ import java.util.List;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.SpedizioneMainListGroupHeaderBinding;
|
import it.integry.integrywmsnative.databinding.SpedizioneMainListGroupHeaderBinding;
|
||||||
@@ -29,11 +30,10 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
|||||||
|
|
||||||
public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<SpedizioneListAdapter.SubheaderHolder, SpedizioneListAdapter.SingleItemViewHolder> {
|
public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<SpedizioneListAdapter.SubheaderHolder, SpedizioneListAdapter.SingleItemViewHolder> {
|
||||||
|
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private List<SpedizioneListModel> mDataset = new ArrayList<>();
|
private final List<SpedizioneListModel> mDataset = new ArrayList<>();
|
||||||
|
|
||||||
private RunnableArgs<PickingObjectDTO> mOnItemClicked;
|
private RunnableArgss<PickingObjectDTO, MtbColt> mOnItemClicked;
|
||||||
|
|
||||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<Spedizio
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnItemClicked(RunnableArgs<PickingObjectDTO> onItemClicked) {
|
public void setOnItemClicked(RunnableArgss<PickingObjectDTO, MtbColt> onItemClicked) {
|
||||||
this.mOnItemClicked = onItemClicked;
|
this.mOnItemClicked = onItemClicked;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<Spedizio
|
|||||||
|
|
||||||
holder.mBinding.getRoot().setOnClickListener(v -> {
|
holder.mBinding.getRoot().setOnClickListener(v -> {
|
||||||
if (this.mOnItemClicked != null)
|
if (this.mOnItemClicked != null)
|
||||||
this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel());
|
this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel(), pickingObjectDTO.getSourceMtbColt());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package it.integry.integrywmsnative.gest.spedizione.model;
|
package it.integry.integrywmsnative.gest.spedizione.model;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -9,17 +11,32 @@ import it.integry.integrywmsnative.core.model.MtbColt;
|
|||||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
|
|
||||||
public class PickingObjectDTO {
|
public class PickingObjectDTO implements Cloneable {
|
||||||
|
|
||||||
private SitArtOrdDTO sitArtOrdDTO;
|
private SitArtOrdDTO sitArtOrdDTO;
|
||||||
private MtbAart mtbAart;
|
private MtbAart mtbAart;
|
||||||
private List<MtbColt> mtbColts;
|
private List<MtbColt> mtbColts;
|
||||||
|
|
||||||
private PickDataDTO tempPickData;
|
private PickDataDTO tempPickData;
|
||||||
|
private MtbColt refMtbColt;
|
||||||
private List<MtbColr> withdrawMtbColrs = new ArrayList<>();
|
private List<MtbColr> withdrawMtbColrs = new ArrayList<>();
|
||||||
|
|
||||||
private boolean hidden = false;
|
private boolean hidden = false;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public Object clone() {
|
||||||
|
try {
|
||||||
|
return super.clone();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingObjectDTO cloneObject() {
|
||||||
|
return (PickingObjectDTO) this.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public SitArtOrdDTO getSitArtOrdDTO() {
|
public SitArtOrdDTO getSitArtOrdDTO() {
|
||||||
return sitArtOrdDTO;
|
return sitArtOrdDTO;
|
||||||
@@ -66,6 +83,15 @@ public class PickingObjectDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MtbColt getRefMtbColt() {
|
||||||
|
return refMtbColt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingObjectDTO setRefMtbColt(MtbColt refMtbColt) {
|
||||||
|
this.refMtbColt = refMtbColt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public List<MtbColr> getWithdrawMtbColrs() {
|
public List<MtbColr> getWithdrawMtbColrs() {
|
||||||
return withdrawMtbColrs;
|
return withdrawMtbColrs;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import it.integry.integrywmsnative.core.model.DtbDocr;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.dto.WithdrawableDtbDocr;
|
import it.integry.integrywmsnative.gest.picking_resi.rest.WithdrawableDtbDocr;
|
||||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||||
|
|
||||||
public class UltimeConsegneClienteRESTConsumer {
|
public class UltimeConsegneClienteRESTConsumer {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel;
|
package it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.app.ProgressDialog;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
@@ -15,14 +14,14 @@ import java.util.List;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.model.GtbAnag;
|
import it.integry.integrywmsnative.core.model.GtbAnag;
|
||||||
|
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.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
|
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity;
|
||||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzato;
|
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzato;
|
||||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
|
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
|
||||||
|
|
||||||
public class UltimeConsegneClienteViewModel {
|
public class UltimeConsegneClienteViewModel {
|
||||||
|
|
||||||
@@ -96,9 +95,8 @@ public class UltimeConsegneClienteViewModel {
|
|||||||
currentCodAnagFilter,
|
currentCodAnagFilter,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
365,
|
548,
|
||||||
consegne -> {
|
consegne -> {
|
||||||
|
|
||||||
this.mItems = consegne;
|
this.mItems = consegne;
|
||||||
|
|
||||||
this.initDataAdapter(consegne);
|
this.initDataAdapter(consegne);
|
||||||
@@ -109,7 +107,6 @@ public class UltimeConsegneClienteViewModel {
|
|||||||
mAdapter.updateItems(mRenderedItems);
|
mAdapter.updateItems(mRenderedItems);
|
||||||
|
|
||||||
progressDialog.dismiss();
|
progressDialog.dismiss();
|
||||||
|
|
||||||
}, ex -> {
|
}, ex -> {
|
||||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,40 +1,23 @@
|
|||||||
package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore;
|
package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore;
|
||||||
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
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 androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import com.annimon.stream.Optional;
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||||
import it.integry.integrywmsnative.core.model.GtbAnag;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreBinding;
|
import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreBinding;
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity;
|
|
||||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core.UltimiArriviFornitoreListAdapter;
|
|
||||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core.UltimiArriviFornitoreViewModel;
|
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core.UltimiArriviFornitoreViewModel;
|
||||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.dialog.DialogUltimiArriviFornitoreFiltroAvanzato;
|
|
||||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.rest.UltimiArriviFornitoreRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package it.integry.integrywmsnative.gest.vendita;
|
|||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
@@ -25,13 +24,11 @@ import java.util.List;
|
|||||||
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;
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
|
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
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.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.rest.CommonRESTException;
|
import it.integry.integrywmsnative.core.rest.CommonRESTException;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
@@ -234,7 +231,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
|
|||||||
+ "<br />" +
|
+ "<br />" +
|
||||||
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
|
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
|
||||||
null,
|
null,
|
||||||
() -> startVenditaActivity(sitArtsDTO, selectedOrders, mtbColtList)
|
() -> SpedizioneActivity.startActivity(getActivity(), sitArtsDTO, selectedOrders, mtbColtList)
|
||||||
).show();
|
).show();
|
||||||
|
|
||||||
}, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
|
}, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
|
||||||
@@ -350,19 +347,4 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
|
|||||||
onComplete.run();
|
onComplete.run();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startVenditaActivity(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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
package it.integry.integrywmsnative.gest.versamento_merce.viewmodel;
|
package it.integry.integrywmsnative.gest.versamento_merce.viewmodel;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
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 com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
@@ -43,13 +42,14 @@ import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione;
|
|||||||
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.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_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;
|
||||||
|
|
||||||
public class VersamentoMerceViewModel {
|
public class VersamentoMerceViewModel {
|
||||||
|
|
||||||
|
|
||||||
private Context mContext;
|
private FragmentActivity mContext;
|
||||||
private FragmentMainVersamentoMerceBinding mBinding;
|
private FragmentMainVersamentoMerceBinding mBinding;
|
||||||
private VersamentoMerceHelper mHelper;
|
private VersamentoMerceHelper mHelper;
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ public class VersamentoMerceViewModel {
|
|||||||
|
|
||||||
private Runnable mOnVersamentoCompleted;
|
private Runnable mOnVersamentoCompleted;
|
||||||
|
|
||||||
public void init(Activity context, FragmentMainVersamentoMerceBinding binding, VersamentoMerceHelper helper, Runnable onVersamentoCompleted) {
|
public void init(FragmentActivity context, FragmentMainVersamentoMerceBinding binding, VersamentoMerceHelper helper, Runnable onVersamentoCompleted) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mBinding = binding;
|
mBinding = binding;
|
||||||
mHelper = helper;
|
mHelper = helper;
|
||||||
@@ -356,27 +356,65 @@ public class VersamentoMerceViewModel {
|
|||||||
|
|
||||||
|
|
||||||
private void askSingleQuantity(MtbColr mtbColr, RunnableArgs<MtbColr> onComplete, Runnable onAbort) {
|
private void askSingleQuantity(MtbColr mtbColr, RunnableArgs<MtbColr> onComplete, Runnable onAbort) {
|
||||||
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||||
.setBatchLot(mtbColr.getPartitaMag())
|
|
||||||
.setDataScad(mtbColr.getDataScadPartitaD())
|
|
||||||
.setMtbAart(mtbColr.getMtbAart())
|
.setMtbAart(mtbColr.getMtbAart())
|
||||||
.setQtaTot(mtbColr.getQtaCol())
|
.setInitialNumCnf(mtbColr.getNumCnf())
|
||||||
.setQtaOrd(mtbColr.getQtaCol())
|
.setInitialQtaCnf(mtbColr.getQtaCnf())
|
||||||
.setQtaDaEvadere(new BigDecimal(-1))
|
.setInitialQtaTot(mtbColr.getQtaCol())
|
||||||
.setQtaEvasa(BigDecimal.ZERO)
|
.setTotalQtaAvailable(mtbColr.getQtaCol())
|
||||||
|
.setTotalNumCnfAvailable(mtbColr.getNumCnf())
|
||||||
|
.setQtaCnfAvailable(mtbColr.getQtaCnf())
|
||||||
|
.setPartitaMag(mtbColr.getPartitaMag())
|
||||||
|
.setDataScad(mtbColr.getDataScadPartitaD())
|
||||||
|
.setCanOverflowOrderQuantity(false)
|
||||||
.setCanPartitaMagBeChanged(false)
|
.setCanPartitaMagBeChanged(false)
|
||||||
.setCanDataScadBeChanged(false)
|
.setCanLUBeClosed(false);
|
||||||
.setMaxQta(mtbColr.getQtaCol());
|
|
||||||
|
|
||||||
DialogInputQuantity.makeBase(mContext, dto, false, quantityDTO -> {
|
DialogInputQuantityV2
|
||||||
mtbColr
|
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||||
.setQtaCol(quantityDTO.qtaTot.getBigDecimal())
|
// PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||||
.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
|
// .setNumCnf(resultDTO.getNumCnf())
|
||||||
.setNumCnf(quantityDTO.numCnf.getBigDecimal())
|
// .setQtaCnf(resultDTO.getQtaCnf())
|
||||||
.setDatetimeRow(UtilityDate.getDateInstance());
|
// .setQtaTot(resultDTO.getQtaTot())
|
||||||
|
// .setPartitaMag(resultDTO.getPartitaMag())
|
||||||
|
// .setDataScad(resultDTO.getDataScad());
|
||||||
|
//
|
||||||
|
// onComplete.run(pickedQuantityDTO, shouldCloseLU);
|
||||||
|
|
||||||
onComplete.run(mtbColr);
|
mtbColr
|
||||||
}, onAbort).show();
|
.setQtaCol(resultDTO.getQtaTot())
|
||||||
|
.setQtaCnf(resultDTO.getQtaCnf())
|
||||||
|
.setNumCnf(resultDTO.getNumCnf())
|
||||||
|
.setDatetimeRow(UtilityDate.getDateInstance());
|
||||||
|
|
||||||
|
onComplete.run(mtbColr);
|
||||||
|
}, onAbort)
|
||||||
|
.show(mContext.getSupportFragmentManager(), "tag");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
||||||
|
// .setBatchLot(mtbColr.getPartitaMag())
|
||||||
|
// .setDataScad(mtbColr.getDataScadPartitaD())
|
||||||
|
// .setMtbAart(mtbColr.getMtbAart())
|
||||||
|
// .setQtaTot(mtbColr.getQtaCol())
|
||||||
|
// .setQtaOrd(mtbColr.getQtaCol())
|
||||||
|
// .setQtaDaEvadere(new BigDecimal(-1))
|
||||||
|
// .setQtaEvasa(BigDecimal.ZERO)
|
||||||
|
// .setCanPartitaMagBeChanged(false)
|
||||||
|
// .setCanDataScadBeChanged(false)
|
||||||
|
// .setMaxQta(mtbColr.getQtaCol());
|
||||||
|
//
|
||||||
|
// DialogInputQuantity.makeBase(mContext, dto, false, quantityDTO -> {
|
||||||
|
// mtbColr
|
||||||
|
// .setQtaCol(quantityDTO.qtaTot.getBigDecimal())
|
||||||
|
// .setQtaCnf(quantityDTO.qtaCnf.getBigDecimal())
|
||||||
|
// .setNumCnf(quantityDTO.numCnf.getBigDecimal())
|
||||||
|
// .setDatetimeRow(UtilityDate.getDateInstance());
|
||||||
|
//
|
||||||
|
// onComplete.run(mtbColr);
|
||||||
|
// }, onAbort).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -93,12 +93,14 @@ public class SimpleAutoCompleteDropdownAdapter extends ArrayAdapter {
|
|||||||
protected void publishResults(CharSequence constraint,
|
protected void publishResults(CharSequence constraint,
|
||||||
FilterResults results) {
|
FilterResults results) {
|
||||||
// NOTE: this function is *always* called from the UI thread.
|
// NOTE: this function is *always* called from the UI thread.
|
||||||
ArrayList<T> filtered = (ArrayList<T>) results.values;
|
if(constraint != null && constraint.length() > 2) {
|
||||||
notifyDataSetChanged();
|
ArrayList<T> filtered = (ArrayList<T>) results.values;
|
||||||
clear();
|
notifyDataSetChanged();
|
||||||
for (int i = 0, l = filtered.size(); i < l; i++)
|
clear();
|
||||||
add(filtered.get(i));
|
for (int i = 0, l = filtered.size(); i < l; i++)
|
||||||
notifyDataSetInvalidated();
|
add(filtered.get(i));
|
||||||
|
notifyDataSetInvalidated();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.view.bottom_sheet__lu_content;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
@@ -14,6 +15,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.databinding.BottomSheetFragmentLuContentBinding;
|
import it.integry.integrywmsnative.databinding.BottomSheetFragmentLuContentBinding;
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__base.BottomSheetFragmentBaseView;
|
import it.integry.integrywmsnative.view.bottom_sheet__base.BottomSheetFragmentBaseView;
|
||||||
@@ -42,6 +44,13 @@ public class BottomSheetFragmentLUContentView extends BottomSheetFragmentBaseVie
|
|||||||
mBinding.bottomSheetMtbColrEdit.setListener(this);
|
mBinding.bottomSheetMtbColrEdit.setListener(this);
|
||||||
mBinding.bottomSheetMtbColrEdit.init(mBinding.bottomSheetMtbColrEdit, mBinding.bottomSheetMtbColrEditBackground);
|
mBinding.bottomSheetMtbColrEdit.init(mBinding.bottomSheetMtbColrEdit, mBinding.bottomSheetMtbColrEditBackground);
|
||||||
|
|
||||||
|
mBinding.titleLayout.setOnClickListener(new OnSingleClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onSingleClick(View v) {
|
||||||
|
toggle();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
this.initCallbacks();
|
this.initCallbacks();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,6 +101,10 @@ public class BottomSheetFragmentLUContentView extends BottomSheetFragmentBaseVie
|
|||||||
mBinding.textviewArtDescription.setText(mContext.getResources().getQuantityString(R.plurals.articles, mtbColrs.size()));
|
mBinding.textviewArtDescription.setText(mContext.getResources().getQuantityString(R.plurals.articles, mtbColrs.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void collapseMtbColrActionSheet(){
|
||||||
|
this.mBinding.bottomSheetMtbColrEdit.collapse();
|
||||||
|
}
|
||||||
|
|
||||||
public BottomSheetFragmentLUContentView setListener(Listener listener) {
|
public BottomSheetFragmentLUContentView setListener(Listener listener) {
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
@@ -1,124 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import com.google.android.material.appbar.AppBarLayout;
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import androidx.appcompat.widget.Toolbar;
|
|
||||||
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.RelativeLayout;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
|
||||||
|
|
||||||
|
|
||||||
public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.BottomSheetCallback {
|
|
||||||
|
|
||||||
private AppCompatActivity mActivity;
|
|
||||||
private FragmentArticoliInColloBottomSheetBinding mBinding;
|
|
||||||
|
|
||||||
private BottomSheetBehavior mBottomSheetBehavior;
|
|
||||||
|
|
||||||
|
|
||||||
public ArticoliInColloBottomSheetHelper(AppCompatActivity context, FragmentArticoliInColloBottomSheetBinding binding){
|
|
||||||
mActivity = context;
|
|
||||||
mBinding = binding;
|
|
||||||
|
|
||||||
mBottomSheetBehavior = BottomSheetBehavior.from(mBinding.getRoot());
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
mBottomSheetBehavior.setBottomSheetCallback(this);
|
|
||||||
|
|
||||||
mBinding.appbarBottomSheet.setVisibility(View.INVISIBLE);
|
|
||||||
|
|
||||||
mBinding.toolbarBottomSheet.setNavigationIcon(R.drawable.ic_close_24dp);
|
|
||||||
mBinding.toolbarBottomSheet.setNavigationOnClickListener(view -> {
|
|
||||||
if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED) {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
mBinding.tapActionLayout.setOnClickListener(v -> {
|
|
||||||
if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_COLLAPSED) {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
mBinding.articoliInColloCloseCollo.setText(mActivity.getText(R.string.action_close_ul));
|
|
||||||
updateRigheNumber(0);
|
|
||||||
|
|
||||||
mBinding.articoliInColloSheetButton.setOnClickListener(view -> {
|
|
||||||
if (mBottomSheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
|
||||||
} else {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void initCollo(MtbColt mtbColt){
|
|
||||||
|
|
||||||
mBinding.articoliInColloTitle.setText(String.format(mActivity.getText(R.string.articoli_in_collo_sheet_title).toString(), mtbColt.getNumCollo()));
|
|
||||||
mBinding.articoliInColloDetailsDate.setText(mtbColt.getDataColloHumanLong());
|
|
||||||
|
|
||||||
|
|
||||||
mBinding.articoliInColloDetailsPosizione.setText(mtbColt.getPosizione() != null ? mtbColt.getPosizione() : "N/A");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateRigheNumber(int newRigheNumber){
|
|
||||||
mBinding.articoliInColloSheetButton.setText(newRigheNumber + " " + mActivity.getResources().getQuantityString(R.plurals.articles, newRigheNumber));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStateChanged(@NonNull View bottomSheet, int newState) {
|
|
||||||
switch (newState) {
|
|
||||||
case BottomSheetBehavior.STATE_HIDDEN:
|
|
||||||
// mRootView.scrollTo(0, 0);
|
|
||||||
break;
|
|
||||||
case BottomSheetBehavior.STATE_EXPANDED:
|
|
||||||
mBinding.appbarBottomSheet.setClickable(true);
|
|
||||||
mBinding.appbarBottomSheet.setFocusable(true);
|
|
||||||
mBinding.tapActionLayout.setClickable(false);
|
|
||||||
mBinding.tapActionLayout.setFocusable(false);
|
|
||||||
break;
|
|
||||||
case BottomSheetBehavior.STATE_COLLAPSED:
|
|
||||||
mBinding.appbarBottomSheet.setVisibility(View.INVISIBLE);
|
|
||||||
mBinding.appbarBottomSheet.setClickable(false);
|
|
||||||
mBinding.appbarBottomSheet.setFocusable(false);
|
|
||||||
mBinding.tapActionLayout.setClickable(true);
|
|
||||||
mBinding.tapActionLayout.setFocusable(true);
|
|
||||||
break;
|
|
||||||
case BottomSheetBehavior.STATE_DRAGGING:
|
|
||||||
mBinding.appbarBottomSheet.setVisibility(View.VISIBLE);
|
|
||||||
// mRootView.scrollTo(0, 0);
|
|
||||||
break;
|
|
||||||
case BottomSheetBehavior.STATE_SETTLING:
|
|
||||||
mBinding.appbarBottomSheet.setVisibility(View.VISIBLE);
|
|
||||||
// mRootView.scrollTo(0, 0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isExpanded() {
|
|
||||||
return mBottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void expand() {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void collapse() {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
|
|
||||||
mBinding.appbarBottomSheet.setAlpha(slideOffset);
|
|
||||||
mBinding.tapActionLayout.setAlpha(1-slideOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet.interfaces;
|
|
||||||
|
|
||||||
public interface IOnColloClosedCallback {
|
|
||||||
|
|
||||||
void onColloClosed(Runnable onComplete, boolean shouldPrint);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet.interfaces;
|
|
||||||
|
|
||||||
public interface IOnSimpleListChangedCallback {
|
|
||||||
|
|
||||||
void onChange();
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet.view;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.BaseAdapter;
|
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.databinding.ObservableField;
|
|
||||||
import androidx.databinding.ObservableList;
|
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.WeakReferenceOnListChangedCallback;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
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.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding;
|
|
||||||
|
|
||||||
public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter {
|
|
||||||
|
|
||||||
|
|
||||||
private final WeakReferenceOnListChangedCallback onListChangedCallback;
|
|
||||||
private Context mContext;
|
|
||||||
private ObservableField<MtbColt> mtbColt;
|
|
||||||
|
|
||||||
|
|
||||||
public ArticoliInColloBottomSheetMtbColrAdapter(Context context, ObservableField<MtbColt> mtbColt) {
|
|
||||||
super();
|
|
||||||
this.mContext = context;
|
|
||||||
this.mtbColt = mtbColt;
|
|
||||||
this.onListChangedCallback = new WeakReferenceOnListChangedCallback(this);
|
|
||||||
|
|
||||||
this.mtbColt.get().getMtbColr().addOnListChangedCallback(onListChangedCallback);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View getView(int position, View convertView, ViewGroup parent) {
|
|
||||||
|
|
||||||
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
|
|
||||||
|
|
||||||
FragmentArticoliInColloBottomSheetMtbcolrItemBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_articoli_in_collo_bottom_sheet__mtbcolr_item, parent, false);
|
|
||||||
|
|
||||||
final MtbColr mtbColr = mtbColt.get().getMtbColr().get(position);
|
|
||||||
binding.setMtbColr(mtbColr);
|
|
||||||
|
|
||||||
//Setting qty with unt_mis
|
|
||||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
|
||||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
|
||||||
|
|
||||||
|
|
||||||
if(mtbColr.getMtbAart() != null) {
|
|
||||||
text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "";
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.qtaTextview.setText(text);
|
|
||||||
} else {
|
|
||||||
binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
binding.executePendingBindings();
|
|
||||||
|
|
||||||
if(position % 2 == 1) binding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
|
|
||||||
|
|
||||||
return binding.getRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getItemId(int position) {
|
|
||||||
return position;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object getItem(int position) {
|
|
||||||
return position;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getCount() {
|
|
||||||
if(mtbColt.get() != null && mtbColt.get().getMtbColr() != null) {
|
|
||||||
|
|
||||||
return mtbColt.get().getMtbColr().size();
|
|
||||||
} else return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,247 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet.viewmodel;
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import androidx.databinding.Observable;
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
|
||||||
import androidx.databinding.ObservableField;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import android.text.SpannableString;
|
|
||||||
import android.view.View;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.ArticoliInColloBottomSheetHelper;
|
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
|
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.view.ArticoliInColloBottomSheetMtbColrAdapter;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
|
||||||
|
|
||||||
public class ArticoliInColloBottomSheetViewModel {
|
|
||||||
|
|
||||||
public ObservableField<MtbColt> mtbColt = new ObservableField<>();
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
private ArticoliInColloBottomSheetHelper mArticoliInColloBottomSheetHelper;
|
|
||||||
|
|
||||||
private IOnColloClosedCallback onCloseColloCallback;
|
|
||||||
|
|
||||||
|
|
||||||
private FragmentArticoliInColloBottomSheetBinding mBindings;
|
|
||||||
|
|
||||||
private BottomSheetBehavior mBottomSheetBehavior;
|
|
||||||
|
|
||||||
private RunnableArgs<MtbColr> mOnItemDeletedCallback;
|
|
||||||
private RunnableArgss<MtbColr, MtbColr> mOnItemEditedCallback;
|
|
||||||
|
|
||||||
|
|
||||||
public ArticoliInColloBottomSheetViewModel(AppCompatActivity context, final FragmentArticoliInColloBottomSheetBinding bindings){
|
|
||||||
mContext = context;
|
|
||||||
mBindings = bindings;
|
|
||||||
mArticoliInColloBottomSheetHelper = new ArticoliInColloBottomSheetHelper(context, mBindings);
|
|
||||||
|
|
||||||
mBindings.setViewModel(this);
|
|
||||||
|
|
||||||
mtbColt.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
|
||||||
@Override
|
|
||||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
|
||||||
|
|
||||||
if(mtbColt.get() != null) {
|
|
||||||
|
|
||||||
mBindings.linearListview.setAdapter(new ArticoliInColloBottomSheetMtbColrAdapter(mContext, mtbColt));
|
|
||||||
|
|
||||||
mBindings.linearListview.setOnItemClickListener((parent, view, position, id) -> {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
|
||||||
|
|
||||||
onItemClicked.run(position);
|
|
||||||
});
|
|
||||||
|
|
||||||
mArticoliInColloBottomSheetHelper.updateRigheNumber(mtbColt.get().getMtbColr().size());
|
|
||||||
mArticoliInColloBottomSheetHelper.initCollo(mtbColt.get());
|
|
||||||
|
|
||||||
mtbColt.get().getMtbColr().addOnListChangedCallback(new SimpleListChangedCallback(() -> {
|
|
||||||
mArticoliInColloBottomSheetHelper.updateRigheNumber(mtbColt.get().getMtbColr().size());
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
initBottomSheetActions();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOnItemEditedCallback(RunnableArgss<MtbColr, MtbColr> onItemEditedCallback) {
|
|
||||||
this.mOnItemEditedCallback = onItemEditedCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOnItemDeletedCallback(RunnableArgs<MtbColr> onItemDeletedCallback) {
|
|
||||||
this.mOnItemDeletedCallback = onItemDeletedCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initBottomSheetActions() {
|
|
||||||
mBindings.bg.setOnClickListener(v -> mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED));
|
|
||||||
|
|
||||||
mBottomSheetBehavior = BottomSheetBehavior.from(mBindings.bottomSheetActions);
|
|
||||||
|
|
||||||
mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
|
|
||||||
@Override
|
|
||||||
public void onStateChanged(@NonNull View bottomSheet, int newState) {
|
|
||||||
if (newState == BottomSheetBehavior.STATE_COLLAPSED)
|
|
||||||
mBindings.bg.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
|
|
||||||
mBindings.bg.setVisibility(View.VISIBLE);
|
|
||||||
mBindings.bg.setAlpha(slideOffset);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOnCloseColloCallbackListener(final IOnColloClosedCallback onCloseColloCallback){
|
|
||||||
this.onCloseColloCallback = onCloseColloCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void closeCurrentUL(){
|
|
||||||
closeCurrentUL(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void closeCurrentUL(Runnable onComplete){
|
|
||||||
if(onCloseColloCallback != null) onCloseColloCallback.onColloClosed(onComplete, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isExpanded() {
|
|
||||||
return mArticoliInColloBottomSheetHelper.isExpanded();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void expand() {
|
|
||||||
mArticoliInColloBottomSheetHelper.expand();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void collapse() {
|
|
||||||
mArticoliInColloBottomSheetHelper.collapse();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private RunnableArgs<Integer> onItemClicked = (position) -> {
|
|
||||||
|
|
||||||
MtbColr clickedItem = mtbColt.get().getMtbColr().get(position);
|
|
||||||
|
|
||||||
mBindings.bottomSheetActionsTitle.setText(clickedItem.getDescrizione());
|
|
||||||
mBindings.bottomSheetActionsSubtitle.setText(clickedItem.getCodMart());
|
|
||||||
|
|
||||||
|
|
||||||
//Setting qty with unt_mis
|
|
||||||
if(clickedItem.getMtbAart() != null) {
|
|
||||||
if (clickedItem.getMtbAart().isFlagQtaCnfFissaBoolean()) {
|
|
||||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + (!UtilityString.isNullOrEmpty(clickedItem.getMtbAart().getUntMis()) ? ("" + clickedItem.getMtbAart().getUntMis()) : ""));
|
|
||||||
} else {
|
|
||||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getNumCnf()) + " " + mContext.getString(R.string.unt_mis_col));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()));
|
|
||||||
}
|
|
||||||
|
|
||||||
mBindings.bottomSheetActionsEditBtn.setOnClickListener(v -> onItemEdit(position));
|
|
||||||
|
|
||||||
mBindings.bottomSheetActionsDeleteBtn.setOnClickListener(v -> onItemDelete(position));
|
|
||||||
};
|
|
||||||
|
|
||||||
private void onItemEdit(int position) {
|
|
||||||
|
|
||||||
MtbColr itemToEdit = mtbColt.get().getMtbColr().get(position);
|
|
||||||
MtbColr cloneItemToEdit = (MtbColr) itemToEdit.clone();
|
|
||||||
|
|
||||||
MtbColr originalItem = (MtbColr) itemToEdit.clone();
|
|
||||||
|
|
||||||
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
|
|
||||||
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
|
||||||
.setBatchLot(itemToEdit.getPartitaMag())
|
|
||||||
.setQtaDaEvadere(null)
|
|
||||||
.setQtaOrd(null)
|
|
||||||
.setMtbAart(itemToEdit.getMtbAart())
|
|
||||||
.setCanPartitaMagBeChanged(false)
|
|
||||||
.setQtaTot(itemToEdit.getQtaCol())
|
|
||||||
.setMaxQta(itemToEdit.getQtaCol());
|
|
||||||
|
|
||||||
DialogInputQuantity.makeBase(mContext, dto, false, quantityDTO -> {
|
|
||||||
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
|
||||||
|
|
||||||
|
|
||||||
cloneItemToEdit.setQtaCol(quantityDTO.qtaTot.getBigDecimal());
|
|
||||||
cloneItemToEdit.setNumCnf(quantityDTO.numCnf.getBigDecimal());
|
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.updateRigaStatic(cloneItemToEdit, () ->{
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
|
|
||||||
itemToEdit.setQtaCol(quantityDTO.qtaTot.getBigDecimal());
|
|
||||||
itemToEdit.setNumCnf(quantityDTO.numCnf.getBigDecimal());
|
|
||||||
|
|
||||||
progress.dismiss();
|
|
||||||
mtbColt.get().getMtbColr().set(position, itemToEdit);
|
|
||||||
|
|
||||||
if(mOnItemEditedCallback != null) mOnItemEditedCallback.run(originalItem, itemToEdit);
|
|
||||||
},
|
|
||||||
ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
|
||||||
|
|
||||||
}, null).show();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onItemDelete(int position) {
|
|
||||||
|
|
||||||
|
|
||||||
String text = mContext.getResources().getString(R.string.alert_delete_mtb_colr);
|
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(text), null, () -> {
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
|
||||||
|
|
||||||
MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone();
|
|
||||||
mtbColtClone.setMtbColr(new ObservableArrayList<>());
|
|
||||||
mtbColtClone.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
|
||||||
|
|
||||||
MtbColr itemToDelete = (MtbColr) mtbColt.get().getMtbColr().get(position).clone();
|
|
||||||
itemToDelete.setQtaCol(itemToDelete.getQtaCol().multiply(new BigDecimal(-1)));
|
|
||||||
itemToDelete.setNumCnf(itemToDelete.getNumCnf().multiply(new BigDecimal(-1)));
|
|
||||||
itemToDelete.setRiga(null);
|
|
||||||
itemToDelete.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
|
||||||
|
|
||||||
mtbColtClone.getMtbColr().add(itemToDelete);
|
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveColloStatic(mtbColtClone, (newMtbColt) -> {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
|
|
||||||
MtbColr deletedItem = mtbColt.get().getMtbColr().get(position);
|
|
||||||
mtbColt.get().getMtbColr().remove(deletedItem);
|
|
||||||
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
if(this.mOnItemDeletedCallback != null) this.mOnItemDeletedCallback.run(deletedItem);
|
|
||||||
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
|
||||||
}, null).show();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet.viewmodel;
|
|
||||||
|
|
||||||
import androidx.databinding.ObservableList;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnSimpleListChangedCallback;
|
|
||||||
|
|
||||||
public class SimpleListChangedCallback extends ObservableList.OnListChangedCallback {
|
|
||||||
|
|
||||||
private IOnSimpleListChangedCallback mOnSimpleListChangedCallback;
|
|
||||||
|
|
||||||
public SimpleListChangedCallback(IOnSimpleListChangedCallback onSimpleListChangedCallback) {
|
|
||||||
mOnSimpleListChangedCallback = onSimpleListChangedCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onChanged(ObservableList sender) {
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -146,7 +146,7 @@ public class DialogAskPositionOfLU {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||||
|
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.base;
|
package it.integry.integrywmsnative.view.dialogs.base;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
@@ -9,22 +8,20 @@ import android.graphics.Color;
|
|||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
import android.graphics.drawable.ColorDrawable;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import androidx.annotation.StringRes;
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.appcompat.widget.AppCompatImageView;
|
|
||||||
|
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.StringRes;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.databinding.DialogBaseBinding;
|
import it.integry.integrywmsnative.databinding.DialogBaseBinding;
|
||||||
|
|
||||||
@@ -41,9 +38,11 @@ public class DialogSimpleMessageHelper {
|
|||||||
ERROR(4);
|
ERROR(4);
|
||||||
|
|
||||||
private int value;
|
private int value;
|
||||||
|
|
||||||
TYPE(int value) {
|
TYPE(int value) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getValue() {
|
public int getValue() {
|
||||||
return this.value;
|
return this.value;
|
||||||
}
|
}
|
||||||
@@ -56,15 +55,15 @@ public class DialogSimpleMessageHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Dialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){
|
private static Dialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes Integer rNeutralButtonString, Runnable onNeutralClick) {
|
||||||
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||||
|
|
||||||
int colorBackgroundTitle = -1;
|
int colorBackgroundTitle = -1;
|
||||||
Drawable titleIconRes = null;
|
Drawable titleIconRes = null;
|
||||||
|
|
||||||
Dialog dialog = new Dialog(mContext);
|
Dialog dialog = new Dialog(mContext);
|
||||||
|
|
||||||
switch (type){
|
switch (type) {
|
||||||
case INFO:
|
case INFO:
|
||||||
colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.light_blue_300);
|
colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.light_blue_300);
|
||||||
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_info_78dp);
|
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_info_78dp);
|
||||||
@@ -91,7 +90,11 @@ public class DialogSimpleMessageHelper {
|
|||||||
viewModel
|
viewModel
|
||||||
.setOnPositive(onPositiveClick)
|
.setOnPositive(onPositiveClick)
|
||||||
.setOnNeutral(onNeutralClick)
|
.setOnNeutral(onNeutralClick)
|
||||||
.setOnNegative(onNegativeClick);
|
.setOnNegative(onNegativeClick)
|
||||||
|
|
||||||
|
.setPositiveButtonText(mContext.getText(R.string.ok).toString())
|
||||||
|
.setNeutralButtonText(rNeutralButtonString != null && rNeutralButtonString != -1 ? mContext.getText(rNeutralButtonString).toString() : null)
|
||||||
|
.setNegativeButtonText(mContext.getText(R.string.no).toString());
|
||||||
|
|
||||||
|
|
||||||
DialogBaseBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.dialog_base, null, false);
|
DialogBaseBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.dialog_base, null, false);
|
||||||
@@ -99,12 +102,10 @@ public class DialogSimpleMessageHelper {
|
|||||||
mBinding.setViewmodel(viewModel);
|
mBinding.setViewmodel(viewModel);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Rect displayRectangle = new Rect();
|
Rect displayRectangle = new Rect();
|
||||||
Window window = ((Activity) mContext).getWindow();
|
Window window = ((Activity) mContext).getWindow();
|
||||||
window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle);
|
window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle);
|
||||||
mBinding.titleContainer.setMinimumWidth((int)(displayRectangle.width() * 0.8f));
|
mBinding.titleContainer.setMinimumWidth((int) (displayRectangle.width() * 0.8f));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Title VIEW
|
//Title VIEW
|
||||||
@@ -120,7 +121,7 @@ public class DialogSimpleMessageHelper {
|
|||||||
|
|
||||||
LinearLayout hashMapContainer = mBinding.dialogContentHashmap;
|
LinearLayout hashMapContainer = mBinding.dialogContentHashmap;
|
||||||
|
|
||||||
if(hashmapContent != null) {
|
if (hashmapContent != null) {
|
||||||
for (int i = 0; i < hashmapContent.keySet().size(); i++) {
|
for (int i = 0; i < hashmapContent.keySet().size(); i++) {
|
||||||
String currentKey = hashmapContent.keySet().toArray()[i].toString();
|
String currentKey = hashmapContent.keySet().toArray()[i].toString();
|
||||||
String currentValue = hashmapContent.get(currentKey);
|
String currentValue = hashmapContent.get(currentKey);
|
||||||
@@ -142,7 +143,7 @@ public class DialogSimpleMessageHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){
|
public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick) {
|
||||||
return makeBase(TYPE.INFO,
|
return makeBase(TYPE.INFO,
|
||||||
mContext,
|
mContext,
|
||||||
titleText,
|
titleText,
|
||||||
@@ -153,7 +154,7 @@ public class DialogSimpleMessageHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){
|
public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick) {
|
||||||
return makeBase(TYPE.INFO,
|
return makeBase(TYPE.INFO,
|
||||||
mContext,
|
mContext,
|
||||||
titleText,
|
titleText,
|
||||||
@@ -164,7 +165,7 @@ public class DialogSimpleMessageHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Dialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){
|
public static Dialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick) {
|
||||||
return makeBase(TYPE.SUCCESS,
|
return makeBase(TYPE.SUCCESS,
|
||||||
mContext,
|
mContext,
|
||||||
titleText,
|
titleText,
|
||||||
@@ -175,18 +176,20 @@ public class DialogSimpleMessageHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){
|
public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick) {
|
||||||
return makeBase(TYPE.WARNING,
|
return makeBase(TYPE.WARNING,
|
||||||
mContext,
|
mContext,
|
||||||
mContext.getText(R.string.warning).toString(),
|
mContext.getText(R.string.warning).toString(),
|
||||||
messageText,
|
messageText,
|
||||||
hashmapContent,
|
hashmapContent,
|
||||||
onPositiveClick,
|
onPositiveClick,
|
||||||
() -> { if(onNegativeClick != null) onNegativeClick.run(); }, -1, null);
|
() -> {
|
||||||
|
if (onNegativeClick != null) onNegativeClick.run();
|
||||||
|
}, -1, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){
|
public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick) {
|
||||||
return makeBase(TYPE.WARNING,
|
return makeBase(TYPE.WARNING,
|
||||||
mContext,
|
mContext,
|
||||||
mContext.getText(R.string.warning).toString(),
|
mContext.getText(R.string.warning).toString(),
|
||||||
@@ -196,7 +199,7 @@ public class DialogSimpleMessageHelper {
|
|||||||
null, -1, null);
|
null, -1, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void showSimpleWarningDialog(Context context, String message){
|
public static void showSimpleWarningDialog(Context context, String message) {
|
||||||
makeErrorDialog(
|
makeErrorDialog(
|
||||||
context,
|
context,
|
||||||
new SpannableString(message),
|
new SpannableString(message),
|
||||||
@@ -204,7 +207,7 @@ public class DialogSimpleMessageHelper {
|
|||||||
null).show();
|
null).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){
|
public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick) {
|
||||||
|
|
||||||
return makeBase(TYPE.ERROR,
|
return makeBase(TYPE.ERROR,
|
||||||
mContext,
|
mContext,
|
||||||
@@ -215,7 +218,7 @@ public class DialogSimpleMessageHelper {
|
|||||||
null, -1, null);
|
null, -1, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void showSimpleErrorDialog(Context context, String message){
|
public static void showSimpleErrorDialog(Context context, String message) {
|
||||||
makeErrorDialog(
|
makeErrorDialog(
|
||||||
context,
|
context,
|
||||||
new SpannableString(message),
|
new SpannableString(message),
|
||||||
@@ -223,7 +226,7 @@ public class DialogSimpleMessageHelper {
|
|||||||
null).show();
|
null).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){
|
public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick) {
|
||||||
|
|
||||||
return makeBase(TYPE.ERROR,
|
return makeBase(TYPE.ERROR,
|
||||||
mContext,
|
mContext,
|
||||||
@@ -236,5 +239,4 @@ public class DialogSimpleMessageHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ public class DialogSimpleMessageViewModel {
|
|||||||
private Runnable onNeutral;
|
private Runnable onNeutral;
|
||||||
private Runnable onNegative;
|
private Runnable onNegative;
|
||||||
|
|
||||||
|
private String positiveButtonText;
|
||||||
|
private String neutralButtonText;
|
||||||
|
private String negativeButtonText;
|
||||||
|
|
||||||
public DialogSimpleMessageViewModel(Dialog dialog) {
|
public DialogSimpleMessageViewModel(Dialog dialog) {
|
||||||
mDialog = dialog;
|
mDialog = dialog;
|
||||||
@@ -46,6 +49,33 @@ public class DialogSimpleMessageViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getPositiveButtonText() {
|
||||||
|
return positiveButtonText;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSimpleMessageViewModel setPositiveButtonText(String positiveButtonText) {
|
||||||
|
this.positiveButtonText = positiveButtonText;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNeutralButtonText() {
|
||||||
|
return neutralButtonText;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSimpleMessageViewModel setNeutralButtonText(String neutralButtonText) {
|
||||||
|
this.neutralButtonText = neutralButtonText;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNegativeButtonText() {
|
||||||
|
return negativeButtonText;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSimpleMessageViewModel setNegativeButtonText(String negativeButtonText) {
|
||||||
|
this.negativeButtonText = negativeButtonText;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public void onPositiveClick() {
|
public void onPositiveClick() {
|
||||||
mDialog.dismiss();
|
mDialog.dismiss();
|
||||||
if(onPositive != null) onPositive.run();
|
if(onPositive != null) onPositive.run();
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ public class DialogChooseArtsFromListaArts {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
|
|
||||||
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(currentContext);
|
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(currentContext);
|
||||||
|
|||||||
@@ -409,7 +409,7 @@ public class DialogInputQuantity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
|
|
||||||
if(UtilityBarcode.isEanPeso(data)){
|
if(UtilityBarcode.isEanPeso(data)){
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
|
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
@@ -27,16 +28,26 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
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.barcode_reader.BarcodeCallbackDTO;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
import it.integry.integrywmsnative.core.model.MtbUntMis;
|
import it.integry.integrywmsnative.core.model.MtbUntMis;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
|
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
public class DialogInputQuantityV2 extends DialogFragment implements DialogInputQuantityV2ViewModel.Listener {
|
public class DialogInputQuantityV2 extends DialogFragment implements DialogInputQuantityV2ViewModel.Listener {
|
||||||
|
|
||||||
private DialogInputQuantityV2ViewModel mViewModel;
|
@Inject
|
||||||
|
DialogInputQuantityV2ViewModel mViewModel;
|
||||||
private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO;
|
private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO;
|
||||||
private RunnableArgss<DialogInputQuantityV2ResultDTO, Boolean> mOnComplete;
|
private RunnableArgss<DialogInputQuantityV2ResultDTO, Boolean> mOnComplete;
|
||||||
private Runnable mOnAbort;
|
private Runnable mOnAbort;
|
||||||
@@ -60,6 +71,9 @@ public class DialogInputQuantityV2 extends DialogFragment implements DialogInput
|
|||||||
private DialogInputQuantityV2Binding mBindings;
|
private DialogInputQuantityV2Binding mBindings;
|
||||||
private boolean mEnableDataCallback = true;
|
private boolean mEnableDataCallback = true;
|
||||||
|
|
||||||
|
private int mBarcodeScannerIstanceID;
|
||||||
|
private Dialog mCurrentProgress;
|
||||||
|
|
||||||
public static DialogInputQuantityV2 newInstance(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO, @NotNull RunnableArgss<DialogInputQuantityV2ResultDTO, Boolean> onComplete, @NotNull Runnable onAbort) {
|
public static DialogInputQuantityV2 newInstance(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO, @NotNull RunnableArgss<DialogInputQuantityV2ResultDTO, Boolean> onComplete, @NotNull Runnable onAbort) {
|
||||||
return new DialogInputQuantityV2(dialogInputQuantityV2DTO, onComplete, onAbort);
|
return new DialogInputQuantityV2(dialogInputQuantityV2DTO, onComplete, onAbort);
|
||||||
}
|
}
|
||||||
@@ -74,6 +88,8 @@ public class DialogInputQuantityV2 extends DialogFragment implements DialogInput
|
|||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setStyle(DialogFragment.STYLE_NORMAL, R.style.AppTheme_NewMaterial_Dialog_FullscreenDialog);
|
setStyle(DialogFragment.STYLE_NORMAL, R.style.AppTheme_NewMaterial_Dialog_FullscreenDialog);
|
||||||
|
|
||||||
|
this.initBarcode();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -85,7 +101,12 @@ public class DialogInputQuantityV2 extends DialogFragment implements DialogInput
|
|||||||
|
|
||||||
mBindings.toolbar.setTitle("Inserimento articolo");
|
mBindings.toolbar.setTitle("Inserimento articolo");
|
||||||
|
|
||||||
this.mViewModel = new DialogInputQuantityV2ViewModel()
|
MainApplication.appComponent
|
||||||
|
.dialogInputQuantityV2Component()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
this.mViewModel
|
||||||
.setMtbAart(mDialogInputQuantityV2DTO.getMtbAart())
|
.setMtbAart(mDialogInputQuantityV2DTO.getMtbAart())
|
||||||
.setInitialNumCnf(mDialogInputQuantityV2DTO.getInitialNumCnf())
|
.setInitialNumCnf(mDialogInputQuantityV2DTO.getInitialNumCnf())
|
||||||
.setInitialQtaCnf(mDialogInputQuantityV2DTO.getInitialQtaCnf())
|
.setInitialQtaCnf(mDialogInputQuantityV2DTO.getInitialQtaCnf())
|
||||||
@@ -114,6 +135,35 @@ public class DialogInputQuantityV2 extends DialogFragment implements DialogInput
|
|||||||
return mBindings.getRoot();
|
return mBindings.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initBarcode() {
|
||||||
|
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
|
.setOnScanSuccessfull(onScanSuccessful)
|
||||||
|
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this.context, ex, false)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
|
||||||
|
this.openProgress();
|
||||||
|
|
||||||
|
this.mViewModel.processBarcodeDTO(data, () -> {
|
||||||
|
BarcodeManager.enable();
|
||||||
|
this.closeProgress();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private void openProgress() {
|
||||||
|
if (this.mCurrentProgress == null) {
|
||||||
|
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this.context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void closeProgress() {
|
||||||
|
if (mCurrentProgress != null) {
|
||||||
|
mCurrentProgress.dismiss();
|
||||||
|
mCurrentProgress = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void save() {
|
public void save() {
|
||||||
if (this.mViewModel.validate()) {
|
if (this.mViewModel.validate()) {
|
||||||
@@ -131,6 +181,7 @@ public class DialogInputQuantityV2 extends DialogFragment implements DialogInput
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
|
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
||||||
this.mOnAbort.run();
|
this.mOnAbort.run();
|
||||||
super.onDismiss(dialog);
|
super.onDismiss(dialog);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogInputQuantityV2Component {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogInputQuantityV2Component create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogInputQuantityV2 dialogInputQuantityV2);
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogInputQuantityV2Component.class)
|
||||||
|
public class DialogInputQuantityV2Module {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogInputQuantityV2ViewModel providesDialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
|
return new DialogInputQuantityV2ViewModel(barcodeRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -5,8 +5,15 @@ import androidx.databinding.ObservableField;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
|
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.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.exception.InvalidBatchLotException;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.exception.InvalidBatchLotException;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.exception.InvalidExpireDateException;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.exception.InvalidExpireDateException;
|
||||||
@@ -55,6 +62,13 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
|
|
||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
|
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
if(this.initialNumCnf != null && this.initialQtaTot != null && this.initialQtaCnf != null) {
|
if(this.initialNumCnf != null && this.initialQtaTot != null && this.initialQtaCnf != null) {
|
||||||
this.internalNumCnf = this.initialNumCnf;
|
this.internalNumCnf = this.initialNumCnf;
|
||||||
@@ -77,7 +91,7 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
this.internalQtaTot = totalQtaOrd;
|
this.internalQtaTot = totalQtaOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.shouldAskDataScad = mtbAart.get().isFlagQtaCnfFissaBoolean() && mtbAart.get().getGgScadPartita() != null && mtbAart.get().getGgScadPartita() > 0;
|
this.shouldAskDataScad = mtbAart.get().isFlagTracciabilitaBoolean() && mtbAart.get().getGgScadPartita() != null && mtbAart.get().getGgScadPartita() > 0;
|
||||||
this.shouldShowDataScad = this.internalDataScad != null;
|
this.shouldShowDataScad = this.internalDataScad != null;
|
||||||
|
|
||||||
this.blockedNumCnf.set(false);
|
this.blockedNumCnf.set(false);
|
||||||
@@ -87,6 +101,61 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
this.mListener.onDataChanged();
|
this.mListener.onDataChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
|
if(UtilityBarcode.isEanPeso(barcodeScanDTO)) {
|
||||||
|
Ean13PesoModel ean13PesoModel;
|
||||||
|
|
||||||
|
try {
|
||||||
|
ean13PesoModel = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue());
|
||||||
|
} catch (Exception ex) {
|
||||||
|
this.mListener.onError(ex);
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.mtbAart.get() != null && this.mtbAart.get().getBarCode() != null && ean13PesoModel.getPrecode().contains(this.mtbAart.get().getBarCode())) {
|
||||||
|
this.setQtaTot(BigDecimal.valueOf(ean13PesoModel.getPeso()));
|
||||||
|
}
|
||||||
|
|
||||||
|
onComplete.run();
|
||||||
|
} else if(UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
|
||||||
|
this.mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
|
||||||
|
|
||||||
|
if(ean128Model == null) {
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) {
|
||||||
|
this.setPartitaMag(ean128Model.BatchLot);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
if(!UtilityString.isNullOrEmpty(ean128Model.BestBefore)){
|
||||||
|
this.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore));
|
||||||
|
} else if(!UtilityString.isNullOrEmpty(ean128Model.Expiry)) {
|
||||||
|
this.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry));
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
this.mListener.onError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ean128Model.Count != null && ean128Model.Count > 0) {
|
||||||
|
this.setNumCnf(BigDecimal.valueOf(ean128Model.Count));
|
||||||
|
} else if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0) {
|
||||||
|
this.setQtaTot(BigDecimal.valueOf(ean128Model.NetWeightKg));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.mListener.onDataChanged();
|
||||||
|
onComplete.run();
|
||||||
|
|
||||||
|
}, ex -> {
|
||||||
|
this.mListener.onError(ex);
|
||||||
|
onComplete.run();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String getPartitaMag() {
|
public String getPartitaMag() {
|
||||||
return internalPartitaMag;
|
return internalPartitaMag;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class DialogScanArt {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||||
|
|
||||||
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||||
|
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ public class DialogScanOrCreateLU {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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);
|
||||||
|
|||||||
@@ -4,9 +4,11 @@
|
|||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
<data>
|
<data>
|
||||||
|
|
||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
|
|
||||||
<variable
|
<variable
|
||||||
name="viewmodel"
|
name="pickingResiView"
|
||||||
type="it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity" />
|
type="it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
@@ -24,8 +26,7 @@
|
|||||||
|
|
||||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
android:layout_above="@id/empty_space_padding">
|
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar"
|
android:id="@+id/appbar"
|
||||||
@@ -62,65 +63,6 @@
|
|||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||||
|
|
||||||
<net.cachapa.expandablelayout.ExpandableLayout
|
|
||||||
android:id="@+id/filtered_arts_in_list_expandable_layout"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
app:el_duration="400"
|
|
||||||
app:el_expanded="false">
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="12dp"
|
|
||||||
android:paddingBottom="12dp"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignParentStart="true"
|
|
||||||
android:layout_toStartOf="@+id/remove_art_filter_list"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:text="@string/filtered_arts_in_list" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/description_filter_text"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textColor="@android:color/black"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:maxLines="1"
|
|
||||||
tools:text="COD_ART_HERE"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
|
||||||
android:id="@+id/remove_art_filter_list"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/Button.DangerOutline"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:text="@string/remove_filter_button"
|
|
||||||
android:onClick="@{() -> viewmodel.removeListFilter()}"
|
|
||||||
app:strokeColor="@color/red_600"/>
|
|
||||||
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
</net.cachapa.expandablelayout.ExpandableLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/main_list"
|
android:id="@+id/main_list"
|
||||||
@@ -137,7 +79,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:alpha="0.3"
|
android:alpha="0.3"
|
||||||
android:visibility="@{viewmodel.mDtbDocrList.size() > 0 ? View.GONE : View.VISIBLE}"
|
app:visibility="@{pickingResiView.noItemsToPick}"
|
||||||
tools:context=".gest.lista_bancali.ListaBancaliActivity">
|
tools:context=".gest.lista_bancali.ListaBancaliActivity">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
<androidx.constraintlayout.widget.Guideline
|
||||||
@@ -192,7 +134,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_alignParentBottom="true"
|
||||||
android:visibility="@{viewmodel.currentMtbColt == null ? View.VISIBLE : View.GONE}"
|
app:visibility="@{pickingResiView.noLUPresent}"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|
||||||
@@ -233,36 +175,33 @@
|
|||||||
app:fab_colorNormal="@color/white"
|
app:fab_colorNormal="@color/white"
|
||||||
app:fab_colorPressed="@color/white_pressed"
|
app:fab_colorPressed="@color/white_pressed"
|
||||||
app:fab_colorRipple="#66FFFFFF"
|
app:fab_colorRipple="#66FFFFFF"
|
||||||
app:onClick="@{() -> viewmodel.createNewUL()}"
|
app:onClick="@{() -> pickingResiView.createNewLU()}"
|
||||||
fab:fab_label="@string/action_create_ul" />
|
fab:fab_label="@string/action_create_ul" />
|
||||||
|
|
||||||
</com.github.clans.fab.FloatingActionMenu>
|
</com.github.clans.fab.FloatingActionMenu>
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
<RelativeLayout
|
<!-- <RelativeLayout-->
|
||||||
android:id="@+id/empty_space_padding"
|
<!-- android:id="@+id/empty_space_padding"-->
|
||||||
android:layout_width="match_parent"
|
<!-- android:layout_width="match_parent"-->
|
||||||
android:layout_height="?attr/actionBarSize"
|
<!-- android:layout_height="?attr/actionBarSize"-->
|
||||||
android:visibility="@{viewmodel.currentMtbColt != null ? View.VISIBLE : View.GONE}"
|
<!-- android:visibility="@{viewmodel.currentMtbColt != null ? View.VISIBLE : View.GONE}"-->
|
||||||
android:layout_alignParentBottom="true">
|
<!-- android:layout_alignParentBottom="true">-->
|
||||||
|
|
||||||
</RelativeLayout>
|
<!-- </RelativeLayout>-->
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:id="@+id/shadow"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="16dp"
|
|
||||||
android:background="@drawable/shape_gradient_top_shadow"
|
|
||||||
android:visibility="@{viewmodel.currentMtbColt != null ? View.VISIBLE : View.GONE}"
|
|
||||||
app:layout_anchor="@id/bottom_sheet_include" />
|
|
||||||
|
|
||||||
<include
|
<it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView
|
||||||
android:id="@+id/bottom_sheet_include"
|
android:id="@+id/bottom_sheet_lu_content"
|
||||||
layout="@layout/fragment_articoli_in_collo_bottom_sheet"
|
android:layout_width="match_parent"
|
||||||
android:visibility="@{viewmodel.currentMtbColt != null ? View.VISIBLE : View.GONE}" />
|
android:layout_height="match_parent"
|
||||||
|
app:visibility="@{pickingResiView.bottomSheetEnabled}"
|
||||||
|
app:behavior_hideable="false"
|
||||||
|
app:behavior_peekHeight="66dp"
|
||||||
|
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior" />
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -390,7 +390,8 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="#99000000"
|
android:background="#99000000"
|
||||||
android:visibility="gone" />
|
android:visibility="gone"
|
||||||
|
singleClick="@{() -> view.collapseMtbColrActionSheet()}"/>
|
||||||
|
|
||||||
<it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView
|
<it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView
|
||||||
android:id="@+id/bottom_sheet__mtb_colr_edit"
|
android:id="@+id/bottom_sheet__mtb_colr_edit"
|
||||||
|
|||||||
@@ -1,16 +1,25 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<data>
|
<data>
|
||||||
|
|
||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityDate.COMMONS_DATE_FORMATS" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.core.settings.SettingsManager" />
|
<import type="it.integry.integrywmsnative.core.settings.SettingsManager" />
|
||||||
|
|
||||||
<variable
|
<variable
|
||||||
name="mtbColr"
|
name="mtbColr"
|
||||||
type="it.integry.integrywmsnative.core.model.MtbColr"/>
|
type="it.integry.integrywmsnative.core.model.MtbColr" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
@@ -18,101 +27,290 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="8dp">
|
android:padding="8dp">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
<LinearLayout
|
android:id="@+id/art_detail"
|
||||||
android:id="@+id/linearLayout"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/qta_box"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/linearLayout"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/qta_box"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{mtbColr.codMart}"
|
||||||
|
android:textColor="@color/colorPrimary"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="COD MART" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:background="@drawable/badge2_round_corner"
|
||||||
|
android:paddingStart="6dp"
|
||||||
|
android:paddingEnd="6dp"
|
||||||
|
android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null && !mtbColr.mtbAart.flagQtaCnfFissaBoolean) ? View.VISIBLE : View.GONE}"
|
||||||
|
tools:text="PESO KG" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:paddingStart="0dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
android:text="@{mtbColr.getDescrizione()}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="16sp"
|
||||||
|
tools:text="Descrizione lunga articolo" />
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{`Lotto: ` + mtbColr.getPartitaMag()}"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.getPartitaMag()) ? View.INVISIBLE : View.VISIBLE}"
|
||||||
|
tools:text="Lotto: ABCDE" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/qta_box"
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@{mtbColr.codMart}"
|
|
||||||
android:textColor="@color/colorPrimary"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
tools:text="COD MART" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}"
|
|
||||||
android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null && !mtbColr.mtbAart.flagQtaCnfFissaBoolean) ? View.VISIBLE : View.GONE}"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:paddingStart="6dp"
|
|
||||||
android:paddingEnd="6dp"
|
|
||||||
android:background="@drawable/badge2_round_corner"
|
|
||||||
android:textColor="@android:color/white"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
tools:text="PESO KG" />
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:text="@{mtbColr.getDescrizione()}"
|
|
||||||
android:textColor="@android:color/black"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:paddingStart="0dp"
|
|
||||||
android:paddingEnd="8dp"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
tools:text="Descrizione lunga articolo" />
|
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@{`Lotto: ` + mtbColr.getPartitaMag()}"
|
android:paddingStart="12dp"
|
||||||
android:textSize="14sp"
|
android:paddingEnd="12dp"
|
||||||
android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.getPartitaMag()) ? View.INVISIBLE : View.VISIBLE}"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
tools:text="Lotto: ABCDE" />
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
</LinearLayout>
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/qta_textview"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@drawable/badge1_round_corner"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingLeft="6dp"
|
||||||
|
android:paddingTop="2dp"
|
||||||
|
android:paddingRight="6dp"
|
||||||
|
android:paddingBottom="2dp"
|
||||||
|
android:textAllCaps="true"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="280.45\nCONF" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/qta_box"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="12dp"
|
android:layout_marginEnd="10dp"
|
||||||
android:paddingEnd="12dp"
|
android:visibility="@{mtbColr.numColloRif != null ? View.VISIBLE : View.GONE}"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent">
|
app:layout_constraintTop_toBottomOf="@id/art_detail">
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:id="@+id/qta_textview"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
android:background="@drawable/badge1_round_corner"
|
android:background="@drawable/badge1_round_corner"
|
||||||
android:gravity="center"
|
android:backgroundTint="@color/green_600"
|
||||||
android:paddingLeft="6dp"
|
android:orientation="horizontal"
|
||||||
android:paddingTop="2dp"
|
android:padding="2dp">
|
||||||
android:paddingRight="6dp"
|
|
||||||
android:paddingBottom="2dp"
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:textSize="16sp"
|
android:layout_width="match_parent"
|
||||||
android:textColor="@android:color/white"
|
android:layout_height="wrap_content"
|
||||||
android:textStyle="bold"
|
android:background="@drawable/badge1_round_corner"
|
||||||
android:textAllCaps="true"
|
android:backgroundTint="@android:color/white"
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
android:orientation="horizontal"
|
||||||
tools:text="280.45\nCONF" />
|
android:padding="0dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingStart="2dp"
|
||||||
|
android:paddingEnd="4dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/image"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:src="@drawable/ic_box"
|
||||||
|
android:tint="@color/green_600" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/refs_title"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Prelevato da"
|
||||||
|
android:textColor="@color/green_600"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="2dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/green_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:weightSum="2">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Num: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{mtbColr.numColloRif.toString()}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="5230" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Gest: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{mtbColr.gestioneRif}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="V" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="0"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Data: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{UtilityDate.formatDate(mtbColr.dataColloRifD, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="02 mar 2020" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Serie: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{mtbColr.serColloRif}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="UL" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,7 @@
|
|||||||
app:layout_constraintEnd_toStartOf="@id/center_guideline"
|
app:layout_constraintEnd_toStartOf="@id/center_guideline"
|
||||||
app:strokeColor="@color/colorPrimary"
|
app:strokeColor="@color/colorPrimary"
|
||||||
android:onClick="@{() -> viewmodel.onNegativeClick()}"
|
android:onClick="@{() -> viewmodel.onNegativeClick()}"
|
||||||
android:text="@string/no"/>
|
android:text="@{viewmodel.negativeButtonText}"/>
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
app:layout_constraintStart_toStartOf="@id/center_guideline"
|
app:layout_constraintStart_toStartOf="@id/center_guideline"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:onClick="@{() -> viewmodel.onPositiveClick()}"
|
android:onClick="@{() -> viewmodel.onPositiveClick()}"
|
||||||
android:text="@string/yes"/>
|
android:text="@{viewmodel.positiveButtonText}"/>
|
||||||
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
@@ -173,7 +173,7 @@
|
|||||||
app:layout_constraintStart_toStartOf="@id/ok_left_buttons_guideline"
|
app:layout_constraintStart_toStartOf="@id/ok_left_buttons_guideline"
|
||||||
app:layout_constraintEnd_toEndOf="@id/ok_right_buttons_guideline"
|
app:layout_constraintEnd_toEndOf="@id/ok_right_buttons_guideline"
|
||||||
android:onClick="@{() -> viewmodel.onPositiveClick()}"
|
android:onClick="@{() -> viewmodel.onPositiveClick()}"
|
||||||
android:text="@string/ok"/>
|
android:text="@{viewmodel.positiveButtonText}"/>
|
||||||
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:visibility="@{viewmodel.neutralVisible ? View.VISIBLE : View.GONE}">
|
android:visibility="@{viewmodel.negativeVisible && viewmodel.neutralVisible ? View.VISIBLE : View.GONE}">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
<androidx.constraintlayout.widget.Guideline
|
||||||
android:id="@+id/left_buttons_guideline"
|
android:id="@+id/left_buttons_guideline"
|
||||||
@@ -211,7 +211,7 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@id/left_buttons_guideline"
|
app:layout_constraintEnd_toStartOf="@id/left_buttons_guideline"
|
||||||
android:onClick="@{() -> viewmodel.onNegativeClick()}"
|
android:onClick="@{() -> viewmodel.onNegativeClick()}"
|
||||||
android:text="@string/no"/>
|
android:text="@{viewmodel.negativeButtonText}"/>
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
@@ -225,7 +225,7 @@
|
|||||||
app:layout_constraintEnd_toStartOf="@id/right_buttons_guideline"
|
app:layout_constraintEnd_toStartOf="@id/right_buttons_guideline"
|
||||||
app:strokeColor="@color/colorPrimary"
|
app:strokeColor="@color/colorPrimary"
|
||||||
android:onClick="@{() -> viewmodel.onNeutralClick()}"
|
android:onClick="@{() -> viewmodel.onNeutralClick()}"
|
||||||
android:text="@string/abort"/>
|
android:text="@{viewmodel.neutralButtonText}"/>
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
@@ -238,7 +238,50 @@
|
|||||||
app:layout_constraintStart_toStartOf="@id/right_buttons_guideline"
|
app:layout_constraintStart_toStartOf="@id/right_buttons_guideline"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:onClick="@{() -> viewmodel.onPositiveClick()}"
|
android:onClick="@{() -> viewmodel.onPositiveClick()}"
|
||||||
android:text="@string/yes"/>
|
android:text="@{viewmodel.positiveButtonText}"/>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:visibility="@{!viewmodel.negativeVisible && viewmodel.neutralVisible ? View.VISIBLE : View.GONE}">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/center_guideline2"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.5"/>
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/Button.PrimaryOutline"
|
||||||
|
android:layout_marginLeft="8dp"
|
||||||
|
android:layout_marginRight="8dp"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/center_guideline2"
|
||||||
|
app:strokeColor="@color/colorPrimary"
|
||||||
|
android:onClick="@{() -> viewmodel.onNeutralClick()}"
|
||||||
|
android:text="@{viewmodel.neutralButtonText}"/>
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/Button.PrimaryFull"
|
||||||
|
android:layout_marginLeft="8dp"
|
||||||
|
android:layout_marginRight="8dp"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/center_guideline2"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
android:onClick="@{() -> viewmodel.onPositiveClick()}"
|
||||||
|
android:text="@{viewmodel.positiveButtonText}"/>
|
||||||
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|||||||
@@ -1,540 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
|
|
||||||
<data>
|
|
||||||
<variable
|
|
||||||
name="viewModel"
|
|
||||||
type="it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel"
|
|
||||||
/>
|
|
||||||
<import type="android.view.View" />
|
|
||||||
</data>
|
|
||||||
|
|
||||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
|
||||||
android:id="@+id/bottom_sheet1"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:background="@android:color/white"
|
|
||||||
app:behavior_peekHeight="?attr/actionBarSize"
|
|
||||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
|
||||||
app:behavior_hideable="false">
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:id="@+id/tap_action_layout"
|
|
||||||
android:padding="4dp"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="?attr/actionBarSize"
|
|
||||||
android:minHeight="?attr/actionBarSize"
|
|
||||||
android:background="@android:color/white">
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/articoli_in_collo_sheet_button"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:drawableStart="@drawable/ic_box"
|
|
||||||
tools:text="2 REFERENCES"
|
|
||||||
android:textStyle="bold"
|
|
||||||
android:drawablePadding="12dp"
|
|
||||||
android:textColor="@color/colorPrimary"
|
|
||||||
android:paddingTop="12dp"
|
|
||||||
android:paddingBottom="8dp"
|
|
||||||
android:paddingLeft="16dp"
|
|
||||||
android:paddingRight="16dp"
|
|
||||||
android:elevation="0dp"
|
|
||||||
android:textAllCaps="true"
|
|
||||||
android:textSize="16sp"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text"/>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
|
||||||
android:id="@+id/articoli_in_collo_close_collo"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/Button.DangerOutline"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:layout_marginLeft="8dp"
|
|
||||||
android:layout_marginRight="8dp"
|
|
||||||
android:text="@string/action_close_ul"
|
|
||||||
android:onClick="@{() -> viewModel.closeCurrentUL()}"
|
|
||||||
app:strokeColor="@color/red_600"/>
|
|
||||||
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
|
||||||
app:cardBackgroundColor="@android:color/white"
|
|
||||||
app:cardCornerRadius="4dp"
|
|
||||||
android:layout_marginLeft="8dp"
|
|
||||||
android:layout_marginRight="8dp"
|
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:textColor="@android:color/black"
|
|
||||||
android:layout_marginTop="10dp"
|
|
||||||
android:layout_marginStart="10dp"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/details_text"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text"
|
|
||||||
android:textAllCaps="true"
|
|
||||||
android:textStyle="bold"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:padding="15dp"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
|
||||||
android:id="@+id/guideline1"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:layout_constraintGuide_percent="0.40" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="8dp"
|
|
||||||
android:text="@string/date_text"
|
|
||||||
android:textColor="@android:color/black"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/guideline1"
|
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/articoli_in_collo_details_date"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
app:layout_constraintStart_toStartOf="@+id/guideline1"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
tools:text="TextView" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
|
||||||
android:id="@+id/guideline2"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:layout_constraintGuide_percent="0.40" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/articoli_in_collo_details_posizione"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="8dp"
|
|
||||||
android:text="@string/position_text"
|
|
||||||
android:textColor="@android:color/black"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/guideline2"
|
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:text="@{viewModel.mtbColt.posizione}"
|
|
||||||
style="@style/AppTheme.NewMaterial"
|
|
||||||
app:layout_constraintStart_toStartOf="@+id/guideline2"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
tools:text="TextView" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
|
||||||
android:id="@+id/guideline3"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:layout_constraintGuide_percent="0.40" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="8dp"
|
|
||||||
android:text="@string/prepared_by_text"
|
|
||||||
android:textColor="@android:color/black"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/guideline3"
|
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:text="@{viewModel.mtbColt.preparatoDa}"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
app:layout_constraintStart_toStartOf="@+id/guideline3"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
tools:text="TextView" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
|
||||||
android:id="@+id/guideline4"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:layout_constraintGuide_percent="0.40" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="8dp"
|
|
||||||
android:text="@string/customer"
|
|
||||||
android:textColor="@android:color/black"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/guideline4"
|
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:text="@{viewModel.mtbColt.ragSocCliente}"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
app:layout_constraintStart_toStartOf="@+id/guideline4"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
tools:text="TextView" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
|
||||||
app:cardBackgroundColor="@android:color/white"
|
|
||||||
app:cardCornerRadius="4dp"
|
|
||||||
android:layout_margin="8dp"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:textColor="@android:color/black"
|
|
||||||
android:layout_marginTop="10dp"
|
|
||||||
android:layout_marginStart="10dp"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/already_read_articles"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text"
|
|
||||||
android:textAllCaps="true"
|
|
||||||
android:textStyle="bold"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="14dp">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:gravity="center"
|
|
||||||
android:padding="16dp"
|
|
||||||
android:layout_marginTop="16dp"
|
|
||||||
android:layout_marginBottom="16dp"
|
|
||||||
android:visibility="@{viewModel.mtbColt == null || viewModel.mtbColt.mtbColr.size() == 0 ? View.VISIBLE : View.GONE}">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:tint="@color/empty_view_gray"
|
|
||||||
android:src="@drawable/ic_info_78dp"/>
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/empty_rows_in_mtbcolt"
|
|
||||||
android:textSize="20sp"
|
|
||||||
android:gravity="center"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text"
|
|
||||||
android:textColor="@color/empty_view_gray"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<com.linearlistview.LinearListView
|
|
||||||
android:id="@+id/linear_listview"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:clickable="true"
|
|
||||||
android:focusable="true"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:dividerThickness="0.5dp" />
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
|
||||||
android:id="@+id/appbar_bottom_sheet"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:minHeight="?attr/actionBarSize"
|
|
||||||
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
|
||||||
android:background="?attr/colorPrimary"
|
|
||||||
android:alpha="0">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.Toolbar
|
|
||||||
android:id="@+id/toolbar_bottom_sheet"
|
|
||||||
android:layout_height="?attr/actionBarSize"
|
|
||||||
android:minHeight="?attr/actionBarSize"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:background="?attr/colorPrimary"
|
|
||||||
app:titleTextColor="@android:color/white"
|
|
||||||
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
|
||||||
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/articoli_in_collo_title"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_marginEnd="8dp"
|
|
||||||
android:gravity="center"
|
|
||||||
android:textAppearance="@android:style/TextAppearance.Material.Title"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.ToolbarTitle.DarkActionBar"
|
|
||||||
tools:text="Num UL"/>
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
</androidx.appcompat.widget.Toolbar>
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
|
||||||
</RelativeLayout>
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:visibility="gone"
|
|
||||||
android:id="@+id/bg"
|
|
||||||
android:background="#99000000"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/bottom_sheet_actions"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="#fff"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:padding="16dp"
|
|
||||||
app:behavior_hideable="true"
|
|
||||||
app:behavior_peekHeight="160dp"
|
|
||||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintEnd_toStartOf="@id/bottom_sheet_actions_quantity"
|
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/bottom_sheet_actions_title"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
tools:text="Descrizione articolo"
|
|
||||||
android:textColor="#444"
|
|
||||||
android:maxLines="2"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:paddingStart="0dp"
|
|
||||||
android:paddingEnd="8dp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Medium"/>
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/bottom_sheet_actions_subtitle"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
tools:text="ABF52IL"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/bottom_sheet_actions_quantity"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:gravity="end"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textStyle="bold"
|
|
||||||
tools:text="250 PZ"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"/>
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
|
||||||
android:id="@+id/guideline_action"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:layout_constraintGuide_percent="0.50" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintEnd_toStartOf="@id/guideline_action"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
android:gravity="center">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageButton
|
|
||||||
android:id="@+id/bottom_sheet_actions_edit_btn"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:padding="16dp"
|
|
||||||
android:background="@android:color/white"
|
|
||||||
android:scaleX="1.5"
|
|
||||||
android:scaleY="1.5"
|
|
||||||
android:src="@drawable/ic_edit_24dp"
|
|
||||||
android:tint="@color/green_600" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
android:text="@string/edit"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="@id/guideline_action"
|
|
||||||
android:gravity="center">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageButton
|
|
||||||
android:id="@+id/bottom_sheet_actions_delete_btn"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:padding="16dp"
|
|
||||||
android:background="@android:color/white"
|
|
||||||
android:scaleX="1.5"
|
|
||||||
android:scaleY="1.5"
|
|
||||||
android:src="@drawable/ic_delete_24dp"
|
|
||||||
android:tint="@color/red_600" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
android:text="@string/delete"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
||||||
</layout>
|
|
||||||
@@ -1,120 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
|
|
||||||
<data>
|
|
||||||
<import type="android.view.View" />
|
|
||||||
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
|
||||||
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
|
||||||
<import type="it.integry.integrywmsnative.core.settings.SettingsManager" />
|
|
||||||
<variable
|
|
||||||
name="mtbColr"
|
|
||||||
type="it.integry.integrywmsnative.core.model.MtbColr"/>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:padding="8dp">
|
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/linearLayout"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/qta_box"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent">
|
|
||||||
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@{mtbColr.codMart}"
|
|
||||||
android:textColor="@color/colorPrimary"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
tools:text="COD MART" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}"
|
|
||||||
android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null && !mtbColr.mtbAart.flagQtaCnfFissaBoolean) ? View.VISIBLE : View.GONE}"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:paddingStart="6dp"
|
|
||||||
android:paddingEnd="6dp"
|
|
||||||
android:background="@drawable/badge2_round_corner"
|
|
||||||
android:textColor="@android:color/white"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
tools:text="PESO KG" />
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:text="@{mtbColr.getDescrizione()}"
|
|
||||||
android:textColor="@android:color/black"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:paddingStart="0dp"
|
|
||||||
android:paddingEnd="8dp"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
tools:text="Descrizione lunga articolo" />
|
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@{`Lotto: ` + mtbColr.getPartitaMag()}"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.getPartitaMag()) ? View.INVISIBLE : View.VISIBLE}"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
tools:text="Lotto: ABCDE" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:id="@+id/qta_box"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingStart="12dp"
|
|
||||||
android:paddingEnd="12dp"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/qta_textview"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="@drawable/badge1_round_corner"
|
|
||||||
android:gravity="center"
|
|
||||||
android:paddingLeft="6dp"
|
|
||||||
android:paddingTop="2dp"
|
|
||||||
android:paddingRight="6dp"
|
|
||||||
android:paddingBottom="2dp"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:textColor="@android:color/white"
|
|
||||||
android:textStyle="bold"
|
|
||||||
android:textAllCaps="true"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
|
||||||
tools:text="280.45\nCONF" />
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
</layout>
|
|
||||||
@@ -317,7 +317,7 @@
|
|||||||
android:layout_alignParentBottom="true"
|
android:layout_alignParentBottom="true"
|
||||||
android:layout_gravity="bottom|end"
|
android:layout_gravity="bottom|end"
|
||||||
android:layout_margin="@dimen/fab_margin"
|
android:layout_margin="@dimen/fab_margin"
|
||||||
android:onClick="@{() -> viewmodel.closeLU(false)}"
|
android:onClick="@{() -> viewmodel.closeLU(true)}"
|
||||||
android:tint="@android:color/white"
|
android:tint="@android:color/white"
|
||||||
app:visibility="@{view.thereIsAnOpenedUL}"
|
app:visibility="@{view.thereIsAnOpenedUL}"
|
||||||
app:srcCompat="@drawable/ic_check_black_24dp" />
|
app:srcCompat="@drawable/ic_check_black_24dp" />
|
||||||
|
|||||||
@@ -1,131 +1,329 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<layout xmlns:tools="http://schemas.android.com/tools"
|
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<data>
|
<data>
|
||||||
|
|
||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityDate.COMMONS_DATE_FORMATS" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.core.settings.SettingsManager" />
|
<import type="it.integry.integrywmsnative.core.settings.SettingsManager" />
|
||||||
|
|
||||||
<variable
|
<variable
|
||||||
name="mtbColr"
|
name="mtbColr"
|
||||||
type="it.integry.integrywmsnative.core.model.MtbColr" />
|
type="it.integry.integrywmsnative.core.model.MtbColr" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="8dp">
|
android:padding="8dp">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
<LinearLayout
|
android:id="@+id/art_detail"
|
||||||
android:id="@+id/linearLayout"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/qta_box"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/linearLayout"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/qta_box"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/cod_mart"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{mtbColr.codMart}"
|
||||||
|
android:textColor="@color/colorPrimary"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="COD MART" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/diacod"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:layout_toEndOf="@id/cod_mart"
|
||||||
|
android:text="@{`(` + mtbColr.mtbAart.diacod + `)`}"
|
||||||
|
android:textColor="@color/red_600"
|
||||||
|
android:textSize="13sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:visibility="@{(mtbColr.mtbAart != null && !UtilityString.isNullOrEmpty(mtbColr.mtbAart.diacod)) ? View.VISIBLE : View.GONE}"
|
||||||
|
tools:text="(12345)" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:background="@drawable/badge2_round_corner"
|
||||||
|
android:paddingStart="6dp"
|
||||||
|
android:paddingEnd="6dp"
|
||||||
|
android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null && !mtbColr.mtbAart.flagQtaCnfFissaBoolean) ? View.VISIBLE : View.GONE}"
|
||||||
|
tools:text="PESO KG" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:text="@{mtbColr.getDescrizione()}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="16sp"
|
||||||
|
tools:text="Descrizione lunga articolo" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{`Lotto: ` + mtbColr.getPartitaMag()}"
|
||||||
|
android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.getPartitaMag()) ? View.INVISIBLE : View.VISIBLE}"
|
||||||
|
tools:text="Lotto: ABCDE" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
|
android:id="@+id/qta_box"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:paddingStart="12dp"
|
||||||
|
android:paddingEnd="12dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/cod_mart"
|
android:id="@+id/qta_textview"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@{mtbColr.codMart}"
|
|
||||||
android:textColor="@color/colorPrimary"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text"
|
style="@style/AppTheme.NewMaterial.Text"
|
||||||
tools:text="COD MART" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/diacod"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@{`(` + mtbColr.mtbAart.diacod + `)`}"
|
android:background="@drawable/badge1_round_corner"
|
||||||
android:textColor="@color/red_600"
|
android:gravity="center"
|
||||||
android:textSize="13sp"
|
android:paddingLeft="6dp"
|
||||||
android:textStyle="bold"
|
android:paddingTop="2dp"
|
||||||
android:layout_marginStart="8dp"
|
android:paddingRight="6dp"
|
||||||
android:layout_toEndOf="@id/cod_mart"
|
android:paddingBottom="2dp"
|
||||||
android:visibility="@{(mtbColr.mtbAart != null && !UtilityString.isNullOrEmpty(mtbColr.mtbAart.diacod)) ? View.VISIBLE : View.GONE}"
|
android:textAllCaps="true"
|
||||||
style="@style/AppTheme.NewMaterial.Text"
|
|
||||||
tools:text="(12345)" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}"
|
|
||||||
android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null && !mtbColr.mtbAart.flagQtaCnfFissaBoolean) ? View.VISIBLE : View.GONE}"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:paddingStart="6dp"
|
|
||||||
android:paddingEnd="6dp"
|
|
||||||
android:background="@drawable/badge2_round_corner"
|
|
||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
android:textSize="16sp"
|
||||||
tools:text="PESO KG" />
|
android:textStyle="bold"
|
||||||
|
tools:text="280.45\nCONF" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:text="@{mtbColr.getDescrizione()}"
|
|
||||||
android:textColor="@android:color/black"
|
|
||||||
android:textSize="16sp"
|
|
||||||
tools:text="Descrizione lunga articolo"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small" />
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@{`Lotto: ` + mtbColr.getPartitaMag()}"
|
|
||||||
android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.getPartitaMag()) ? View.INVISIBLE : View.VISIBLE}"
|
|
||||||
tools:text="Lotto: ABCDE"
|
|
||||||
style="@style/AppTheme.NewMaterial.Text.Small" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/qta_box"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="12dp"
|
android:layout_marginEnd="10dp"
|
||||||
android:paddingEnd="12dp"
|
android:visibility="@{mtbColr.numColloRif != null ? View.VISIBLE : View.GONE}"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent">
|
app:layout_constraintTop_toBottomOf="@id/art_detail">
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:id="@+id/qta_textview"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
android:background="@drawable/badge1_round_corner"
|
android:background="@drawable/badge1_round_corner"
|
||||||
android:gravity="center"
|
android:backgroundTint="@color/green_600"
|
||||||
android:paddingLeft="6dp"
|
android:orientation="horizontal"
|
||||||
android:paddingTop="2dp"
|
android:padding="2dp">
|
||||||
android:paddingRight="6dp"
|
|
||||||
android:paddingBottom="2dp"
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:textSize="16sp"
|
android:layout_width="match_parent"
|
||||||
android:textColor="@android:color/white"
|
android:layout_height="wrap_content"
|
||||||
android:textStyle="bold"
|
android:background="@drawable/badge1_round_corner"
|
||||||
android:textAllCaps="true"
|
android:backgroundTint="@android:color/white"
|
||||||
style="@style/AppTheme.NewMaterial.Text"
|
android:orientation="horizontal"
|
||||||
tools:text="280.45\nCONF" />
|
android:padding="0dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingStart="2dp"
|
||||||
|
android:paddingEnd="4dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/image"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:src="@drawable/ic_box"
|
||||||
|
android:tint="@color/green_600" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/refs_title"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Prelevato da"
|
||||||
|
android:textColor="@color/green_600"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="2dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/green_600"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:weightSum="2">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Num: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{mtbColr.numColloRif.toString()}"
|
||||||
|
tools:text="5230"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_marginTop="2dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Gest: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{mtbColr.gestioneRif}"
|
||||||
|
tools:text="V"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="0"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Data: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{UtilityDate.formatDate(mtbColr.dataColloRifD, "dd MMM yy")}"
|
||||||
|
tools:text="02 mar 2020"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_marginTop="2dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Serie: "
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{mtbColr.serColloRif}"
|
||||||
|
tools:text="UL"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
android:focusable="true">
|
android:focusable="true">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/content_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
@@ -37,7 +38,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:gravity="right">
|
android:gravity="end">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/qta_evasa"
|
android:id="@+id/qta_evasa"
|
||||||
@@ -96,5 +97,14 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/deactivated_over_bg"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignTop="@id/content_view"
|
||||||
|
android:layout_alignBottom="@id/content_view"
|
||||||
|
android:background="@android:color/black"
|
||||||
|
android:alpha="0.15" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</layout>
|
</layout>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
android:background="@color/mainGreen">
|
android:background="@color/mainGreen">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/descrizione"
|
android:id="@+id/group_title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
tools:text="DESCRIZIONE"
|
tools:text="DESCRIZIONE"
|
||||||
@@ -10,10 +10,10 @@ buildscript {
|
|||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:4.1.0'
|
classpath 'com.android.tools.build:gradle:4.1.1'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath 'com.google.gms:google-services:4.3.4'
|
classpath 'com.google.gms:google-services:4.3.4'
|
||||||
classpath 'com.google.firebase:perf-plugin:1.3.2'
|
classpath 'com.google.firebase:perf-plugin:1.3.3'
|
||||||
|
|
||||||
// Add the Firebase Crashlytics Gradle plugin.
|
// Add the Firebase Crashlytics Gradle plugin.
|
||||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0'
|
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0'
|
||||||
|
|||||||
@@ -33,6 +33,10 @@ public class ZebraBarcodeReader implements BarcodeReaderInterface {
|
|||||||
String model = Build.MODEL;
|
String model = Build.MODEL;
|
||||||
if(model.equalsIgnoreCase("TC700H")) {
|
if(model.equalsIgnoreCase("TC700H")) {
|
||||||
return true;
|
return true;
|
||||||
|
} else if(model.equalsIgnoreCase("TC200J")) {
|
||||||
|
return true;
|
||||||
|
} else if(model.equalsIgnoreCase("TC20")) {
|
||||||
|
return true;
|
||||||
} else return false;
|
} else return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user