diff --git a/app/build.gradle b/app/build.gradle
index ced10526..10937b3b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,8 +6,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 197
- def appVersionName = '1.16.15'
+ def appVersionCode = 198
+ def appVersionName = '1.16.16'
signingConfigs {
release {
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
index 5570812b..01231fa9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
@@ -30,6 +30,7 @@ import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
+import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
@@ -42,6 +43,7 @@ import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.update.UpdatesManager;
+import it.integry.integrywmsnative.core.utility.UtilityContext;
import it.integry.integrywmsnative.core.utility.UtilitySettings;
import it.integry.integrywmsnative.databinding.ActivityMainBinding;
import it.integry.integrywmsnative.gest.login.LoginActivity;
@@ -59,6 +61,9 @@ public class MainActivity extends BaseActivity
@Inject
AppDatabase mAppDatabase;
+ @Inject
+ ColliDataRecoverService mColliDataRecoverService;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -68,10 +73,13 @@ public class MainActivity extends BaseActivity
.create()
.inject(this);
+ mColliDataRecoverService.init(this);
+
mBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_main, null, false);
setContentView(mBinding.getRoot());
UpdatesManager.init(this);
+ UtilityContext.initMainActivity(this);
setSupportActionBar(mBinding.appBarMain.toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
index 4c9015d0..a502c910 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
@@ -27,6 +27,10 @@ import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdComponent;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdModule;
+import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteComponent;
+import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteModule;
+import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.UltimiArriviFornitoreComponent;
+import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.UltimiArriviFornitoreModule;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Component;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Module;
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtComponent;
@@ -44,6 +48,8 @@ import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule;
RettificaGiacenzeModule.class,
SpedizioneModule.class,
AccettazionePickingModule.class,
+ UltimeConsegneClienteModule.class,
+ UltimiArriviFornitoreModule.class,
PickingResiModule.class,
OrdiniUscitaElencoModule.class,
DialogInputQuantityV2Module.class,
@@ -60,6 +66,8 @@ public interface MainApplicationComponent {
RettificaGiacenzeComponent.Factory rettificaGiacenzeComponent();
SpedizioneComponent.Factory spedizioneComponent();
AccettazionePickingComponent.Factory accettazionePickingComponent();
+ UltimeConsegneClienteComponent.Factory ultimeConsegneClienteComponent();
+ UltimiArriviFornitoreComponent.Factory ultimiArriviFornitoreComponent();
PickingResiComponent.Factory pickingResiComponent();
OrdiniUscitaElencoComponent.Factory prodOrdineLavorazioneElencoComponent();
DialogInputQuantityV2Component.Factory dialogInputQuantityV2Component();
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
index e57d8cf2..e15b89e4 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
@@ -38,7 +38,7 @@ public class MainApplicationModule {
@Provides
@Singleton
ColliDataRecoverService provideColliDataRecoverService() {
- return new ColliDataRecoverService(mContext);
+ return new ColliDataRecoverService();
}
@Provides
diff --git a/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java b/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java
index da5608bf..d25bb38d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java
@@ -6,22 +6,21 @@ import android.content.pm.PackageManager;
import android.os.Bundle;
import android.text.SpannableString;
import android.view.LayoutInflater;
-import android.widget.TextView;
+
+import androidx.databinding.DataBindingUtil;
import java.util.ArrayList;
import java.util.List;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.databinding.DataBindingUtil;
-
import it.integry.integrywmsnative.core.context.MainContext;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.PermissionsHelper;
+import it.integry.integrywmsnative.core.utility.UtilityContext;
import it.integry.integrywmsnative.databinding.ActivitySplashBinding;
import it.integry.integrywmsnative.gest.login.LoginActivity;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class SplashActivity extends BaseActivity {
@@ -39,6 +38,8 @@ public class SplashActivity extends BaseActivity {
mBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_splash, null, false);
setContentView(mBinding.getRoot());
+ UtilityContext.initMainActivity(this);
+
initAppVersion();
initPermissions(this::init);
@@ -49,10 +50,10 @@ public class SplashActivity extends BaseActivity {
onComplete.run();
}, permanentlyDenied -> {
if(permanentlyDenied) {
- DialogSimpleMessageHelper.makeErrorDialog(this,
- new SpannableString(getText(R.string.permissions_permanently_denied)), null, () -> {
+ DialogSimpleMessageView.makeErrorDialog(new SpannableString(getText(R.string.permissions_permanently_denied)), null, () -> {
this.finish();
- }).show();
+ })
+ .show(getSupportFragmentManager(), "tag");
} else {
initPermissions(onComplete);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java
index 8f752c4d..3498373e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java
@@ -9,7 +9,6 @@ import com.orhanobut.logger.Logger;
import javax.inject.Inject;
import it.integry.integrywmsnative.BuildConfig;
-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.Stash;
@@ -41,8 +40,6 @@ public class AppContext {
this.initCrashlytics();
this.initLogger();
-
- this.initRecoverColli();
}
@@ -77,9 +74,5 @@ public class AppContext {
Logger.addLogAdapter(new AndroidLogAdapter());
}
- private void initRecoverColli() {
- ColliDataRecover.init(mContext);
- }
-
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
index 8d425f15..63b81354 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
@@ -1,21 +1,25 @@
package it.integry.integrywmsnative.core.context;
import android.content.Context;
+import android.text.Html;
import android.text.SpannableString;
+import android.text.Spanned;
import androidx.appcompat.app.AppCompatActivity;
import java.lang.reflect.Method;
+import java.net.ConnectException;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.class_router.ClassRouter;
+import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.settings.SettingsManager;
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.DialogSimpleMessageView;
public class MainContext {
@@ -37,6 +41,8 @@ public class MainContext {
this.initReflections();
this.initServerStatusChecker();
+
+ ColliDataRecover.init(mContext);
}
@@ -46,11 +52,23 @@ public class MainContext {
private void initDBData(Runnable onComplete) {
SettingsManager.loadDBVariables(onComplete, ex -> {
- DialogSimpleMessageHelper.makeErrorDialog(mContext,
- new SpannableString(ex.getMessage()), null, mContext::finish, R.string.logout, () -> {
+
+ Spanned message = null;
+
+ if (ex.getCause() != null && ex.getCause() instanceof ConnectException) {
+ message = Html.fromHtml("Impossibile collegarsi all'host " + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + ". Riprovare più tardi.");
+ } else if (ex.getMessage().startsWith("Status 404:")) {
+ message = Html.fromHtml("Errore 404. Non è stato possibile soddisfare la richiesta sull'host " + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + ". Riprovare più tardi.");
+ } else {
+ message = new SpannableString(ex.getMessage());
+ }
+
+ DialogSimpleMessageView.makeErrorDialog(
+ message, null, mContext::finish, R.string.logout, () -> {
UtilitySettings.logout();
MainApplication.exit();
- }).show();
+ })
+ .show(mContext.getSupportFragmentManager(), "tag");
}
);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecover.java b/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecover.java
index ea14d912..fadeef43 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecover.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecover.java
@@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.data_recover;
import android.content.Context;
+import androidx.appcompat.app.AppCompatActivity;
+
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import com.google.android.gms.common.util.IOUtils;
@@ -107,11 +109,11 @@ public class ColliDataRecover {
}
}
- private static Context mContext;
+ private static AppCompatActivity mContext;
private static List mtbColtsSessions = new ArrayList<>();
- public static void init(Context context) {
+ public static void init(AppCompatActivity context) {
mContext = context;
if(isFilePresent(CommonConst.Files.RECOVER_COLLO_FILE)) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecoverService.java b/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecoverService.java
index 6d14cd1c..ca313714 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecoverService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecoverService.java
@@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.data_recover;
import android.content.Context;
+import androidx.appcompat.app.AppCompatActivity;
+
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import com.google.android.gms.common.util.IOUtils;
@@ -28,20 +30,21 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
public class ColliDataRecoverService {
- private final Context mContext;
+ private AppCompatActivity mContext;
private List mtbColtsSessions = new ArrayList<>();
@Inject
- public ColliDataRecoverService(Context context) {
- this.mContext = context;
+ public ColliDataRecoverService() {
+ }
+
+ public void init(AppCompatActivity appCompatActivity) {
+ this.mContext = appCompatActivity;
if(isFilePresent(CommonConst.Files.RECOVER_COLLO_FILE)) {
loadLocalFile();
}
}
-
-
public boolean thereIsAnExistantSession() {
return mtbColtsSessions.size() > 0;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/ExtendedSectionedRecyclerView.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/ExtendedSectionedRecyclerView.java
new file mode 100644
index 00000000..a4aeb37c
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/ExtendedSectionedRecyclerView.java
@@ -0,0 +1,56 @@
+package it.integry.integrywmsnative.core.expansion.view;
+
+import android.view.View;
+
+import androidx.databinding.ObservableArrayList;
+import androidx.databinding.ObservableList;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
+
+import java.util.ArrayList;
+
+import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
+
+public abstract class ExtendedSectionedRecyclerView
+ extends SectionedRecyclerViewAdapter {
+
+ protected ArrayList mDataset = new ArrayList<>();
+ private View mEmptyView;
+
+ public ExtendedSectionedRecyclerView(ObservableArrayList myDataset) {
+ mDataset.addAll(myDataset);
+
+ myDataset.addOnListChangedCallback(new OnListGeneralChangedCallback() {
+ @Override
+ public void onChanged(ObservableList sender) {
+ mDataset.clear();
+ mDataset.addAll(sender);
+ notifyDataSetChanged();
+ notifyDataChanged();
+ checkIfEmpty();
+ }
+ });
+
+ checkIfEmpty();
+ }
+
+ public ExtendedSectionedRecyclerView setEmptyView(View emptyView) {
+ this.mEmptyView = emptyView;
+ this.checkIfEmpty();
+ return this;
+ }
+
+ @Override
+ public int getItemSize() {
+ return this.mDataset.size();
+ }
+
+ private void checkIfEmpty() {
+ if (mEmptyView != null) {
+ final boolean emptyViewVisible = getItemSize() == 0;
+ mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
+ }
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
index 052908a4..173231f7 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
@@ -549,7 +549,9 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
mtbColtToSaveClone.setMtbColr(new ObservableArrayList<>());
if (posizione == null) mtbColtToSaveClone.setPosizione(null);
- else mtbColtToSaveClone.setPosizione(posizione.getPosizione());
+ else mtbColtToSaveClone
+ .setPosizione(posizione.getPosizione())
+ .setCodMdep(posizione.getCodMdep());
ColliMagazzinoRESTConsumer.saveColloStatic(mtbColtToSaveClone, mtbColt -> {
if (onComplete != null) onComplete.run();
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java
index d5fda18d..9964f933 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java
@@ -8,12 +8,11 @@ import java.util.List;
import javax.inject.Singleton;
-import it.integry.integrywmsnative.core.rest.RESTBuilder;
-import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
-import it.integry.integrywmsnative.core.settings.SettingsManager;
+import it.integry.integrywmsnative.core.rest.RESTBuilder;
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import retrofit2.Call;
import retrofit2.Callback;
@@ -28,8 +27,30 @@ public class PosizioniRESTConsumer extends _BaseRESTConsumer{
this.mSystemRESTConsumer = systemRESTConsumer;
}
+ public void getPosizioneFromString(String posizione, RunnableArgs onComplete, RunnableArgs onFailed) {
+ String sql = "SELECT TOP 1 mtb_depo_posizioni.*," +
+ " CASE WHEN jtb_fasi.cod_jfas IS NULL THEN 'N' ELSE 'S' END AS flag_linea_produzione " +
+ " FROM mtb_depo_posizioni " +
+ " LEFT OUTER JOIN jtb_fasi " +
+ " ON mtb_depo_posizioni.posizione = jtb_fasi.cod_jfas " +
+ " WHERE posizione = " + UtilityDB.valueToString(posizione);
+
+ SystemRESTConsumer.processSqlStatic(sql, MtbDepoPosizione.class, new ISimpleOperationCallback() {
+ @Override
+ public void onSuccess(MtbDepoPosizione value) {
+ if(onComplete != null) onComplete.run(value);
+ }
+
+ @Override
+ public void onFailed(Exception ex) {
+ if(onFailed != null) onFailed.run(ex);
+ }
+ });
+ }
+
public static void getAvailablePosizioni(RunnableArgs> onComplete, RunnableArgs onFailed) {
- String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
+// String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
+ String codMdep = null;
PosizioniRESTConsumerService posizioniRESTConsumerService = RESTBuilder.getService(PosizioniRESTConsumerService.class);
posizioniRESTConsumerService.getAvailablePosizioni(codMdep).enqueue(new Callback>>() {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
index 080ec666..e639a508 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
@@ -33,6 +33,7 @@ public class DBSettingsModel {
private boolean flagForceAllToColli;
private boolean flagSpedizioneEnableManualPick;
private boolean flagSpedizioneCanSelectMultipleOrders;
+ private boolean flagSpedizioneUseQtaOrd;
private String produzioneDefaultCodAnag;
private String reportNameSpedizionChiudiOrdine;
@@ -234,6 +235,15 @@ public class DBSettingsModel {
return this;
}
+ public boolean isFlagSpedizioneUseQtaOrd() {
+ return flagSpedizioneUseQtaOrd;
+ }
+
+ public DBSettingsModel setFlagSpedizioneUseQtaOrd(boolean flagSpedizioneUseQtaOrd) {
+ this.flagSpedizioneUseQtaOrd = flagSpedizioneUseQtaOrd;
+ return this;
+ }
+
public String getProduzioneDefaultCodAnag() {
return produzioneDefaultCodAnag;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
index 0f4f626f..7c6472f6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
@@ -258,6 +258,10 @@ public class SettingsManager {
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("REPORT_PACKING_LIST"));
+ stbGestSetupList.add(new StbGestSetup()
+ .setGestName("PICKING")
+ .setSection("SPEDIZIONE")
+ .setKeySection("FLAG_USE_QTA_ORD"));
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
@@ -281,6 +285,7 @@ public class SettingsManager {
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
dbSettingsModelIstance.setReportNameSpedizionChiudiOrdine(getValueFromList(list, "SPEDIZIONE", "REPORT_PACKING_LIST", String.class));
+ dbSettingsModelIstance.setFlagSpedizioneUseQtaOrd(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
if(onComplete != null) onComplete.run();
}, onFailed);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java
index 7d6c8bc4..1148410b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java
@@ -33,19 +33,24 @@ public class UtilityBarcode {
}
public static boolean isEtichettaPosizione(BarcodeScanDTO barcodeScanDTO) {
+ return isEtichettaPosizione(barcodeScanDTO, true);
+ }
+
+ public static boolean isEtichettaPosizione(BarcodeScanDTO barcodeScanDTO, boolean enableCheckCodMdep) {
+ String currentCodMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
+
String barcode = barcodeScanDTO.getStringValue();
boolean isPosizione = false;
if(SettingsManager.iDB().getAvailablePosizioni() != null) {
Stream tmpStream = Stream.of(SettingsManager.iDB().getAvailablePosizioni())
- .filter(x -> x.getPosizione().equalsIgnoreCase(barcode));
+ .filter(x -> x.getPosizione().equalsIgnoreCase(barcode) && (!enableCheckCodMdep || currentCodMdep.equalsIgnoreCase(x.getCodMdep())));
if(tmpStream.count() > 0){
isPosizione = true;
}
}
-
return isPosizione;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityContext.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityContext.java
index f1e73285..a7cc3a5c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityContext.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityContext.java
@@ -2,17 +2,28 @@ package it.integry.integrywmsnative.core.utility;
import android.content.Context;
+import androidx.appcompat.app.AppCompatActivity;
+
public class UtilityContext {
private static Context mApplicationContext;
+ private static AppCompatActivity mMainActivity;
public static void initApplicationContext(Context context) {
mApplicationContext = context;
}
+ public static void initMainActivity(AppCompatActivity mainActivity) {
+ mMainActivity = mainActivity;
+ }
+
public static Context getApplicationContext() {
return mApplicationContext;
}
+ public static AppCompatActivity getMainActivity() {
+ return mMainActivity;
+ }
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
index 97b0d387..7a602ae4 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
@@ -4,12 +4,15 @@ import android.app.Dialog;
import android.content.Context;
import android.text.SpannableString;
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
+
import com.google.firebase.crashlytics.FirebaseCrashlytics;
import com.orhanobut.logger.Logger;
import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.rest.CommonRESTException;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class UtilityExceptions {
@@ -43,8 +46,17 @@ public class UtilityExceptions {
if(ex.getCause() != null) errorMessage += "
" + ex.getCause().getMessage();
}
- if(context != null) {
- DialogSimpleMessageHelper.makeErrorDialog(context, new SpannableString(errorMessage), null, null).show();
+ FragmentManager fm = null;
+
+ if(context != null && context instanceof FragmentActivity) {
+ fm = ((FragmentActivity) context).getSupportFragmentManager();
+ } else if(UtilityContext.getMainActivity() != null) {
+ fm = UtilityContext.getMainActivity().getSupportFragmentManager();
+ }
+
+ if(fm != null) {
+ DialogSimpleMessageView.makeErrorDialog(new SpannableString(errorMessage), null, null)
+ .show(fm, "tag");
}
if(!BuildConfig.DEBUG) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java
index 21b1f0c0..cbbeea5b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java
@@ -68,11 +68,11 @@ public class UtilityString {
}
public static Spanned formatHtmlString(String format, String... params){
- return Html.fromHtml(String.format(format,params));
+ return Html.fromHtml(String.format(format, (Object[]) params));
}
public static Spanned formatHtmlStringFromResId(@StringRes int stringId, String... params){
- return Html.fromHtml(String.format(UtilityResources.getString(stringId),params));
+ return Html.fromHtml(String.format(UtilityResources.getString(stringId), (Object[]) params));
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java
index 49744814..24c56ab8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java
@@ -41,7 +41,7 @@ import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumer;
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingActivity;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
@@ -187,8 +187,7 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
.count();
- DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
- getText(R.string.orders).toString(),
+ DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(),
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, (int) ordsCounter), ordsCounter)
+ "
" +
"" + artsCounter + " " + getActivity().getResources().getQuantityString(R.plurals.available_articles, (int) artsCounter)),
@@ -203,14 +202,17 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
myIntent.putExtra("keySitArts", cacheSitArtItemID);
getActivity().startActivity(myIntent);
- }).show();
+ }).show(getActivity().getSupportFragmentManager(), "tag");
}, ex -> {
progress.dismiss();
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
if(errorMessage == null) errorMessage = ex.getMessage() + "\n" + ex.getCause().getCause().getMessage();
- DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
+
+ DialogSimpleMessageView
+ .makeErrorDialog(new SpannableString(errorMessage), null, null)
+ .show(getActivity().getSupportFragmentManager(), "tag");
});
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
index 77621f8e..cb91bac0 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
@@ -60,7 +60,7 @@ import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGExcep
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.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.note_aggiuntive_lu.NoteAggiuntiveLUDialog;
@@ -245,7 +245,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
//Calc Num CNF
BigDecimal numCnfEvasa = BigDecimal.ZERO;
- if(x.getWithdrawMtbColrs().size() > 0) {
+ if (x.getWithdrawMtbColrs().size() > 0) {
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
.map(MtbColr::getNumCnf)
.reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -254,14 +254,13 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
//Calc qta col
BigDecimal qtaEvasa = BigDecimal.ZERO;
- if(x.getWithdrawMtbColrs().size() > 0) {
+ if (x.getWithdrawMtbColrs().size() > 0) {
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
.map(MtbColr::getQtaCol)
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
-
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
accettazioneListModel.setQtaEvasa(numCnfEvasa);
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
@@ -308,7 +307,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
//Calc Num CNF
BigDecimal numCnfEvasa = BigDecimal.ZERO;
- if(x.getWithdrawMtbColrs().size() > 0) {
+ if (x.getWithdrawMtbColrs().size() > 0) {
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
.map(MtbColr::getNumCnf)
.reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -317,14 +316,13 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
//Calc qta col
BigDecimal qtaEvasa = BigDecimal.ZERO;
- if(x.getWithdrawMtbColrs().size() > 0) {
+ if (x.getWithdrawMtbColrs().size() > 0) {
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
.map(MtbColr::getQtaCol)
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
-
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
accettazioneListModel.setQtaEvasa(numCnfEvasa);
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
@@ -371,7 +369,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
//Calc Num CNF
BigDecimal numCnfEvasa = BigDecimal.ZERO;
- if(x.getWithdrawMtbColrs().size() > 0) {
+ if (x.getWithdrawMtbColrs().size() > 0) {
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
.map(MtbColr::getNumCnf)
.reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -380,7 +378,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
//Calc qta col
BigDecimal qtaEvasa = BigDecimal.ZERO;
- if(x.getWithdrawMtbColrs().size() > 0) {
+ if (x.getWithdrawMtbColrs().size() > 0) {
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
.map(MtbColr::getQtaCol)
.reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -431,7 +429,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
//Calc Num CNF
BigDecimal numCnfEvasa = BigDecimal.ZERO;
- if(x.getWithdrawMtbColrs().size() > 0) {
+ if (x.getWithdrawMtbColrs().size() > 0) {
numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
.map(MtbColr::getNumCnf)
.reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -440,7 +438,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
//Calc qta col
BigDecimal qtaEvasa = BigDecimal.ZERO;
- if(x.getWithdrawMtbColrs().size() > 0) {
+ if (x.getWithdrawMtbColrs().size() > 0) {
qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
.map(MtbColr::getQtaCol)
.reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -535,7 +533,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
public void startListaBancaliRegistratiActivity(ArrayList mtbColts) {
Intent myIntent = ListaBancaliActivity.createIntent(this,
- Stream.of(mtbColts).map(x -> (MtbColt)x).toList(),
+ Stream.of(mtbColts).map(x -> (MtbColt) x).toList(),
input -> ((RecoverMtbColt) input).isFlagCanBeRecovered(),
PrinterRESTConsumer.Type.SECONDARIA,
ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
@@ -546,7 +544,9 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
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();
+ DialogSimpleMessageView
+ .makeSuccessDialog(res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null)
+ .show(getSupportFragmentManager(), "tag");
}
@Override
@@ -556,13 +556,13 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
@Override
public void onLUPrintError(Exception ex, Runnable onComplete) {
this.closeProgress();
- DialogSimpleMessageHelper.makeErrorDialog(
- this,
+ DialogSimpleMessageView.makeErrorDialog(
new SpannableString(ex.getMessage()),
null,
null,
R.string.button_ignore_print,
- onComplete).show();
+ onComplete)
+ .show(getSupportFragmentManager(), "tag");
}
@Override
@@ -599,7 +599,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
public void onError(Exception ex) {
this.closeProgress();
- if(ex instanceof InvalidPesoKGException) {
+ if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage());
} else {
UtilityExceptions.defaultException(this, ex, mCurrentProgress);
@@ -664,12 +664,11 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
@Override
public void onMtbColrDeleteRequest(RunnableArgs onComplete) {
String text = getResources().getString(R.string.alert_delete_mtb_colr);
- DialogSimpleMessageHelper.makeWarningDialog(this,
- new SpannableString(text),
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(text),
null,
() -> onComplete.run(true),
() -> onComplete.run(false)
- ).show();
+ ).show(getSupportFragmentManager(), "tag");
}
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingViewModel.java
index 9a238cc1..41097b74 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingViewModel.java
@@ -98,10 +98,13 @@ public class AccettazionePickingViewModel {
public void init(List orders, List sitArts, String codMdep) {
this.mOrders = orders;
- this.mSitArts = sitArts;
this.mDefaultCodMdep = codMdep;
- getEmptyPickingList(sitArts, pickingObjectList -> {
+ this.mSitArts = Stream.of(sitArts)
+ .filter(x -> UtilityBigDecimal.greaterThan(x.getNumCnfDaEvadere(), BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(x.getQtaDaEvadere(), BigDecimal.ZERO))
+ .toList();
+
+ getEmptyPickingList(this.mSitArts, pickingObjectList -> {
this.mPickingList.postValue(pickingObjectList);
});
@@ -136,6 +139,7 @@ public class AccettazionePickingViewModel {
}
private void getEmptyPickingList(List sitArtOrdList, RunnableArgs> onComplete) {
+
List codMarts = Stream.of(sitArtOrdList)
.map(SitArtOrdDTO::getCodMart)
.toList();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/viewmodel/ContenutoBancaleViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/viewmodel/ContenutoBancaleViewModel.java
index 4cf28074..f4a5ab67 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/viewmodel/ContenutoBancaleViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/viewmodel/ContenutoBancaleViewModel.java
@@ -24,7 +24,7 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
import it.integry.integrywmsnative.gest.contenuto_bancale.core.ContenutoBancaleListAdapter;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import static android.app.Activity.RESULT_OK;
@@ -118,7 +118,9 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked
Resources res = mContext.getResources();
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();
+ DialogSimpleMessageView
+ .makeSuccessDialog(res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null)
+ .show(mContext.getSupportFragmentManager(), "tag");
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
} catch (Exception ex) {
@@ -128,7 +130,9 @@ public class ContenutoBancaleViewModel implements IRecyclerItemClicked
} else {
progress.dismiss();
String errorMessage = "Nessuna stampante configurata";
- DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(errorMessage), null, null).show();
+ DialogSimpleMessageView
+ .makeWarningDialog(new SpannableString(errorMessage), null, null)
+ .show(mContext.getSupportFragmentManager(), "tag");;
}
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progress);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java
index 91b797c0..ff43799c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java
@@ -28,7 +28,7 @@ import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.gest.login.core.LoginHelper;
import it.integry.integrywmsnative.gest.login.dto.LoginAziendaDTO;
import it.integry.integrywmsnative.gest.login.dto.LoginDTO;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class LoginViewModel {
@@ -192,22 +192,22 @@ public class LoginViewModel {
private void onLoginFailed(final Spanned message){
mProgress.dismiss();
loginButtonEnabled.set(true);
- mActivity.runOnUiThread(() -> DialogSimpleMessageHelper.makeErrorDialog(
- mActivity,
+ mActivity.runOnUiThread(() -> DialogSimpleMessageView.makeErrorDialog(
message,
null,
- null).show());
+ null)
+ .show(mActivity.getSupportFragmentManager(), "tag"));
}
private void onLoginSuccess(final String title, final Spanned message, final String host, final int port, final List availableProfiles){
mProgress.dismiss();
- mActivity.runOnUiThread(() -> DialogSimpleMessageHelper.makeSuccessDialog(
- mActivity,
+ mActivity.runOnUiThread(() -> DialogSimpleMessageView.makeSuccessDialog(
title,
message,
null,
- () -> showProfileDBSelectionDialog(host, port, availableProfiles)).show());
+ () -> showProfileDBSelectionDialog(host, port, availableProfiles))
+ .show(mActivity.getSupportFragmentManager(), "tag"));
}
private void showProfileDBSelectionDialog(final String host, final int port, final List availableProfiles){
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
index 72acdc52..52f687d4 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
@@ -7,8 +7,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.res.ResourcesCompat;
import androidx.databinding.DataBindingUtil;
@@ -33,7 +31,6 @@ import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.BaseFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
-import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
@@ -53,9 +50,9 @@ import it.integry.integrywmsnative.gest.ordini_uscita_elenco.list.OrdiniUscitaEl
import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRowInfoView;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
-public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledFragment, ILifecycleFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment, OrdiniUscitaElencoViewModel.Listener {
+public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment, OrdiniUscitaElencoViewModel.Listener {
public BindableBoolean fabVisible = new BindableBoolean(false);
@@ -132,8 +129,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
}
@Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
+ public void onStart() {
+ super.onStart();
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
mViewModel.init(codMdep, mCurrentGestioneOrd, mCurrentGestioneCol, mCurrentSegnoCol);
@@ -141,6 +138,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
@Override
public void onDestroy() {
+ BarcodeManager.removeCallback(barcodeScannerIstanceID);
+
for (Runnable onPreDestroy : mOnPreDestroyList) {
onPreDestroy.run();
}
@@ -259,12 +258,6 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
.forEach(x -> x.getSelectedObservable().set(false));
}
- @Override
- public void onPreDestroy(Runnable onComplete) {
- BarcodeManager.removeCallback(barcodeScannerIstanceID);
- onComplete.run();
- }
-
@Override
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
titleText.setText(context.getText(R.string.prod_ordine_lavorazione_title_fragment).toString());
@@ -278,7 +271,6 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
.toList();
this.mViewModel.loadPicking(selectedOrders);
-
}
@@ -315,8 +307,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
int alreadyRegisteredUL = alreadyRegisteredMtbColts.size();
- DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
- getText(R.string.orders).toString(),
+ DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(),
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, orders.size()), orders.size())
+ "
" +
"" + codMarts.size() + " " + getActivity().getResources().getQuantityString(R.plurals.available_articles, codMarts.size())
@@ -324,7 +315,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
"" + alreadyRegisteredUL + " " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
null,
() -> SpedizioneActivity.startActivity(getActivity(), sitArts, orders, alreadyRegisteredMtbColts, mCurrentGestioneCol, mCurrentSegnoCol, MtbColr.Causale.DEFAULT, mDialogRowInfo)
- ).show();
+ ).show(getActivity().getSupportFragmentManager(), "tag");
}
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java
index 8e2ec39d..ac86b7d6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java
@@ -18,6 +18,7 @@ import it.integry.integrywmsnative.core.exception.InvalidLUMultiGestioneExceptio
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
import it.integry.integrywmsnative.core.exception.NoOrderFoundException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.model.DtbOrdt;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.OrdineInevasoDTO;
@@ -282,10 +283,7 @@ public class OrdiniUscitaElencoViewModel {
if (this.mListener != null) mListener.onOrdersDispatched(orders, sitArts, alreadyRegisteredMtbColts);
}
- public interface Listener {
- void onLoadingStarted();
-
- void onLoadingEnded();
+ public interface Listener extends ILoadingListener {
void onError(Exception ex);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
index bf6c709b..bad33b1e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
@@ -55,7 +55,7 @@ import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
@@ -268,12 +268,11 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
@Override
public void onMtbColrDeleteRequest(RunnableArgs onComplete) {
String text = getResources().getString(R.string.alert_delete_mtb_colr);
- DialogSimpleMessageHelper.makeWarningDialog(getActivity(),
- new SpannableString(text),
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(text),
null,
() -> onComplete.run(true),
() -> onComplete.run(false)
- ).show();
+ ).show(getActivity().getSupportFragmentManager(), "tag");
}
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java
index 782fb055..ecdaf0ae 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java
@@ -35,6 +35,7 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager;
+import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityResources;
@@ -49,9 +50,9 @@ 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.base.DialogSimpleMessageHelper;
-import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
+import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.note_aggiuntive_lu.NoteAggiuntiveLUDialog;
public class PickingResiActivity extends BaseActivity implements BottomSheetFragmentLUContentView.Listener, BottomSheetFragmentLUContentViewModel.Listener, PickingResiViewModel.Listener {
@@ -179,9 +180,9 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
this.mBindings.mainList.setAdapter(pickingResiListAdapter);
this.mBindings.mainList.setLayoutManager(new LinearLayoutManager(this));
- pickingResiListAdapter.setOnItemClicked(clickedItem -> {
+ pickingResiListAdapter.setOnItemClicked((clickedItem, refMtbColt) -> {
if (!noLUPresent.get()) {
- this.mViewmodel.dispatchOrdineRow(clickedItem);
+ this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt);
}
});
}
@@ -190,7 +191,11 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
private List convertDataModelToListModel(List dataList) {
List pickingResiListModels = new ArrayList<>();
- Stream.of(dataList)
+ List tmpList = Stream.of(dataList)
+ .filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getQtaDoc(), BigDecimal.ZERO))
+ .toList();
+
+ Stream.of(tmpList)
.sortBy(x -> x.getNumDoc() + " " + x.getDataDocS() + " " + x.getCodDtip() + " " + x.getSerDoc() + " " + x.getCodAnag() + " " + x.getIdRiga())
.forEach(x -> {
@@ -251,6 +256,10 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
});
}
+ public void removeListFilter() {
+ this.mViewmodel.resetMatchedRows();
+ }
+
@Override
public void onMtbColrEdit(MtbColr mtbColr) {
this.mViewmodel.dispatchRowEdit(mtbColr);
@@ -321,11 +330,23 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
this.openProgress();
onComplete.run(pickedQuantityDTO, shouldCloseLU);
}, () -> {
-// this.mViewmodel.resetMatchedRows();
+ this.mViewmodel.resetMatchedRows();
})
.show(getSupportFragmentManager(), "tag");
}
+ @Override
+ public void onFilterApplied(String newValue) {
+ this.mBindings.filteredArtsInListExpandableLayout.expand(true);
+ this.mBindings.descriptionFilterText.setText(!UtilityString.isNullOrEmpty(newValue) ? newValue : "");
+ }
+
+ @Override
+ public void onFilterRemoved() {
+ this.mBindings.filteredArtsInListExpandableLayout.collapse(true);
+ this.mBindings.descriptionFilterText.setText("");
+ }
+
@Override
public void onRowSaved() {
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
@@ -334,12 +355,11 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
@Override
public void onMtbColrDeleteRequest(RunnableArgs onComplete) {
String text = getResources().getString(R.string.alert_delete_mtb_colr);
- DialogSimpleMessageHelper.makeWarningDialog(this,
- new SpannableString(text),
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(text),
null,
() -> onComplete.run(true),
() -> onComplete.run(false)
- ).show();
+ ).show(getSupportFragmentManager(), "tag");
}
@Override
@@ -362,7 +382,9 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
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();
+ DialogSimpleMessageView
+ .makeSuccessDialog(res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null)
+ .show(getSupportFragmentManager(), "tag");
}
@Override
@@ -373,13 +395,13 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
@Override
public void onLUPrintError(Exception ex, Runnable onComplete) {
this.closeProgress();
- DialogSimpleMessageHelper.makeErrorDialog(
- this,
+ DialogSimpleMessageView.makeErrorDialog(
new SpannableString(ex.getMessage()),
null,
null,
R.string.button_ignore_print,
- onComplete).show();
+ onComplete)
+ .show(getSupportFragmentManager(), "tag");
}
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java
index 84cd3e22..4c7a3f64 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java
@@ -14,7 +14,11 @@ import java.util.List;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
+import it.integry.integrywmsnative.core.exception.InvalidLUException;
+import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
+import it.integry.integrywmsnative.core.exception.NoLUFoundException;
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
@@ -25,6 +29,7 @@ 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.model.dto.PickDataDTO;
import it.integry.integrywmsnative.core.report.ReportManager;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
@@ -39,6 +44,7 @@ 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.exceptions.NotCurrentYearLUException;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
public class PickingResiViewModel {
@@ -229,23 +235,26 @@ public class PickingResiViewModel {
private void postCloseOperations(MtbColt mtbColt, Runnable onComplete) {
this.mColliRegistrati.add(mtbColt);
- Stream.of(this.mPickingList.getValue())
- .forEach(x -> {
- List withdraws = x.getWithdrawRows();
+ List tmpList = getPickingList().getValue();
- for (int k = 0; k < withdraws.size(); k++) {
- MtbColr withdrawRow = withdraws.get(k);
- x.setQtaDoc(x.getQtaDoc().subtract(withdrawRow.getQtaCol()));
- }
+ for (int i = 0; i < tmpList.size(); i++) {
+ WithdrawableDtbDocr x = tmpList.get(i);
+ List withdraws = x.getWithdrawRows();
- x.getWithdrawRows().clear();
+ for (int k = 0; k < withdraws.size(); k++) {
+ MtbColr withdrawRow = withdraws.get(k);
+ x.setQtaDoc(x.getQtaDoc().subtract(withdrawRow.getQtaCol()));
+ }
- if (UtilityBigDecimal.equalsOrLowerThan(x.getQtaDoc(), BigDecimal.ZERO)) {
- this.mPickingList.getValue().remove(x);
- }
- });
+ x.getWithdrawRows().clear();
- this.mPickingList.postValue(this.mPickingList.getValue());
+ if (UtilityBigDecimal.equalsOrLowerThan(x.getQtaDoc(), BigDecimal.ZERO)) {
+ tmpList.remove(x);
+ i--;
+ }
+ }
+
+ this.mPickingList.postValue(tmpList);
onComplete.run();
}
@@ -259,41 +268,232 @@ public class PickingResiViewModel {
//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);
+ this.executeEtichettaAnonimaNotOpenedLU(barcodeScanDTO, onComplete);
} else {
-// this.processBarcodeNotOpenedLU(barcodeScanDTO, onComplete);
+ this.processBarcodeNotOpenedLU(barcodeScanDTO, onComplete);
}
} else {
if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
//Cerco gli articoli presenti nell'ul dell'etichetta anonima
-// this.executeEtichettaLU(barcodeScanDTO.getStringValue(), onComplete);
+ this.executeEtichettaLU(barcodeScanDTO.getStringValue(), onComplete);
} else {
-// this.processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete);
+ this.processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete);
}
}
}
- public void dispatchOrdineRow(final WithdrawableDtbDocr withdrawableDtbDocr) {
+ private void processBarcodeNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+ this.createNewLU(
+ null,
+ null,
+ () -> processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete));
+ }
+
+
+ private void processBarcodeAlreadyOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+
+ if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
+ //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
+ this.executeEtichettaEan128(barcodeScanDTO, onComplete);
+
+
+ } else onComplete.run();
+ }
+
+
+ private void executeEtichettaAnonimaNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+ mColliMagazzinoRESTConsumer.getBySSCC(barcodeScanDTO.getStringValue(), true, false, mtbColt -> {
+
+ if (mtbColt == null) {
+
+ if (!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) {
+ this.sendError(new NotCurrentYearLUException());
+ } else {
+
+ this.createNewLU(
+ UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()),
+ CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, onComplete);
+ }
+ } else {
+
+ this.createNewLU(
+ null,
+ null,
+ () -> searchArtFromUL(mtbColt, onComplete)
+ );
+ }
+
+ }, this::sendError);
+ }
+
+ private void executeEtichettaLU(String SSCC, Runnable onComplete) {
+ mColliMagazzinoRESTConsumer.getBySSCC(SSCC, true, false, mtbColt -> {
+
+ if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
+ if (mtbColt.getSegno() != -1) {
+ searchArtFromUL(mtbColt, onComplete);
+ } else this.sendError(new InvalidLUException());
+ } else {
+ this.sendError(new NoArtsFoundException());
+ }
+
+ }, this::sendError);
+ }
+
+
+ private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+ mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
+
+ String barcodeProd = null;
+
+ if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
+ if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
+ if (!UtilityString.isNullOrEmpty(ean128Model.Content))
+ barcodeProd = ean128Model.Content;
+
+
+ if (!UtilityString.isNullOrEmpty(barcodeProd)) {
+
+ if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
+ this.executeEtichettaLU(ean128Model.Sscc, onComplete);
+ } else {
+ this.sendError(new NoLUFoundException());
+ }
+ } else {
+ //EAN 128 non completo o comunque mancano i riferimenti al prodotto
+ onComplete.run();
+ }
+ }, this::sendError);
+ }
+
+ private void searchArtFromUL(MtbColt scannedUL, Runnable onComplete) {
+
+ final List pickingList = mPickingList.getValue();
+ final List matchPickingObject = new ArrayList<>();
+
+
+ //Controllo se nel collo ho degli articoli che corrispondono per codice / taglia / colore / lotto
+ Stream.of(scannedUL.getMtbColr())
+ .filter(x -> !UtilityString.isNullOrEmpty(x.getCodMart()))
+ .forEach(x -> {
+
+ for (WithdrawableDtbDocr pickingObject : pickingList) {
+ //Da verificare se il controllo per partita deve essere sempre effettuato
+ if (UtilityString.equalsIgnoreCase(x.getCodMart(), pickingObject.getCodMart()) &&
+ UtilityString.equalsIgnoreCase(x.getCodTagl(), pickingObject.getCodTagl()) &&
+ UtilityString.equalsIgnoreCase(x.getCodCol(), pickingObject.getCodCol())) {
+
+ if (!matchPickingObject.contains(pickingObject)) {
+ matchPickingObject.add(pickingObject);
+ }
+
+ }
+ }
+ });
+
+ for (WithdrawableDtbDocr matchedObject : matchPickingObject) {
+ MtbColt cloneMtbColt = (MtbColt) scannedUL.clone();
+ ObservableArrayList cloneMtbColrs = (ObservableArrayList) cloneMtbColt.getMtbColr().clone();
+
+
+ Stream.of(cloneMtbColt.getMtbColr())
+ .filter(x -> !(UtilityString.equalsIgnoreCase(x.getCodMart(), matchedObject.getCodMart()) &&
+ UtilityString.equalsIgnoreCase(x.getCodTagl(), matchedObject.getCodTagl()) &&
+ UtilityString.equalsIgnoreCase(x.getCodCol(), matchedObject.getCodCol())))
+ .forEach(cloneMtbColrs::remove);
+
+ cloneMtbColt.setMtbColr(cloneMtbColrs);
+
+ PickDataDTO tempPickData = new PickDataDTO()
+ .setSourceMtbColt(cloneMtbColt);
+
+ matchedObject.setTempPickData(tempPickData);
+ }
+
+
+ this.loadMatchedRows(matchPickingObject);
+ onComplete.run();
+ }
+
+
+ private void loadMatchedRows(List matchedRows) {
+ if (matchedRows == null || matchedRows.size() == 0) {
+ this.sendError(new NoArtsFoundException());
+ } else if (matchedRows.size() == 1) {
+ WithdrawableDtbDocr matchedItem = matchedRows.get(0);
+
+ if (matchedItem.getWithdrawRows() != null && matchedItem.getWithdrawRows().size() > 1) {
+
+ List 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 {
+ List pickingList = mPickingList.getValue();
+
+ for (int i = 0; i < pickingList.size(); i++) {
+ if (!matchedRows.contains(pickingList.get(i))) {
+ pickingList.get(i).setHidden(true);
+ }
+ }
+
+ this.sendFilterApplied(null);
+ this.getPickingList().postValue(pickingList);
+
+ }
+ }
+
+
+ public void dispatchOrdineRow(final WithdrawableDtbDocr withdrawableDtbDocr, final MtbColt refMtbColt) {
BigDecimal totalQtaDoc = withdrawableDtbDocr.getQtaDoc();
BigDecimal totalNumCnfDoc = withdrawableDtbDocr.getNumCnf();
BigDecimal qtaCnfDoc = withdrawableDtbDocr.getQtaCnf();
+ //TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'è ne una che corrisponde con la partita richiesta
+ MtbColr mtbColrToDispatch = withdrawableDtbDocr.getTempPickData() != null &&
+ withdrawableDtbDocr.getTempPickData().getSourceMtbColt() != null &&
+ withdrawableDtbDocr.getTempPickData().getSourceMtbColt().getMtbColr() != null &&
+ withdrawableDtbDocr.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ?
+ withdrawableDtbDocr.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null;
+
+ BigDecimal totalAvailableQtaCol;
+ BigDecimal totalAvailableQtaCnf;
+ BigDecimal totalAvailableNumCnf;
+
+ if (mtbColrToDispatch != null) {
+ totalAvailableQtaCol = mtbColrToDispatch.getQtaCol();
+ totalAvailableQtaCnf = mtbColrToDispatch.getQtaCnf();
+ totalAvailableNumCnf = mtbColrToDispatch.getNumCnf();
+ } else {
+ totalAvailableQtaCol = totalQtaDoc;
+ totalAvailableQtaCnf = qtaCnfDoc;
+ totalAvailableNumCnf = totalNumCnfDoc;
+ }
this.sendOnItemDispatched(
withdrawableDtbDocr.getMtbAart(),
- totalNumCnfDoc,
- qtaCnfDoc,
- totalQtaDoc,
- totalQtaDoc,
- totalNumCnfDoc,
- qtaCnfDoc,
+ totalAvailableNumCnf,
+ totalAvailableQtaCnf,
+ totalAvailableQtaCol,
+ totalAvailableQtaCol,
+ totalAvailableNumCnf,
+ totalAvailableQtaCnf,
withdrawableDtbDocr.getPartitaMag(),
withdrawableDtbDocr.getDataScadPartitaMagD(),
(pickedQuantityDTO, shouldCloseLU) -> {
this.saveNewRow(withdrawableDtbDocr,
+ refMtbColt,
pickedQuantityDTO.getNumCnf(),
pickedQuantityDTO.getQtaCnf(),
pickedQuantityDTO.getQtaTot(),
@@ -328,7 +528,7 @@ public class PickingResiViewModel {
}
- public void saveNewRow(WithdrawableDtbDocr withdrawableDtbDocr, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
+ public void saveNewRow(WithdrawableDtbDocr withdrawableDtbDocr, MtbColt refMtbColt, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
this.sendOnLoadingStarted();
final MtbColr mtbColr = new MtbColr()
@@ -348,6 +548,39 @@ public class PickingResiViewModel {
.setDataDoc(withdrawableDtbDocr.getDataDocS())
.setIdRigaDoc(withdrawableDtbDocr.getIdRiga());
+ //TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'è ne una che corrisponde con la partita richiesta
+ MtbColr mtbColrToDispatch = withdrawableDtbDocr.getTempPickData() != null &&
+ withdrawableDtbDocr.getTempPickData().getSourceMtbColt() != null &&
+ withdrawableDtbDocr.getTempPickData().getSourceMtbColt().getMtbColr() != null &&
+ withdrawableDtbDocr.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ?
+ withdrawableDtbDocr.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null;
+
+ if (mtbColrToDispatch != null) {
+ if (UtilityString.isNullOrEmpty(mCurrentMtbColt.getCodTcol()))
+ mCurrentMtbColt.setCodTcol(UtilityString.empty2null(withdrawableDtbDocr.getTempPickData().getSourceMtbColt().getCodTcol()));
+
+ mtbColr
+ .setCodJcom(UtilityString.empty2null(mtbColrToDispatch.getCodJcom()))
+ .setSerColloRif(UtilityString.empty2null(mtbColrToDispatch.getSerCollo()))
+ .setNumColloRif(mtbColrToDispatch.getNumCollo())
+ .setGestioneRif(UtilityString.empty2null(mtbColrToDispatch.getGestione()))
+ .setDataColloRif(UtilityString.empty2null(mtbColrToDispatch.getDataColloS()));
+
+
+ if (mtbColrToDispatch.getPesoNettoKg() != null) {
+ //Proporzione
+ BigDecimal pesoNettoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoNettoKg()), mtbColrToDispatch.getQtaCol());
+ mtbColr.setPesoNettoKg(pesoNettoKg);
+ }
+
+ if (mtbColrToDispatch.getPesoLordoKg() != null) {
+ //Proporzione
+ BigDecimal pesoLordoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoLordoKg()), mtbColrToDispatch.getQtaCol());
+ mtbColr.setPesoLordoKg(pesoLordoKg);
+ }
+ }
+
+
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
@@ -482,6 +715,17 @@ public class PickingResiViewModel {
});
}
+ public void resetMatchedRows() {
+ for (WithdrawableDtbDocr pickingObjectDTO : this.mPickingList.getValue()) {
+ pickingObjectDTO
+ .setTempPickData(null)
+ .setHidden(false);
+ }
+
+ this.mPickingList.postValue(this.mPickingList.getValue());
+ this.sendFilterRemoved();
+ }
+
public MutableLiveData> getPickingList() {
return mPickingList;
@@ -549,6 +793,14 @@ public class PickingResiViewModel {
if (this.mListener != null) mListener.onRowSaved();
}
+ private void sendFilterApplied(String newValue) {
+ if (this.mListener != null) mListener.onFilterApplied(newValue);
+ }
+
+ private void sendFilterRemoved() {
+ if (this.mListener != null) mListener.onFilterRemoved();
+ }
+
public PickingResiViewModel setListener(Listener listener) {
this.mListener = listener;
@@ -572,5 +824,9 @@ public class PickingResiViewModel {
Date dataScad,
RunnableArgss onComplete);
+ void onFilterApplied(String newValue);
+
+ void onFilterRemoved();
+
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java
index 28a198ba..30459d32 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java
@@ -20,7 +20,8 @@ import java.util.List;
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.RunnableArgss;
+import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.PickingResiMainListItemBinding;
@@ -31,7 +32,7 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter mDataset = new ArrayList<>();
- private RunnableArgs mOnItemClicked;
+ private RunnableArgss mOnItemClicked;
static class SubheaderHolder extends RecyclerView.ViewHolder {
PickingResiMainListItemHeaderBinding mBinding;
@@ -65,7 +66,7 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter onItemClicked) {
+ public void setOnItemClicked(RunnableArgss onItemClicked) {
this.mOnItemClicked = onItemClicked;
}
@@ -123,7 +124,7 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter {
if (this.mOnItemClicked != null)
- this.mOnItemClicked.run(pickingResiListModel.getOriginalModel());
+ this.mOnItemClicked.run(pickingResiListModel.getOriginalModel(), pickingResiListModel.getSourceMtbColt());
});
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListModel.java
index d5816c64..fe12ed1e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListModel.java
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.picking_resi.core;
import java.math.BigDecimal;
+import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.gest.picking_resi.rest.WithdrawableDtbDocr;
public class PickingResiListModel {
@@ -19,6 +20,7 @@ public class PickingResiListModel {
private boolean active;
private WithdrawableDtbDocr mOriginalModel;
+ private MtbColt mSourceMtbColt;
public String getGroupTitle() {
return groupTitle;
@@ -100,4 +102,13 @@ public class PickingResiListModel {
this.mOriginalModel = originalModel;
return this;
}
+
+ public MtbColt getSourceMtbColt() {
+ return mSourceMtbColt;
+ }
+
+ public PickingResiListModel setSourceMtbColt(MtbColt sourceMtbColt) {
+ this.mSourceMtbColt = sourceMtbColt;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/rest/WithdrawableDtbDocr.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/rest/WithdrawableDtbDocr.java
index 08fabdd5..b8a79a8a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/rest/WithdrawableDtbDocr.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/rest/WithdrawableDtbDocr.java
@@ -5,13 +5,18 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.DtbDocr;
import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
public class WithdrawableDtbDocr extends DtbDocr {
private String gestione;
-
private List withdrawRows = new ArrayList<>();
+ private PickDataDTO tempPickData;
+ private MtbColt refMtbColt;
+ private boolean hidden = false;
+
public WithdrawableDtbDocr() {
super();
}
@@ -33,4 +38,31 @@ public class WithdrawableDtbDocr extends DtbDocr {
this.gestione = gestione;
return this;
}
+
+ public MtbColt getRefMtbColt() {
+ return refMtbColt;
+ }
+
+ public WithdrawableDtbDocr setRefMtbColt(MtbColt refMtbColt) {
+ this.refMtbColt = refMtbColt;
+ return this;
+ }
+
+ public PickDataDTO getTempPickData() {
+ return tempPickData;
+ }
+
+ public WithdrawableDtbDocr setTempPickData(PickDataDTO tempPickData) {
+ this.tempPickData = tempPickData;
+ return this;
+ }
+
+ public boolean isHidden() {
+ return hidden;
+ }
+
+ public WithdrawableDtbDocr setHidden(boolean hidden) {
+ this.hidden = hidden;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java
index 1cdc39ef..df721f6b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_accettazione_ord_produzione/ProdOrdineProduzioneElencoFragment.java
@@ -41,7 +41,7 @@ import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.core.Or
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.core.OrdineProduzioneListAdapter;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzato;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
/**
* A simple {@link Fragment} subclass.
@@ -137,7 +137,9 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
if (errorMessage == null) errorMessage = ex.getMessage();
- DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
+ DialogSimpleMessageView
+ .makeErrorDialog(new SpannableString(errorMessage), null, null)
+ .show(getActivity().getSupportFragmentManager(), "tag");
}
);
}
@@ -197,8 +199,7 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
.distinctBy(x -> x.getDataOrd() + " " + x.getNumOrd() + " " + x.getGestione())
.count();
- DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
- getText(R.string.orders).toString(),
+ DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(),
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, (int) ordsCounter), ordsCounter)
+ "
" +
"" + artsCounter + " " + getActivity().getResources().getQuantityString(R.plurals.available_articles, (int) artsCounter)),
@@ -213,7 +214,7 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
myIntent.putExtra("keySitArts", cacheSitArtItemID);
getActivity().startActivity(myIntent);
- }).show();
+ }).show(getActivity().getSupportFragmentManager(), "tag");
},
@@ -224,7 +225,9 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
if (errorMessage == null)
errorMessage = ex.getMessage() + "\n" + ex.getCause().getCause().getMessage();
- DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
+ DialogSimpleMessageView
+ .makeErrorDialog(new SpannableString(errorMessage), null, null)
+ .show(getActivity().getSupportFragmentManager(), "tag");
});
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java
index 1f53fb66..917fadf0 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_recupero_materiale/viewmodel/ProdRecuperoMaterialeViewModel.java
@@ -42,7 +42,7 @@ import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuper
import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersamentoProdULDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
@@ -386,13 +386,13 @@ public class ProdRecuperoMaterialeViewModel {
}, ex -> {
progress.dismiss();
String errorMessage = ex.getMessage();
- DialogSimpleMessageHelper.makeErrorDialog(
- mContext,
+ DialogSimpleMessageView.makeErrorDialog(
new SpannableString(errorMessage),
null,
null,
R.string.button_ignore_print,
- onComplete).show();
+ onComplete)
+ .show(mContext.getSupportFragmentManager(), "tag");
});
} catch (Exception ex) {
@@ -402,7 +402,9 @@ public class ProdRecuperoMaterialeViewModel {
} else {
progress.dismiss();
String errorMessage = "Nessuna stampante configurata";
- DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(errorMessage), null, onComplete).show();
+ DialogSimpleMessageView
+ .makeWarningDialog(new SpannableString(errorMessage), null, onComplete)
+ .show(mContext.getSupportFragmentManager(), "tag");
}
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progress);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java
index 21bfaabd..9e729256 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/core/ChooseOrdsLavFromListAdapter.java
@@ -6,6 +6,7 @@ import android.text.SpannableString;
import android.view.LayoutInflater;
import android.view.ViewGroup;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.Observable;
import androidx.recyclerview.widget.RecyclerView;
@@ -32,7 +33,7 @@ import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentChooseOrdsLavFromListItemModelBinding;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter {
@@ -57,11 +58,12 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter Per una corretta suddivisione delle quantità registra le risorse.")),
null, () -> {
itemModel.getChecked().set(false);
- }).show();
+ })
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag");
return;
}
if (!itemModel.isChecked()) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java
index 1a8a927c..ce53400b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_versamento_materiale/viewmodel/ProdVersamentoMaterialViewModel.java
@@ -8,6 +8,7 @@ import android.text.SpannableString;
import android.view.View;
import android.widget.Toast;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.ObservableField;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -44,7 +45,7 @@ import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavo
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
@@ -75,7 +76,7 @@ public class ProdVersamentoMaterialViewModel {
mMtbColr = mtbColr;
mBinding.descrArt.setText(mtbColr.getDescrizione());
mBinding.codArt.setText(mtbColr.getCodMart());
- mBinding.batch.setText(mtbColr.getPartitaMag() + ((mtbColr.getMtbPartitaMag() != null) ? " - "+ mtbColr.getMtbPartitaMag().getDescrizione() : ""));
+ mBinding.batch.setText(mtbColr.getPartitaMag() + ((mtbColr.getMtbPartitaMag() != null) ? " - " + mtbColr.getMtbPartitaMag().getDescrizione() : ""));
if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) {
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
@@ -96,18 +97,20 @@ public class ProdVersamentoMaterialViewModel {
} else if ((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE || mtbColt.getGestioneEnum() == GestioneEnum.VENDITA) && mtbColt.getSegno().equals(+1)) {
if (mtbColt.getMtbColr() == null || mtbColt.getMtbColr().size() == 0) {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
+ DialogSimpleMessageView.makeWarningDialog(
new SpannableString(Html.fromHtml("E' stata scansionata una UL già vuota")),
- null, this::openLU).show();
+ null, this::openLU)
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag");
} else {
setMtbColt(mtbColt);
choosePosition();
}
} else {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
- new SpannableString(Html.fromHtml("Sono accettate solamente UL di Acquisto o Lavorazione di CARICO")),
- null, this::openLU).show();
+ DialogSimpleMessageView
+ .makeWarningDialog(new SpannableString(Html.fromHtml("Sono accettate solamente UL di Acquisto o Lavorazione di CARICO")),
+ null, this::openLU)
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag");
}
}).show();
}
@@ -123,28 +126,36 @@ public class ProdVersamentoMaterialViewModel {
createColloScarico(mtbDepoPosizione);
} else {
if (mtbColt == null || mtbColt.get() == null || mtbColt.get().getMtbColr() == null || mtbColt.get().getMtbColr().size() <= 0) {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
- new SpannableString(Html.fromHtml("Il collo selezionato non presenta articoli versabili sulla linea.")),
- null, this::openLU).show();
+ DialogSimpleMessageView
+ .makeWarningDialog(new SpannableString(Html.fromHtml("Il collo selezionato non presenta articoli versabili sulla linea.")),
+ null, this::openLU)
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag");
return;
} else if (mtbColt.get().getMtbColr().size() > 1) {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
- new SpannableString(Html.fromHtml("Il collo selezionato contiene più articoli, solo il primo verrà versato in questa sessione.
Per versare i colli restanti ripetere l'operazione di versamento.")),
- null, () -> {
- cyclicGetOrdiniLavByCollo(mtbColt.get().getMtbColr().iterator(), mtbDepoPosizione);
- }).show();
+ DialogSimpleMessageView
+ .makeWarningDialog(new SpannableString(Html.fromHtml("Il collo selezionato contiene più articoli, solo il primo verrà versato in questa sessione.
Per versare i colli restanti ripetere l'operazione di versamento.")),
+ null, () -> {
+ cyclicGetOrdiniLavByCollo(mtbColt.get().getMtbColr().iterator(), mtbDepoPosizione);
+ })
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag");
return;
}
- MesRESTConsumer.getOrdiniLavorazioneMateriale(mtbDepoPosizione.getPosizione(), getIdMaterialeFromCollo(mtbColt.get()), ordini -> richiediOrdiniPerVersamento(ordini, mtbDepoPosizione), e -> DialogSimpleMessageHelper.makeWarningDialog(mContext,
- new SpannableString(Html.fromHtml(e.getMessage())),
- null, this::openLU).show());
+ MesRESTConsumer.getOrdiniLavorazioneMateriale(
+ mtbDepoPosizione.getPosizione(),
+ getIdMaterialeFromCollo(mtbColt.get()),
+ ordini -> richiediOrdiniPerVersamento(ordini, mtbDepoPosizione),
+ e -> DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(e.getMessage())),
+ null,
+ this::openLU)
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag"));
}
} else {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
- new SpannableString(Html.fromHtml("Si è verificato un errore. Riprovare")),
- null, this::openLU).show();
+ DialogSimpleMessageView
+ .makeWarningDialog(new SpannableString(Html.fromHtml("Si è verificato un errore. Riprovare")),
+ null, this::openLU)
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag");
}
}
@@ -243,8 +254,8 @@ public class ProdVersamentoMaterialViewModel {
richiediOrdiniPerVersamento(ordini, mtbDepoPosizione);
}
}
- , e -> DialogSimpleMessageHelper.makeWarningDialog(mContext,
- new SpannableString(Html.fromHtml(e.getMessage())),
- null, this::openLU).show());
+ , e -> DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(e.getMessage())),
+ null, this::openLU)
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag"));
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
index 913f46dc..4da7c280 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
@@ -42,7 +42,7 @@ import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrd
import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class PVOrdineAcquistoEditActivity extends BaseActivity {
@@ -135,7 +135,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
private void deleteArticolo(ArticoloOrdine articoloOrdine) {
String text = "Stai per eliminare l'articolo " + articoloOrdine.getDescrizione() + " dall'ordine,
sei sicuro?";
- DialogSimpleMessageHelper.makeWarningDialog(this, new SpannableString(Html.fromHtml(text)), null, () -> this.runOnUiThread(() -> {
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(text)), null, () -> this.runOnUiThread(() -> {
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
mhelper.removeArticoloFromOrdine(articoloOrdine, () -> {
progress.dismiss();
@@ -146,7 +146,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
runOnUiThread(() -> UtilityExceptions.defaultException(this, e));
});
}), () -> {
- }).show();
+ }).show(getSupportFragmentManager(), "tag");
}
private void handleException(Exception ex) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java
index 1b9f3b68..065c665c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java
@@ -47,7 +47,7 @@ import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanLis
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitledFragment, IScrollableFragment {
@@ -142,7 +142,9 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
}), (e) -> {
progress.dismiss();
String errorMessage = e.getMessage();
- getActivity().runOnUiThread(() -> DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show());
+ getActivity().runOnUiThread(() -> DialogSimpleMessageView
+ .makeErrorDialog(new SpannableString(errorMessage), null, null)
+ .show(getActivity().getSupportFragmentManager(), "tag"));
});
}
@@ -198,7 +200,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
private void deleteOrdine(Ordine ordine) {
String text = "Stai per eliminare un ordine sei sicuro?";
- DialogSimpleMessageHelper.makeWarningDialog(getActivity(), new SpannableString(Html.fromHtml(text)), null, () -> getActivity().runOnUiThread(() -> {
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(text)), null, () -> getActivity().runOnUiThread(() -> {
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
mHelper.deleteOrder(ordine, () -> {
getActivity().runOnUiThread(() -> {
@@ -211,7 +213,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
getActivity().runOnUiThread(() -> UtilityExceptions.defaultException(getActivity(), e));
});
}), () -> {
- }).show();
+ }).show(getActivity().getSupportFragmentManager(), "tag");
}
private void refreshRenderedOrdini(List ordini) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java
index 610376c9..1366e3e7 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java
@@ -60,7 +60,7 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
@@ -360,12 +360,12 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
@Override
public void onMtbColrDeleteRequest(RunnableArgs onComplete) {
String text = getResources().getString(R.string.alert_delete_mtb_colr);
- DialogSimpleMessageHelper.makeWarningDialog(getActivity(),
- new SpannableString(text),
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(text),
null,
() -> onComplete.run(true),
() -> onComplete.run(false)
- ).show();
+ )
+ .show(getActivity().getSupportFragmentManager(), "tag");
}
@Override
@@ -471,29 +471,31 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
public void onLUSuccessullyPrinted() {
Resources res = getResources();
String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
- DialogSimpleMessageHelper.makeSuccessDialog(getActivity(), res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show();
+ DialogSimpleMessageView
+ .makeSuccessDialog(res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null)
+ .show(getActivity().getSupportFragmentManager(), "tag");
}
@Override
public void onLUPrintRequest(RunnableArgs onComplete) {
- DialogSimpleMessageHelper.makeInfoDialog(
- getActivity(),
+ DialogSimpleMessageView.makeInfoDialog(
getActivity().getResources().getString(R.string.action_print_ul),
new SpannableString(getActivity().getResources().getString(R.string.ask_print_message)),
null,
() -> onComplete.run(true),
- () -> onComplete.run(false)).show();
+ () -> onComplete.run(false))
+ .show(getActivity().getSupportFragmentManager(), "tag");;
}
@Override
public void onLUPrintError(Exception ex, Runnable onComplete) {
- DialogSimpleMessageHelper.makeErrorDialog(
- getActivity(),
+ DialogSimpleMessageView.makeErrorDialog(
new SpannableString(ex.getMessage()),
null,
null,
R.string.button_ignore_print,
- onComplete).show();
+ onComplete)
+ .show(getActivity().getSupportFragmentManager(), "tag");
}
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
index 2aa9f89b..a613a931 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
@@ -67,7 +67,7 @@ import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.camera_barcode_reader.DialogCameraBarcodeReader;
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPeso;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
@@ -198,6 +198,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
boolean enableCheckPartitaMag = SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV();
boolean canOverflowOrderQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione();
boolean shouldAskPesoLU = SettingsManager.iDB().isFlagAskPesoColloSpedizione();
+ boolean useQtaOrd = SettingsManager.iDB().isFlagSpedizioneUseQtaOrd();
if (mEnableGiacenza) this.openProgress();
mViewmodel.init(
@@ -211,7 +212,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
mColliRegistrati,
reportNameSpedizioneChiudiOrdine,
mGestioneCol, mSegnoCol, mDefaultCausaleUL,
- mEnableQuantityReset);
+ mEnableQuantityReset,
+ useQtaOrd);
}
@Override
@@ -265,7 +267,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
((SettingsManager.iDB().isFlagSpedizioneEnableManualPick() &&
clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale()) ||
clickedItem.getTempPickData() != null)) {
- this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt);
+ this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt,
+ SettingsManager.iDB().isFlagSpedizioneEnableManualPick() && clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale());
}
});
}
@@ -719,7 +722,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
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();
+ DialogSimpleMessageView
+ .makeSuccessDialog(res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null)
+ .show(getSupportFragmentManager(), "tag");;
}
@Override
@@ -730,13 +735,14 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override
public void onLUPrintError(Exception ex, Runnable onComplete) {
this.closeProgress();
- DialogSimpleMessageHelper.makeErrorDialog(
- this,
+ DialogSimpleMessageView.makeErrorDialog(
new SpannableString(ex.getMessage()),
null,
null,
R.string.button_ignore_print,
- onComplete).show();
+ onComplete)
+ .show(getSupportFragmentManager(), "tag");
+ ;
}
@Override
@@ -754,12 +760,12 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override
public void onMtbColrDeleteRequest(RunnableArgs onComplete) {
String text = getResources().getString(R.string.alert_delete_mtb_colr);
- DialogSimpleMessageHelper.makeWarningDialog(this,
- new SpannableString(text),
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(text),
null,
() -> onComplete.run(true),
() -> onComplete.run(false)
- ).show();
+ )
+ .show(getSupportFragmentManager(), "tag");
}
@Override
@@ -793,6 +799,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
String partitaMag,
Date dataScad,
boolean canOverflowOrderQuantity,
+ boolean canPartitaMagBeChanged,
RunnableArgss onComplete) {
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
.setMtbAart(mtbAart)
@@ -811,7 +818,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
.setPartitaMag(partitaMag)
.setDataScad(dataScad)
.setCanOverflowOrderQuantity(canOverflowOrderQuantity)
- .setCanLUBeClosed(true);
+ .setCanLUBeClosed(true)
+ .setCanPartitaMagBeChanged(canPartitaMagBeChanged);
DialogInputQuantityV2View
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
index 6d50da2d..66e56442 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
@@ -95,6 +95,7 @@ public class SpedizioneViewModel {
private String mReportNameSpedizioneChiudiOrdine;
private boolean mIsNewLU;
private boolean mEnableQuantityReset;
+ private boolean mUseQtaOrd;
private MtbColt mCurrentMtbColt = null;
@@ -137,7 +138,8 @@ public class SpedizioneViewModel {
GestioneEnum gestioneCol,
int segnoCol,
Integer defaultCausaleUL,
- boolean enableQuantityReset) {
+ boolean enableQuantityReset,
+ boolean useQtaOrd) {
this.sendOnLoadingStarted();
this.mDefaultCodMdep = codMdep;
@@ -150,6 +152,7 @@ public class SpedizioneViewModel {
this.mReportNameSpedizioneChiudiOrdine = reportNameSpedizioneChiudiOrdine;
this.mDefaultCausaleOfUL = defaultCausaleUL;
this.mEnableQuantityReset = enableQuantityReset;
+ this.mUseQtaOrd = useQtaOrd;
if (enableGiacenza) {
mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> {
@@ -361,6 +364,7 @@ public class SpedizioneViewModel {
String partitaMag,
Date dataScad,
boolean canOverflowOrderQuantity,
+ boolean canBatchLotBeChanged,
RunnableArgss onComplete) {
if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO,
mtbAart,
@@ -379,6 +383,7 @@ public class SpedizioneViewModel {
partitaMag,
dataScad,
canOverflowOrderQuantity,
+ canBatchLotBeChanged,
onComplete);
}
@@ -732,7 +737,7 @@ public class SpedizioneViewModel {
this.sendFilterApplied(null);
this.getPickingList().postValue(pickingList);
} else {
- this.dispatchOrdineRow(matchedItem, matchedItem.getRefMtbColt());
+ this.dispatchOrdineRow(matchedItem, matchedItem.getRefMtbColt(), false);
}
} else {
@@ -751,7 +756,7 @@ public class SpedizioneViewModel {
}
- public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt) {
+ public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt, boolean canPartitaMagBeChanged) {
BigDecimal totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
@@ -900,7 +905,9 @@ public class SpedizioneViewModel {
this.sendOnItemDispatched(
pickingObjectDTO,
pickingObjectDTO.getMtbAart(),
- null, null, null,
+ mUseQtaOrd ? numCnfDaPrelevare : null,
+ mUseQtaOrd ? qtaCnfDaPrelevare : null,
+ mUseQtaOrd ? qtaColDaPrelevare : null,
qtaDaEvadere,
numCnfDaEvadere,
qtaCnfDaEvadere,
@@ -913,6 +920,7 @@ public class SpedizioneViewModel {
partitaMag,
dataScad,
mCanOverflowOrderQuantity,
+ canPartitaMagBeChanged,
(pickedQuantityDTO, shouldCloseLU) -> {
this.saveNewRow(pickingObjectDTO,
finalRefMtbColt,
@@ -1052,6 +1060,7 @@ public class SpedizioneViewModel {
partitaMag,
dataScad,
mCanOverflowOrderQuantity,
+ true,
(pickedQuantityDTO, shouldCloseLU) -> {
this.saveNewRow(pickingObjectDTO,
finalRefMtbColt,
@@ -1188,6 +1197,7 @@ public class SpedizioneViewModel {
partitaMag,
dataScad,
mCanOverflowOrderQuantity,
+ false,
(pickedQuantityDTO, shouldCloseLU) -> {
this.saveEditedRow(mtbColrToEdit,
pickedQuantityDTO.getNumCnf(),
@@ -1848,6 +1858,7 @@ public class SpedizioneViewModel {
String partitaMag,
Date dataScad,
boolean canOverflowOrderQuantity,
+ boolean canBatchLotBeChanged,
RunnableArgss onComplete);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteComponent.java
new file mode 100644
index 00000000..5b62e34f
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteComponent.java
@@ -0,0 +1,14 @@
+package it.integry.integrywmsnative.gest.ultime_consegne_cliente;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface UltimeConsegneClienteComponent {
+
+ @Subcomponent.Factory
+ interface Factory{
+ UltimeConsegneClienteComponent create();
+ }
+
+ void inject(UltimeConsegneClienteFragment ultimeConsegneClienteFragment);
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java
index 084b8c01..3e209187 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java
@@ -7,38 +7,62 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
-import androidx.fragment.app.Fragment;
+import androidx.databinding.ObservableArrayList;
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import com.annimon.stream.Optional;
+import com.annimon.stream.Stream;
import java.util.ArrayList;
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.core.barcode_reader.BarcodeCallbackDTO;
+import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
+import it.integry.integrywmsnative.core.expansion.BaseFragment;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
+import it.integry.integrywmsnative.core.model.GtbAnag;
+import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
+import it.integry.integrywmsnative.core.settings.SettingsManager;
+import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
-import it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel.UltimeConsegneClienteViewModel;
+import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity;
+import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzato;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
-public class UltimeConsegneClienteFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
+public class UltimeConsegneClienteFragment extends BaseFragment implements UltimeConsegneClienteViewModel.Listener, ITitledFragment, IScrollableFragment, IFilterableFragment {
private final List mOnPreDestroyList = new ArrayList<>();
private ElevatedToolbar mToolbar;
- private UltimeConsegneClienteViewModel mViewModel;
+ private int barcodeScannerIstanceID = -1;
+
+ private final ObservableArrayList mDocumentiMutableData = new ObservableArrayList<>();
+
+ @Inject
+ UltimeConsegneClienteViewModel mViewModel;
+
+ private DialogUltimeConsegneFiltroAvanzato.DialogUltimeConsegneFiltroAvanzatoViewModel mAppliedFilterViewModel;
+
+ private FragmentMainUltimeConsegneClienteBinding mBindings;
public UltimeConsegneClienteFragment() {
// Required empty public constructor
}
public static UltimeConsegneClienteFragment newInstance() {
- UltimeConsegneClienteFragment fragment = new UltimeConsegneClienteFragment();
- Bundle args = new Bundle();
-
- fragment.setArguments(args);
- return fragment;
+ return new UltimeConsegneClienteFragment();
}
@@ -46,21 +70,158 @@ public class UltimeConsegneClienteFragment extends Fragment implements ITitledFr
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- FragmentMainUltimeConsegneClienteBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_main_ultime_consegne_cliente, container, false);
+ mBindings = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_main_ultime_consegne_cliente, container, false);
- mViewModel = new UltimeConsegneClienteViewModel(getActivity(), mBinding);
+ MainApplication.appComponent
+ .ultimeConsegneClienteComponent()
+ .create()
+ .inject(this);
- mBinding.setViewmodel(mViewModel);
+ mViewModel.setListener(this);
- mToolbar.setRecyclerView(mBinding.recyclerView);
+ mBindings.setLifecycleOwner(this);
+ mBindings.setView(this);
+ mBindings.setViewmodel(mViewModel);
+
+
+ this.initRecyclerView();
+// this.initBarcodeReader();
// Inflate the layout for this fragment
- return mBinding.getRoot();
+ return mBindings.getRoot();
}
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+
+ String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
+ mViewModel.init(codMdep);
+
+ this.mBindings.mainFab.hide();
+ this.mBindings.mainFab.setOnClickListener(v -> {
+ dispatchConsegne();
+ });
+
+ this.mViewModel.getDocuments().observe(this, this::refreshList);
+
+ openFilterDialog();
+ }
+
+
+ public void openFilterDialog() {
+ this.mViewModel.loadCodAnagClienti(gtbAnags -> {
+ DialogUltimeConsegneFiltroAvanzato.make(getActivity(), gtbAnags, mAppliedFilterViewModel, (filter) -> {
+ mAppliedFilterViewModel = filter;
+ refreshItems();
+ }).show();
+ });
+ }
+
+
+ private void initRecyclerView() {
+ UltimeConsegneMainListAdapter mAdapter =
+ new UltimeConsegneMainListAdapter(getActivity(), mDocumentiMutableData);
+ mAdapter.setOnSelectionChanged(this::onSingleSelectionChanged);
+ mAdapter.setEmptyView(mBindings.emptyView);
+
+ mBindings.recyclerView.setHasFixedSize(true);
+ mBindings.recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
+ mBindings.recyclerView.setAdapter(mAdapter);
+// mBindings.fastscroll.setRecyclerView(mBindings.recyclerView);
+
+
+ if(mToolbar != null)
+ mToolbar.setRecyclerView(mBindings.recyclerView);
+
+ }
+
+ private void initBarcodeReader() {
+ barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
+ .setOnScanSuccessfull(onScanSuccessful)
+ .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
+
+ BarcodeManager.enable();
+ }
+
+ private final RunnableArgs onScanSuccessful = data -> {
+ BarcodeManager.disable();
+
+ this.mViewModel.processBarcodeDTO(data, () -> {
+ BarcodeManager.enable();
+ });
+ };
+
+ private void refreshList(List documentList) {
+ this.mDocumentiMutableData.clear();
+ this.mDocumentiMutableData.addAll(sort(documentList));
+ }
+
+ private void refreshItems() {
+ this.openProgress();
+
+ String currentAnagFilter = mAppliedFilterViewModel != null ? mAppliedFilterViewModel.ragSoc.get() : null;
+ String currentCodAnagFilter = null;
+
+ Optional singleGtbAnag = Stream.of(this.mViewModel.getGtbAnagClienti().getValue())
+ .filter(x -> (x.getCodAnag() + " - " + x.getRagSoc()).equals(currentAnagFilter))
+ .findSingle();
+
+ if (singleGtbAnag.isPresent()) {
+ currentCodAnagFilter = singleGtbAnag.get().getCodAnag();
+ }
+
+ this.mViewModel.loadConsegneClienti(currentCodAnagFilter,
+ null,
+ -1,
+ 548
+ );
+
+ }
+
+ private List sort(List dataset) {
+ List sortedDataset = Stream.of(dataset)
+ .sortBy(DocumentoResoDTO::getRagSoc)
+ .toList();
+
+ return sortedDataset;
+ }
+
+
+ private void onSingleSelectionChanged(DocumentoResoDTO dto) {
+ List selectedOrders = getSelectedItems();
+
+ if (dto.isSelected()) {
+ Stream.of(selectedOrders)
+ .filter(x -> !x.getRagSoc().equalsIgnoreCase(dto.getRagSoc()))
+ .forEach(x -> x.setSelected(false));
+ }
+
+ if (selectedOrders != null && selectedOrders.size() > 0) {
+ mBindings.mainFab.show();
+ } else {
+ mBindings.mainFab.hide();
+ }
+ }
+
+
+ private List getSelectedItems() {
+ return Stream.of(this.mDocumentiMutableData)
+ .filter(DocumentoResoDTO::isSelected)
+ .toList();
+ }
+
+
+ private void dispatchConsegne() {
+ List selectedConsegne = getSelectedItems();
+
+ PickingResiActivity.startActivity(getActivity(), getActivity().getText(R.string.ultime_consegne_cliente_title).toString(), selectedConsegne, +1);
+ }
+
+
@Override
public void onDestroy() {
- for(Runnable onPreDestroy : mOnPreDestroyList) {
+ for (Runnable onPreDestroy : mOnPreDestroyList) {
onPreDestroy.run();
}
super.onDestroy();
@@ -78,11 +239,30 @@ public class UltimeConsegneClienteFragment extends Fragment implements ITitledFr
@Override
public void onFilterClick() {
- mViewModel.openFilterDialog();
+ openFilterDialog();
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
+
+ @Override
+ public void onLoadingStarted() {
+ BarcodeManager.disable();
+ this.openProgress();
+ }
+
+ @Override
+ public void onLoadingEnded() {
+ this.closeProgress();
+ BarcodeManager.enable();
+ }
+
+ @Override
+ public void onError(Exception ex) {
+ this.closeProgress();
+ UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress);
+ BarcodeManager.enable();
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteModule.java
new file mode 100644
index 00000000..2af8378d
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteModule.java
@@ -0,0 +1,29 @@
+package it.integry.integrywmsnative.gest.ultime_consegne_cliente;
+
+import javax.inject.Singleton;
+
+import dagger.Module;
+import dagger.Provides;
+import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
+import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
+
+@Module(subcomponents = UltimeConsegneClienteComponent.class)
+public class UltimeConsegneClienteModule {
+
+ @Singleton
+ @Provides
+ UltimeConsegneClienteRESTConsumer providesUltimeConsegneClienteRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
+ return new UltimeConsegneClienteRESTConsumer(systemRESTConsumer);
+ }
+
+ @Provides
+ UltimeConsegneClienteViewModel providesUltimeConsegneClienteViewModel(
+ UltimeConsegneClienteRESTConsumer ultimeConsegneClienteRESTConsumer,
+ BarcodeRESTConsumer barcodeRESTConsumer,
+ ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer) {
+ return new UltimeConsegneClienteViewModel(ultimeConsegneClienteRESTConsumer, barcodeRESTConsumer, colliMagazzinoRESTConsumer);
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteViewModel.java
new file mode 100644
index 00000000..7bb95f7d
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteViewModel.java
@@ -0,0 +1,181 @@
+package it.integry.integrywmsnative.gest.ultime_consegne_cliente;
+
+import androidx.lifecycle.MutableLiveData;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.core.exception.NoLUFoundException;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
+import it.integry.integrywmsnative.core.model.GtbAnag;
+import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
+import it.integry.integrywmsnative.core.utility.UtilityBarcode;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
+import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
+
+public class UltimeConsegneClienteViewModel {
+
+
+ private final MutableLiveData> mGtbAnagClienti = new MutableLiveData<>();
+ private final MutableLiveData> mDocuments = new MutableLiveData<>();
+
+ private final UltimeConsegneClienteRESTConsumer mUltimeConsegneClienteRESTConsumer;
+ private final BarcodeRESTConsumer mBarcodeRESTConsumer;
+ private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
+
+ private Listener mListener;
+
+ private String mCodMdep;
+
+ @Inject
+ public UltimeConsegneClienteViewModel(
+ UltimeConsegneClienteRESTConsumer ultimeConsegneClienteRESTConsumer,
+ BarcodeRESTConsumer barcodeRESTConsumer,
+ ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer) {
+ this.mUltimeConsegneClienteRESTConsumer = ultimeConsegneClienteRESTConsumer;
+ this.mBarcodeRESTConsumer = barcodeRESTConsumer;
+ this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
+ }
+
+
+ public void init(String codMdep) {
+ this.mCodMdep = codMdep;
+ }
+
+ public void loadCodAnagClienti(RunnableArgs> onComplete) {
+ this.sendOnLoadingStarted();
+
+ this.mUltimeConsegneClienteRESTConsumer.getAvailableCodAnagClienti(gtbAnags -> {
+ mGtbAnagClienti.postValue(gtbAnags);
+ this.sendOnLoadingEnded();
+
+ onComplete.run(gtbAnags);
+ }, this::sendError);
+ }
+
+
+ public void loadConsegneClienti(String codAnag, String codMart, int limitDocsForCli, int limitDays) {
+ this.sendOnLoadingStarted();
+
+ this.mUltimeConsegneClienteRESTConsumer.getUltimeConsegneClienti(mCodMdep, codAnag, codMart, limitDocsForCli, limitDays, documentList -> {
+ this.mDocuments.postValue(documentList);
+ this.sendOnLoadingEnded();
+ }, this::sendError);
+ }
+
+
+ public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+
+ this.sendOnLoadingStarted();
+
+ RunnableArgs> onBarcodeScanComplete = orderList -> {
+ onComplete.run();
+ this.sendOnLoadingEnded();
+ };
+
+ if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
+ this.executeEtichettaLU(barcodeScanDTO.getStringValue(), onBarcodeScanComplete);
+ } else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
+ this.executeEtichettaEan128(barcodeScanDTO, onBarcodeScanComplete);
+ } else {
+ onComplete.run();
+ }
+ }
+
+
+ private void executeEtichettaLU(String SSCC, RunnableArgs> onComplete) {
+ this.mColliMagazzinoRESTConsumer.getBySSCC(SSCC, true, false, mtbColt -> {
+
+ if(mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
+
+// if(mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) {
+// //GET BY COMMESSA COLLO
+// this.mOrdiniUscitaElencoRESTConsumer.getOrdiniFromCommessaCollo(mCurrentCodMdep, mtbColt, orderList -> {
+//
+// if(orderList != null && orderList.size() > 0) {
+// List numOrds = Stream.of(orderList)
+// .map(DtbOrdt::getNumOrd)
+// .toList();
+//
+// List filteredOrders = Stream.of(mOrderList.getValue())
+// .filter(x -> numOrds.contains(x.getNumOrd())).toList();
+//
+// onComplete.run(filteredOrders);
+// } else {
+// this.sendError(new NoOrderFoundException());
+// }
+//
+// }, this::sendError);
+//
+// } else {
+// this.sendError(new InvalidLUGestioneException(GestioneEnum.VENDITA));
+// }
+//
+ } else {
+ this.sendError(new NoLUFoundException());
+ }
+
+ }, this::sendError);
+ }
+
+ private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, RunnableArgs> onComplete) {
+ this.mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
+ String barcodeProd = null;
+
+ if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
+ if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
+ if (!UtilityString.isNullOrEmpty(ean128Model.Content))
+ barcodeProd = ean128Model.Content;
+
+
+ if (!UtilityString.isNullOrEmpty(barcodeProd)) {
+
+ if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
+ this.executeEtichettaLU(ean128Model.Sscc, onComplete);
+ } else {
+ this.sendError(new NoLUFoundException());
+ }
+ } else {
+ //EAN 128 non completo o comunque mancano i riferimenti al prodotto
+ this.sendError(new NoLUFoundException());
+ }
+ }, this::sendError);
+ }
+
+
+ public MutableLiveData> getGtbAnagClienti() {
+ return mGtbAnagClienti;
+ }
+
+ public MutableLiveData> getDocuments() {
+ return mDocuments;
+ }
+
+ public UltimeConsegneClienteViewModel setListener(Listener listener) {
+ this.mListener = listener;
+ return this;
+ }
+
+ private void sendOnLoadingStarted() {
+ if (this.mListener != null) mListener.onLoadingStarted();
+ }
+
+ private void sendOnLoadingEnded() {
+ if (this.mListener != null) mListener.onLoadingEnded();
+ }
+
+ private void sendError(Exception ex) {
+ if (this.mListener != null) mListener.onError(ex);
+ }
+
+ public interface Listener extends ILoadingListener {
+ void onError(Exception ex);
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneMainListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneMainListAdapter.java
similarity index 70%
rename from app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneMainListAdapter.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneMainListAdapter.java
index 8ea28c19..f3f68b3e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneMainListAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneMainListAdapter.java
@@ -1,44 +1,31 @@
-package it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel;
+package it.integry.integrywmsnative.gest.ultime_consegne_cliente;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import androidx.core.content.ContextCompat;
-import androidx.core.content.res.ResourcesCompat;
import androidx.databinding.DataBindingUtil;
+import androidx.databinding.ObservableArrayList;
import androidx.recyclerview.widget.RecyclerView;
-import com.annimon.stream.Stream;
-import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
-
-import java.util.ArrayList;
import java.util.Calendar;
-import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.expansion.view.ExtendedSectionedRecyclerView;
+import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListHeaderBinding;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListSingleItemBinding;
-import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
-import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
-public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter implements SectionTitleProvider {
+public class UltimeConsegneMainListAdapter extends ExtendedSectionedRecyclerView {
private Context mContext;
- private List mDataset;
- private ArrayList mSectionTitleItems;
-
private RunnableArgs mOnSelectionChanged;
- @Override
- public String getSectionTitle(int position) {
- return mSectionTitleItems.get(position);
- }
static class SubheaderHolder extends RecyclerView.ViewHolder {
@@ -65,12 +52,9 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
- public UltimeConsegneMainListAdapter(Context context, ArrayList dataset) {
- super();
+ public UltimeConsegneMainListAdapter(Context context, ObservableArrayList mutableDataSet) {
+ super(mutableDataSet);
this.mContext = context;
- this.mDataset = new ArrayList<>();
-
- updateItems(sort(dataset));
}
@@ -146,45 +130,6 @@ public class UltimeConsegneMainListAdapter extends SectionedRecyclerViewAdapter<
return false;
}
- @Override
- public int getItemSize() {
- return this.mDataset.size();
- }
-
-
-
- public void updateItems(List updatedDataset) {
- mDataset.clear();
- mDataset.addAll(sort(updatedDataset));
- notifyDataSetChanged();
- notifyDataChanged();
- }
-
-
- private List sort(List dataset) {
- this.mSectionTitleItems = new ArrayList<>();
-
- List sortedDataset = Stream.of(dataset)
- .sortBy(DocumentoResoDTO::getRagSoc)
- .toList();
-
-
- Stream.of(sortedDataset)
- .map(DocumentoResoDTO::getRagSoc)
- .distinct()
- .forEach(x -> {
- this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
-
- long count = Stream.of(dataset)
- .filter(y -> y.getRagSoc().equalsIgnoreCase(x))
- .count();
-
-
- for(int i = 0; i < count; i++) this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
- });
-
- return sortedDataset;
- }
public void setOnSelectionChanged(RunnableArgs mSelectionChanged) {
this.mOnSelectionChanged = mSelectionChanged;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java
index 9a17b389..2a59a397 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java
@@ -8,6 +8,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import javax.inject.Singleton;
+
import it.integry.integrywmsnative.core.model.GtbAnag;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
@@ -20,65 +22,61 @@ import it.integry.integrywmsnative.core.utility.UtilityQuery;
import it.integry.integrywmsnative.gest.picking_resi.rest.WithdrawableDtbDocr;
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
+@Singleton
public class UltimeConsegneClienteRESTConsumer {
- public static void getAvailableCodAnagClienti(RunnableArgs> onComplete, RunnableArgs onFailed) {
+ private final SystemRESTConsumer systemRESTConsumer;
+
+ public UltimeConsegneClienteRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
+ this.systemRESTConsumer = systemRESTConsumer;
+ }
+
+ public void getAvailableCodAnagClienti(RunnableArgs> onComplete, RunnableArgs onFailed) {
String sql = "SELECT DISTINCT gtb_anag.cod_anag, gtb_anag.rag_soc " +
"FROM gtb_anag " +
"INNER JOIN vtb_clie ON vtb_clie.cod_anag = gtb_anag.cod_anag " +
"WHERE flag_stato = 'A'";
- Type typeOfObjectsList = new TypeToken>() {}.getType();
- SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback>() {
- @Override
- public void onSuccess(ArrayList value) {
- if(onComplete != null) onComplete.run(value);
- }
-
- @Override
- public void onFailed(Exception ex) {
- if(onFailed != null) onFailed.run(ex);
- }
+ Type typeOfObjectsList = new TypeToken>() {
+ }.getType();
+ systemRESTConsumer.>processSql(sql, typeOfObjectsList, value -> {
+ if (onComplete != null) onComplete.run(value);
+ }, ex -> {
+ if (onFailed != null) onFailed.run(ex);
});
}
- public static void getUltimeConsegneClienti(String codMdep, String codAnag, String codMart, Integer limitConsegnePerCli, int limitDays, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ public void getUltimeConsegneClienti(String codMdep, String codAnag, String codMart, Integer limitConsegnePerCli, int limitDays, RunnableArgs> onComplete, RunnableArgs onFailed) {
String sql = "SELECT consegne.*, " +
" rag_soc," +
" dtb_doct.gestione " +
"FROM WMS_GetUltimeConsegneClienti(" +
- UtilityDB.valueToString(limitConsegnePerCli) + ", " +
- UtilityDB.valueToString(codAnag) + ", " +
- UtilityDB.valueToString(codMart) + ", " +
- UtilityDB.valueToString(codMdep) + ", " +
- UtilityDB.valueToString(limitDays) + ") consegne " +
+ UtilityDB.valueToString(limitConsegnePerCli >= 0 ? limitConsegnePerCli : null) + ", " +
+ UtilityDB.valueToString(codAnag) + ", " +
+ UtilityDB.valueToString(codMart) + ", " +
+ UtilityDB.valueToString(codMdep) + ", " +
+ UtilityDB.valueToString(limitDays) + ") consegne " +
"INNER JOIN dtb_doct ON consegne.num_doc = dtb_doct.num_doc AND consegne.data_doc = dtb_doct.data_doc AND consegne.cod_anag = dtb_doct.cod_anag AND consegne.cod_dtip = dtb_doct.cod_dtip AND consegne.ser_doc = dtb_doct.ser_doc " +
"LEFT OUTER JOIN gtb_anag ON consegne.cod_anag = gtb_anag.cod_anag " +
"ORDER BY rag_soc, " +
" counter_consegna ";
- Type typeOfObjectsList = new TypeToken>() {}.getType();
- SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback>() {
- @Override
- public void onSuccess(ArrayList value) {
- if(onComplete != null) onComplete.run(value);
- }
-
- @Override
- public void onFailed(Exception ex) {
- if(onFailed != null) onFailed.run(ex);
- }
+ Type typeOfObjectsList = new TypeToken>() {
+ }.getType();
+ systemRESTConsumer.>processSql(sql, typeOfObjectsList, value -> {
+ if (onComplete != null) onComplete.run(value);
+ }, ex -> {
+ if (onFailed != null) onFailed.run(ex);
});
}
-
public static void loadDocRowFromConsegna(List consegne, RunnableArgs> onComplete, RunnableArgs onFailed) {
List> filterCond = new ArrayList<>();
- for(int i = 0; i < consegne.size(); i++) {
+ for (int i = 0; i < consegne.size(); i++) {
HashMap filter = new HashMap<>();
filter.put("dtb_docr.data_doc", consegne.get(i).getDataDocD());
@@ -172,17 +170,18 @@ public class UltimeConsegneClienteRESTConsumer {
" (ctb_grup.sezione <> 1 OR ctb_grup.sezione IS NULL) AND " +
" dtb_docr.[qta_doc] - ISNULL(mtb_colr.qta_col, 0) > 0 AND" +
" ( " +
- UtilityQuery.concatFieldListInWhereCond(filterCond) +
+ UtilityQuery.concatFieldListInWhereCond(filterCond) +
" ) " +
"ORDER BY cod_mart";
- Type typeOfObjectsList = new TypeToken>() {}.getType();
+ Type typeOfObjectsList = new TypeToken>() {
+ }.getType();
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback>() {
@Override
public void onSuccess(ArrayList values) {
- if(values != null && values.size() > 0){
+ if (values != null && values.size() > 0) {
List codMarts = Stream.of(values)
.map(DtbDocr::getCodMart)
.withoutNulls()
@@ -191,7 +190,7 @@ public class UltimeConsegneClienteRESTConsumer {
ArticoloRESTConsumer.getByCodMartStatic(codMarts, arts -> {
- if(arts != null && arts.size() > 0) {
+ if (arts != null && arts.size() > 0) {
for (DtbDocr value : values) {
MtbAart foundMtbAart = null;
@@ -199,7 +198,7 @@ public class UltimeConsegneClienteRESTConsumer {
List mtbAartStream = Stream.of(arts)
.filter(x -> x.getCodMart().equalsIgnoreCase(value.getCodMart())).toList();
- if(mtbAartStream != null && mtbAartStream.size() > 0){
+ if (mtbAartStream != null && mtbAartStream.size() > 0) {
foundMtbAart = mtbAartStream.get(0);
}
@@ -207,19 +206,19 @@ public class UltimeConsegneClienteRESTConsumer {
}
- if(onComplete != null) onComplete.run(values);
+ if (onComplete != null) onComplete.run(values);
}
}, onFailed);
} else {
- if(onComplete != null) onComplete.run(values);
+ if (onComplete != null) onComplete.run(values);
}
}
@Override
public void onFailed(Exception ex) {
- if(onFailed != null) onFailed.run(ex);
+ if (onFailed != null) onFailed.run(ex);
}
});
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java
deleted file mode 100644
index c264dd79..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java
+++ /dev/null
@@ -1,146 +0,0 @@
-package it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel;
-
-import android.app.Dialog;
-import android.content.Context;
-import android.view.View;
-
-import androidx.recyclerview.widget.LinearLayoutManager;
-
-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.core.model.GtbAnag;
-import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
-import it.integry.integrywmsnative.core.settings.SettingsManager;
-import it.integry.integrywmsnative.core.utility.UtilityExceptions;
-import it.integry.integrywmsnative.core.utility.UtilityProgress;
-import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
-import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity;
-import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzato;
-import it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest.UltimeConsegneClienteRESTConsumer;
-
-public class UltimeConsegneClienteViewModel {
-
- private Context mContext;
- private FragmentMainUltimeConsegneClienteBinding mBinding;
-
- private UltimeConsegneMainListAdapter mAdapter;
- private List mItems;
- private List mRenderedItems = new ArrayList<>();
-
- private List mAvailableGtbAnags = null;
-
- private DialogUltimeConsegneFiltroAvanzato.DialogUltimeConsegneFiltroAvanzatoViewModel mAppliedFilterViewModel;
-
- public UltimeConsegneClienteViewModel(Context context, FragmentMainUltimeConsegneClienteBinding binding) {
- this.mContext = context;
- this.mBinding = binding;
-
- this.mBinding.mainFab.hide();
- this.mBinding.mainFab.setOnClickListener(v -> {
- dispatchConsegne();
- });
-
- openFilterDialog();
- }
-
- public void openFilterDialog() {
- Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
-
- UltimeConsegneClienteRESTConsumer.getAvailableCodAnagClienti(gtbAnags -> {
- mAvailableGtbAnags = gtbAnags;
- progressDialog.dismiss();
-
- DialogUltimeConsegneFiltroAvanzato.make(mContext, gtbAnags, mAppliedFilterViewModel, (filter) -> {
- mAppliedFilterViewModel = filter;
- refreshItems();
- }).show();
- }, ex -> {
- UtilityExceptions.defaultException(mContext, ex, progressDialog);
- });
- }
-
- private void initDataAdapter(ArrayList dataset) {
- mAdapter = new UltimeConsegneMainListAdapter(mContext, dataset);
- mAdapter.setOnSelectionChanged(this::onSingleSelectionChanged);
-
- mBinding.recyclerView.setHasFixedSize(true);
- mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
- mBinding.recyclerView.setAdapter(mAdapter);
- mBinding.fastscroll.setRecyclerView(mBinding.recyclerView);
-
- }
-
- private void refreshItems(){
-
- Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
-
- String currentAnagFilter = mAppliedFilterViewModel != null ? mAppliedFilterViewModel.ragSoc.get() : null;
- String currentCodAnagFilter = null;
-
- Optional singleGtbAnag = Stream.of(mAvailableGtbAnags)
- .filter(x -> (x.getCodAnag() + " - " + x.getRagSoc()).equals(currentAnagFilter))
- .findSingle();
-
- if(singleGtbAnag.isPresent()) {
- currentCodAnagFilter = singleGtbAnag.get().getCodAnag();
- }
-
- UltimeConsegneClienteRESTConsumer.getUltimeConsegneClienti(
- SettingsManager.i().getUserSession().getDepo().getCodMdep(),
- currentCodAnagFilter,
- null,
- null,
- 548,
- consegne -> {
- this.mItems = consegne;
-
- this.initDataAdapter(consegne);
- mBinding.emptyView.setVisibility((this.mItems != null && this.mItems.size() > 0) ? View.GONE : View.VISIBLE);
-
- mRenderedItems.clear();
- if(this.mItems != null) mRenderedItems.addAll(this.mItems);
- mAdapter.updateItems(mRenderedItems);
-
- progressDialog.dismiss();
- }, ex -> {
- UtilityExceptions.defaultException(mContext, ex, progressDialog);
- });
- }
-
- private void onSingleSelectionChanged(DocumentoResoDTO dto) {
- List selectedOrders = getSelectedItems();
-
- if(dto.isSelected()) {
- Stream.of(selectedOrders)
- .filter(x -> !x.getRagSoc().equalsIgnoreCase(dto.getRagSoc()))
- .forEach(x -> x.setSelected(false));
- }
-
- if(selectedOrders != null && selectedOrders.size() > 0) {
- mBinding.mainFab.show();
- }
- else {
- mBinding.mainFab.hide();
- }
- }
-
- private List getSelectedItems() {
- return Stream.of(this.mItems)
- .filter(DocumentoResoDTO::isSelected)
- .toList();
- }
-
-
- private void dispatchConsegne() {
- List selectedConsegne = getSelectedItems();
-
- PickingResiActivity.startActivity(mContext, mContext.getText(R.string.ultime_consegne_cliente_title).toString(), selectedConsegne, +1);
- }
-
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreComponent.java
new file mode 100644
index 00000000..e0211f75
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreComponent.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface UltimiArriviFornitoreComponent {
+
+ @Subcomponent.Factory
+ interface Factory{
+ UltimiArriviFornitoreComponent create();
+ }
+
+ void inject(UltimiArriviFornitoreFragment ultimiArriviFornitoreFragment);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java
index a5716dd9..6b008c8f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java
@@ -7,41 +7,70 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
-import androidx.fragment.app.Fragment;
+import androidx.databinding.ObservableArrayList;
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import com.annimon.stream.Optional;
+import com.annimon.stream.Stream;
import java.util.ArrayList;
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.core.barcode_reader.BarcodeCallbackDTO;
+import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
+import it.integry.integrywmsnative.core.expansion.BaseFragment;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
+import it.integry.integrywmsnative.core.model.GtbAnag;
+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.rest.model.DocumentoResoDTO;
+import it.integry.integrywmsnative.core.settings.SettingsManager;
+import it.integry.integrywmsnative.core.utility.UtilityExceptions;
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.dialog.DialogUltimiArriviFornitoreFiltroAvanzato;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
+import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
/**
- * A simple {@link Fragment} subclass.
+ * A simple {@link BaseFragment} subclass.
*/
-public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
+public class UltimiArriviFornitoreFragment extends BaseFragment implements ITitledFragment, IScrollableFragment, IFilterableFragment, UltimiArriviFornitoreViewModel.Listener {
private final List mOnPreDestroyList = new ArrayList<>();
private ElevatedToolbar mToolbar;
- private UltimiArriviFornitoreViewModel mViewModel;
+ private int barcodeScannerIstanceID = -1;
+
+ private final ObservableArrayList mDocumentiMutableData = new ObservableArrayList<>();
+
+ @Inject
+ UltimiArriviFornitoreViewModel mViewModel;
+
+ private FragmentUltimiArriviFornitoreBinding mBindings;
+ private DialogUltimiArriviFornitoreFiltroAvanzato.DialogUltimiArriviFiltroAvanzatoViewModel mAppliedFilterViewModel;
public UltimiArriviFornitoreFragment() {
// Required empty public constructor
}
public static UltimiArriviFornitoreFragment newInstance() {
- UltimiArriviFornitoreFragment fragment = new UltimiArriviFornitoreFragment();
- Bundle args = new Bundle();
-
- fragment.setArguments(args);
- return fragment;
+ return new UltimiArriviFornitoreFragment();
}
@@ -49,21 +78,155 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
- FragmentUltimiArriviFornitoreBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_ultimi_arrivi_fornitore, container, false);
+ mBindings = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_ultimi_arrivi_fornitore, container, false);
- mViewModel = new UltimiArriviFornitoreViewModel(getActivity(), mBinding);
+ MainApplication.appComponent
+ .ultimiArriviFornitoreComponent()
+ .create()
+ .inject(this);
- mBinding.setViewmodel(mViewModel);
+ mViewModel.setListener(this);
- mToolbar.setRecyclerView(mBinding.recyclerView);
+ mBindings.setLifecycleOwner(this);
+ mBindings.setView(this);
+ mBindings.setViewmodel(mViewModel);
+
+ this.initRecyclerView();
+ this.initBarcodeReader();
// Inflate the layout for this fragment
- return mBinding.getRoot();
+ return mBindings.getRoot();
}
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+
+ String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
+ mViewModel.init(codMdep);
+
+ this.mBindings.mainFab.hide();
+ this.mBindings.mainFab.setOnClickListener(v -> {
+ dispatchConsegne();
+ });
+
+ this.mViewModel.getDocuments().observe(this.getViewLifecycleOwner(), this::refreshList);
+
+ openFilterDialog();
+ }
+
+
+ public void openFilterDialog() {
+ this.mViewModel.loadCodAnagFornitori(gtbAnags -> {
+ DialogUltimiArriviFornitoreFiltroAvanzato.make(getActivity(), gtbAnags, mAppliedFilterViewModel, (filter) -> {
+ mAppliedFilterViewModel = filter;
+ filterItems(null);
+ }).show();
+ });
+ }
+
+
+ private void initRecyclerView() {
+ UltimiArriviFornitoreListAdapter mAdapter =
+ new UltimiArriviFornitoreListAdapter(getActivity(), mDocumentiMutableData);
+ mAdapter.setOnSelectionChanged(this::onSingleSelectionChanged);
+ mAdapter.setEmptyView(mBindings.emptyView);
+
+ mBindings.recyclerView.setHasFixedSize(true);
+ mBindings.recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
+ mBindings.recyclerView.setAdapter(mAdapter);
+// mBindings.fastscroll.setRecyclerView(mBindings.recyclerView);
+
+ if (mToolbar != null)
+ mToolbar.setRecyclerView(mBindings.recyclerView);
+
+ }
+
+ private void initBarcodeReader() {
+ barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
+ .setOnScanSuccessfull(onScanSuccessful)
+ .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
+
+ BarcodeManager.enable();
+ }
+
+ private final RunnableArgs onScanSuccessful = data -> {
+ BarcodeManager.disable();
+
+ this.mViewModel.processBarcodeDTO(data, () -> {
+ BarcodeManager.enable();
+ });
+ };
+
+ private void refreshList(List documentList) {
+ this.mDocumentiMutableData.clear();
+ this.mDocumentiMutableData.addAll(sort(documentList));
+ }
+
+ private void filterItems(List filteredMtbAarts) {
+ this.openProgress();
+
+ String currentAnagFilter = mAppliedFilterViewModel != null ? mAppliedFilterViewModel.ragSoc.get() : null;
+ String currentCodAnagFilter = null;
+
+ Optional singleGtbAnag = Stream.of(mViewModel.getGtbAnagClienti().getValue())
+ .filter(x -> (x.getCodAnag() + " - " + x.getRagSoc()).equals(currentAnagFilter))
+ .findSingle();
+
+ if (singleGtbAnag.isPresent()) {
+ currentCodAnagFilter = singleGtbAnag.get().getCodAnag();
+ }
+
+ this.mViewModel.loadArriviFornitori(currentCodAnagFilter,
+ filteredMtbAarts,
+ -1,
+ 365);
+ }
+
+ private List sort(List dataset) {
+ List items = Stream.of(dataset)
+ .sortBy(DocumentoResoDTO::getRagSoc)
+ .toList();
+ return items;
+
+ }
+
+ private void onSingleSelectionChanged(DocumentoResoDTO dto) {
+ List selectedOrders = getSelectedItems();
+
+ if(dto.isSelected()) {
+ Stream.of(selectedOrders)
+ .filter(x -> !x.getRagSoc().equalsIgnoreCase(dto.getRagSoc()))
+ .forEach(x -> x.setSelected(false));
+ }
+
+ if(selectedOrders != null && selectedOrders.size() > 0) {
+ mBindings.mainFab.show();
+ }
+ else {
+ mBindings.mainFab.hide();
+ }
+ }
+
+
+ private List getSelectedItems() {
+ return Stream.of(this.mDocumentiMutableData)
+ .filter(DocumentoResoDTO::isSelected)
+ .toList();
+ }
+
+ private void dispatchConsegne() {
+ List selectedConsegne = getSelectedItems();
+
+ PickingResiActivity.startActivity(getActivity(), getActivity().getText(R.string.ultime_arrivi_fornitore_title).toString(), selectedConsegne, -1);
+ }
+
+
@Override
public void onDestroy() {
- for(Runnable onPreDestroy : mOnPreDestroyList) {
+ BarcodeManager.removeCallback(barcodeScannerIstanceID);
+
+ for (Runnable onPreDestroy : mOnPreDestroyList) {
onPreDestroy.run();
}
super.onDestroy();
@@ -80,12 +243,9 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
}
-
-
-
@Override
public void onFilterClick() {
- mViewModel.openFilterDialog();
+ openFilterDialog();
}
@@ -93,4 +253,40 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
+
+ @Override
+ public void onLoadingStarted() {
+ BarcodeManager.disable();
+ this.openProgress();
+ }
+
+ @Override
+ public void onLoadingEnded() {
+ this.closeProgress();
+ BarcodeManager.enable();
+ }
+
+ @Override
+ public void onError(Exception ex) {
+ this.closeProgress();
+ UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress);
+ BarcodeManager.enable();
+ }
+
+ @Override
+ public void onMtbColtScanned(MtbColt scannedMtbColt) {
+
+ DialogChooseArtsFromListaArts
+ .make(getActivity(), scannedMtbColt.getMtbColr(), items -> {
+
+ List mtbAarts = Stream.of(items)
+ .map(MtbColr::getMtbAart)
+ .toList();
+
+ filterItems(mtbAarts);
+
+ }, null)
+ .show();
+
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreModule.java
new file mode 100644
index 00000000..fcb4e8fa
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreModule.java
@@ -0,0 +1,30 @@
+package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore;
+
+import javax.inject.Singleton;
+
+import dagger.Module;
+import dagger.Provides;
+import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
+import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core.UltimiArriviFornitoreViewModel;
+import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.rest.UltimiArriviFornitoreRESTConsumer;
+
+@Module(subcomponents = UltimiArriviFornitoreComponent.class)
+public class UltimiArriviFornitoreModule {
+
+ @Singleton
+ @Provides
+ UltimiArriviFornitoreRESTConsumer providesUltimiArriviFornitoreRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
+ return new UltimiArriviFornitoreRESTConsumer(systemRESTConsumer);
+ }
+
+ @Provides
+ UltimiArriviFornitoreViewModel providesUltimiArriviFornitoreViewModel(
+ UltimiArriviFornitoreRESTConsumer ultimiArriviFornitoreRESTConsumer,
+ BarcodeRESTConsumer barcodeRESTConsumer,
+ ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer) {
+ return new UltimiArriviFornitoreViewModel(ultimiArriviFornitoreRESTConsumer, barcodeRESTConsumer, colliMagazzinoRESTConsumer);
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreListAdapter.java
index a34152fe..8249b12e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreListAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreListAdapter.java
@@ -6,38 +6,29 @@ import android.view.View;
import android.view.ViewGroup;
import androidx.databinding.DataBindingUtil;
+import androidx.databinding.ObservableArrayList;
import androidx.recyclerview.widget.RecyclerView;
-import com.annimon.stream.Stream;
-import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
-
-import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.expansion.view.ExtendedSectionedRecyclerView;
+import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreListHeaderBinding;
import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreListSingleItemBinding;
-import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
-public class UltimiArriviFornitoreListAdapter extends SectionedRecyclerViewAdapter implements SectionTitleProvider {
+public class UltimiArriviFornitoreListAdapter extends ExtendedSectionedRecyclerView {
private Context mContext;
- private List mDataset;
- private ArrayList mSectionTitleItems;
-
private RunnableArgs mOnSelectionChanged;
- @Override
- public String getSectionTitle(int position) {
- return mSectionTitleItems.get(position);
- }
-
static class SubheaderHolder extends RecyclerView.ViewHolder {
@@ -64,13 +55,9 @@ public class UltimiArriviFornitoreListAdapter extends SectionedRecyclerViewAdapt
- public UltimiArriviFornitoreListAdapter(Context context, ArrayList dataset) {
- super();
+ public UltimiArriviFornitoreListAdapter(Context context, ObservableArrayList mutableDataSet) {
+ super(mutableDataSet);
this.mContext = context;
- this.mDataset = new ArrayList<>();
- this.mSectionTitleItems = new ArrayList<>();
-
- mDataset.addAll(sort(dataset));
}
@@ -152,7 +139,7 @@ public class UltimiArriviFornitoreListAdapter extends SectionedRecyclerViewAdapt
public void updateItems(List updatedDataset) {
mDataset.clear();
- mDataset.addAll(sort(updatedDataset));
+ mDataset.addAll(updatedDataset);
notifyDataSetChanged();
notifyDataChanged();
}
@@ -163,28 +150,5 @@ public class UltimiArriviFornitoreListAdapter extends SectionedRecyclerViewAdapt
}
- private List sort(List dataset) {
- List items = Stream.of(dataset)
- .sortBy(DocumentoResoDTO::getRagSoc)
- .toList();
-
-
- Stream.of(items)
- .map(DocumentoResoDTO::getRagSoc)
- .distinct()
- .forEach(x -> {
- this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
-
- long count = Stream.of(dataset)
- .filter(y -> y.getRagSoc().equalsIgnoreCase(x))
- .count();
-
-
- for(int i = 0; i < count; i++) this.mSectionTitleItems.add(String.valueOf(x.charAt(0)));
- });
- return items;
-
- }
-
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreViewModel.java
index ad4787de..7b17b4eb 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/core/UltimiArriviFornitoreViewModel.java
@@ -1,154 +1,192 @@
package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.core;
-import android.app.Dialog;
-import android.content.Context;
-import android.view.View;
+import androidx.lifecycle.MutableLiveData;
-import androidx.recyclerview.widget.LinearLayoutManager;
-
-import com.annimon.stream.Optional;
-import com.annimon.stream.Stream;
-
-import java.util.ArrayList;
import java.util.List;
-import it.integry.integrywmsnative.R;
+import javax.inject.Inject;
+
+import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.core.exception.InvalidLUException;
+import it.integry.integrywmsnative.core.exception.NoLUFoundException;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.model.GtbAnag;
+import it.integry.integrywmsnative.core.model.MtbAart;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
-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.gest.picking_resi.PickingResiActivity;
-import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.dialog.DialogUltimiArriviFornitoreFiltroAvanzato;
+import it.integry.integrywmsnative.core.utility.UtilityBarcode;
+import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.rest.UltimiArriviFornitoreRESTConsumer;
public class UltimiArriviFornitoreViewModel {
- private Context mContext;
- private FragmentUltimiArriviFornitoreBinding mBinding;
+ private final MutableLiveData> mGtbAnagClienti = new MutableLiveData<>();
+ private final MutableLiveData> mDocuments = new MutableLiveData<>();
- private List mItems;
- private List mRenderedItems = new ArrayList<>();
+ private final UltimiArriviFornitoreRESTConsumer mUltimiArriviFornitoreRESTConsumer;
+ private final BarcodeRESTConsumer mBarcodeRESTConsumer;
+ private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
- private List mAvailableGtbAnags = null;
+ private Listener mListener;
- private UltimiArriviFornitoreListAdapter mAdapter;
+ private String mCodMdep;
- private DialogUltimiArriviFornitoreFiltroAvanzato.DialogUltimiArriviFiltroAvanzatoViewModel mAppliedFilterViewModel;
-
- public UltimiArriviFornitoreViewModel(Context context, FragmentUltimiArriviFornitoreBinding binding) {
- this.mContext = context;
- this.mBinding = binding;
-
- this.mBinding.mainFab.hide();
- this.mBinding.mainFab.setOnClickListener(v -> {
- dispatchConsegne();
- });
-
- openFilterDialog();
+ @Inject
+ public UltimiArriviFornitoreViewModel(
+ UltimiArriviFornitoreRESTConsumer ultimiArriviFornitoreRESTConsumer,
+ BarcodeRESTConsumer barcodeRESTConsumer,
+ ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer) {
+ this.mUltimiArriviFornitoreRESTConsumer = ultimiArriviFornitoreRESTConsumer;
+ this.mBarcodeRESTConsumer = barcodeRESTConsumer;
+ this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
}
-
- private void initDataAdapter(ArrayList dataset) {
- mAdapter = new UltimiArriviFornitoreListAdapter(mContext, dataset);
- mAdapter.setOnSelectionChanged(this::onSingleSelectionChanged);
-
- mBinding.recyclerView.setHasFixedSize(true);
- mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
- mBinding.recyclerView.setAdapter(mAdapter);
- mBinding.fastscroll.setRecyclerView(mBinding.recyclerView);
-
+ public void init(String codMdep) {
+ this.mCodMdep = codMdep;
}
- public void openFilterDialog() {
- Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
+ public void loadCodAnagFornitori(RunnableArgs> onComplete) {
+ this.sendOnLoadingStarted();
- UltimiArriviFornitoreRESTConsumer.getAvailableCodAnagFornitori(gtbAnags -> {
- mAvailableGtbAnags = gtbAnags;
- progressDialog.dismiss();
+ this.mUltimiArriviFornitoreRESTConsumer.getAvailableCodAnagFornitori(gtbAnags -> {
+ mGtbAnagClienti.postValue(gtbAnags);
+ this.sendOnLoadingEnded();
- DialogUltimiArriviFornitoreFiltroAvanzato.make(mContext, mAvailableGtbAnags, mAppliedFilterViewModel, (filter) -> {
- mAppliedFilterViewModel = filter;
- refreshItems();
- }).show();
- }, ex -> {
- UtilityExceptions.defaultException(mContext, ex, progressDialog);
- });
+ onComplete.run(gtbAnags);
+ }, this::sendError);
+ }
+
+ public void loadArriviFornitori(String codAnag, List mtbAarts, int limitDocsForCli, int limitDays) {
+ this.sendOnLoadingStarted();
+
+ this.mUltimiArriviFornitoreRESTConsumer.getUltimeConsegneFornitori(mCodMdep, codAnag, mtbAarts, limitDocsForCli, limitDays, documentList -> {
+ this.mDocuments.postValue(documentList);
+ this.sendOnLoadingEnded();
+ }, this::sendError);
}
- private void dispatchConsegne() {
- List selectedConsegne = getSelectedItems();
+ public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
- PickingResiActivity.startActivity(mContext, mContext.getText(R.string.ultime_arrivi_fornitore_title).toString(), selectedConsegne, -1);
- }
+ this.sendOnLoadingStarted();
- private List getSelectedItems() {
- return Stream.of(this.mItems)
- .filter(DocumentoResoDTO::isSelected)
- .toList();
- }
+ Runnable onBarcodeScanComplete = () -> {
+ onComplete.run();
+ this.sendOnLoadingEnded();
+ };
-
- private void refreshItems(){
-
- Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
-
- String currentAnagFilter = mAppliedFilterViewModel != null ? mAppliedFilterViewModel.ragSoc.get() : null;
- String currentCodAnagFilter = null;
-
- Optional singleGtbAnag = Stream.of(mAvailableGtbAnags)
- .filter(x -> (x.getCodAnag() + " - " + x.getRagSoc()).equals(currentAnagFilter))
- .findSingle();
-
- if(singleGtbAnag.isPresent()) {
- currentCodAnagFilter = singleGtbAnag.get().getCodAnag();
+ if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
+ this.executeEtichettaLU(barcodeScanDTO.getStringValue(), onBarcodeScanComplete);
+ } else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
+ this.executeEtichettaEan128(barcodeScanDTO, onBarcodeScanComplete);
+ } else {
+ onComplete.run();
}
-
-
- UltimiArriviFornitoreRESTConsumer.getUltimeConsegneFornitori(
- SettingsManager.i().getUserSession().getDepo().getCodMdep(),
- currentCodAnagFilter,
- null,
- null,
- 365,
- consegne -> {
- this.mItems = consegne;
-
- this.initDataAdapter(consegne);
-
- mBinding.emptyView.setVisibility((this.mItems != null && this.mItems.size() > 0) ? View.GONE : View.VISIBLE);
-
- mRenderedItems.clear();
- if(this.mItems != null) mRenderedItems.addAll(this.mItems);
- mAdapter.updateItems(mRenderedItems);
-
- progressDialog.dismiss();
- }, ex -> {
- UtilityExceptions.defaultException(mContext, ex, progressDialog);
- });
-
-
}
- private void onSingleSelectionChanged(DocumentoResoDTO dto) {
- List selectedOrders = getSelectedItems();
+ private void executeEtichettaLU(String SSCC, Runnable onComplete) {
+ this.mColliMagazzinoRESTConsumer.getBySSCC(SSCC, true, false, mtbColt -> {
- if(dto.isSelected()) {
- Stream.of(selectedOrders)
- .filter(x -> !x.getRagSoc().equalsIgnoreCase(dto.getRagSoc()))
- .forEach(x -> x.setSelected(false));
- }
+ if(mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
+ if(mtbColt.getSegno() > 0) {
- if(selectedOrders != null && selectedOrders.size() > 0) {
- mBinding.mainFab.show();
- }
- else {
- mBinding.mainFab.hide();
- }
+ this.sendOnMtbColtScanned(mtbColt);
+
+// this.mOrdiniUscitaElencoRESTConsumer.getOrdiniFromCommessaCollo(mCurrentCodMdep, mtbColt, orderList -> {
+//
+// if(orderList != null && orderList.size() > 0) {
+// List numOrds = Stream.of(orderList)
+// .map(DtbOrdt::getNumOrd)
+// .toList();
+//
+// List filteredOrders = Stream.of(mOrderList.getValue())
+// .filter(x -> numOrds.contains(x.getNumOrd())).toList();
+//
+// onComplete.run(filteredOrders);
+// } else {
+// this.sendError(new NoOrderFoundException());
+// }
+//
+// }, this::sendError);
+ } else {
+ this.sendError(new InvalidLUException());
+ }
+ } else {
+ this.sendError(new NoLUFoundException());
+ }
+
+ }, this::sendError);
+ }
+
+ private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+ this.mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
+ String barcodeProd = null;
+
+ if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
+ if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
+ if (!UtilityString.isNullOrEmpty(ean128Model.Content))
+ barcodeProd = ean128Model.Content;
+
+
+ if (!UtilityString.isNullOrEmpty(barcodeProd)) {
+
+ if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
+ this.executeEtichettaLU(ean128Model.Sscc, onComplete);
+ } else {
+ this.sendError(new NoLUFoundException());
+ }
+ } else {
+ //EAN 128 non completo o comunque mancano i riferimenti al prodotto
+ this.sendError(new NoLUFoundException());
+ }
+ }, this::sendError);
+ }
+
+
+
+
+
+
+
+
+ public MutableLiveData> getGtbAnagClienti() {
+ return mGtbAnagClienti;
+ }
+
+ public MutableLiveData> getDocuments() {
+ return mDocuments;
+ }
+
+ public UltimiArriviFornitoreViewModel setListener(UltimiArriviFornitoreViewModel.Listener listener) {
+ this.mListener = listener;
+ return this;
+ }
+
+ private void sendOnLoadingStarted() {
+ if (this.mListener != null) mListener.onLoadingStarted();
+ }
+
+ private void sendOnLoadingEnded() {
+ if (this.mListener != null) mListener.onLoadingEnded();
+ }
+
+ private void sendError(Exception ex) {
+ if (this.mListener != null) mListener.onError(ex);
+ }
+
+ private void sendOnMtbColtScanned(MtbColt scannedMtbColt) {
+ if (this.mListener != null) mListener.onMtbColtScanned(scannedMtbColt);
+ }
+
+ public interface Listener extends ILoadingListener {
+ void onError(Exception ex);
+
+ void onMtbColtScanned(MtbColt scannedMtbColt);
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/rest/UltimiArriviFornitoreRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/rest/UltimiArriviFornitoreRESTConsumer.java
index 89bbaeeb..d53fd61c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/rest/UltimiArriviFornitoreRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/rest/UltimiArriviFornitoreRESTConsumer.java
@@ -1,49 +1,62 @@
package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.rest;
+import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken;
+import org.apache.commons.lang3.StringUtils;
+
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
-import it.integry.integrywmsnative.core.model.GtbAnag;
-import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
-import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-import it.integry.integrywmsnative.core.utility.UtilityDB;
-import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
+import javax.inject.Singleton;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.GtbAnag;
+import it.integry.integrywmsnative.core.model.MtbAart;
+import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
+import it.integry.integrywmsnative.core.utility.UtilityDB;
+
+@Singleton
public class UltimiArriviFornitoreRESTConsumer {
- public static void getAvailableCodAnagFornitori(RunnableArgs> onComplete, RunnableArgs onFailed) {
+ private final SystemRESTConsumer systemRESTConsumer;
+
+ public UltimiArriviFornitoreRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
+ this.systemRESTConsumer = systemRESTConsumer;
+ }
+
+ public void getAvailableCodAnagFornitori(RunnableArgs> onComplete, RunnableArgs onFailed) {
String sql = "SELECT DISTINCT gtb_anag.cod_anag, gtb_anag.rag_soc " +
"FROM gtb_anag " +
"INNER JOIN atb_forn ON atb_forn.cod_anag = gtb_anag.cod_anag " +
"WHERE flag_stato = 'A'";
- Type typeOfObjectsList = new TypeToken>() {}.getType();
- SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback>() {
- @Override
- public void onSuccess(ArrayList value) {
- if(onComplete != null) onComplete.run(value);
- }
-
- @Override
- public void onFailed(Exception ex) {
- if(onFailed != null) onFailed.run(ex);
- }
+ Type typeOfObjectsList = new TypeToken>() {
+ }.getType();
+ this.systemRESTConsumer.>processSql(sql, typeOfObjectsList, value -> {
+ if (onComplete != null) onComplete.run(value);
+ }, ex -> {
+ if (onFailed != null) onFailed.run(ex);
});
}
- public static void getUltimeConsegneFornitori(String codMdep, String codAnag, String codMart, Integer limitConsegnePerCli, int limitDays, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ public void getUltimeConsegneFornitori(String codMdep, String codAnag, List mtbAarts, int limitConsegnePerCli, int limitDays, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ String codMarts = null;
+ if (mtbAarts != null && mtbAarts.size() > 0) {
+ codMarts = StringUtils.join(Stream.of(mtbAarts)
+ .map(MtbAart::getCodMart)
+ .toList(), "|");
+ }
String sql = "SELECT consegne.*, " +
" rag_soc " +
"FROM WMS_GetUltimeConsegneFornitori(" +
- UtilityDB.valueToString(limitConsegnePerCli) + ", " +
+ UtilityDB.valueToString(limitConsegnePerCli >= 0 ? limitConsegnePerCli : null) + ", " +
UtilityDB.valueToString(codAnag) + ", " +
- UtilityDB.valueToString(codMart) + ", " +
+ UtilityDB.valueToString(codMarts) + ", " +
UtilityDB.valueToString(codMdep) + ", " +
UtilityDB.valueToString(limitDays) + ") consegne " +
"LEFT OUTER JOIN gtb_anag ON consegne.cod_anag = gtb_anag.cod_anag " +
@@ -51,17 +64,12 @@ public class UltimiArriviFornitoreRESTConsumer {
" counter_consegna ";
- Type typeOfObjectsList = new TypeToken>() {}.getType();
- SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback>() {
- @Override
- public void onSuccess(ArrayList value) {
- if(onComplete != null) onComplete.run(value);
- }
-
- @Override
- public void onFailed(Exception ex) {
- if(onFailed != null) onFailed.run(ex);
- }
+ Type typeOfObjectsList = new TypeToken>() {
+ }.getType();
+ this.systemRESTConsumer.>processSql(sql, typeOfObjectsList, value -> {
+ if (onComplete != null) onComplete.run(value);
+ }, ex -> {
+ if (onFailed != null) onFailed.run(ex);
});
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java
index b2a835fa..f69551ea 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java
@@ -40,7 +40,7 @@ import it.integry.integrywmsnative.databinding.FragmentMainVersamentoMerceBindin
import it.integry.integrywmsnative.gest.versamento_merce.core.VersamentoMerceHelper;
import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione;
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
@@ -76,9 +76,10 @@ public class VersamentoMerceViewModel {
} else if (mtbColt.getGestioneEnum() == GestioneEnum.VENDITA) {
setMtbColt(mtbColt);
} else {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
- new SpannableString(Html.fromHtml("Sono accettate solamente UL di Acquisto o Lavorazione di CARICO")),
- null, this::openLU).show();
+ DialogSimpleMessageView
+ .makeWarningDialog(new SpannableString(Html.fromHtml("Sono accettate solamente UL di Acquisto o Lavorazione di CARICO")),
+ null, this::openLU)
+ .show(mContext.getSupportFragmentManager(), "tag");;
}
}).show();
}
@@ -96,7 +97,7 @@ public class VersamentoMerceViewModel {
BarcodeManager.disable();
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
- if (UtilityBarcode.isEtichettaPosizione(data)) {
+ if (UtilityBarcode.isEtichettaPosizione(data, false)) {
progressDialog.show();
this.executeEtichettaPosizione(data, progressDialog);
} else if (data.getType() == BarcodeType.EAN8 || data.getType() == BarcodeType.EAN13 || data.getType() == BarcodeType.UPCA) {
@@ -151,9 +152,10 @@ public class VersamentoMerceViewModel {
}
private void showTooMuchULFound() {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
+ DialogSimpleMessageView.makeWarningDialog(
new SpannableString(mContext.getResources().getText(R.string.too_much_lu_found_message_in_mono_lu)),
- null, null).show();
+ null, null)
+ .show(mContext.getSupportFragmentManager(), "tag");
}
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) {
@@ -429,18 +431,19 @@ public class VersamentoMerceViewModel {
private void askULVenditaConfirm(RunnableArgs callback) {
- DialogSimpleMessageHelper.makeWarningDialog(
- mContext,
+ DialogSimpleMessageView.makeWarningDialog(
new SpannableString(mContext.getResources().getString(R.string.lu_gest_v_loading_alert)),
null,
() -> callback.run(true),
- () -> callback.run(false)).show();
+ () -> callback.run(false))
+ .show(mContext.getSupportFragmentManager(), "tag");
}
private void showWrongGestioneUL() {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
+ DialogSimpleMessageView.makeWarningDialog(
new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_V_not_accepted_message).toString())),
- null, null).show();
+ null, null)
+ .show(mContext.getSupportFragmentManager(), "tag");
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogCommon.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogCommon.java
index f2ed317e..e35f0e4b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogCommon.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogCommon.java
@@ -3,48 +3,52 @@ package it.integry.integrywmsnative.view.dialogs;
import android.content.Context;
import android.text.SpannableString;
+import androidx.appcompat.app.AppCompatActivity;
+
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class DialogCommon {
public static void showNoArtFoundDialog(@NotNull Context context, @Nullable Runnable onPositiveClick) {
- DialogSimpleMessageHelper.makeWarningDialog(context,
- new SpannableString(context.getResources().getText(R.string.no_result_from_barcode)),
- null, onPositiveClick).show();
+ DialogSimpleMessageView
+ .makeWarningDialog(new SpannableString(context.getResources().getText(R.string.no_result_from_barcode)),
+ null, onPositiveClick)
+ .show(((AppCompatActivity) context).getSupportFragmentManager(), "tag");
}
public static void showNoULFound(@NotNull Context context, @Nullable Runnable onPositiveClick) {
- DialogSimpleMessageHelper.makeWarningDialog(context,
- new SpannableString(context.getResources().getText(R.string.no_lu_found_message)),
- null, onPositiveClick).show();
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(context.getResources().getText(R.string.no_lu_found_message)),
+ null, onPositiveClick)
+ .show(((AppCompatActivity) context).getSupportFragmentManager(), "tag");
}
public static void showNoOrderFound(@NotNull Context context, @Nullable Runnable onPositiveClick) {
- DialogSimpleMessageHelper.makeWarningDialog(context,
- new SpannableString(context.getResources().getText(R.string.no_orders_found_message)),
- null, onPositiveClick).show();
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(context.getResources().getText(R.string.no_orders_found_message)),
+ null, onPositiveClick)
+ .show(((AppCompatActivity) context).getSupportFragmentManager(), "tag");;
}
public static void showDataSaved(@NotNull Context context, @Nullable Runnable onPositiveClick) {
- DialogSimpleMessageHelper.makeSuccessDialog(
- context,
+ DialogSimpleMessageView.makeSuccessDialog(
context.getResources().getString(R.string.completed),
new SpannableString(context.getResources().getString(R.string.data_saved)),
- null, onPositiveClick).show();
+ null, onPositiveClick)
+ .show(((AppCompatActivity) context).getSupportFragmentManager(), "tag");
}
public static void showRestError(@NotNull Context context, Exception ex, @Nullable Runnable onPositiveClick) {
- DialogSimpleMessageHelper.makeErrorDialog(context,
- new SpannableString(ex.getMessage()), null, onPositiveClick).show();
+ DialogSimpleMessageView
+ .makeErrorDialog(new SpannableString(ex.getMessage()), null, onPositiveClick)
+ .show(((AppCompatActivity) context).getSupportFragmentManager(), "tag");
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java
deleted file mode 100644
index cae2d7b4..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java
+++ /dev/null
@@ -1,243 +0,0 @@
-package it.integry.integrywmsnative.view.dialogs.base;
-
-import android.app.Activity;
-import android.app.Dialog;
-import android.content.Context;
-import android.content.res.ColorStateList;
-import android.graphics.Color;
-import android.graphics.Rect;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-import android.text.SpannableString;
-import android.text.Spanned;
-import android.view.LayoutInflater;
-import android.view.Window;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import androidx.annotation.StringRes;
-import androidx.core.content.ContextCompat;
-import androidx.core.content.res.ResourcesCompat;
-import androidx.databinding.DataBindingUtil;
-
-import java.util.HashMap;
-
-import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.databinding.DialogBaseBinding;
-
-/**
- * Created by GiuseppeS on 22/03/2018.
- */
-
-public class DialogSimpleMessageHelper {
-
- public enum TYPE {
- INFO(1),
- SUCCESS(2),
- WARNING(3),
- ERROR(4);
-
- private int value;
-
- TYPE(int value) {
- this.value = value;
- }
-
- public int getValue() {
- return this.value;
- }
-
- public static TYPE fromInt(int value) {
- for (TYPE b : TYPE.values()) {
- if (b.value == value) return b;
- }
- return null;
- }
- }
-
- private static Dialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes Integer rNeutralButtonString, Runnable onNeutralClick) {
- LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
- int colorBackgroundTitle = -1;
- Drawable titleIconRes = null;
-
- Dialog dialog = new Dialog(mContext);
-
- switch (type) {
- case INFO:
- colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.light_blue_300);
- titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_info_78dp, null);
- break;
-
- case SUCCESS:
- colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.green_300);
- titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_done_white_24dp, null);
- break;
-
- case WARNING:
- colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.yellow_600);
- titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_warning_white_24dp, null);
- break;
-
- case ERROR:
- colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.red_300);
- titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_mood_bad_24dp, null);
- break;
- }
-
- DialogSimpleMessageViewModel viewModel = new DialogSimpleMessageViewModel(dialog);
-
- viewModel
- .setOnPositive(onPositiveClick)
- .setOnNeutral(onNeutralClick)
- .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);
-
- mBinding.setViewmodel(viewModel);
-
-
- Rect displayRectangle = new Rect();
- Window window = ((Activity) mContext).getWindow();
- window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle);
- mBinding.titleContainer.setMinimumWidth((int) (displayRectangle.width() * 0.8f));
-
-
- //Title VIEW
- mBinding.titleText.setText(titleText);
- ColorStateList colorStateList = ColorStateList.valueOf(Color.WHITE);
- mBinding.titleIcon.setImageTintList(colorStateList);
- mBinding.titleIcon.setImageDrawable(titleIconRes);
-
- mBinding.titleContainer.setBackgroundColor(colorBackgroundTitle);
-
- //Content View
- mBinding.descriptionText.setText(messageText);
-
- LinearLayout hashMapContainer = mBinding.dialogContentHashmap;
-
- if (hashmapContent != null) {
- for (int i = 0; i < hashmapContent.keySet().size(); i++) {
- String currentKey = hashmapContent.keySet().toArray()[i].toString();
- String currentValue = hashmapContent.get(currentKey);
-
- RelativeLayout singleMapContent = (RelativeLayout) inflater.inflate(R.layout.dialog_custom_content_hashmap_viewmodel, null);
- ((TextView) singleMapContent.findViewById(R.id.dialog_content_hashmap_key)).setText(currentKey);
- ((TextView) singleMapContent.findViewById(R.id.dialog_content_hashmap_value)).setText(currentValue);
-
- hashMapContainer.addView(singleMapContent);
- }
- }
-
- dialog.setCancelable(false);
- dialog.setCanceledOnTouchOutside(false);
- dialog.setContentView(mBinding.getRoot());
- dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
-
- return dialog;
- }
-
-
- public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) {
- return makeBase(TYPE.INFO,
- mContext,
- titleText,
- messageText,
- hashmapContent,
- onPositiveClick,
- null, -1, null);
- }
-
-
- public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick) {
- return makeBase(TYPE.INFO,
- mContext,
- titleText,
- messageText,
- hashmapContent,
- onPositiveClick,
- onNegativeClick, -1, null);
- }
-
-
- public static Dialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) {
- return makeBase(TYPE.SUCCESS,
- mContext,
- titleText,
- messageText,
- hashmapContent,
- onPositiveClick,
- null, -1, null);
- }
-
-
- public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick) {
- return makeBase(TYPE.WARNING,
- mContext,
- mContext.getText(R.string.warning).toString(),
- messageText,
- hashmapContent,
- onPositiveClick,
- () -> {
- if (onNegativeClick != null) onNegativeClick.run();
- }, -1, null);
- }
-
-
- public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) {
- return makeBase(TYPE.WARNING,
- mContext,
- mContext.getText(R.string.warning).toString(),
- messageText,
- hashmapContent,
- onPositiveClick,
- null, -1, null);
- }
-
- public static void showSimpleWarningDialog(Context context, String message) {
- makeErrorDialog(
- context,
- new SpannableString(message),
- null,
- null).show();
- }
-
- public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) {
-
- return makeBase(TYPE.ERROR,
- mContext,
- mContext.getText(R.string.ops).toString(),
- messageText,
- hashmapContent,
- onPositiveClick,
- null, -1, null);
- }
-
- public static void showSimpleErrorDialog(Context context, String message) {
- makeErrorDialog(
- context,
- new SpannableString(message),
- null,
- null).show();
- }
-
- public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick) {
-
- return makeBase(TYPE.ERROR,
- mContext,
- mContext.getText(R.string.ops).toString(),
- messageText,
- hashmapContent,
- onPositiveClick,
- null, rNeutralButtonString, onNeutralClick);
-
- }
-
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageView.java
new file mode 100644
index 00000000..3dc54c6b
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageView.java
@@ -0,0 +1,289 @@
+package it.integry.integrywmsnative.view.dialogs.base;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.text.Spanned;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.appcompat.widget.LinearLayoutCompat;
+import androidx.core.content.ContextCompat;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.databinding.DataBindingUtil;
+
+import java.util.HashMap;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
+import it.integry.integrywmsnative.core.utility.UtilityDialog;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+import it.integry.integrywmsnative.databinding.DialogBaseBinding;
+
+/**
+ * Created by GiuseppeS on 22/03/2018.
+ */
+
+public class DialogSimpleMessageView extends BaseDialogFragment {
+
+ public enum TYPE {
+ INFO(1),
+ SUCCESS(2),
+ WARNING(3),
+ ERROR(4);
+
+ private int value;
+
+ TYPE(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return this.value;
+ }
+
+ public static TYPE fromInt(int value) {
+ for (TYPE b : TYPE.values()) {
+ if (b.value == value) return b;
+ }
+ return null;
+ }
+ }
+
+
+ private final TYPE mType;
+ private final String mTitleText;
+ private final Spanned mMessageText;
+ private final HashMap mHashmapContent;
+ private final Runnable mOnPositiveClick;
+ private final Runnable mOnNegativeClick;
+ private final @StringRes Integer mRNeutralButtonString;
+ private final Runnable mOnNeutralClick;
+
+
+ private String positiveButtonText;
+ private String neutralButtonText;
+ private String negativeButtonText;
+
+
+ private DialogBaseBinding mBindings;
+ private Context mContext;
+
+ public static DialogSimpleMessageView newInstance(@NonNull TYPE type, @NonNull String titleText, @NonNull Spanned messageText, HashMap hashmapContent , Runnable onPositiveClick, Runnable onNegativeClick, @StringRes Integer rNeutralButtonString, Runnable onNeutralClick) {
+ return new DialogSimpleMessageView(type, titleText, messageText, hashmapContent, onPositiveClick, onNegativeClick, rNeutralButtonString, onNeutralClick);
+ }
+
+ private DialogSimpleMessageView(@NonNull TYPE type, @NonNull String titleText, @NonNull Spanned messageText, HashMap hashmapContent , Runnable onPositiveClick, Runnable onNegativeClick, @StringRes Integer rNeutralButtonString, Runnable onNeutralClick) {
+ super();
+
+ this.mType = type;
+ this.mTitleText = titleText;
+ this.mMessageText = messageText;
+ this.mHashmapContent = hashmapContent;
+ this.mOnPositiveClick = onPositiveClick;
+ this.mOnNegativeClick = onNegativeClick;
+ this.mRNeutralButtonString = rNeutralButtonString;
+ this.mOnNeutralClick = onNeutralClick;
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+
+ UtilityDialog.setTo90PercentWidth(this.mContext, this);
+ }
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ this.mContext = getActivity();
+
+ mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_base, container, false);
+
+ mBindings.setView(this);
+ mBindings.setLifecycleOwner(this);
+
+ getDialog().setCanceledOnTouchOutside(false);
+ getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+
+ int colorBackgroundTitle = -1;
+ Drawable titleIconRes = null;
+
+ switch (mType) {
+ case INFO:
+ colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.light_blue_300);
+ titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_info_78dp, null);
+ break;
+
+ case SUCCESS:
+ colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.green_300);
+ titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_done_white_24dp, null);
+ break;
+
+ case WARNING:
+ colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.yellow_600);
+ titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_warning_white_24dp, null);
+ break;
+
+ case ERROR:
+ colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.red_300);
+ titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_mood_bad_24dp, null);
+ break;
+ }
+
+ this.positiveButtonText = mContext.getText(R.string.ok).toString();
+ this.negativeButtonText = mContext.getText(R.string.no).toString();
+
+ //Title VIEW
+ mBindings.titleText.setText(mTitleText);
+ ColorStateList colorStateList = ColorStateList.valueOf(Color.WHITE);
+ mBindings.titleIcon.setImageTintList(colorStateList);
+ mBindings.titleIcon.setImageDrawable(titleIconRes);
+
+ mBindings.titleContainer.setBackgroundColor(colorBackgroundTitle);
+
+ //Content View
+ mBindings.descriptionText.setText(mMessageText);
+
+ LinearLayoutCompat hashMapContainer = mBindings.dialogContentHashmap;
+
+ if (mHashmapContent != null) {
+ for (int i = 0; i < mHashmapContent.keySet().size(); i++) {
+ String currentKey = mHashmapContent.keySet().toArray()[i].toString();
+ String currentValue = mHashmapContent.get(currentKey);
+
+ RelativeLayout singleMapContent = (RelativeLayout) inflater.inflate(R.layout.dialog_custom_content_hashmap_viewmodel, null);
+ ((TextView) singleMapContent.findViewById(R.id.dialog_content_hashmap_key)).setText(currentKey);
+ ((TextView) singleMapContent.findViewById(R.id.dialog_content_hashmap_value)).setText(currentValue);
+
+ hashMapContainer.addView(singleMapContent);
+ }
+ }
+
+ return mBindings.getRoot();
+ }
+
+
+ public boolean isPositiveVisible() {
+ return mOnPositiveClick != null;
+ }
+
+ public boolean isNeutralVisible() {
+ return mOnNeutralClick != null;
+ }
+
+ public boolean isNegativeVisible() {
+ return mOnNegativeClick != null;
+ }
+
+
+ public String getPositiveButtonText() {
+ return positiveButtonText;
+ }
+
+ public String getNeutralButtonText() {
+ return mRNeutralButtonString != null && mRNeutralButtonString != -1 ? mContext.getText(mRNeutralButtonString).toString() : null;
+ }
+
+ public String getNegativeButtonText() {
+ return negativeButtonText;
+ }
+
+ public void onPositiveClick() {
+ dismiss();
+ if(mOnPositiveClick != null) mOnPositiveClick.run();
+ }
+
+ public void onNeutralClick() {
+ dismiss();
+ if(mOnNeutralClick != null) mOnNeutralClick.run();
+ }
+
+ public void onNegativeClick() {
+ dismiss();
+ if(mOnNegativeClick != null) mOnNegativeClick.run();
+ }
+
+ public static DialogSimpleMessageView makeInfoDialog(String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) {
+ return newInstance(TYPE.INFO,
+ titleText,
+ messageText,
+ hashmapContent,
+ onPositiveClick,
+ null, -1, null);
+ }
+
+
+ public static DialogSimpleMessageView makeInfoDialog(String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick) {
+ return newInstance(TYPE.INFO,
+ titleText,
+ messageText,
+ hashmapContent,
+ onPositiveClick,
+ onNegativeClick, -1, null);
+ }
+
+
+ public static DialogSimpleMessageView makeSuccessDialog(String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) {
+ return newInstance(TYPE.SUCCESS,
+ titleText,
+ messageText,
+ hashmapContent,
+ onPositiveClick,
+ null, -1, null);
+ }
+
+
+ public static DialogSimpleMessageView makeWarningDialog(Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick) {
+ return newInstance(TYPE.WARNING,
+ UtilityResources.getString(R.string.warning),
+ messageText,
+ hashmapContent,
+ onPositiveClick,
+ () -> {
+ if (onNegativeClick != null) onNegativeClick.run();
+ }, -1, null);
+ }
+
+
+ public static DialogSimpleMessageView makeWarningDialog(Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) {
+ return newInstance(TYPE.WARNING,
+ UtilityResources.getString(R.string.warning),
+ messageText,
+ hashmapContent,
+ onPositiveClick,
+ null, -1, null);
+ }
+
+ public static DialogSimpleMessageView makeErrorDialog(Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) {
+
+ return newInstance(TYPE.ERROR,
+ UtilityResources.getString(R.string.ops),
+ messageText,
+ hashmapContent,
+ onPositiveClick,
+ null, -1, null);
+ }
+
+ public static DialogSimpleMessageView makeErrorDialog(Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick) {
+
+ return newInstance(TYPE.ERROR,
+ UtilityResources.getString(R.string.ops),
+ messageText,
+ hashmapContent,
+ onPositiveClick,
+ null, rNeutralButtonString, onNeutralClick);
+
+ }
+
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java
deleted file mode 100644
index 3a217b53..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package it.integry.integrywmsnative.view.dialogs.base;
-
-import android.app.Dialog;
-
-public class DialogSimpleMessageViewModel {
-
-
- private Dialog mDialog;
-
- private Runnable onPositive;
- private Runnable onNeutral;
- private Runnable onNegative;
-
- private String positiveButtonText;
- private String neutralButtonText;
- private String negativeButtonText;
-
- public DialogSimpleMessageViewModel(Dialog dialog) {
- mDialog = dialog;
- }
-
- public DialogSimpleMessageViewModel setOnPositive(Runnable onPositive) {
- this.onPositive = onPositive;
- return this;
- }
-
- public DialogSimpleMessageViewModel setOnNeutral(Runnable onNeutral) {
- this.onNeutral = onNeutral;
- return this;
- }
-
- public DialogSimpleMessageViewModel setOnNegative(Runnable onNegative) {
- this.onNegative = onNegative;
- return this;
- }
-
-
-
- public boolean isPositiveVisible() {
- return onPositive != null;
- }
-
- public boolean isNeutralVisible() {
- return onNeutral != null;
- }
-
- public boolean isNegativeVisible() {
- return onNegative != null;
- }
-
-
- 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() {
- mDialog.dismiss();
- if(onPositive != null) onPositive.run();
- }
- public void onNeutralClick() {
- mDialog.dismiss();
- if(onNeutral != null) onNeutral.run();
- }
- public void onNegativeClick() {
- mDialog.dismiss();
- if(onNegative != null) onNegative.run();
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/camera_barcode_reader/DialogCameraBarcodeReader.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/camera_barcode_reader/DialogCameraBarcodeReader.java
index 09ffdd5a..785fe3e2 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/camera_barcode_reader/DialogCameraBarcodeReader.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/camera_barcode_reader/DialogCameraBarcodeReader.java
@@ -1,6 +1,5 @@
package it.integry.integrywmsnative.view.dialogs.camera_barcode_reader;
-import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
@@ -53,7 +52,6 @@ public class DialogCameraBarcodeReader extends DialogFragment implements Barcode
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_camera_barcode_reader, container, false);
- UtilityDialog.setTo95PercentWidth(mContext, this);
getDialog().setCanceledOnTouchOutside(false);
getDialog().setCancelable(false);
@@ -68,6 +66,13 @@ public class DialogCameraBarcodeReader extends DialogFragment implements Barcode
return mBindings.getRoot();
}
+ @Override
+ public void onStart() {
+ super.onStart();
+
+ UtilityDialog.setTo95PercentWidth(mContext, this);
+ }
+
@Override
public void onStop() {
super.onStop();
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java
index dff95e00..f6de4bc8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java
@@ -25,7 +25,7 @@ public class DialogInputQuantityV2DTO {
private BigDecimal totalNumCnfAvailable;
private BigDecimal qtaCnfAvailable;
- private boolean canPartitaMagBeChanged;
+ private boolean canPartitaMagBeChanged = true;
private boolean canLUBeClosed;
private String partitaMag;
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
index fc527cb5..d908afc4 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
@@ -41,7 +41,7 @@ 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.databinding.DialogInputQuantityV2Binding;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class DialogInputQuantityV2View extends BaseDialogFragment implements DialogInputQuantityV2ViewModel.Listener {
@@ -66,7 +66,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
public ObservableField enabledChangePartitaMag = new ObservableField<>(true);
public ObservableField enabledLUCloseButton = new ObservableField<>(true);
- public Context context;
+ private Context context;
private DialogInputQuantityV2Binding mBindings;
private boolean mEnableDataCallback = true;
@@ -99,6 +99,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
this.context = getActivity();
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_input_quantity_v2, container, false);
+ mBindings.setLifecycleOwner(this);
mBindings.toolbar.setTitle("Inserimento articolo");
@@ -318,6 +319,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
}));
+ this.mViewModel.setCanPartitaMagBeChanged(this.mDialogInputQuantityV2DTO.isCanPartitaMagBeChanged());
this.enabledChangePartitaMag.set(this.mDialogInputQuantityV2DTO.isCanPartitaMagBeChanged());
this.enabledLUCloseButton.set(this.mDialogInputQuantityV2DTO.isCanLUBeClosed());
}
@@ -356,6 +358,8 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
@Override
public void onError(Exception ex) {
- DialogSimpleMessageHelper.makeErrorDialog(this.context, new SpannableString(Html.fromHtml(ex.getMessage())), null, null).show();
+ DialogSimpleMessageView
+ .makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null)
+ .show(getActivity().getSupportFragmentManager(), "tag");;
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java
index 0412ed7e..72f7fa1c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java
@@ -59,6 +59,7 @@ public class DialogInputQuantityV2ViewModel {
private Date internalDataScad;
private boolean canOverflowOrderQuantity;
+ private boolean canPartitaMagBeChanged;
private Listener mListener;
@@ -135,18 +136,21 @@ public class DialogInputQuantityV2ViewModel {
return;
}
- if (!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) {
- this.setPartitaMag(ean128Model.BatchLot);
- }
+ if(canPartitaMagBeChanged) {
- try {
- if (!UtilityString.isNullOrEmpty(ean128Model.BestBefore)) {
- this.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore));
- } else if (!UtilityString.isNullOrEmpty(ean128Model.Expiry)) {
- this.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry));
+ 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);
}
- } catch (Exception ex) {
- this.mListener.onError(ex);
}
if (ean128Model.Count != null && ean128Model.Count > 0) {
@@ -160,6 +164,9 @@ public class DialogInputQuantityV2ViewModel {
this.setNumCnf(BigDecimal.ONE);
this.setQtaCnf(UtilityBigDecimal.divide(this.getQtaTot(), this.getNumCnf()));
}
+
+ this.unlockNumCnf();
+ this.unlockQtaCnf();
}
this.mListener.onDataChanged();
@@ -262,6 +269,11 @@ public class DialogInputQuantityV2ViewModel {
return this;
}
+ public DialogInputQuantityV2ViewModel setCanPartitaMagBeChanged(boolean canPartitaMagBeChanged) {
+ this.canPartitaMagBeChanged = canPartitaMagBeChanged;
+ return this;
+ }
+
public DialogInputQuantityV2ViewModel setPartitaMag(String internalPartitaMag) {
this.internalPartitaMag = internalPartitaMag;
return this;
@@ -289,10 +301,10 @@ public class DialogInputQuantityV2ViewModel {
// return;
}
- if (!this.blockedQtaTot.get() && this.internalQtaCnf != null)
- this.internalQtaTot = UtilityBigDecimal.multiply(newValue, this.internalQtaCnf);
- else if (!this.blockedQtaCnf.get() && !this.mtbAart.get().isFlagQtaCnfFissaBoolean() && this.internalQtaTot != null)
+ if (!this.blockedQtaCnf.get() && !this.mtbAart.get().isFlagQtaCnfFissaBoolean() && this.internalQtaTot != null)
this.internalQtaCnf = UtilityBigDecimal.divide(newValue, internalQtaTot);
+ else if (!this.blockedQtaTot.get() && this.internalQtaCnf != null)
+ this.internalQtaTot = UtilityBigDecimal.multiply(newValue, this.internalQtaCnf);
this.mListener.onDataChanged();
}
@@ -336,6 +348,18 @@ public class DialogInputQuantityV2ViewModel {
this.mListener.onDataChanged();
}
+ private void unlockNumCnf() {
+ this.blockedNumCnf.set(false);
+ }
+
+ private void unlockQtaCnf() {
+ this.blockedQtaCnf.set(false);
+ }
+
+ private void unlockQtaCol() {
+ this.blockedQtaTot.set(false);
+ }
+
public boolean validate() {
if (this.internalQtaCnf == null || UtilityBigDecimal.equalsTo(this.internalQtaCnf, BigDecimal.ZERO)) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java
index 38bb45b4..fcb64c3b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java
@@ -8,6 +8,7 @@ import android.text.SpannableString;
import android.view.LayoutInflater;
import android.view.View;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import com.annimon.stream.Stream;
@@ -31,7 +32,7 @@ import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogScanOrCreateLuBinding;
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.basket_lu.DialogBasketLU;
public class DialogScanOrCreateLU {
@@ -198,13 +199,13 @@ public class DialogScanOrCreateLU {
} else {
if(mtbColt.getCodDtip() != null && mShouldCheckIfExistDoc) {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
+ DialogSimpleMessageView.makeWarningDialog(
new SpannableString(mContext.getResources().getText(R.string.lu_already_attache_to_doc)),
null, () -> {
BarcodeManager.enable();
progressDialog.dismiss();
})
- .show();
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag");
} else {
BarcodeManager.enable();
@@ -231,17 +232,15 @@ public class DialogScanOrCreateLU {
if(mtbColt != null) {
if(mtbColt.getCodDtip() != null && mShouldCheckIfExistDoc) {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
- new SpannableString(mContext.getResources().getText(R.string.lu_already_attache_to_doc)),
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(mContext.getResources().getText(R.string.lu_already_attache_to_doc)),
null, () -> {
BarcodeManager.enable();
progressDialog.dismiss();
})
- .show();
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag");
} else {
if(mtbColt.getGestioneEnum() == GestioneEnum.VENDITA && mtbColt.getSegno() == -1) {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
- new SpannableString(mContext.getResources().getText(R.string.lu_gest_v_loading_alert)),
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(mContext.getResources().getText(R.string.lu_gest_v_loading_alert)),
null, () -> {
BarcodeManager.enable();
sendMtbColt(mtbColt, progressDialog, false);
@@ -249,7 +248,7 @@ public class DialogScanOrCreateLU {
BarcodeManager.enable();
progressDialog.dismiss();
})
- .show();
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag");
} else {
BarcodeManager.enable();
@@ -287,9 +286,10 @@ public class DialogScanOrCreateLU {
private void showTooMuchULFound() {
- DialogSimpleMessageHelper.makeWarningDialog(mContext,
+ DialogSimpleMessageView.makeWarningDialog(
new SpannableString(mContext.getResources().getText(R.string.too_much_lu_found_message_in_mono_lu)),
- null, null).show();
+ null, null)
+ .show(((AppCompatActivity) mContext).getSupportFragmentManager(), "tag");
}
private void sendMtbColt(MtbColt mtbColtToSend, Dialog progressDialog, boolean created) {
diff --git a/app/src/main/res/layout/activity_picking_resi.xml b/app/src/main/res/layout/activity_picking_resi.xml
index db600e6c..bb0ac519 100644
--- a/app/src/main/res/layout/activity_picking_resi.xml
+++ b/app/src/main/res/layout/activity_picking_resi.xml
@@ -63,6 +63,64 @@
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ name="view"
+ type="it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView" />
-
-
@@ -38,207 +37,193 @@
android:id="@+id/title_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/ic_error_white_24dp"
- android:layout_margin="24dp"/>
+ android:layout_margin="24dp"
+ android:src="@drawable/ic_error_white_24dp" />
-
+ android:paddingEnd="16dp"
+ android:paddingBottom="16dp">
-
-
-
+
+
+
+
+
-
-
-
-
+ android:paddingLeft="12dp"
+ android:paddingRight="12dp">
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:visibility="@{view.negativeVisible && !view.neutralVisible ? View.VISIBLE : View.GONE}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app:layout_constraintGuide_percent="0.33" />
+ app:layout_constraintGuide_percent="0.66" />
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintStart_toStartOf="@id/left_buttons_guideline"
+ app:layout_constraintTop_toTopOf="parent"
+ app:strokeColor="@color/colorPrimary" />
+ app:layout_constraintStart_toStartOf="@id/right_buttons_guideline"
+ app:layout_constraintTop_toTopOf="parent" />
@@ -247,50 +232,49 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
- android:visibility="@{!viewmodel.negativeVisible && viewmodel.neutralVisible ? View.VISIBLE : View.GONE}">
+ android:visibility="@{!view.negativeVisible && view.neutralVisible ? View.VISIBLE : View.GONE}">
+ app:layout_constraintGuide_percent="0.5" />
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:strokeColor="@color/colorPrimary" />
+ app:layout_constraintStart_toStartOf="@id/center_guideline2"
+ app:layout_constraintTop_toTopOf="parent" />
-
-
+
-
+
diff --git a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml
index 12a55f0e..b5a1066e 100644
--- a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml
+++ b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml
@@ -6,7 +6,11 @@
+ type="it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteViewModel" />
+
+
@@ -29,12 +33,12 @@
android:scrollbars="none"
android:paddingEnd="4dp"/>
-
+
+
+
+
+
+
+
+
@@ -29,12 +33,12 @@
android:scrollbars="none"
android:paddingEnd="4dp"/>
-
+
+
+
+
+
+