diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9f74118b..62d398b2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -22,7 +22,7 @@
android:name=".gest.spedizione.SpedizioneActivity"
android:screenOrientation="portrait"
android:theme="@style/Light"
- android:windowSoftInputMode="adjustNothing" >
+ android:windowSoftInputMode="adjustNothing" />
-
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
index 421ca4f6..e203ab45 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
@@ -4,6 +4,8 @@ import javax.inject.Singleton;
import dagger.Component;
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
+import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent;
+import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoComponent;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoModule;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent;
@@ -25,7 +27,8 @@ import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
PVOrdineAcquistoEditModule.class,
PickingLiberoModule.class,
RettificaGiacenzeModule.class,
- SpedizioneModule.class})
+ SpedizioneModule.class,
+ AccettazionePickingModule.class})
public interface MainApplicationComponent {
MainActivityComponent.Factory mainActivityComponent();
@@ -34,5 +37,6 @@ public interface MainApplicationComponent {
PickingLiberoComponent.Factory pickingLiberoComponent();
RettificaGiacenzeComponent.Factory rettificaGiacenzeComponent();
SpedizioneComponent.Factory spedizioneComponent();
+ AccettazionePickingComponent.Factory accettazionePickingComponent();
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
index 95adc821..e65f1496 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
@@ -11,6 +11,7 @@ import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
@@ -44,6 +45,12 @@ public class MainApplicationModule {
return new OrdiniRESTConsumer();
}
+ @Provides
+ @Singleton
+ GestSetupRESTConsumer provideGestSetupRESTConsumer() {
+ return new GestSetupRESTConsumer();
+ }
+
@Provides
@Singleton
ArticoloRESTConsumer provideArticoloRESTConsumer() {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/exception/AlreadyUsedAnonymousLabelException.java b/app/src/main/java/it/integry/integrywmsnative/core/exception/AlreadyUsedAnonymousLabelException.java
new file mode 100644
index 00000000..1091eb26
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/exception/AlreadyUsedAnonymousLabelException.java
@@ -0,0 +1,11 @@
+package it.integry.integrywmsnative.core.exception;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+
+public class AlreadyUsedAnonymousLabelException extends Exception {
+
+ public AlreadyUsedAnonymousLabelException() {
+ super(UtilityResources.getString(R.string.already_used_anonymous_barcode));
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/exception/InvalidLUMultiGestioneException.java b/app/src/main/java/it/integry/integrywmsnative/core/exception/InvalidLUMultiGestioneException.java
new file mode 100644
index 00000000..706de62a
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/exception/InvalidLUMultiGestioneException.java
@@ -0,0 +1,11 @@
+package it.integry.integrywmsnative.core.exception;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+
+public class InvalidLUMultiGestioneException extends Exception {
+
+ public InvalidLUMultiGestioneException() {
+ super(UtilityResources.getString(R.string.error_multiple_gest));
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/exception/InvalidOrderTypeException.java b/app/src/main/java/it/integry/integrywmsnative/core/exception/InvalidOrderTypeException.java
new file mode 100644
index 00000000..b4a242a4
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/exception/InvalidOrderTypeException.java
@@ -0,0 +1,11 @@
+package it.integry.integrywmsnative.core.exception;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+
+public class InvalidOrderTypeException extends Exception {
+
+ public InvalidOrderTypeException() {
+ super(UtilityResources.getString(R.string.error_wrong_order_type));
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/exception/LUScanNotGrantedException.java b/app/src/main/java/it/integry/integrywmsnative/core/exception/LUScanNotGrantedException.java
new file mode 100644
index 00000000..a044da34
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/exception/LUScanNotGrantedException.java
@@ -0,0 +1,11 @@
+package it.integry.integrywmsnative.core.exception;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+
+public class LUScanNotGrantedException extends Exception {
+
+ public LUScanNotGrantedException() {
+ super(UtilityResources.getString(R.string.lu_scan_not_granted_here));
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java
index 9050c3b6..1d293c8b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java
@@ -1,15 +1,19 @@
package it.integry.integrywmsnative.core.expansion;
+import android.app.Dialog;
import android.view.KeyEvent;
import androidx.appcompat.app.AppCompatActivity;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.exception.MyExceptionHandler;
+import it.integry.integrywmsnative.core.utility.UtilityProgress;
public class BaseActivity extends AppCompatActivity {
+ protected Dialog mCurrentProgress;
+
public BaseActivity() {
Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler(this, BaseActivity.class));
}
@@ -33,4 +37,19 @@ public class BaseActivity extends AppCompatActivity {
);
}
+
+
+
+ protected void openProgress() {
+ if (this.mCurrentProgress == null) {
+ this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this);
+ }
+ }
+
+ protected void closeProgress() {
+ if (mCurrentProgress != null) {
+ mCurrentProgress.dismiss();
+ mCurrentProgress = null;
+ }
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/interfaces/viewmodel_listeners/ILUBaseOperationsListener.java b/app/src/main/java/it/integry/integrywmsnative/core/interfaces/viewmodel_listeners/ILUBaseOperationsListener.java
new file mode 100644
index 00000000..0cf83dbb
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/interfaces/viewmodel_listeners/ILUBaseOperationsListener.java
@@ -0,0 +1,10 @@
+package it.integry.integrywmsnative.core.interfaces.viewmodel_listeners;
+
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public interface ILUBaseOperationsListener {
+
+ void onLUOpened(MtbColt mtbColt);
+
+ void onLUClosed();
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/interfaces/viewmodel_listeners/ILoadingListener.java b/app/src/main/java/it/integry/integrywmsnative/core/interfaces/viewmodel_listeners/ILoadingListener.java
new file mode 100644
index 00000000..f77f00f0
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/interfaces/viewmodel_listeners/ILoadingListener.java
@@ -0,0 +1,7 @@
+package it.integry.integrywmsnative.core.interfaces.viewmodel_listeners;
+
+public interface ILoadingListener {
+ void onLoadingStarted();
+
+ void onLoadingEnded();
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickDataDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java
similarity index 98%
rename from app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickDataDTO.java
rename to app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java
index 8fe0792c..7a2f79a3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickDataDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.spedizione.model;
+package it.integry.integrywmsnative.core.model.dto;
import java.math.BigDecimal;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java
index 3309123b..23fd711d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GestSetupRESTConsumer.java
@@ -4,6 +4,8 @@ import android.util.Log;
import java.util.List;
+import javax.inject.Singleton;
+
import it.integry.integrywmsnative.core.model.StbGestSetup;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.GestSetupDTO;
@@ -14,9 +16,14 @@ import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
+@Singleton
public class GestSetupRESTConsumer extends _BaseRESTConsumer {
- public static void getValue(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
+ public void getValue(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
+ getValueStatic(gestName, sectionName, keySection, onComplete, onFailed);
+ }
+
+ public static void getValueStatic(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
service.getGestSetupValue(gestName, sectionName, keySection).enqueue(new Callback>() {
@Override
@@ -34,7 +41,7 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
}
public static void getBooleanValue(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
- getValue(gestName, sectionName, keySection, value -> {
+ getValueStatic(gestName, sectionName, keySection, value -> {
if(value != null){
onComplete.run("S".equalsIgnoreCase(value.value));
} else onComplete.run(false);
@@ -43,7 +50,7 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
});
}
- public static void getValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs onComplete, RunnableArgs onFailed) {
+ public static void getValueStatic(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs onComplete, RunnableArgs onFailed) {
GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
service.getGestSetupValue(gestName, sectionName, keySection, codMdep).enqueue(new Callback>() {
@Override
@@ -61,7 +68,7 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
}
public static void getBooleanValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs onComplete, RunnableArgs onFailed) {
- getValue(gestName, sectionName, keySection, codMdep, value -> {
+ getValueStatic(gestName, sectionName, keySection, codMdep, value -> {
if(value != null){
onComplete.run("S".equalsIgnoreCase(value.value));
} else onComplete.run(false);
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 a3359934..284a03f5 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
@@ -65,7 +65,7 @@ public class DBSettingsModel {
}
public DBSettingsModel setDatiAzienda(Azienda datiAzienda) {
- this.datiAzienda = datiAzienda;
+ this.datiAzienda = datiAzienda;
return this;
}
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 032a934d..21b1f0c0 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
@@ -3,7 +3,6 @@ package it.integry.integrywmsnative.core.utility;
import android.text.Html;
import android.text.Spanned;
-import androidx.annotation.IdRes;
import androidx.annotation.StringRes;
import java.util.regex.Matcher;
@@ -19,6 +18,10 @@ public class UtilityString {
return stringToCheck == null || stringToCheck.trim().length() == 0;
}
+ public static String isNull(String stringToCheck, String alternativeString){
+ return isNullOrEmpty(stringToCheck) ? alternativeString : stringToCheck;
+ }
+
public static String empty2null(String stringToCheck) {
return (stringToCheck != null && stringToCheck.trim().length() == 0 || stringToCheck == null) ? null : stringToCheck.trim();
}
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 1f2ef3d9..bd5fef60 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
@@ -4,13 +4,7 @@ package it.integry.integrywmsnative.gest.accettazione;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
-
-import androidx.appcompat.widget.AppCompatTextView;
-import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
-import androidx.fragment.app.Fragment;
-import androidx.recyclerview.widget.LinearLayoutManager;
-
import android.text.Html;
import android.text.SpannableString;
import android.view.LayoutInflater;
@@ -18,27 +12,34 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
+import androidx.appcompat.widget.AppCompatTextView;
+import androidx.databinding.DataBindingUtil;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+
import com.annimon.stream.Stream;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.rest.CommonRESTException;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
+import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
+import it.integry.integrywmsnative.core.rest.CommonRESTException;
+import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBinding;
import it.integry.integrywmsnative.gest.accettazione.core.AccettazioneHelper;
import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneAdapter;
-import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
-import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
+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;
@@ -172,49 +173,43 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
private void onAccettazioneMainFabClick() {
List selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
- List barcodes = new ArrayList<>();
-
- for(OrdineAccettazioneInevasoDTO ordine : selectedOrders){
- if(!barcodes.contains(ordine.getBarcode())) barcodes.add(ordine.getBarcode());
- }
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
- mHelper.retrievePickingList(barcodes, ordini -> {
+ OrdiniAccettazioneRESTConsumer.retrievePickingListNewStatic(selectedOrders, sitArtOrds -> {
progress.dismiss();
- AtomicInteger artsCounter = new AtomicInteger();
- Stream.of(ordini).forEach(x -> {
- artsCounter.addAndGet((int) Stream.of(x.getOrdini()).filter(y -> y.getQtaDaEvadere().floatValue() > 0).count());
- });
+ long artsCounter = Stream.of(sitArtOrds)
+ .filter(x -> UtilityBigDecimal.greaterThan(x.getQtaDaEvadere(), BigDecimal.ZERO))
+ .map(SitArtOrdDTO::getCodMart)
+ .distinct()
+ .count();
- List ordersKeys = new ArrayList<>();
+ long ordsCounter = Stream.of(sitArtOrds)
+ .distinctBy(x -> x.getDataOrd() + " " + x.getNumOrd() + " " + x.getGestione())
+ .count();
- for(OrdineAccettazioneDTO ordine : ordini){
- if(!ordersKeys.contains(ordine.getData() + " " + ordine.getNumero() + " " + ordine.getGestione())){
- ordersKeys.add(ordine.getData() + " " + ordine.getNumero() + " " + ordine.getGestione());
- }
- }
DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
getText(R.string.orders).toString(),
- Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, ordersKeys.size()), ordersKeys.size())
+ Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, (int) ordsCounter), ordsCounter)
+ "
" +
- "" + artsCounter + " " + getActivity().getResources().getQuantityString(R.plurals.available_articles, artsCounter.get())),
+ "" + artsCounter + " " + getActivity().getResources().getQuantityString(R.plurals.available_articles, (int) artsCounter)),
null,
() -> {
- String cacheItemID = DataCache.addItem(ordini);
+ String cacheSitArtItemID = DataCache.addItem(sitArtOrds);
+ String cacheOrdersItemID = DataCache.addItem(selectedOrders);
- Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class);
- myIntent.putExtra("key", cacheItemID);
+ Intent myIntent = new Intent(getActivity(), AccettazionePickingActivity.class);
+ myIntent.putExtra("keyOrders", cacheOrdersItemID);
+ myIntent.putExtra("keySitArts", cacheSitArtItemID);
getActivity().startActivity(myIntent);
}).show();
}, ex -> {
-// Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show();
progress.dismiss();
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/AccettazioneHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/AccettazioneHelper.java
index bb9c546c..76241ce9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/AccettazioneHelper.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/AccettazioneHelper.java
@@ -2,19 +2,17 @@ package it.integry.integrywmsnative.gest.accettazione.core;
import android.content.Context;
import android.text.TextUtils;
-import android.util.Log;
import com.annimon.stream.Stream;
import java.util.ArrayList;
import java.util.List;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.EsitoType;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.settings.SettingsManager;
-import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumerService;
@@ -112,6 +110,8 @@ public class AccettazioneHelper {
+
+
public List getSelectedOrders(List ordiniList){
return Stream.of(ordiniList)
.filter(OrdineAccettazioneInevasoDTO::isSelected)
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/GetPickingListAccettazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/GetPickingListAccettazioneDTO.java
new file mode 100644
index 00000000..1d4063f7
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/GetPickingListAccettazioneDTO.java
@@ -0,0 +1,35 @@
+package it.integry.integrywmsnative.gest.accettazione.dto;
+
+public class GetPickingListAccettazioneDTO {
+ private String data;
+ private Integer numero;
+ private String gestione;
+
+
+ public String getData() {
+ return data;
+ }
+
+ public GetPickingListAccettazioneDTO setData(String data) {
+ this.data = data;
+ return this;
+ }
+
+ public Integer getNumero() {
+ return numero;
+ }
+
+ public GetPickingListAccettazioneDTO setNumero(Integer numero) {
+ this.numero = numero;
+ return this;
+ }
+
+ public String getGestione() {
+ return gestione;
+ }
+
+ public GetPickingListAccettazioneDTO setGestione(String gestione) {
+ this.gestione = gestione;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneInevasoDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneInevasoDTO.java
index 4859eee2..ed68459a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneInevasoDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneInevasoDTO.java
@@ -4,7 +4,6 @@ import java.util.Date;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.utility.UtilityDate;
-import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
/**
* Created by GiuseppeS on 06/03/2018.
@@ -31,6 +30,7 @@ public class OrdineAccettazioneInevasoDTO {
private String dataCons;
private String barcode;
private String gestione;
+ private boolean ordTrasf;
public BindableBoolean selected;
@@ -228,6 +228,14 @@ public class OrdineAccettazioneInevasoDTO {
return this;
}
+ public boolean isOrdTrasf() {
+ return ordTrasf;
+ }
+
+ public OrdineAccettazioneInevasoDTO setOrdTrasf(boolean ordTrasf) {
+ this.ordTrasf = ordTrasf;
+ return this;
+ }
public boolean isSelected() {
return selected.get();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/SitArtOrdDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/SitArtOrdDTO.java
new file mode 100644
index 00000000..96c9a3aa
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/SitArtOrdDTO.java
@@ -0,0 +1,282 @@
+package it.integry.integrywmsnative.gest.accettazione.dto;
+
+import java.math.BigDecimal;
+
+import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
+
+public class SitArtOrdDTO {
+ private String codJcom;
+ private String codMart;
+ private String codCol;
+ private String codTagl;
+ private String codAlis;
+ private String codArtFor;
+ private BigDecimal qtaOrd;
+ private BigDecimal numCnfOrd;
+ private BigDecimal qtaCnfOrd;
+ private BigDecimal qtaEvasa;
+ private BigDecimal qtaDaEvadere;
+ private BigDecimal numCnfDaEvadere;
+ private BigDecimal qtaRiservata;
+ private String untOrd;
+ private String codMdep;
+ private String dataOrd;
+ private int numOrd;
+ private String gestione;
+ private int rigaOrd;
+ private String codAnagOrd;
+ private String ragSocOrd;
+ private String codAnagCom;
+ private String ragSocCom;
+ private String rifOrd;
+ private String descrizioneCommessa;
+ private String termCons;
+ private String descrizioneEstesaArt;
+
+ public String getCodJcom() {
+ return codJcom;
+ }
+
+ public SitArtOrdDTO setCodJcom(String codJcom) {
+ this.codJcom = codJcom;
+ return this;
+ }
+
+ public String getCodMart() {
+ return codMart;
+ }
+
+ public SitArtOrdDTO setCodMart(String codMart) {
+ this.codMart = codMart;
+ return this;
+ }
+
+ public String getCodCol() {
+ return codCol;
+ }
+
+ public SitArtOrdDTO setCodCol(String codCol) {
+ this.codCol = codCol;
+ return this;
+ }
+
+ public String getCodTagl() {
+ return codTagl;
+ }
+
+ public SitArtOrdDTO setCodTagl(String codTagl) {
+ this.codTagl = codTagl;
+ return this;
+ }
+
+ public String getCodAlis() {
+ return codAlis;
+ }
+
+ public SitArtOrdDTO setCodAlis(String codAlis) {
+ this.codAlis = codAlis;
+ return this;
+ }
+
+ public String getCodArtFor() {
+ return codArtFor;
+ }
+
+ public SitArtOrdDTO setCodArtFor(String codArtFor) {
+ this.codArtFor = codArtFor;
+ return this;
+ }
+
+ public BigDecimal getQtaOrd() {
+ return qtaOrd;
+ }
+
+ public SitArtOrdDTO setQtaOrd(BigDecimal qtaOrd) {
+ this.qtaOrd = qtaOrd;
+ return this;
+ }
+
+ public BigDecimal getNumCnfOrd() {
+ return numCnfOrd;
+ }
+
+ public SitArtOrdDTO setNumCnfOrd(BigDecimal numCnfOrd) {
+ this.numCnfOrd = numCnfOrd;
+ return this;
+ }
+
+ public BigDecimal getQtaCnfOrd() {
+ return qtaCnfOrd;
+ }
+
+ public SitArtOrdDTO setQtaCnfOrd(BigDecimal qtaCnfOrd) {
+ this.qtaCnfOrd = qtaCnfOrd;
+ return this;
+ }
+
+ public BigDecimal getQtaEvasa() {
+ return qtaEvasa;
+ }
+
+ public SitArtOrdDTO setQtaEvasa(BigDecimal qtaEvasa) {
+ this.qtaEvasa = qtaEvasa;
+ return this;
+ }
+
+ public BigDecimal getQtaDaEvadere() {
+ return qtaDaEvadere;
+ }
+
+ public SitArtOrdDTO setQtaDaEvadere(BigDecimal qtaDaEvadere) {
+ this.qtaDaEvadere = qtaDaEvadere;
+ return this;
+ }
+
+ public BigDecimal getNumCnfDaEvadere() {
+ return numCnfDaEvadere;
+ }
+
+ public SitArtOrdDTO setNumCnfDaEvadere(BigDecimal numCnfDaEvadere) {
+ this.numCnfDaEvadere = numCnfDaEvadere;
+ return this;
+ }
+
+ public BigDecimal getQtaRiservata() {
+ return qtaRiservata;
+ }
+
+ public SitArtOrdDTO setQtaRiservata(BigDecimal qtaRiservata) {
+ this.qtaRiservata = qtaRiservata;
+ return this;
+ }
+
+ public String getUntOrd() {
+ return untOrd;
+ }
+
+ public SitArtOrdDTO setUntOrd(String untOrd) {
+ this.untOrd = untOrd;
+ return this;
+ }
+
+ public String getCodMdep() {
+ return codMdep;
+ }
+
+ public SitArtOrdDTO setCodMdep(String codMdep) {
+ this.codMdep = codMdep;
+ return this;
+ }
+
+ public String getDataOrd() {
+ return dataOrd;
+ }
+
+ public SitArtOrdDTO setDataOrd(String dataOrd) {
+ this.dataOrd = dataOrd;
+ return this;
+ }
+
+ public int getNumOrd() {
+ return numOrd;
+ }
+
+ public SitArtOrdDTO setNumOrd(int numOrd) {
+ this.numOrd = numOrd;
+ return this;
+ }
+
+ public String getGestione() {
+ return gestione;
+ }
+
+ public GestioneEnum getGestioneEnum() {
+ return GestioneEnum.fromString(gestione);
+ }
+
+ public SitArtOrdDTO setGestione(String gestione) {
+ this.gestione = gestione;
+ return this;
+ }
+
+ public int getRigaOrd() {
+ return rigaOrd;
+ }
+
+ public SitArtOrdDTO setRigaOrd(int rigaOrd) {
+ this.rigaOrd = rigaOrd;
+ return this;
+ }
+
+ public String getCodAnagOrd() {
+ return codAnagOrd;
+ }
+
+ public SitArtOrdDTO setCodAnagOrd(String codAnagOrd) {
+ this.codAnagOrd = codAnagOrd;
+ return this;
+ }
+
+ public String getRagSocOrd() {
+ return ragSocOrd;
+ }
+
+ public SitArtOrdDTO setRagSocOrd(String ragSocOrd) {
+ this.ragSocOrd = ragSocOrd;
+ return this;
+ }
+
+ public String getCodAnagCom() {
+ return codAnagCom;
+ }
+
+ public SitArtOrdDTO setCodAnagCom(String codAnagCom) {
+ this.codAnagCom = codAnagCom;
+ return this;
+ }
+
+ public String getRagSocCom() {
+ return ragSocCom;
+ }
+
+ public SitArtOrdDTO setRagSocCom(String ragSocCom) {
+ this.ragSocCom = ragSocCom;
+ return this;
+ }
+
+ public String getRifOrd() {
+ return rifOrd;
+ }
+
+ public SitArtOrdDTO setRifOrd(String rifOrd) {
+ this.rifOrd = rifOrd;
+ return this;
+ }
+
+ public String getDescrizioneCommessa() {
+ return descrizioneCommessa;
+ }
+
+ public SitArtOrdDTO setDescrizioneCommessa(String descrizioneCommessa) {
+ this.descrizioneCommessa = descrizioneCommessa;
+ return this;
+ }
+
+ public String getTermCons() {
+ return termCons;
+ }
+
+ public SitArtOrdDTO setTermCons(String termCons) {
+ this.termCons = termCons;
+ return this;
+ }
+
+ public String getDescrizioneEstesaArt() {
+ return descrizioneEstesaArt;
+ }
+
+ public SitArtOrdDTO setDescrizioneEstesaArt(String descrizioneEstesaArt) {
+ this.descrizioneEstesaArt = descrizioneEstesaArt;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumer.java
new file mode 100644
index 00000000..2320e41f
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumer.java
@@ -0,0 +1,53 @@
+package it.integry.integrywmsnative.gest.accettazione.rest;
+
+import com.annimon.stream.Stream;
+
+import java.util.List;
+
+import javax.inject.Singleton;
+
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.rest.RESTBuilder;
+import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.utility.UtilityLogger;
+import it.integry.integrywmsnative.gest.accettazione.dto.GetPickingListAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+@Singleton
+public class OrdiniAccettazioneRESTConsumer extends _BaseRESTConsumer {
+
+
+ public void retrievePickingListNew(List orders, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ retrievePickingListNewStatic(orders, onComplete, onFailed);
+ }
+
+ public static void retrievePickingListNewStatic(List orders, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ List getPickingListDTOs = Stream.of(orders)
+ .map(x -> new GetPickingListAccettazioneDTO()
+ .setData(x.getData())
+ .setGestione(x.getGestione())
+ .setNumero(x.getNumero()))
+ .toList();
+
+ OrdiniAccettazioneRESTConsumerService service = RESTBuilder.getService(OrdiniAccettazioneRESTConsumerService.class);
+ service.getArticoliFromOrdiniAccettazione(getPickingListDTOs).enqueue(new Callback>>() {
+ @Override
+ public void onResponse(Call>> call, Response>> response) {
+ analyzeAnswer(response, "retrieveListaArticoliFromOrdiniAccettazione", onComplete, onFailed);
+ }
+
+ @Override
+ public void onFailure(Call>> call, Throwable t) {
+ UtilityLogger.errorMe(new Exception(t));
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumerService.java
index f15e4453..90c40a99 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumerService.java
@@ -3,10 +3,14 @@ package it.integry.integrywmsnative.gest.accettazione.rest;
import java.util.List;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.gest.accettazione.dto.GetPickingListAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
import retrofit2.Call;
+import retrofit2.http.Body;
import retrofit2.http.GET;
+import retrofit2.http.POST;
import retrofit2.http.Query;
/**
@@ -15,13 +19,13 @@ import retrofit2.http.Query;
public interface OrdiniAccettazioneRESTConsumerService {
- @GET("SM2GetOrdiniAccettazioneInevasi")
- Call>> listOrdiniInevasi(@Query("codMdep") String codMdep);
-
@GET("SM2GetOrdiniAccettazioneInevasi")
Call>> listOrdiniInevasi(@Query("codMdep") String codMdep, @Query("gestione") String gestione);
@GET("WMSGetPickingListAccettazione")
Call>> pickingListAccettazione(@Query("codBarreBancale") String codBarreBacale);
+ @POST("wms/getArticoliFromOrdiniAccettazione")
+ Call>> getArticoliFromOrdiniAccettazione(@Body List pickingListAccettazioneDTOS);
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java
deleted file mode 100644
index 5c52bef3..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso;
-
-import android.content.Intent;
-import androidx.databinding.DataBindingUtil;
-
-import android.os.Bundle;
-import android.view.Menu;
-import android.view.MenuItem;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.expansion.BaseActivity;
-import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
-import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
-import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
-import it.integry.integrywmsnative.core.data_cache.DataCache;
-import it.integry.integrywmsnative.core.model.MtbColt;
-import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
-import it.integry.integrywmsnative.core.report.ReportManager;
-import it.integry.integrywmsnative.core.utility.UtilityExceptions;
-import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
-import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOrdineAccettazioneInevasoViewModel;
-import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
-import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
-
-public class AccettazioneOrdineInevasoActivity extends BaseActivity {
-
- public ActivityAccettazioneOrdineInevasoBinding bindings;
- private AccettazioneOrdineAccettazioneInevasoViewModel mAccettazioneOrdineInevasoViewModel;
- private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
-
- private static final int PICK_UL_REQUEST = 1; // The request code
-
- private int barcodeScannerIstanceID = -1;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- bindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso);
- FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
- mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
-
- List orders = DataCache.retrieveItem(getIntent().getStringExtra("key"));
- mAccettazioneOrdineInevasoViewModel = new AccettazioneOrdineAccettazioneInevasoViewModel(
- this, mArticoliInColloBottomSheetViewModel, orders);
-
- setSupportActionBar(this.bindings.toolbar);
-
- setTitle(orders);
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
- barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
- .setOnScanSuccessfull(mAccettazioneOrdineInevasoViewModel.onScanSuccessfull)
- .setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
-
- }
-
- @Override
- public boolean onSupportNavigateUp() {
- onBackPressed();
- return true;
- }
-
- @Override
- public void onBackPressed() {
- if(mArticoliInColloBottomSheetViewModel.isExpanded()){
- mArticoliInColloBottomSheetViewModel.collapse();
- } else if(mAccettazioneOrdineInevasoViewModel.thereIsAnOpenedUL()) {
- mArticoliInColloBottomSheetViewModel.closeCurrentUL();
- } else {
- BarcodeManager.removeCallback(barcodeScannerIstanceID);
- super.onBackPressed();
- }
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.activity_accettazione_ordine_inevaso, menu);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle item selection
- switch (item.getItemId()) {
- case R.id.action_filter:
- mAccettazioneOrdineInevasoViewModel.showOrderDialog();
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
-
-
- private void setTitle(List ordini){
- if(ordini.size() > 0){
- if(ordini.size() == 1){
- setTitle(ordini.get(0).getRagSoc());
- } else {
- setTitle(R.string.accettazione_ordine_inevaso_title_multiple_order);
- }
- } else {
- setTitle(R.string.accettazione_ordine_inevaso_title_empty);
- }
- }
-
-
-
- public void startListaBancaliRegistratiActivity(ArrayList mtbColts){
- Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, false, PrinterRESTConsumer.Type.SECONDARIA, ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
- this.startActivityForResult(myIntent, PICK_UL_REQUEST);
- }
-
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- // Check which request we're responding to
- if (requestCode == PICK_UL_REQUEST) {
- // Make sure the request was successful
- if (resultCode == RESULT_OK) {
-
- MtbColt recoveredMtbColt = DataCache.retrieveItem(data.getStringExtra("key"));
-
- mAccettazioneOrdineInevasoViewModel.recoverUL(recoveredMtbColt);
- }
- }
- }
-
-
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java
deleted file mode 100644
index 7b3fdad4..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java
+++ /dev/null
@@ -1,318 +0,0 @@
-package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core;
-
-import android.content.Context;
-import androidx.databinding.ObservableArrayList;
-import android.view.View;
-
-import com.annimon.stream.Stream;
-
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.CommonConst;
-import it.integry.integrywmsnative.core.model.MtbColr;
-import it.integry.integrywmsnative.core.utility.UtilityDate;
-import it.integry.integrywmsnative.core.utility.UtilityString;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoListViewModel;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy;
-
-/**
- * Created by GiuseppeS on 21/03/2018.
- */
-
-public class AccettazioneOrdineInevasoHelper {
-
- private Context mContext;
-
- private ObservableArrayList mListViewModels = new ObservableArrayList<>();
-
- public AccettazioneOrdineInevasoHelper(Context context){
- mContext = context;
- }
-
- public MainListOrdineAccettazioneAdapter getRightListAdapter(View emptyView) {
- return new MainListOrdineAccettazioneAdapter(mContext, mListViewModels, emptyView);
- }
-
- public void updateListModel(AccettazioneOrdineInevasoOrderBy.Enum orderByEnum, List> mDataset, List mtbColrs) throws Exception {
-
- mListViewModels.clear();
-
- switch (orderByEnum){
- case COD_ART_FOR:
- case DESCR_ART:
- mListViewModels.addAll(getListViewModelPerArtForn(mDataset, mtbColrs));
- break;
-
- case RAG_SOC_COM:
- mListViewModels.addAll(getListViewModelPerRagSocCommessa(mDataset, mtbColrs));
- break;
-
- default:
- throw new Exception("Cannot find right list adapter: " + orderByEnum.toString());
- }
-
- }
-
-
- public List> getOrdiniRaggruppatiPerCodArtForn(List mDataset, boolean forceHiddenCheck){
- List codArtForns = new ArrayList<>();
-
- for(int i = 0; i < mDataset.size(); i++){
- if(!codArtForns.contains(mDataset.get(i).getCodArtFor())){
- codArtForns.add(mDataset.get(i).getCodArtFor());
- }
-
- if(mDataset.get(i).codJcom == null) mDataset.get(i).codJcom = CommonConst.Config.COMMESSA_MAG;
- if(mDataset.get(i).codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) mDataset.get(i).descrizioneCommessa = null;
- }
-
- boolean anyNull = codArtForns.contains(null);
-
- codArtForns = Stream.of(codArtForns)
- .withoutNulls()
- .sortBy(x -> x).toList();
-
- if(anyNull) codArtForns.add(null);
-
-
- List> groupedRighe = new ArrayList<>();
- for (String codArtForn : codArtForns) {
-
- List tmpList = Stream.of(mDataset).filter(x -> (x.getCodArtFor() != null && x.getCodArtFor().equalsIgnoreCase(codArtForn)) || (x.getCodArtFor() == null && codArtForn == null)).toList();
-
- for(int i = 0; i < tmpList.size(); i++){
- if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
- if (tmpList.get(i).getQtaDaEvadere().floatValue() <= 0) {
- tmpList.get(i).setHidden(true);
- //tmpList.remove(i);
- //i--;
- } else tmpList.get(i).setHidden(false);
-
-
- tmpList.get(i).setTempHidden(false);
- }
- }
-
- if(tmpList.size() > 0){
- groupedRighe.add(tmpList);
- }
- }
-
- return groupedRighe;
- }
-
-
- public List> getOrdiniRaggruppatiPerDescrArt(List mDataset, boolean forceHiddenCheck){
- List descrArtForns = new ArrayList<>();
-
- for(int i = 0; i < mDataset.size(); i++){
- if(!descrArtForns.contains(mDataset.get(i).descrizioneEstesa)){
- descrArtForns.add(mDataset.get(i).descrizioneEstesa);
- }
-
- if(mDataset.get(i).codJcom == null) mDataset.get(i).codJcom = CommonConst.Config.COMMESSA_MAG;
- if(mDataset.get(i).codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) mDataset.get(i).descrizioneCommessa = null;
- }
-
- Collections.sort(descrArtForns, String::compareToIgnoreCase);
-
- List> groupedRighe = new ArrayList<>();
- for (String descrArtForn : descrArtForns) {
- List tmpList = Stream.of(mDataset).filter(x -> x.getDescrizioneEstesa() != null && x.getDescrizioneEstesa().equalsIgnoreCase(descrArtForn)).toList();
-
- for(int i = 0; i < tmpList.size(); i++){
- if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
- if (tmpList.get(i).getQtaDaEvadere().floatValue() <= 0) {
- tmpList.get(i).setHidden(true);
- } else tmpList.get(i).setHidden(false);
-
-
- tmpList.get(i).setTempHidden(false);
- }
- }
-
- if(tmpList.size() > 0){
- groupedRighe.add(tmpList);
- }
- }
-
- return groupedRighe;
- }
-
-
- private class RaggruppaPerCommessaUtilDTO {
- public String codJcom = "";
- public String ragSocCom = "";
- }
-
- public List> getOrdiniRaggruppatiPerRagSocCommessa(List mDataset, boolean forceHiddenCheck) {
- List commessaList = new ArrayList<>();
-
- commessaList.add(new RaggruppaPerCommessaUtilDTO());
-
- for(int i = 0; i < mDataset.size(); i++){
- boolean alreadyExists = false;
-
- if(mDataset.get(i).codJcom == null) mDataset.get(i).codJcom = CommonConst.Config.COMMESSA_MAG;
- if(mDataset.get(i).codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) mDataset.get(i).descrizioneCommessa = mContext.getText(R.string.stock).toString().toUpperCase();
-
-
- for(int k = 0; k < commessaList.size(); k++){
- if(commessaList.get(k).codJcom.equalsIgnoreCase(mDataset.get(i).codJcom)){
- alreadyExists = true;
- }
- }
-
- if(mDataset.get(i).codJcom != null && !alreadyExists){
- RaggruppaPerCommessaUtilDTO dto = new RaggruppaPerCommessaUtilDTO();
- dto.codJcom = mDataset.get(i).codJcom;
- dto.ragSocCom = mDataset.get(i).descrizioneCommessa;
- commessaList.add(dto);
- }
- }
-
- Collections.sort(commessaList, (dto1, dto2) -> {
- if(dto1.ragSocCom == null || dto2.codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) return -1;
- if(dto2.ragSocCom == null || dto1.codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) return 1;
-
- return dto1.ragSocCom.compareToIgnoreCase(dto2.ragSocCom);
- });
-
- List> groupedRighe = new ArrayList<>();
-
- for (RaggruppaPerCommessaUtilDTO dto : commessaList) {
-
- List tmpList = Stream.of(mDataset).filter(x -> x.getCodJcom().equalsIgnoreCase(dto.codJcom)).toList();
-
- for(int i = 0; i < tmpList.size(); i++){
- if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
- if (tmpList.get(i).getQtaDaEvadere().floatValue() <= 0) {
- tmpList.get(i).setHidden(true);
- //tmpList.remove(i);
- //i--;
- } else tmpList.get(i).setHidden(false);
-
- tmpList.get(i).setTempHidden(false);
- }
- }
-
- Collections.sort(tmpList, (obj1, obj2) -> obj1.mtbAart.getDescrizioneEstesa().compareToIgnoreCase(obj2.mtbAart.getDescrizioneEstesa()));
-
- if(tmpList.size() > 0){
- groupedRighe.add(tmpList);
- }
-
- }
-
- return groupedRighe;
- }
-
-
- public List getListViewModelPerArtForn(List> groupedRighe, List mtbColrs){
-
- List listModel = new ArrayList<>();
-
- for(int i = 0; i < groupedRighe.size(); i++){
- AccettazioneOrdineInevasoListViewModel itemModel = new AccettazioneOrdineInevasoListViewModel();
-
- itemModel.descrizioneGroup = "";
- itemModel.descrizioneGroup += !UtilityString.isNullOrEmpty(groupedRighe.get(i).get(0).getCodArtFor()) ? (groupedRighe.get(i).get(0).getCodArtFor() + " - ") : "";
- itemModel.descrizioneGroup += groupedRighe.get(i).get(0).descrizioneEstesa;
-
- itemModel.rows = new ArrayList<>();
-
- for(int k = 0; k < groupedRighe.get(i).size(); k++){
- final OrdineAccettazioneDTO.Riga rowItem = groupedRighe.get(i).get(k);
- final AccettazioneOrdineInevasoListViewModel.SubItem rowModel = new AccettazioneOrdineInevasoListViewModel.SubItem();
-
- rowModel.setBadge1(rowItem.codJcom != null ? rowItem.codJcom : CommonConst.Config.COMMESSA_MAG);
- rowModel.setBadge2(String.valueOf(rowItem.numOrd));
-
-// rowModel.descrizione = rowItem.ragSocCom;
- rowModel.setDescrizione(rowItem.descrizioneCommessa);
-
- rowModel.setQtaRiservata(getRigaQuantityEvasa(rowItem, mtbColrs));
- rowModel.setQtaOrdinata(rowItem.getQtaOrd());
-
- rowModel.setOriginalModel(rowItem);
-
- itemModel.rows.add(rowModel);
- }
- listModel.add(itemModel);
- }
-
- return listModel;
- }
-
-
- public List getListViewModelPerRagSocCommessa(List> groupedRighe, List mtbColrs) {
- List listModel = new ArrayList<>();
-
- for(int i = 0; i < groupedRighe.size(); i++){
- AccettazioneOrdineInevasoListViewModel itemModel = new AccettazioneOrdineInevasoListViewModel();
-
- if(groupedRighe.get(i).get(0).codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){
- itemModel.descrizioneGroup = mContext.getString(R.string.warehouse).toUpperCase();
- } else {
- itemModel.descrizioneGroup = groupedRighe.get(i).get(0).codJcom;
- }
-
- if(groupedRighe.get(i).get(0).ragSocCom != null && groupedRighe.get(i).get(0).ragSocCom.trim().length() > 0){
- itemModel.descrizioneGroup += " - " + groupedRighe.get(i).get(0).descrizioneCommessa;
- }
-
- itemModel.rows = new ArrayList<>();
-
- for(int k = 0; k < groupedRighe.get(i).size(); k++){
- final OrdineAccettazioneDTO.Riga rowItem = groupedRighe.get(i).get(k);
- final AccettazioneOrdineInevasoListViewModel.SubItem rowModel = new AccettazioneOrdineInevasoListViewModel.SubItem();
-
- rowModel.setBadge1(rowItem.getCodArtFor());
- rowModel.setBadge2(String.valueOf(rowItem.numOrd));
-
- rowModel.setDescrizione(rowItem.mtbAart.getDescrizioneEstesa());
-
- rowModel.setQtaRiservata(getRigaQuantityEvasa(rowItem, mtbColrs));
-// rowModel.qtaRiservata = decimalFormat.format(rowItem.qtaRiservate);
- rowModel.setQtaOrdinata(rowItem.getQtaOrd());
-
- rowModel.setOriginalModel(rowItem);
-
- itemModel.rows.add(rowModel);
- }
- listModel.add(itemModel);
- }
-
- return listModel;
- }
-
-
-
- private BigDecimal getRigaQuantityEvasa(OrdineAccettazioneDTO.Riga item, List mtbColrs){
- BigDecimal currentQtaEvasa = item.getQtaRiservate().add(item.getQtaEvasa());
-
- if(mtbColrs != null) {
- List filteredMtbColrs = Stream.of(mtbColrs)
- .filter(x -> x.getNumOrd() != null)
- .filter(
- x -> x.getCodMart().equalsIgnoreCase(item.mtbAart.getCodMart()) &&
- (x.getCodJcom() != null && x.getCodJcom().equalsIgnoreCase(item.codJcom)) &&
- x.getRigaOrd() == item.rigaOrd &&
- x.getNumOrd() == item.numOrd &&
- x.getDataOrdS().equals(UtilityDate.formatDate(item.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH))).toList();
-
-
- for (MtbColr mtbColr : filteredMtbColrs) {
- currentQtaEvasa = currentQtaEvasa.add(mtbColr.getQtaCol());
- }
- }
-
- return currentQtaEvasa;
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/IOnOrdineAccettazioneRowDispatchCallback.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/IOnOrdineAccettazioneRowDispatchCallback.java
deleted file mode 100644
index 491ce7a0..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/IOnOrdineAccettazioneRowDispatchCallback.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core;
-
-import it.integry.integrywmsnative.core.rest.model.Ean128Model;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
-
-public interface IOnOrdineAccettazioneRowDispatchCallback {
-
- void onOrdineRowDispatch(OrdineAccettazioneDTO.Riga item, Ean128Model ean128Model);
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java
deleted file mode 100644
index 2bdc38b9..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java
+++ /dev/null
@@ -1,247 +0,0 @@
-package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core;
-
-import android.content.Context;
-import androidx.databinding.ObservableArrayList;
-import androidx.databinding.ObservableList;
-import android.graphics.Color;
-import androidx.core.util.Pools;
-import androidx.recyclerview.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import com.annimon.stream.Stream;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.CommonConst;
-import it.integry.integrywmsnative.core.utility.UtilityNumber;
-import it.integry.integrywmsnative.core.utility.UtilityString;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoListViewModel;
-
-/**
- * Created by GiuseppeS on 21/03/2018.
- */
-
-public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter {
-
- private Context mContext;
- private List mDataset;
- private View mEmptyView;
-
- private ObservableArrayList mObservableDataset;
- private IOnOrdineAccettazioneRowDispatchCallback mOrdineRowDispatch;
-
- private static final Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(200);
-
- public static class ViewHolder extends RecyclerView.ViewHolder {
- // each data item is just a string in this case
- protected View mGroupTitle;
- protected LinearLayout mLinearLayoutGroupItemContainer;
-
- protected List pool = new ArrayList<>();
-
- public ViewHolder(View v) {
- super(v);
- }
- }
-
-
- public MainListOrdineAccettazioneAdapter(Context context, ObservableArrayList myDataset, View emptyView) {
- mContext = context;
- mObservableDataset = myDataset;
- mEmptyView = emptyView;
-
- mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
- mObservableDataset.addOnListChangedCallback(onListChangedCallback);
-
- checkIfEmpty();
- }
-
- public void setOnOrdineRowDispatchCallback(IOnOrdineAccettazioneRowDispatchCallback ordineRowDispatch) {
- mOrdineRowDispatch = ordineRowDispatch;
- }
-
- private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback>() {
- @Override
- public void onChanged(ObservableList sender) {
- refreshNotHiddenElements();
- notifyDataSetChanged();
- checkIfEmpty();
- }
-
- @Override
- public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
- refreshNotHiddenElements();
- notifyDataSetChanged();
- checkIfEmpty();
- }
-
- @Override
- public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
- refreshNotHiddenElements();
- notifyDataSetChanged();
- checkIfEmpty();
- }
-
- @Override
- public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
- refreshNotHiddenElements();
- notifyDataSetChanged();
- checkIfEmpty();
- }
-
- @Override
- public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
- refreshNotHiddenElements();
- notifyDataSetChanged();
- checkIfEmpty();
- }
-
- private void refreshNotHiddenElements() {
- mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
- }
- };
-
-
- @Override
- public MainListOrdineAccettazioneAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- // create a new view
- View v = LayoutInflater.from(parent.getContext())
- .inflate(R.layout.accettazione_ordine_inevaso_main_list___cod_art_for, parent, false);
-
- //v.setHasTransientState(true);
-
- ViewHolder vh = new ViewHolder(v);
-
- TextView descrizioneArtForn = v.findViewById(R.id.accettazione_ordine_inevaso_main_list_descrArtFor);
- vh.mGroupTitle = descrizioneArtForn;
-
- LinearLayout groupItemContainer = v.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_container);
- vh.mLinearLayoutGroupItemContainer = groupItemContainer;
-
- return vh;
- }
-
-
- // Replace the contents of a view (invoked by the layout manager)
- @Override
- public void onBindViewHolder(MainListOrdineAccettazioneAdapter.ViewHolder holder, int position) {
- // - get element from your dataset at this position
- // - replace the contents of the view with that element
-
- ((TextView)holder.mGroupTitle).setText(mDataset.get(position).descrizioneGroup);
-
- List subset = mDataset.get(position).rows;
-
- int visibleElementsCounter = 0;
-
- for(int i = 0; i < subset.size(); i++) {
-
- final AccettazioneOrdineInevasoListViewModel.SubItem rowItem = subset.get(i);
-
- if(!rowItem.getOriginalModel().isHidden() &&
- (rowItem.getOriginalModel().isTempHidden() == null ||
- (rowItem.getOriginalModel().isTempHidden() != null && !rowItem.getOriginalModel().isTempHidden()))) {
-
- visibleElementsCounter++;
-
- View groupModelViewPool = (View) sPool.acquire();
- if (groupModelViewPool == null) {
- groupModelViewPool = LayoutInflater.from(mContext)
- .inflate(R.layout.accettazione_ordine_inevaso_main_list___cod_art_for_group_model, holder.mLinearLayoutGroupItemContainer, false);
- }
-
-
- View groupModelView = groupModelViewPool;
- holder.pool.add(groupModelView);
-
- if (rowItem.getQtaRiservata().subtract(rowItem.getQtaOrdinata()).floatValue() >= 0 ) {
- groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
- } else if (rowItem.getQtaRiservata().floatValue() > 0) {
- groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
- } else if (visibleElementsCounter % 2 == 1) {
- groupModelView.setBackgroundColor(Color.WHITE);
- } else {
- groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
- }
-
-
- final TextView badge1 = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_badge1);
- badge1.setText(rowItem.getBadge1());
- badge1.setVisibility(UtilityString.isNullOrEmpty(rowItem.getBadge1()) ? View.GONE : View.VISIBLE);
-
- final TextView badge2 = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_badge2);
- badge2.setText(rowItem.getBadge2());
- badge2.setVisibility(UtilityString.isNullOrEmpty(rowItem.getBadge2()) ? View.GONE : View.VISIBLE);
-
-
- final TextView descrizione = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_descrizione);
-
- String descrizioneString = rowItem.getDescrizione();
- int descrizioneColor = Color.BLACK;
-
- if (UtilityString.isNullOrEmpty(descrizioneString)) {
- descrizioneString = mContext.getString(R.string.no_description);
- descrizioneColor = Color.GRAY;
- } else if (descrizioneString.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) {
- descrizioneString = mContext.getString(R.string.stock);
- }
-
- descrizione.setText(descrizioneString);
- descrizione.setTextColor(descrizioneColor);
-
- final TextView qtaEvasa = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_qta_evasa);
- qtaEvasa.setText(UtilityNumber.decimalToString(rowItem.getQtaRiservata()));
-
- final TextView qtaTot = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_qta_tot);
- qtaTot.setText(UtilityNumber.decimalToString(rowItem.getQtaOrdinata()));
-
-
- groupModelView.setOnClickListener(view -> {
- if (mOrdineRowDispatch != null) {
- mOrdineRowDispatch.onOrdineRowDispatch(rowItem.getOriginalModel(), null);
- }
- });
-
- holder.mLinearLayoutGroupItemContainer.addView(groupModelView);
- }
- }
-
- }
-
- @Override
- public void onViewRecycled(MainListOrdineAccettazioneAdapter.ViewHolder holder){
- if(holder != null){
- for(int i = 0; i < holder.pool.size(); i++){
- ((ViewGroup) holder.pool.get(i).getParent()).removeView(holder.pool.get(i));
- sPool.release(holder.pool.get(i));
- }
-
- holder.pool.clear();
- }
-
- super.onViewRecycled(holder);
- }
-
-
-
- // Return the size of your dataset (invoked by the layout manager)
- @Override
- public int getItemCount() {
- return mDataset.size();
- }
-
-
-
- void checkIfEmpty() {
- if (mEmptyView != null) {
- final boolean emptyViewVisible = getItemCount() == 0;
- mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
- }
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/dto/AccettazioneOrdineInevasoListViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/dto/AccettazioneOrdineInevasoListViewModel.java
deleted file mode 100644
index bac1ea7e..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/dto/AccettazioneOrdineInevasoListViewModel.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto;
-
-import com.annimon.stream.Stream;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
-
-/**
- * Created by GiuseppeS on 27/03/2018.
- */
-
-public class AccettazioneOrdineInevasoListViewModel {
-
- public String descrizioneGroup;
- public List rows;
-
- public boolean isHidden(){
- if(rows == null || rows.size() == 0) return true;
- return Stream.of(rows).filter(
- x -> (x.originalModel.isHidden() != null && !x.originalModel.isHidden()) &&
- (x.originalModel.isTempHidden() != null && !x.originalModel.isTempHidden())).count() == 0;
- }
-
- public static class SubItem {
-
- private String badge1;
- private String badge2;
-
- private String descrizione;
- private BigDecimal qtaRiservata;
- private BigDecimal qtaOrdinata;
-
- private OrdineAccettazioneDTO.Riga originalModel;
-
- public String getBadge1() {
- return badge1;
- }
-
- public SubItem setBadge1(String badge1) {
- this.badge1 = badge1;
- return this;
- }
-
- public String getBadge2() {
- return badge2;
- }
-
- public SubItem setBadge2(String badge2) {
- this.badge2 = badge2;
- return this;
- }
-
- public String getDescrizione() {
- return descrizione;
- }
-
- public SubItem setDescrizione(String descrizione) {
- this.descrizione = descrizione;
- return this;
- }
-
- public BigDecimal getQtaRiservata() {
- return qtaRiservata;
- }
-
- public SubItem setQtaRiservata(BigDecimal qtaRiservata) {
- this.qtaRiservata = qtaRiservata;
- return this;
- }
-
- public BigDecimal getQtaOrdinata() {
- return qtaOrdinata;
- }
-
- public SubItem setQtaOrdinata(BigDecimal qtaOrdinata) {
- this.qtaOrdinata = qtaOrdinata;
- return this;
- }
-
- public OrdineAccettazioneDTO.Riga getOriginalModel() {
- return originalModel;
- }
-
- public SubItem setOriginalModel(OrdineAccettazioneDTO.Riga originalModel) {
- this.originalModel = originalModel;
- return this;
- }
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOrdineAccettazioneInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOrdineAccettazioneInevasoViewModel.java
deleted file mode 100644
index d85b75f5..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOrdineAccettazioneInevasoViewModel.java
+++ /dev/null
@@ -1,948 +0,0 @@
-package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel;
-
-import android.app.Dialog;
-import android.text.SpannableString;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.databinding.ObservableArrayList;
-import androidx.databinding.ObservableField;
-import androidx.recyclerview.widget.LinearLayoutManager;
-
-import com.annimon.stream.Stream;
-import com.tfb.fbtoast.FBToast;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
-import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.CommonConst;
-import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-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.secondary.GestioneEnum;
-import it.integry.integrywmsnative.core.report.ReportManager;
-import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
-import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
-import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
-import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
-import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
-import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
-import it.integry.integrywmsnative.core.rest.model.Ean128Model;
-import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
-import it.integry.integrywmsnative.core.settings.SettingsManager;
-import it.integry.integrywmsnative.core.utility.UtilityBarcode;
-import it.integry.integrywmsnative.core.utility.UtilityDate;
-import it.integry.integrywmsnative.core.utility.UtilityExceptions;
-import it.integry.integrywmsnative.core.utility.UtilityLogger;
-import it.integry.integrywmsnative.core.utility.UtilityProgress;
-import it.integry.integrywmsnative.core.utility.UtilityString;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.AccettazioneOrdineInevasoHelper;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.IOnOrdineAccettazioneRowDispatchCallback;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.MainListOrdineAccettazioneAdapter;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.rest.OrdineAccettazioneInevasoRESTConsumerService;
-import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
-import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
-import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
-import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
-import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
-import it.integry.integrywmsnative.view.dialogs.note_aggiuntive_lu.NoteAggiuntiveLUDialog;
-
-public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloClosedCallback, IOnOrdineAccettazioneRowDispatchCallback {
-
- public ObservableField isFabVisible = new ObservableField<>();
-
- private AccettazioneOrdineInevasoActivity mActivity;
- private final ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
- private final List mOrders;
-
- private List> groupedRighe;
- private List groupedOrdini;
-
- private AccettazioneOrdineInevasoHelper helper;
-
- private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR;
- private MainListOrdineAccettazioneAdapter mAdapter;
-
- private GestioneEnum defaultGestioneOfUL = null;
-
- public AccettazioneOrdineAccettazioneInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List orders) {
- this.mActivity = activity;
- this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
- this.mOrders = orders;
-
- this.isFabVisible.set(true);
-
- this.mActivity.bindings.setViewmodel(this);
-
- this.init();
- }
-
- private void init() {
-
- currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(SettingsManager.i().getUserSession().getDefaultOrdinamentoPickingAccettazione());
-
- mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
- mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback(this::onRowDeleted);
- mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback(this::onRowEdited);
-
- groupedOrdini = new ArrayList<>();
- for (OrdineAccettazioneDTO ordine : mOrders) {
- groupedOrdini.addAll(ordine.getOrdini());
- }
-
- helper = new AccettazioneOrdineInevasoHelper(mActivity);
-
- groupedRighe = helper.getOrdiniRaggruppatiPerCodArtForn(groupedOrdini, true);
-
- initRecyclerView(groupedRighe);
-
-
- //Definizione della gestione collo di default
- List foundGestioni = Stream.of(groupedOrdini)
- .map(OrdineAccettazioneDTO.Riga::getGestioneOrdEnum)
- .withoutNulls()
- .distinctBy(x -> x)
- .toList();
-
- if (foundGestioni != null) {
-
- if (foundGestioni.size() == 1) {
- defaultGestioneOfUL = foundGestioni.get(0) == GestioneEnum.PRODUZIONE ? GestioneEnum.LAVORAZIONE : foundGestioni.get(0);
- } else {
- DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(mActivity.getString(R.string.error_multiple_gest)), null, () -> {
- mActivity.finish();
- }).show();
- return;
- }
- } else {
- DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(mActivity.getString(R.string.error_no_gest_found)), null, () -> {
- mActivity.finish();
- }).show();
- return;
- }
- }
-
-
- private void initRecyclerView(List> groupedRighe) {
- //RecyclerView setup
- mActivity.bindings.accettazioneOrdineMainList.setHasFixedSize(true);
-
- mActivity.bindings.accettazioneOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
-
- mAdapter = helper.getRightListAdapter(mActivity.bindings.accettazioneEmptyView);
-
- try {
- helper.updateListModel(AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR, groupedRighe, null);
- } catch (Exception e) {
- UtilityExceptions.defaultException(mActivity, e);
- }
-
- mAdapter.setOnOrdineRowDispatchCallback(this);
- mActivity.bindings.accettazioneOrdineMainList.setAdapter(mAdapter);
- }
-
- public void refreshOrderBy(boolean forceHiddenCheck) {
- switch (currentOrderBy) {
- case COD_ART_FOR:
- groupedRighe = helper.getOrdiniRaggruppatiPerCodArtForn(groupedOrdini, forceHiddenCheck);
- break;
- case DESCR_ART:
- groupedRighe = helper.getOrdiniRaggruppatiPerDescrArt(groupedOrdini, forceHiddenCheck);
- break;
-
- case RAG_SOC_COM:
- groupedRighe = helper.getOrdiniRaggruppatiPerRagSocCommessa(groupedOrdini, forceHiddenCheck);
- break;
-
- default:
- break;
- }
-
- try {
- List mtbColrs = getColloRef() != null ? getColloRef().getMtbColr() : null;
-
- helper.updateListModel(currentOrderBy, groupedRighe, mtbColrs);
- } catch (Exception e) {
- UtilityExceptions.defaultException(mActivity, e);
- }
- }
-
- public void applyFilter(String descriptionText) {
-
- mActivity.bindings.filteredArtsInListExpandableLayout.expand(true);
-
- mActivity.bindings.descriptionFilterText.setText(descriptionText);
- }
-
- public void removeListFilter() {
- for (int i = 0; i < groupedOrdini.size(); i++) {
- groupedOrdini.get(i).setTempHidden(false);
- }
-
- refreshOrderBy(false);
- mActivity.bindings.filteredArtsInListExpandableLayout.collapse(true);
- }
-
- public void recoverUL(MtbColt recoveredMtbColt) {
-
- for (int i = 0; i < recoveredMtbColt.getMtbColr().size(); i++) {
-
- MtbColr currentMtbColr = recoveredMtbColt.getMtbColr().get(i);
-
- /*
- List foundRows = Stream.of(groupedOrdini)
- .filter(x -> x.getNumOrd() == currentMtbColr.getNumOrd() &&
- x.getRigaOrd() == currentMtbColr.getRigaOrd()&&
- x.getDataOrdD().equals(currentMtbColr.getDataOrdD()))
- .toList();
- */
-
- List foundRows = Stream.of(groupedOrdini)
- .filter(x -> Objects.equals(x.mtbAart.getCodMart(), currentMtbColr.getCodMart()) &&
- Objects.equals(x.getPartitaMag(), currentMtbColr.getPartitaMag()) &&
- Objects.equals(x.getCodJcom(), currentMtbColr.getCodJcom()))
- .toList();
-
-
- if (foundRows != null && foundRows.size() > 0) {
- OrdineAccettazioneDTO.Riga currentRow = foundRows.get(0);
-
- currentRow.setHidden(false);
- currentRow.setQtaRiservate(currentRow.getQtaRiservate().subtract(currentMtbColr.getQtaCol()));
- }
-
- }
-
-
- setULToCurrentContext(recoveredMtbColt);
- refreshOrderBy(false);
- }
-
-
- public RunnableArgs onScanSuccessfull = data -> {
-
- Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mActivity);
-
- BarcodeManager.disable();
- if (UtilityBarcode.isEtichettaAnonima(data)) {
- if (!thereIsAnOpenedUL()) this.executeEtichettaAnonima(data, progressDialog);
- else {
- DialogSimpleMessageHelper.makeErrorDialog(
- mActivity,
- new SpannableString(mActivity.getString(R.string.lu_scan_not_granted_here)),
- null,
- () -> {
- BarcodeManager.enable();
- progressDialog.dismiss();
- })
- .show();
- }
- } else if (UtilityBarcode.isEtichetta128(data)) {
- this.executeEtichettaEan128(data, progressDialog);
- } else if (UtilityBarcode.isEanPeso(data)) {
- this.executeEtichettaEanPeso(data, progressDialog);
- } else {
- this.loadArticolo(data.getStringValue(), null, progressDialog);
- }
-
- };
-
-
- private void executeEtichettaAnonima(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) {
- ColliMagazzinoRESTConsumer.getBySSCCStatic(barcodeScanDTO.getStringValue(), false, false, mtbColt -> {
-
- if (mtbColt == null) {
- if (!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) {
- UtilityExceptions.defaultException(mActivity, new Exception("Per continuare scansiona un'etichetta dell'anno corrente"), progressDialog, false);
- BarcodeManager.enable();
- } else {
- this.createNewUL(UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()), CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog, true, null);
- BarcodeManager.enable();
- }
- } else {
- progressDialog.dismiss();
- BarcodeManager.enable();
- DialogSimpleMessageHelper.makeWarningDialog(mActivity,
- new SpannableString(mActivity.getResources().getText(R.string.already_used_anonymous_barcode)),
- null, null).show();
- }
-
- }, ex -> {
- UtilityExceptions.defaultException(mActivity, ex, progressDialog);
- BarcodeManager.enable();
- });
- }
-
-
- private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) {
- BarcodeRESTConsumer.decodeEan128Static(barcodeScanDTO, ean128Model -> {
-
- String barcodeProd = null;
-
- if (ean128Model.Sscc != null) barcodeProd = ean128Model.Sscc;
- if (ean128Model.Gtin != null) barcodeProd = ean128Model.Gtin;
- if (ean128Model.Content != null) barcodeProd = ean128Model.Content;
-
-
- if (!UtilityString.isNullOrEmpty(barcodeProd)) {
- if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
- barcodeProd = barcodeProd.substring(1, barcodeProd.length());
- }
- this.loadArticolo(barcodeProd, ean128Model, progressDialog);
- } else {
- //EAN 128 non completo o comunque mancano i riferimenti al prodotto
- progressDialog.dismiss();
- BarcodeManager.enable();
- }
- }, ex -> {
- UtilityExceptions.defaultException(mActivity, ex, progressDialog);
- BarcodeManager.enable();
- });
- }
-
- private void executeEtichettaEanPeso(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) {
-
- try {
- Ean13PesoModel ean13PesoModel = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue());
-
- this.loadArticolo(ean13PesoModel.getPrecode(), ean13PesoModel.toEan128(), progressDialog);
- } catch (Exception ex) {
- UtilityExceptions.defaultException(mActivity, ex, progressDialog);
- BarcodeManager.enable();
- }
- }
-
-
- private void loadArticolo(String barcodeProd, Ean128Model ean128Model, Dialog progressDialog) {
- if (barcodeProd.length() == 14) {
-// barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd);
- barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
- }
-
- ArticoloRESTConsumer.getByBarcodeProdStatic(barcodeProd, mtbAartList -> {
-
- if (mtbAartList != null && mtbAartList.size() > 0) {
-
- if (!thereIsAnOpenedUL()) {
-
- if (SettingsManager.iDB().isFlagCanAutoOpenNewULAccettazione()) {
- this.createNewUL(null, null, progressDialog, false, () -> {
- BarcodeManager.enable();
- this.searchArtInList(mtbAartList.get(0), ean128Model);
- });
- } else {
- BarcodeManager.enable();
- progressDialog.dismiss();
-
- showPleaseOpenULDialog();
- }
-
- } else {
- this.searchArtInList(mtbAartList.get(0), ean128Model);
-
- BarcodeManager.enable();
- progressDialog.dismiss();
- }
-
- } else {
- BarcodeManager.enable();
- progressDialog.dismiss();
-
- DialogSimpleMessageHelper.makeWarningDialog(mActivity,
- new SpannableString(mActivity.getResources().getText(R.string.no_result_from_barcode)),
- null, null)
- .show();
- }
-
- }, ex -> {
- BarcodeManager.enable();
- UtilityExceptions.defaultException(mActivity, ex, progressDialog);
- });
- }
-
- private void searchArtInList(MtbAart mtbAart, Ean128Model ean128Model) {
- removeListFilter();
-
- List foundRowsList = Stream.of(groupedOrdini)
- .filter(x -> x.getMtbAart().getCodMart().equalsIgnoreCase(mtbAart.getCodMart()) &&
- (x.isHidden() != null && !x.isHidden()) && (x.isTempHidden() != null && !x.isTempHidden()))
- .toList();
-
- if (foundRowsList.size() == 0) {
- showNoArtFoundDialog();
- } else if (foundRowsList.size() == 1) {
- onOrdineRowDispatch(foundRowsList.get(0), ean128Model);
- } else {
- for (int i = 0; i < groupedOrdini.size(); i++) {
- if (!foundRowsList.contains(groupedOrdini.get(i))) {
- groupedOrdini.get(i).setTempHidden(true);
- }
- }
-
- applyFilter("COD: " + mtbAart.getCodMart());
- refreshOrderBy(false);
- }
- }
-
-
- private void showNoArtFoundDialog() {
- DialogSimpleMessageHelper.makeWarningDialog(mActivity,
- new SpannableString(mActivity.getResources().getText(R.string.no_result_from_barcode)),
- null, null).show();
- }
-
- private void showPleaseOpenULDialog() {
- DialogSimpleMessageHelper.makeWarningDialog(mActivity,
- new SpannableString(mActivity.getResources().getText(R.string.please_open_lu)),
- null, null).show();
- }
-
- public void showOrderDialog() {
-
- AlertDialog dialog = new AlertDialog.Builder(mActivity)
- .setTitle(mActivity.getText(R.string.action_orderBy))
- .setSingleChoiceItems(AccettazioneOrdineInevasoOrderBy.descriptions, currentOrderBy.getVal(), (dialog12, which) -> {
- currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(which);
- SettingsManager.i().getUserSession().setDefaultOrdinamentoPickingAccettazione(which);
- })
- .setPositiveButton("Ok", (dialog1, which) -> refreshOrderBy(false))
- .create();
- dialog.show();
- }
-
-
- public void createNewUL() {
- this.createNewUL(null, null, null, false, null);
- }
-
- public void createNewUL(Integer customNumCollo, String customSerCollo, Dialog progress, boolean disablePrint, Runnable onComplete) {
-
- mActivity.bindings.accettazioneOrdineInevasoFab.close(true);
-
- if (progress == null) {
- progress = UtilityProgress.createDefaultProgressDialog(mActivity);
- }
-
- Dialog finalProgress = progress;
- NoteAggiuntiveLUDialog.make(mActivity, noteString -> {
- //Add loading dialog here
- finalProgress.show();
-
- GestSetupRESTConsumer.getValue("PICKING", "SETUP", "DEFAULT_POSIZIONE_COLLI_ACCETTAZIONE", defaultPosAccettazioneDTO -> {
-
- String defaultPosAccettazione = "";
- if (defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value))
- defaultPosAccettazione = defaultPosAccettazioneDTO.value;
-
- MtbColt mtbColt = new MtbColt();
- mtbColt
- .initDefaultFields()
- .setGestione(defaultGestioneOfUL)
- .setAnnotazioni(noteString)
- .setPosizione(defaultPosAccettazione)
- .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
-
- if (customNumCollo != null) {
- mtbColt.setNumCollo(customNumCollo);
- }
-
- if (!UtilityString.isNullOrEmpty(customSerCollo)) {
- mtbColt.setSerCollo(customSerCollo);
- }
-
- List codAnags =
- Stream.of(mOrders)
- .map(OrdineAccettazioneDTO::getCodAnag)
- .distinct()
- .toList();
-
- if (codAnags != null && codAnags.size() == 1) {
- mtbColt.setCodAnag(codAnags.get(0));
- }
-
- List rifOrds =
- Stream.of(mOrders)
- .map(OrdineAccettazioneDTO::getRifOrd)
- .distinct()
- .toList();
-
- if (rifOrds != null && rifOrds.size() == 1) {
- mtbColt.setRifOrd(rifOrds.get(0));
- }
-
- List numDataOrds =
- Stream.of(mOrders)
- .map(value -> value.getNumero() + value.getData())
- .distinct()
- .toList();
-
- if (numDataOrds != null && numDataOrds.size() == 1) {
- mtbColt.setNumOrd(mOrders.get(0).getNumero());
- mtbColt.setDataOrd(mOrders.get(0).getData());
-
- try {
- mtbColt.generaFiltroOrdine();
- } catch (Exception ex) {
- DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(ex.getMessage()), null, null).show();
- return;
- }
- }
-
-
- ColliMagazzinoRESTConsumer.saveColloStatic(mtbColt, new ISimpleOperationCallback() {
- @Override
- public void onSuccess(MtbColt value) {
-
- value
- .setDisablePrint(disablePrint)
- .setMtbColr(new ObservableArrayList<>());
-
- value.setMtbCols(null);
-
- setULToCurrentContext(value);
-
- finalProgress.dismiss();
-
- FBToast.successToast(mActivity, mActivity.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
-
- if (onComplete != null) onComplete.run();
-
- }
-
- @Override
- public void onFailed(Exception ex) {
- UtilityExceptions.defaultException(mActivity, ex, finalProgress);
- }
- });
- }, ex -> UtilityExceptions.defaultException(mActivity, ex, finalProgress));
-
- }, finalProgress::dismiss).show();
-
-
- }
-
-
- private void setULToCurrentContext(MtbColt mtbColt) {
- isFabVisible.set(false);
- mArticoliInColloBottomSheetViewModel.mtbColt.set(mtbColt);
- }
-
- //Al click di "Mostra UL già create"
- public void showCreatedUL() {
-
- final Dialog progress = UtilityProgress.createDefaultProgressDialog(mActivity);
-
-
- mActivity.bindings.accettazioneOrdineInevasoFab.close(false);
-
- try {
- OrdineAccettazioneInevasoRESTConsumerService.getBancaliGiaRegistrati(mOrders, mtbColts -> {
-
- progress.dismiss();
-
- mActivity.startListaBancaliRegistratiActivity((ArrayList) mtbColts);
-
- }, ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
- } catch (Exception ex) {
- UtilityExceptions.defaultException(mActivity, ex, progress);
- }
-
- }
-
- @Override
- public void onColloClosed(Runnable onComplete, boolean shouldPrint) {
- if (thereIsAnOpenedUL()) {
-
- final Dialog progress = UtilityProgress.createDefaultProgressDialog(mActivity);
- progress.show();
-
- if (thereIsAnyRowInUL()) {
- ColliMagazzinoRESTConsumer.updateDataFineStatic(getColloRef(), () -> {
- if (shouldPrint) printCollo(progress, onComplete);
- else {
- postCloseOperations(onComplete);
- progress.dismiss();
- }
- }, ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
- } else {
- deleteCollo(progress, onComplete);
- }
-
- } else {
- if (onComplete != null) onComplete.run();
- }
-
- }
-
- private void printCollo(Dialog progress, Runnable onComplete) {
- MtbColt currentMtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get();
-
- if (currentMtbColt.getDisablePrint()) {
- postCloseOperations(onComplete);
- progress.dismiss();
- return;
- }
-
- PrinterRESTConsumer.getAvailablePrintersStatic(SettingsManager.i().getUserSession().getDepo().getCodMdep(), PrinterRESTConsumer.Type.SECONDARIA, value -> {
-
- if (value.size() > 0) {
- try {
-
-
- ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO, reportName -> {
-
- PrinterRESTConsumer.printColloStatic(
- value.get(0),
- currentMtbColt,
- 1, reportName, () -> {
-
- postCloseOperations(onComplete);
- progress.dismiss();
-
- }, ex -> {
-
- progress.dismiss();
- String errorMessage = ex.getMessage();
- DialogSimpleMessageHelper.makeErrorDialog(
- mActivity,
- new SpannableString(errorMessage),
- null,
- null,
- R.string.button_ignore_print,
- () -> postCloseOperations(onComplete)).show();
- });
-
- }, ex -> UtilityExceptions.defaultException(mActivity, ex, progress)
- );
- } catch (Exception ex) {
- UtilityExceptions.defaultException(mActivity, ex, progress);
- }
- } else {
- resetUL();
- isFabVisible.set(true);
-
- progress.dismiss();
- String errorMessage = "Nessuna stampante configurata";
- DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, null).show();
- }
- }, ex -> {
- UtilityExceptions.defaultException(mActivity, ex, progress);
- });
- }
-
-
- private void deleteCollo(Dialog progress, Runnable onComplete) {
-
- ColliMagazzinoRESTConsumer.deleteColloStatic(getColloRef(), () -> {
- mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
-
- isFabVisible.set(true);
-
- progress.dismiss();
- if (onComplete != null) onComplete.run();
- }, ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
- }
-
-
- public boolean thereIsAnOpenedUL() {
- return getColloRef() != null;
- }
-
- public boolean thereIsAnyRowInUL() {
- return getColloRef() != null &&
- getColloRef().getMtbColr() != null &&
- getColloRef().getMtbColr().size() > 0;
- }
-
-
- private void postCloseOperations(Runnable onComplete) {
-
- MtbColt mtbColt = (MtbColt) getColloRef().clone();
-
- resetUL();
-
- isFabVisible.set(true);
-
- if (mtbColt != null && mtbColt.getMtbColr() != null) {
- for (int i = 0; i < mtbColt.getMtbColr().size(); i++) {
-
- MtbColr currentRow = mtbColt.getMtbColr().get(i);
-
- if (currentRow.getRigaOrd() != null) {
-
- for (int k = 0; k < this.groupedOrdini.size(); k++) {
-
- OrdineAccettazioneDTO.Riga x = this.groupedOrdini.get(k);
-
- if (x.getQtaDaEvadere().floatValue() > 0 &&
- x.getMtbAart().getCodMart().equalsIgnoreCase(currentRow.getCodMart()) &&
- x.getCodJcom().equalsIgnoreCase(currentRow.getCodJcom()) &&
- x.getRigaOrd() == currentRow.getRigaOrd() &&
- x.getDataOrdD().equals(currentRow.getDataOrdD()) &&
- x.getNumOrd() == currentRow.getNumOrd()) {
-
- x.setQtaRiservate(x.getQtaRiservate().add(currentRow.getQtaCol()));
- }
-
-
- }
-
-// Stream.of(this.groupedOrdini)
-// .filter(x ->
-// x.getQtaDaEvadere().floatValue() > 0 &&
-// x.getMtbAart().getCodMart().equalsIgnoreCase(currentRow.getCodMart()) &&
-// x.getCodJcom().equalsIgnoreCase(currentRow.getCodJcom()) &&
-// x.getRigaOrd() == currentRow.getRigaOrd() &&
-// x.getDataOrdD().equals(currentRow.getDataOrdD()) &&
-// x.getNumOrd() == currentRow.getNumOrd()
-// )
-// .forEach(x -> {
-// x.setQtaRiservate(x.getQtaRiservate().add(currentRow.getQtaCol()));
-// });
-
- }
-
- }
- }
-
- removeListFilter();
- refreshOrderBy(true);
-
- if (onComplete != null) onComplete.run();
-
- }
-
- @Override
- public void onOrdineRowDispatch(final OrdineAccettazioneDTO.Riga item, Ean128Model ean128Model) {
- if (getColloRef() != null) {
-
- List currentMtbColrs = getColloRef().getMtbColr();
-
- List filteredMtbColrs = Stream.of(currentMtbColrs).filter(
- x -> x.getCodMart().equalsIgnoreCase(item.mtbAart.getCodMart()) &&
- x.getNumOrd() == item.numOrd &&
- (x.getCodJcom() != null && x.getCodJcom().equalsIgnoreCase(item.codJcom)) &&
- x.getRigaOrd() == item.rigaOrd).toList();
-
- float qtaEvasaInMtbColr = 0;
- for (MtbColr mtbColr : filteredMtbColrs) {
- qtaEvasaInMtbColr += mtbColr.getQtaCol().floatValue();
- }
-
- float qtaEvasa = item.qtaRiservate + qtaEvasaInMtbColr;
-
-
- BigDecimal qtaDaEvadere;
-
- BigDecimal totalQtaDaEvadere = item.getQtaOrd().subtract(new BigDecimal(qtaEvasa)).subtract(item.getQtaEvasa());
-
- BigDecimal qtaColliPedana = item.mtbAart.getColliPedana().multiply(item.mtbAart.getQtaCnf());
-
- if (qtaColliPedana.floatValue() > 0 && qtaColliPedana.compareTo(totalQtaDaEvadere) <= 0) {
- qtaDaEvadere = qtaColliPedana;
- } else {
- qtaDaEvadere = totalQtaDaEvadere;
- }
-
- DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
- .setBatchLot(item.getPartitaMag())
- .setCodArtFor(item.getCodArtFor())
- .setMtbAart(item.getMtbAart())
- .setQtaOrd(item.getQtaOrd())
- .setQtaDaEvadere(qtaDaEvadere)
- .setQtaEvasa(new BigDecimal(qtaEvasa))
- .setCanPartitaMagBeChanged(true);
-
- if (ean128Model != null) {
- if (!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) {
- dto.setBatchLot(ean128Model.BatchLot);
- }
-
- try {
- if (!UtilityString.isNullOrEmpty(ean128Model.BestBefore)) {
- dto.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore));
- } else if (!UtilityString.isNullOrEmpty(ean128Model.Expiry)) {
- dto.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry));
- }
-
- } catch (Exception e) {
- UtilityLogger.errorMe(e);
- }
-
-
- if (ean128Model.Count != null && ean128Model.Count > 0) {
- //if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
- dto.setQtaTot(new BigDecimal(ean128Model.Count));
-
- if (!item.getMtbAart().isFlagQtaCnfFissaBoolean()) {
- dto.setQtaCnf(new BigDecimal(ean128Model.Count));
- }
- //} else {
- // dto.setQtaTot(new BigDecimal(ean128Model.Count));
- //}
- }
-
- if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0) {
- dto.setQtaTot(new BigDecimal(ean128Model.NetWeightKg));
- }
-
- if (dto.getQtaTot() != null && dto.getQtaTot().floatValue() > 0 && dto.getNumCnf() != null && dto.getNumCnf() > 0) {
- dto.setQtaCnf(dto.getQtaTot().divide(new BigDecimal(dto.getNumCnf())));
- }
-
- dto.setCanPartitaMagBeChanged(false);
- dto.setCanDataScadBeChanged(false);
- dto.setShouldAskDataScad(true);
- }
-
- DialogInputQuantity.makeBase(mActivity, dto, true, (quantityDTO, closeLU) -> onOrdineRowDispatched(item, quantityDTO, closeLU), null).show();
- }
- }
-
- private void onOrdineRowDispatched(OrdineAccettazioneDTO.Riga item, QuantityDTO quantityDTO, boolean closeLU) {
- final Dialog progress = UtilityProgress.createDefaultProgressDialog(mActivity);
-
- String gestioneRif = item.getGestioneOrdEnum() == GestioneEnum.PRODUZIONE ? "L" : item.getGestioneOrd();
-
-
- final MtbColr mtbColr = new MtbColr()
- .setCodMart(item.getMtbAart().getCodMart())
- .setPartitaMag(quantityDTO.batchLot.get())
- .setDataScadPartita(quantityDTO.expireDate)
- .setQtaCol(quantityDTO.qtaTot.getBigDecimal())
- .setDescrizione(item.getDescrizioneEstesa())
- .setNumOrd(item.getNumOrd())
- .setDataOrd(item.getDataOrdD())
- .setGestioneRif(gestioneRif)
- .setCodJcom(item.getCodJcom())
- .setRigaOrd(item.getRigaOrd());
-
- if (!item.getMtbAart().isFlagQtaCnfFissaBoolean()) {
- mtbColr.setQtaCnf(quantityDTO.qtaCnf.getBigDecimal());
- }
-
- mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
-
- MtbColt cloneMtbColt = (MtbColt) getColloRef().clone();
- cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
-
- cloneMtbColt.setMtbColr(new ObservableArrayList<>());
- cloneMtbColt.getMtbColr().add(mtbColr);
-
- ColliMagazzinoRESTConsumer.saveColloStatic(cloneMtbColt, new ISimpleOperationCallback() {
- @Override
- public void onSuccess(MtbColt value) {
-
- mtbColr
- .setDataCollo(value.getDataColloS())
- .setNumCollo(value.getNumCollo())
- .setGestione(value.getGestione())
- .setSerCollo(value.getSerCollo())
- .setRiga(value.getMtbColr().get(0).getRiga())
- .setUntMis(item.getMtbAart().getUntMis())
- .setMtbAart(item.getMtbAart());
-
- //item.setQtaRiservate(item.getQtaRiservate().add(mtbColr.getQtaCol()));
-
- getColloRef().getMtbColr().add(mtbColr);
- refreshOrderBy(false);
-
- FBToast.successToast(mActivity, mActivity.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
- progress.dismiss();
-
- if (closeLU) onColloClosed(null, true);
- }
-
- @Override
- public void onFailed(Exception ex) {
- UtilityExceptions.defaultException(mActivity, ex, progress);
- }
- });
-
- }
-
-
- private MtbColt getColloRef() {
- return mArticoliInColloBottomSheetViewModel.mtbColt.get();
- }
-
- private void resetUL() {
- mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
- }
-
- private void onRowEdited(MtbColr oldValue, MtbColr newValue) {
-
-// if (getColloRef() != null) {
-//
-// Dialog progress = UtilityProgress.createDefaultProgressDialog(mActivity);
-//
-// Optional optionalMtbColrToEditOfAccettazione = Stream.of(getColloRef().getMtbColr())
-// .filter(x -> UtilityBigDecimal.equalsTo(x.getQtaCol(), oldValue.getQtaCol()) &&
-// UtilityString.equalsIgnoreCase(x.getCodMart(), oldValue.getCodMart()) &&
-// UtilityString.equalsIgnoreCase(x.getPartitaMag(), oldValue.getPartitaMag()) &&
-// UtilityString.equalsIgnoreCase(x.getCodJcom(), oldValue.getCodJcom()))
-// .findFirst();
-//
-// if(optionalMtbColrToEditOfAccettazione.isPresent()) {
-// MtbColr mtbColrToEditOfAccettazione = optionalMtbColrToEditOfAccettazione.get();
-//
-// mtbColrToEditOfAccettazione
-// .setQtaCol(newValue.getQtaCol());
-//
-// ColliMagazzinoRESTConsumer.updateRiga(mtbColrToEditOfAccettazione, () -> {
-// progress.dismiss();
-// this.refreshOrderBy(false);
-// }, ex -> {
-// UtilityExceptions.defaultException(mActivity, ex, progress);
-// this.refreshOrderBy(false);
-// });
-//
-// }
-//
-// } else {
-//
- this.refreshOrderBy(false);
-// }
-
- }
-
- private void onRowDeleted(MtbColr deletedValue) {
-
-// if(getColloRef() != null) {
-
-// Dialog progress = UtilityProgress.createDefaultProgressDialog(mActivity);
-
-// MtbColr mtbColrToDeleteOfAccettazione = Stream.of(getColloRef().getMtbColr())
-// .filter(x -> x.getQtaCol().compareTo(deletedValue.getQtaCol()) == 0 &&
-// x.getCodMart().equalsIgnoreCase(deletedValue.getCodMart()) &&
-// x.getPartitaMag().equalsIgnoreCase(deletedValue.getPartitaMag()) &&
-// x.getCodJcom().equalsIgnoreCase(deletedValue.getCodJcom()))
-// .findFirst()
-// .get();
-
-// ColliMagazzinoRESTConsumer.deleteRiga(mtbColrToDeleteOfAccettazione, () -> {
-// getColloRef().getMtbColr().remove(mtbColrToDeleteOfAccettazione);
-//
-// progress.dismiss();
-// this.refreshOrderBy(false);
-// }, ex -> {
-// UtilityExceptions.defaultException(mActivity, ex, progress);
-// this.refreshOrderBy(false);
-// });
-
-// } else {
-
- this.refreshOrderBy(false);
-// }
- }
-
-}
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
new file mode 100644
index 00000000..b7278a46
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
@@ -0,0 +1,575 @@
+package it.integry.integrywmsnative.gest.accettazione_picking;
+
+import android.content.Intent;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.text.SpannableString;
+import android.view.Menu;
+import android.view.MenuItem;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.databinding.DataBindingUtil;
+import androidx.databinding.ObservableArrayList;
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import com.annimon.stream.Stream;
+import com.tfb.fbtoast.FBToast;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.MainApplication;
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.CommonConst;
+import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
+import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
+import it.integry.integrywmsnative.core.data_cache.DataCache;
+import it.integry.integrywmsnative.core.di.BindableBoolean;
+import it.integry.integrywmsnative.core.expansion.BaseActivity;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.expansion.RunnableArgss;
+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.secondary.GestioneEnum;
+import it.integry.integrywmsnative.core.report.ReportManager;
+import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
+import it.integry.integrywmsnative.core.settings.SettingsManager;
+import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
+import it.integry.integrywmsnative.core.utility.UtilityExceptions;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.core.utility.UtilityToast;
+import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
+import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
+import it.integry.integrywmsnative.gest.accettazione_picking.core.AccettazioneListAdapter;
+import it.integry.integrywmsnative.gest.accettazione_picking.core.AccettazioneListModel;
+import it.integry.integrywmsnative.gest.accettazione_picking.dto.AccettazioneOrdineInevasoOrderBy;
+import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
+import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
+import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
+import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView;
+import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
+import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
+import it.integry.integrywmsnative.view.dialogs.note_aggiuntive_lu.NoteAggiuntiveLUDialog;
+
+public class AccettazionePickingActivity extends BaseActivity implements AccettazionePickingViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
+
+ private ActivityAccettazioneOrdineInevasoBinding mBindings;
+
+ @Inject
+ AccettazionePickingViewModel mViewModel;
+
+ private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel;
+
+ private ObservableArrayList mAccettazioneMutableData = new ObservableArrayList<>();
+
+
+ public BindableBoolean noItemsToPick = new BindableBoolean(false);
+ public BindableBoolean noLUPresent = new BindableBoolean(true);
+ public BindableBoolean bottomSheetEnabled = new BindableBoolean(false);
+
+ private int barcodeScannerIstanceID = -1;
+
+ private List mOrders;
+ private List mSitArts;
+
+ private boolean mShouldCloseActivity;
+ private AccettazioneOrdineInevasoOrderBy.Enum mCurrentOrderBy;
+
+ private final int PICK_UL_REQUEST = 1;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ mOrders = DataCache.retrieveItem(getIntent().getStringExtra("keyOrders"));
+ mSitArts = DataCache.retrieveItem(getIntent().getStringExtra("keySitArts"));
+
+ mBindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso);
+ mBindings.setLifecycleOwner(this);
+ mBindings.setAccettazioneView(this);
+
+ MainApplication.appComponent
+ .accettazionePickingComponent()
+ .create()
+ .inject(this);
+
+ setSupportActionBar(mBindings.toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ mBindings.bottomSheetLuContent.init(mBindings.bottomSheetLuContent, null);
+ mBottomSheetFragmentLUContentViewModel = mBindings.bottomSheetLuContent.getViewModelInstance();
+ mBindings.bottomSheetLuContent.setListener(this);
+ mBottomSheetFragmentLUContentViewModel.setListener(this);
+
+ setSupportActionBar(this.mBindings.toolbar);
+
+ this.initVars();
+ this.initBarcodeReader();
+ this.initRecyclerView();
+
+
+ String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
+
+ mViewModel.setListeners(this);
+ mViewModel.init(mOrders, mSitArts, codMdep);
+ }
+
+ @Override
+ public boolean onSupportNavigateUp() {
+ onBackPressed();
+ return true;
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (this.mBindings.bottomSheetLuContent.isExpanded()) {
+ this.mBindings.bottomSheetLuContent.collapse();
+ } else if (!noLUPresent.get()) {
+ this.mShouldCloseActivity = true;
+ BarcodeManager.removeCallback(barcodeScannerIstanceID);
+ this.mViewModel.closeLU();
+ } else {
+ BarcodeManager.removeCallback(barcodeScannerIstanceID);
+ super.onBackPressed();
+ }
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.activity_accettazione_ordine_inevaso, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle item selection
+ switch (item.getItemId()) {
+ case R.id.action_filter:
+ showOrderDialog();
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
+ private void initVars() {
+ this.noLUPresent.addOnPropertyChangedCallback(() -> {
+ this.bottomSheetEnabled.set(!this.noLUPresent.get());
+ });
+
+ mCurrentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(SettingsManager.i().getUserSession().getDefaultOrdinamentoPickingAccettazione());
+ }
+
+ private void initBarcodeReader() {
+ barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
+ .setOnScanSuccessfull(onScanSuccessful)
+ .setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
+ }
+
+ private void initRecyclerView() {
+ this.mViewModel.getPickingList().observe(this, updatedData -> {
+ refreshList();
+ });
+
+ AccettazioneListAdapter accettazioneListAdapter = new AccettazioneListAdapter(this, mAccettazioneMutableData);
+ this.mBindings.accettazionePickingList.setAdapter(accettazioneListAdapter);
+ this.mBindings.accettazionePickingList.setLayoutManager(new LinearLayoutManager(this));
+
+ accettazioneListAdapter.setOnItemClicked(clickedItem -> {
+ this.mViewModel.dispatchOrdineRow(clickedItem);
+ });
+ }
+
+ private void refreshList() {
+ this.mAccettazioneMutableData.clear();
+ this.mAccettazioneMutableData.addAll(convertDataModelToListModel(this.mViewModel.getPickingList().getValue()));
+ this.noItemsToPick.set(!isThereAnyItemToPick(this.mViewModel.getPickingList().getValue()));
+ }
+
+ private List convertDataModelToListModel(List dataList) {
+ List tmpList = Stream.of(dataList)
+ .filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaOrd(), BigDecimal.ZERO))
+ .toList();
+
+ List sortedList = null;
+
+ switch (mCurrentOrderBy) {
+ case COD_ART_FOR:
+ sortedList = convertDataModelToListModel__CodArtForn(tmpList);
+ break;
+ case DESCR_ART:
+ sortedList = convertDataModelToListModel__DescrArt(tmpList);
+ break;
+ case RAG_SOC_COM:
+ sortedList = convertDataModelToListModel__RagSocCom(tmpList);
+ break;
+ }
+
+ return sortedList;
+ }
+
+ private List convertDataModelToListModel__CodArtForn(List dataList) {
+ ArrayList list = new ArrayList<>();
+ Stream.of(dataList)
+ .sortBy(x -> x.getSitArtOrdDTO().getCodArtFor() + (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa()))
+ .forEach(x -> {
+ AccettazioneListModel accettazioneListModel = new AccettazioneListModel();
+ accettazioneListModel.setActive(true);
+
+ accettazioneListModel.setGroupTitle(x.getSitArtOrdDTO().getCodArtFor() + (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa()));
+
+ accettazioneListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
+ accettazioneListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
+
+ accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
+
+ BigDecimal qtaEvasa = BigDecimal.ZERO;
+
+ if(x.getWithdrawMtbColrs().size() > 0) {
+ qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
+ .map(MtbColr::getQtaCol)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ }
+
+ accettazioneListModel.setQtaEvasa(qtaEvasa);
+ accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaOrd());
+
+ if (x.getMtbAart() != null)
+ accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
+
+ accettazioneListModel.setOriginalModel(x);
+
+ list.add(accettazioneListModel);
+ });
+
+ return list;
+ }
+
+ private List convertDataModelToListModel__DescrArt(List dataList) {
+ ArrayList list = new ArrayList<>();
+ Stream.of(dataList)
+ .sortBy(x -> x.getMtbAart().getDescrizioneEstesa())
+ .forEach(x -> {
+ AccettazioneListModel accettazioneListModel = new AccettazioneListModel();
+ accettazioneListModel.setActive(true);
+
+ accettazioneListModel.setGroupTitle(x.getSitArtOrdDTO().getCodArtFor() + (UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa()));
+
+ accettazioneListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
+ accettazioneListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
+
+ accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
+
+ BigDecimal qtaEvasa = BigDecimal.ZERO;
+
+ if(x.getWithdrawMtbColrs().size() > 0) {
+ qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
+ .map(MtbColr::getQtaCol)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ }
+
+ accettazioneListModel.setQtaEvasa(qtaEvasa);
+ accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaOrd());
+
+ if (x.getMtbAart() != null)
+ accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
+
+ accettazioneListModel.setOriginalModel(x);
+
+ list.add(accettazioneListModel);
+ });
+
+ return list;
+ }
+
+ private List convertDataModelToListModel__RagSocCom(List dataList) {
+ ArrayList list = new ArrayList<>();
+
+ Stream.of(dataList)
+ .filter(x -> !UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) && !x.getSitArtOrdDTO().getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG))
+ .sortBy(x -> x.getSitArtOrdDTO().getDescrizioneCommessa())
+ .forEach(x -> {
+ AccettazioneListModel accettazioneListModel = new AccettazioneListModel();
+ accettazioneListModel.setActive(true);
+
+ accettazioneListModel.setGroupTitle(x.getSitArtOrdDTO().getCodJcom() + (!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) ? " - " + x.getSitArtOrdDTO().getDescrizioneCommessa() : ""));
+
+ accettazioneListModel.setBadge1(x.getSitArtOrdDTO().getCodArtFor());
+ accettazioneListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
+
+
+ BigDecimal qtaEvasa = BigDecimal.ZERO;
+
+ if(x.getWithdrawMtbColrs().size() > 0) {
+ qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
+ .map(MtbColr::getQtaCol)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ }
+
+ accettazioneListModel.setQtaEvasa(qtaEvasa);
+ accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaOrd());
+
+ if (x.getMtbAart() != null) {
+ accettazioneListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
+ accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
+ }
+
+ accettazioneListModel.setOriginalModel(x);
+
+ list.add(accettazioneListModel);
+ });
+
+ Stream.of(dataList)
+ .filter(x -> UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) || x.getSitArtOrdDTO().getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG))
+ .forEach(x -> {
+ AccettazioneListModel accettazioneListModel = new AccettazioneListModel();
+ accettazioneListModel.setActive(true);
+
+ accettazioneListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
+
+ accettazioneListModel.setBadge1(x.getSitArtOrdDTO().getCodArtFor());
+ accettazioneListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
+
+
+ accettazioneListModel.setQtaEvasa(BigDecimal.ZERO);
+ accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaOrd());
+
+ if (x.getMtbAart() != null) {
+ accettazioneListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
+ accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
+ }
+
+ accettazioneListModel.setOriginalModel(x);
+
+ list.add(accettazioneListModel);
+ });
+
+ return list;
+ }
+
+ private boolean isThereAnyItemToPick(List dataList) {
+ return Stream.of(dataList)
+ .anyMatch(x -> !x.isHidden());
+ }
+
+ private RunnableArgs onScanSuccessful = data -> {
+ BarcodeManager.disable();
+
+ this.openProgress();
+
+ this.mViewModel.processBarcodeDTO(data, () -> {
+ BarcodeManager.enable();
+ this.closeProgress();
+ });
+ };
+
+ public void removeListFilter() {
+ this.mViewModel.resetMatchedRows();
+ }
+
+
+ public void createNewLU() {
+ this.mBindings.accettazioneOrdineInevasoFab.close(true);
+
+ this.openProgress();
+
+ this.mViewModel.createNewLU(null, null, false, () -> {
+ this.closeProgress();
+ });
+ }
+
+ public void showCreatedUL() {
+ this.mBindings.accettazioneOrdineInevasoFab.close(true);
+
+ this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
+ }
+
+ private void showOrderDialog() {
+
+ AlertDialog dialog = new AlertDialog.Builder(this)
+ .setTitle(this.getText(R.string.action_orderBy))
+ .setSingleChoiceItems(AccettazioneOrdineInevasoOrderBy.descriptions, mCurrentOrderBy.getVal(), (dialog12, which) -> {
+ mCurrentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(which);
+ SettingsManager.i().getUserSession().setDefaultOrdinamentoPickingAccettazione(which);
+ })
+ .setPositiveButton(getText(R.string.ok), (dialog1, which) -> this.refreshList())
+ .create();
+ dialog.show();
+ }
+
+
+ public void startListaBancaliRegistratiActivity(ArrayList mtbColts){
+ Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, false, PrinterRESTConsumer.Type.SECONDARIA, ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
+ this.startActivityForResult(myIntent, PICK_UL_REQUEST);
+ }
+
+ @Override
+ public void onLUSuccessullyPrinted() {
+ Resources res = getResources();
+ String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
+ DialogSimpleMessageHelper.makeSuccessDialog(this, res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show();
+ }
+
+ @Override
+ public void onLUPrintRequest(RunnableArgs onComplete) {
+ }
+
+ @Override
+ public void onLUPrintError(Exception ex, Runnable onComplete) {
+ this.closeProgress();
+ DialogSimpleMessageHelper.makeErrorDialog(
+ this,
+ new SpannableString(ex.getMessage()),
+ null,
+ null,
+ R.string.button_ignore_print,
+ onComplete).show();
+ }
+
+ @Override
+ public void onLoadingStarted() {
+ this.openProgress();
+ }
+
+ @Override
+ public void onLoadingEnded() {
+ this.closeProgress();
+ }
+
+ @Override
+ public void onMtbColrEdit(MtbColr mtbColr) {
+ this.mViewModel.dispatchRowEdit(mtbColr);
+ }
+
+ @Override
+ public void onMtbColrDelete(MtbColr mtbColr) {
+ this.mViewModel.deleteRow(mtbColr);
+ }
+
+ @Override
+ public void onBottomSheetLUClose() {
+ this.mViewModel.closeLU();
+ }
+
+ @Override
+ public void onNoteAggiuntiveRequest(RunnableArgs onComplete) {
+ NoteAggiuntiveLUDialog.make(this, onComplete::run, () -> onComplete.run(null)).show();
+ }
+
+ @Override
+ public void onError(Exception ex) {
+ this.closeProgress();
+
+ if(ex instanceof InvalidPesoKGException) {
+ UtilityToast.showToast(ex.getMessage());
+ } else {
+ UtilityExceptions.defaultException(this, ex, mCurrentProgress);
+ }
+
+ BarcodeManager.enable();
+ }
+
+ @Override
+ public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, Date dataScad, boolean canPartitaMagBeChanged, RunnableArgss onComplete) {
+ DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
+ .setMtbAart(mtbAart)
+ .setInitialNumCnf(initialNumCnf)
+ .setInitialQtaCnf(initialQtaCnf)
+ .setInitialQtaTot(initialQtaTot)
+ .setTotalQtaOrd(totalQtaOrd)
+ .setTotalNumCnfOrd(totalNumCnfOrd)
+ .setQtaCnfOrd(qtaCnfOrd)
+ .setTotalQtaToBeTaken(totalQtaToBeTaken)
+ .setTotalNumCnfToBeTaken(totalNumCnfToBeTaken)
+ .setQtaCnfToBeTaken(qtaCnfToBeTaken)
+ .setTotalQtaAvailable(totalQtaAvailable)
+ .setTotalNumCnfAvailable(totalNumCnfAvailable)
+ .setQtaCnfAvailable(qtaCnfAvailable)
+ .setPartitaMag(partitaMag)
+ .setDataScad(dataScad)
+ .setCanPartitaMagBeChanged(canPartitaMagBeChanged);
+
+ DialogInputQuantityV2
+ .newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
+ PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
+ .setNumCnf(resultDTO.getNumCnf())
+ .setQtaCnf(resultDTO.getQtaCnf())
+ .setQtaTot(resultDTO.getQtaTot())
+ .setPartitaMag(resultDTO.getPartitaMag())
+ .setDataScad(resultDTO.getDataScad());
+ onComplete.run(pickedQuantityDTO, shouldCloseLU);
+ }, () -> {
+ this.mViewModel.resetMatchedRows();
+ })
+ .show(getSupportFragmentManager(), "tag");
+ }
+
+ @Override
+ public void onRowSaved() {
+ FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
+ }
+
+ @Override
+ public void onFilterApplied(String newValue) {
+ this.mBindings.filteredArtsInListExpandableLayout.expand(true);
+ this.mBindings.descriptionFilterText.setText(!UtilityString.isNullOrEmpty(newValue) ? newValue : "");
+ }
+
+ @Override
+ public void onFilterRemoved() {
+ mBindings.filteredArtsInListExpandableLayout.collapse(true);
+ }
+
+ @Override
+ public void onMtbColrDeleteRequest(RunnableArgs onComplete) {
+ String text = getResources().getString(R.string.alert_delete_mtb_colr);
+ DialogSimpleMessageHelper.makeWarningDialog(this,
+ new SpannableString(text),
+ null,
+ () -> onComplete.run(true),
+ () -> onComplete.run(false)
+ ).show();
+ }
+
+ @Override
+ public void onLUOpened(MtbColt mtbColt) {
+ noLUPresent.set(false);
+ FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
+
+ this.mBottomSheetFragmentLUContentViewModel.setMtbColt(mtbColt);
+ }
+
+ @Override
+ public void onLUClosed() {
+ noLUPresent.set(true);
+ this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
+
+ if (this.mShouldCloseActivity) super.onBackPressed();
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+
+ // Check which request we're responding to
+ if (requestCode == PICK_UL_REQUEST) {
+
+ // Make sure the request was successful
+ if (resultCode == RESULT_OK) {
+ MtbColt recoveredMtbColt = DataCache.retrieveItem(data.getStringExtra("key"));
+ this.mViewModel.recoverLU(recoveredMtbColt);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingComponent.java
new file mode 100644
index 00000000..53dae1df
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingComponent.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.gest.accettazione_picking;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface AccettazionePickingComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+ AccettazionePickingComponent create();
+ }
+
+ void inject(AccettazionePickingActivity accettazionePickingActivity);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingModule.java
new file mode 100644
index 00000000..9e960f4a
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingModule.java
@@ -0,0 +1,32 @@
+package it.integry.integrywmsnative.gest.accettazione_picking;
+
+import dagger.Module;
+import dagger.Provides;
+import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
+import it.integry.integrywmsnative.gest.accettazione_picking.rest.AccettazionePickingRESTConsumer;
+import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
+
+@Module(subcomponents = AccettazionePickingComponent.class)
+public class AccettazionePickingModule {
+
+ @Provides
+ AccettazionePickingRESTConsumer providesAccettazionePickingRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
+ return new AccettazionePickingRESTConsumer(systemRESTConsumer);
+ }
+
+ @Provides
+ BottomSheetFragmentLUContentViewModel providesBottomSheetFragmentLUContentViewModel() {
+ return new BottomSheetFragmentLUContentViewModel();
+ }
+
+ @Provides
+ AccettazionePickingViewModel providesAccettazioneViewModel(ArticoloRESTConsumer articoloRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, AccettazionePickingRESTConsumer accettazionePickingRESTConsumer, GestSetupRESTConsumer gestSetupRESTConsumer) {
+ return new AccettazionePickingViewModel(articoloRESTConsumer, barcodeRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, accettazionePickingRESTConsumer, gestSetupRESTConsumer);
+ }
+
+}
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
new file mode 100644
index 00000000..08ba3df9
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingViewModel.java
@@ -0,0 +1,915 @@
+package it.integry.integrywmsnative.gest.accettazione_picking;
+
+import androidx.databinding.ObservableArrayList;
+import androidx.lifecycle.MutableLiveData;
+
+import com.annimon.stream.Optional;
+import com.annimon.stream.Stream;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.core.CommonConst;
+import it.integry.integrywmsnative.core.exception.AlreadyUsedAnonymousLabelException;
+import it.integry.integrywmsnative.core.exception.InvalidLUMultiGestioneException;
+import it.integry.integrywmsnative.core.exception.InvalidOrderTypeException;
+import it.integry.integrywmsnative.core.exception.LUScanNotGrantedException;
+import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
+import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
+import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
+import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.expansion.RunnableArgss;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOperationsListener;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPrintListener;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
+import it.integry.integrywmsnative.core.model.CommonModelConsts;
+import it.integry.integrywmsnative.core.model.MtbAart;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
+import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
+import it.integry.integrywmsnative.core.report.ReportManager;
+import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
+import it.integry.integrywmsnative.core.settings.SettingsManager;
+import it.integry.integrywmsnative.core.utility.UtilityBarcode;
+import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
+import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.accettazione_picking.rest.AccettazionePickingRESTConsumer;
+import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
+import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
+import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
+
+public class AccettazionePickingViewModel {
+
+ private final ArticoloRESTConsumer mArticoloRESTConsumer;
+ private final BarcodeRESTConsumer mBarcodeRESTConsumer;
+ private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
+ private final PrinterRESTConsumer mPrinterRESTConsumer;
+ private final AccettazionePickingRESTConsumer mAccettazionePickingRESTConsumer;
+ private final GestSetupRESTConsumer mGestSetupRESTConsumer;
+
+ private AccettazionePickingViewModel.Listener mListener;
+
+ private List mOrders;
+ private List mSitArts;
+ private MutableLiveData> mPickingList = new MutableLiveData<>();
+
+ private MtbColt mCurrentMtbColt = null;
+ private GestioneEnum defaultGestioneOfUL = null;
+ private String mDefaultCodMdep = null;
+
+ @Inject
+ public AccettazionePickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
+ BarcodeRESTConsumer barcodeRESTConsumer,
+ ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
+ PrinterRESTConsumer printerRESTConsumer,
+ AccettazionePickingRESTConsumer accettazionePickingRESTConsumer,
+ GestSetupRESTConsumer gestSetupRESTConsumer) {
+ this.mArticoloRESTConsumer = articoloRESTConsumer;
+ this.mBarcodeRESTConsumer = barcodeRESTConsumer;
+ this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
+ this.mPrinterRESTConsumer = printerRESTConsumer;
+ this.mAccettazionePickingRESTConsumer = accettazionePickingRESTConsumer;
+ this.mGestSetupRESTConsumer = gestSetupRESTConsumer;
+ }
+
+
+ public void init(List orders, List sitArts, String codMdep) {
+ this.mOrders = orders;
+ this.mSitArts = sitArts;
+ this.mDefaultCodMdep = codMdep;
+
+ getEmptyPickingList(sitArts, pickingObjectList -> {
+ this.mPickingList.postValue(pickingObjectList);
+ });
+
+ //Definizione della gestione collo di default
+ Boolean isOrdTrasf = Stream.of(mOrders)
+ .map(OrdineAccettazioneInevasoDTO::isOrdTrasf)
+ .withoutNulls()
+ .distinctBy(x -> x)
+ .findFirst()
+ .get();
+
+ //Definizione della gestione collo di default
+ List foundGestioni = Stream.of(mSitArts)
+ .map(SitArtOrdDTO::getGestioneEnum)
+ .withoutNulls()
+ .distinctBy(x -> x)
+ .toList();
+
+ if (foundGestioni != null) {
+
+ if (foundGestioni.size() == 1) {
+ if (isOrdTrasf && (foundGestioni.get(0) == GestioneEnum.PRODUZIONE || foundGestioni.get(0) == GestioneEnum.LAVORAZIONE)) {
+ defaultGestioneOfUL = GestioneEnum.ACQUISTO;
+ } else
+ defaultGestioneOfUL = foundGestioni.get(0) == GestioneEnum.PRODUZIONE ? GestioneEnum.LAVORAZIONE : foundGestioni.get(0);
+ } else {
+ this.sendError(new InvalidLUMultiGestioneException());
+ }
+ } else {
+ this.sendError(new InvalidOrderTypeException());
+ }
+ }
+
+ private void getEmptyPickingList(List sitArtOrdList, RunnableArgs> onComplete) {
+ List codMarts = Stream.of(sitArtOrdList)
+ .map(SitArtOrdDTO::getCodMart)
+ .toList();
+
+ ArticoloRESTConsumer.getByCodMart(codMarts, listMtbAarts -> {
+ List pickingList = Stream.of(sitArtOrdList)
+ .map(sitArtOrdDTO -> {
+ MtbAart mtbAart = null;
+
+ for (MtbAart mtbAartItem : listMtbAarts) {
+ if (mtbAartItem.getCodMart().equalsIgnoreCase(sitArtOrdDTO.getCodMart())) {
+ mtbAart = mtbAartItem;
+ break;
+ }
+ }
+
+ return new PickingObjectDTO()
+ .setSitArtOrdDTO(sitArtOrdDTO)
+ .setMtbAart(mtbAart);
+ })
+ .toList();
+
+ onComplete.run(pickingList);
+ }, this::sendError);
+ }
+
+ public MutableLiveData> getPickingList() {
+ return mPickingList;
+ }
+
+ public void retrieveExistentLU(RunnableArgs> onComplete) {
+ this.sendOnLoadingStarted();
+
+ this.mAccettazionePickingRESTConsumer.getBancaliGiaRegistrati(this.mSitArts, mtbColtList -> {
+ this.sendOnLoadingEnded();
+ onComplete.run(mtbColtList);
+ }, this::sendError);
+ }
+
+
+ public void recoverLU(MtbColt recoveredMtbColt) {
+ this.mCurrentMtbColt = recoveredMtbColt;
+
+ this.resetMatchedRows();
+ this.sendLUOpened(this.mCurrentMtbColt);
+ }
+
+
+ public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+ //Se non c'è una UL aperta
+ if (mCurrentMtbColt == null) {
+
+ //Se è un'etichetta anonima
+ if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
+ //Se il collo non esiste allora lo creo associandolo a questa etichetta anonima
+ //invece se esiste apro un collo nuovo e cerco gli articoli presenti nell'ul
+ //dell'etichetta anonima
+ this.executeEtichettaAnonimaNotOpenedLU(barcodeScanDTO, onComplete);
+ } else {
+ this.processBarcodeNotOpenedLU(barcodeScanDTO, onComplete);
+ }
+
+ } else {
+ if (UtilityBarcode.isEtichettaAnonima(barcodeScanDTO)) {
+ this.sendError(new LUScanNotGrantedException());
+ } else {
+ this.processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete);
+ }
+ }
+ }
+
+ 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, true, onComplete);
+ }
+ } else {
+ this.sendError(new AlreadyUsedAnonymousLabelException());
+ }
+
+ }, this::sendError);
+ }
+
+ private void processBarcodeNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+ this.createNewLU(
+ null,
+ null,
+ false,
+ () -> processBarcodeAlreadyOpenedLU(barcodeScanDTO, onComplete));
+ }
+
+ private void processBarcodeAlreadyOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+
+ if (UtilityBarcode.isEanPeso(barcodeScanDTO)) {
+ //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
+ this.executeEtichettaEanPeso(barcodeScanDTO, onComplete);
+
+
+ } else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
+ //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
+ this.executeEtichettaEan128(barcodeScanDTO, onComplete);
+
+
+ } else {
+ this.loadArticolo(barcodeScanDTO.getStringValue(), null, onComplete);
+ }
+ }
+
+ private void executeEtichettaEanPeso(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+ try {
+ Ean13PesoModel ean13PesoModel = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue());
+
+ this.loadArticolo(ean13PesoModel.getPrecode(), PickDataDTO.fromEan128(ean13PesoModel.toEan128()), onComplete);
+ } catch (Exception ex) {
+ this.sendError(ex);
+ }
+ }
+
+ 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.sendError(new LUScanNotGrantedException());
+ } else {
+ if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
+ barcodeProd = barcodeProd.substring(1);
+ }
+
+ PickDataDTO pickDataDTO = PickDataDTO.fromEan128(ean128Model);
+ this.loadArticolo(barcodeProd, pickDataDTO, onComplete);
+ }
+ } else {
+ //EAN 128 non completo o comunque mancano i riferimenti al prodotto
+ onComplete.run();
+ }
+ }, this::sendError);
+ }
+
+
+ private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
+ if (barcodeProd.length() == 14) {
+ barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
+ }
+
+ this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
+
+ if (mtbAartList != null && mtbAartList.size() > 0) {
+ this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
+ } else {
+ this.sendError(new NoResultFromBarcodeException());
+ }
+
+ }, this::sendError);
+ }
+
+
+ private void searchArtFromAnag(MtbAart mtbAart, PickDataDTO pickData, Runnable onComplete) {
+ final List pickingList = mPickingList.getValue();
+
+ List matchPickingObject = Stream.of(pickingList)
+ .filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitArtOrdDTO().getCodMart()))
+ .toList();
+
+ for (PickingObjectDTO pickingObjectDTO : matchPickingObject) {
+ pickingObjectDTO.setTempPickData(pickData);
+ }
+
+ 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) {
+ this.dispatchOrdineRow(matchedRows.get(0));
+ } 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 createNewLU(Integer customNumCollo, String customSerCollo, boolean disablePrint, Runnable onComplete) {
+ this.sendOnNoteAggiuntiveRequest(additionalNotes -> {
+
+ this.mGestSetupRESTConsumer.getValue("PICKING", "SETUP", "DEFAULT_POSIZIONE_COLLI_ACCETTAZIONE", defaultPosAccettazioneDTO -> {
+
+ String defaultPosAccettazione = null;
+ if (defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value))
+ defaultPosAccettazione = defaultPosAccettazioneDTO.value;
+
+ MtbColt mtbColt = new MtbColt();
+ mtbColt
+ .initDefaultFields()
+ .setGestione(defaultGestioneOfUL)
+ .setAnnotazioni(additionalNotes)
+ .setPosizione(defaultPosAccettazione)
+ .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+
+ if (customNumCollo != null) {
+ mtbColt.setNumCollo(customNumCollo);
+ }
+
+ if (!UtilityString.isNullOrEmpty(customSerCollo)) {
+ mtbColt.setSerCollo(customSerCollo);
+ }
+
+ List codAnags =
+ Stream.of(mOrders)
+ .map(OrdineAccettazioneInevasoDTO::getCodAnagOrd)
+ .distinct()
+ .toList();
+
+ if (codAnags != null && codAnags.size() == 1) {
+ mtbColt.setCodAnag(codAnags.get(0));
+ }
+
+ List rifOrds =
+ Stream.of(mOrders)
+ .map(OrdineAccettazioneInevasoDTO::getRifOrd)
+ .distinct()
+ .toList();
+
+ if (rifOrds != null && rifOrds.size() == 1) {
+ mtbColt.setRifOrd(rifOrds.get(0));
+ }
+
+ List numDataOrds =
+ Stream.of(mOrders)
+ .map(value -> value.getNumero() + value.getData())
+ .distinct()
+ .toList();
+
+ if (numDataOrds != null && numDataOrds.size() == 1) {
+ mtbColt.setNumOrd(mOrders.get(0).getNumero());
+ mtbColt.setDataOrd(mOrders.get(0).getData());
+
+ try {
+ mtbColt.generaFiltroOrdine();
+ } catch (Exception ex) {
+ this.sendError(ex);
+ return;
+ }
+ }
+
+ this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, savedMtbColt -> {
+ mtbColt
+ .setNumCollo(savedMtbColt.getNumCollo())
+ .setDataCollo(savedMtbColt.getDataColloS())
+ .setMtbColr(new ObservableArrayList<>())
+ .setDisablePrint(disablePrint);
+
+ this.mCurrentMtbColt = mtbColt;
+
+ if (onComplete != null) onComplete.run();
+ this.sendLUOpened(mtbColt);
+ }, this::sendError);
+
+ }, this::sendError);
+
+ });
+ }
+
+
+ public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO) {
+ if(this.mCurrentMtbColt == null) return;
+
+ BigDecimal totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
+ BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
+ BigDecimal qtaCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaCnfOrd();
+
+ AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
+ AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
+
+ Stream.of(pickingObjectDTO.getWithdrawMtbColrs())
+ .forEach(row -> {
+ numCnfWithdrawRows.addAndGet(row.getNumCnf());
+ qtaColWithdrawRows.addAndGet(row.getQtaCol());
+ });
+
+ BigDecimal numCnfDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd().subtract(numCnfWithdrawRows.getBigDecimalValue());
+ BigDecimal qtaDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd().subtract(qtaColWithdrawRows.getBigDecimalValue());
+ BigDecimal qtaCnfDaEvadere = qtaCnfOrd;
+
+ numCnfDaEvadere = UtilityBigDecimal.getGreaterBetween(numCnfDaEvadere, BigDecimal.ZERO);
+ qtaDaEvadere = UtilityBigDecimal.getGreaterBetween(qtaDaEvadere, BigDecimal.ZERO);
+
+ BigDecimal numCnfDaPrelevare = null;
+ BigDecimal qtaColDaPrelevare = null;
+ BigDecimal qtaCnfDaPrelevare = null;
+
+ String partitaMag = null;
+ Date dataScad = null;
+
+ if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) {
+ //Oppure le info del barcode scansionato
+ PickDataDTO.ManualPickDTO manualPickDTO = pickingObjectDTO.getTempPickData().getManualPickDTO();
+ MtbAart mtbAart = pickingObjectDTO.getMtbAart();
+
+
+ qtaColDaPrelevare = manualPickDTO.getQtaTot();
+ numCnfDaPrelevare = manualPickDTO.getNumCnf();
+
+ if (mtbAart.isFlagQtaCnfFissaBoolean()) {
+ qtaCnfDaPrelevare = mtbAart.getQtaCnf();
+
+ if (manualPickDTO.isEanPeso()) {
+ if (mtbAart.getUntMisRifPeso() == MtbAart.UntMisRifPesoEnum.M) {
+ if (UtilityBigDecimal.equalsTo(mtbAart.getPesoKg(), BigDecimal.ZERO)) {
+ this.sendError(new InvalidPesoKGException());
+ } else {
+ qtaColDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, mtbAart.getPesoKg());
+ }
+ }
+ }
+ } else if (qtaColDaPrelevare != null && numCnfDaPrelevare != null) {
+ qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
+ }
+
+
+ if (qtaColDaPrelevare != null && numCnfDaPrelevare == null) {
+ numCnfDaPrelevare = UtilityBigDecimal.divideToInteger(qtaColDaPrelevare, mtbAart.getQtaCnf());
+
+ if (!mtbAart.isFlagQtaCnfFissaBoolean()) {
+ if (UtilityBigDecimal.equalsTo(numCnfDaPrelevare, BigDecimal.ZERO))
+ numCnfDaPrelevare = BigDecimal.ONE;
+ qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
+ }
+ } else if (numCnfDaPrelevare != null && qtaColDaPrelevare == null) {
+ qtaCnfDaPrelevare = mtbAart.getQtaCnf();
+ qtaColDaPrelevare = UtilityBigDecimal.multiply(numCnfDaPrelevare, qtaCnfDaPrelevare);
+ }
+
+ if (manualPickDTO.getMtbPartitaMag() != null) {
+ partitaMag = manualPickDTO.getMtbPartitaMag().getPartitaMag();
+ dataScad = manualPickDTO.getMtbPartitaMag().getDataScadD();
+ }
+ }
+
+ this.sendOnItemDispatched(
+ pickingObjectDTO,
+ pickingObjectDTO.getMtbAart(),
+ null, null, null,
+ qtaDaEvadere,
+ numCnfDaEvadere,
+ qtaCnfDaEvadere,
+ qtaColDaPrelevare,
+ numCnfDaPrelevare,
+ qtaCnfDaPrelevare,
+ null,
+ null,
+ null,
+ partitaMag,
+ dataScad,
+ true,
+ (pickedQuantityDTO, shouldCloseLU) -> {
+ this.saveNewRow(pickingObjectDTO,
+ pickedQuantityDTO.getNumCnf(),
+ pickedQuantityDTO.getQtaCnf(),
+ pickedQuantityDTO.getQtaTot(),
+ pickedQuantityDTO.getPartitaMag(),
+ pickedQuantityDTO.getDataScad(),
+ shouldCloseLU);
+ });
+
+ }
+
+
+ public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
+ this.sendOnLoadingStarted();
+
+ String gestioneRif = pickingObjectDTO.getSitArtOrdDTO().getGestioneEnum() == GestioneEnum.PRODUZIONE ? "L" : pickingObjectDTO.getSitArtOrdDTO().getGestione();
+
+ final MtbColr mtbColr = new MtbColr()
+ .setCodMart(pickingObjectDTO.getMtbAart().getCodMart())
+ .setPartitaMag(partitaMag)
+ .setDataScadPartita(dataScad)
+ .setQtaCol(qtaTot)
+ .setQtaCnf(qtaCnf)
+ .setNumCnf(numCnf)
+ .setGestioneRif(gestioneRif)
+ .setCodJcom(pickingObjectDTO.getSitArtOrdDTO().getCodJcom())
+ .setDescrizione(pickingObjectDTO.getMtbAart().getDescrizioneEstesa())
+ .setDatetimeRow(UtilityDate.getDateInstance())
+ .setDataOrd(pickingObjectDTO.getSitArtOrdDTO().getDataOrd())
+ .setNumOrd(pickingObjectDTO.getSitArtOrdDTO().getNumOrd())
+ .setRigaOrd(pickingObjectDTO.getSitArtOrdDTO().getRigaOrd());
+
+
+ mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+
+ MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
+ cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
+
+ cloneMtbColt.setMtbColr(new ObservableArrayList<>());
+ cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone());
+
+ if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
+ resetMatchedRows();
+ this.sendOnLoadingEnded();
+
+ if (shouldCloseLU) closeLU();
+ return;
+ }
+
+ mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
+
+ mtbColr
+ .setDataCollo(value.getDataColloS())
+ .setNumCollo(value.getNumCollo())
+ .setGestione(value.getGestione())
+ .setSerCollo(value.getSerCollo())
+ .setRiga(value.getMtbColr().get(0).getRiga())
+ .setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
+ .setMtbAart(pickingObjectDTO.getMtbAart());
+
+ pickingObjectDTO.getWithdrawMtbColrs().add(mtbColr);
+ mCurrentMtbColt.getMtbColr().add(mtbColr);
+
+ //Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei
+ resetMatchedRows();
+
+ this.sendOnRowSaved();
+ this.sendOnLoadingEnded();
+
+ if (shouldCloseLU) closeLU();
+ }, this::sendError);
+ }
+
+
+ public void dispatchRowEdit(MtbColr mtbColrToEdit) {
+ final PickingObjectDTO pickingObjectDTO = new PickingObjectDTO()
+ .setMtbAart(mtbColrToEdit.getMtbAart());
+
+ this.sendOnItemDispatched(
+ pickingObjectDTO,
+ pickingObjectDTO.getMtbAart(),
+ mtbColrToEdit.getNumCnf(),
+ mtbColrToEdit.getQtaCnf(),
+ mtbColrToEdit.getQtaCol(),
+ null,
+ null,
+ null,
+ null, null, null,
+ null, null, null,
+ mtbColrToEdit.getPartitaMag(),
+ mtbColrToEdit.getDataScadPartitaD(),
+ true,
+ (pickedQuantityDTO, shouldCloseLU) -> {
+
+ this.saveEditedRow(mtbColrToEdit,
+ pickedQuantityDTO.getNumCnf(),
+ pickedQuantityDTO.getQtaCnf(),
+ pickedQuantityDTO.getQtaTot(),
+ pickedQuantityDTO.getPartitaMag(),
+ pickedQuantityDTO.getDataScad(),
+ shouldCloseLU);
+ });
+ }
+
+ private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
+ this.sendOnLoadingStarted();
+
+ MtbColt mtbColt = new MtbColt()
+ .setNumCollo(mtbColrToUpdate.getNumCollo())
+ .setDataCollo(mtbColrToUpdate.getDataColloS())
+ .setSerCollo(mtbColrToUpdate.getSerCollo())
+ .setGestione(mtbColrToUpdate.getGestione())
+ .setMtbColr(new ObservableArrayList<>());
+ mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
+
+ final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
+ mtbColr.setOperation(CommonModelConsts.OPERATION.UPDATE);
+ mtbColr
+ .setNumCnf(numCnf)
+ .setQtaCnf(qtaCnf)
+ .setQtaCol(qtaTot)
+ .setPartitaMag(partitaMag)
+ .setDataScadPartita(dataScad)
+ .setUtente(SettingsManager.i().getUser().getFullname())
+ .setDatetimeRow(UtilityDate.getDateInstance());
+
+ mtbColt.getMtbColr().add(mtbColr);
+
+ this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
+
+ mtbColr.setNumCnf(numCnf)
+ .setQtaCnf(qtaCnf)
+ .setQtaCol(qtaTot);
+
+ Optional pickingObjectDTO = Stream.of(this.mPickingList.getValue())
+ .filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToUpdate))
+ .findSingle();
+
+ if(pickingObjectDTO.isPresent()) {
+ pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate);
+ pickingObjectDTO.get().getWithdrawMtbColrs().add(mtbColr);
+ }
+
+ this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
+ this.mCurrentMtbColt.getMtbColr().add(mtbColr);
+
+ //Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei
+ resetMatchedRows();
+
+ this.sendOnRowSaved();
+ this.sendOnLoadingEnded();
+
+ if (shouldCloseLU) closeLU();
+ }, this::sendError);
+ }
+
+ public void deleteRow(MtbColr mtbColrToDelete) {
+ this.sendMtbColrDeleteRequest(shouldDelete -> {
+
+ if (shouldDelete) {
+ this.sendOnLoadingStarted();
+ MtbColt mtbColt = new MtbColt()
+ .setNumCollo(mtbColrToDelete.getNumCollo())
+ .setDataCollo(mtbColrToDelete.getDataColloS())
+ .setSerCollo(mtbColrToDelete.getSerCollo())
+ .setGestione(mtbColrToDelete.getGestione())
+ .setMtbColr(new ObservableArrayList<>());
+ mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
+
+ MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
+ mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT);
+ mtbColr.setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1)))
+ .setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1)))
+ .setRiga(null);
+
+ mtbColt.getMtbColr().add(mtbColr);
+
+ this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
+
+ Optional pickingObjectDTO = Stream.of(this.mPickingList.getValue())
+ .filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToDelete))
+ .findSingle();
+
+ if (pickingObjectDTO.isPresent()) {
+ pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToDelete);
+ }
+
+ this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
+
+ this.resetMatchedRows();
+ this.sendOnRowSaved();
+ this.sendOnLoadingEnded();
+
+ }, this::sendError);
+ }
+ });
+ }
+
+ public void closeLU() {
+ if (mCurrentMtbColt == null) return;
+
+ this.sendOnLoadingStarted();
+
+ mColliMagazzinoRESTConsumer.canLUBeDeleted(mCurrentMtbColt, canBeDeleted -> {
+ if (canBeDeleted) {
+ deleteLU(() -> {
+ this.sendLUClosed();
+ this.sendOnLoadingEnded();
+ });
+ } else {
+ mColliMagazzinoRESTConsumer.updateDataFine(mCurrentMtbColt, () -> {
+
+ if (!mCurrentMtbColt.getDisablePrint()) {
+ printCollo(this::postCloseOperations);
+ } else {
+ postCloseOperations();
+ }
+
+ this.sendLUClosed();
+ this.sendOnLoadingEnded();
+ }, this::sendError);
+ }
+ }, this::sendError);
+ }
+
+ private void printCollo(Runnable onComplete) {
+ this.mPrinterRESTConsumer.getAvailablePrinters(mDefaultCodMdep, PrinterRESTConsumer.Type.SECONDARIA, printerList -> {
+
+ if (printerList == null || printerList.size() == 0) {
+ this.sendError(new NoPrintersFoundException());
+ onComplete.run();
+ return;
+ }
+
+ String reportName = ReportManager.getReportNameLUFromGestione(mCurrentMtbColt.getGestioneEnum());
+
+ this.mPrinterRESTConsumer.printCollo(
+ printerList.get(0),
+ mCurrentMtbColt,
+ 1,
+ reportName, () -> {
+ this.sendLUSuccessfullyPrinted();
+ onComplete.run();
+ }, ex -> this.sendLUPrintError(ex, onComplete));
+ }, this::sendError);
+
+ }
+
+ private void postCloseOperations() {
+ this.mCurrentMtbColt = null;
+ this.sendLUClosed();
+ this.sendOnLoadingEnded();
+ }
+
+ private void deleteLU(Runnable onComplete) {
+ mColliMagazzinoRESTConsumer.deleteCollo(mCurrentMtbColt, () -> {
+ this.mCurrentMtbColt = null;
+
+ if (onComplete != null) onComplete.run();
+ }, this::sendError);
+ }
+
+ public void resetMatchedRows() {
+ for (PickingObjectDTO pickingObjectDTO : this.mPickingList.getValue()) {
+ pickingObjectDTO
+ .setTempPickData(null)
+ .setHidden(false);
+ }
+
+ this.mPickingList.postValue(this.mPickingList.getValue());
+ this.sendFilterRemoved();
+ }
+
+
+ private void sendOnLoadingStarted() {
+ if (this.mListener != null) mListener.onLoadingStarted();
+ }
+
+ private void sendOnLoadingEnded() {
+ if (this.mListener != null) mListener.onLoadingEnded();
+ }
+
+ private void sendOnNoteAggiuntiveRequest(RunnableArgs onComplete) {
+ if (this.mListener != null) this.mListener.onNoteAggiuntiveRequest(onComplete);
+ }
+
+ private void sendError(Exception ex) {
+ if (this.mListener != null) mListener.onError(ex);
+ }
+
+ private void sendLUOpened(MtbColt mtbColt) {
+ if (this.mListener != null) mListener.onLUOpened(mtbColt);
+ }
+
+ private void sendLUClosed() {
+ if (this.mListener != null) mListener.onLUClosed();
+ }
+
+ private void sendLUSuccessfullyPrinted() {
+ if (this.mListener != null) mListener.onLUSuccessullyPrinted();
+ }
+
+ private void sendLUPrintError(Exception ex, Runnable onComplete) {
+ if (this.mListener != null) mListener.onLUPrintError(ex, onComplete);
+ }
+
+ private void sendOnItemDispatched(PickingObjectDTO pickingObjectDTO,
+ MtbAart mtbAart,
+ BigDecimal initialNumCnf,
+ BigDecimal initialQtaCnf,
+ BigDecimal initialQtaTot,
+ BigDecimal totalQtaOrd,
+ BigDecimal totalNumCnfOrd,
+ BigDecimal qtaCnfOrd,
+ BigDecimal totalQtaToBeTaken,
+ BigDecimal totalNumCnfToBeTaken,
+ BigDecimal qtaCnfToBeTaken,
+ BigDecimal totalQtaAvailable,
+ BigDecimal totalNumCnfAvailable,
+ BigDecimal qtaCnfAvailable,
+ String partitaMag,
+ Date dataScad,
+ boolean canPartitaMagBeChanged,
+ RunnableArgss onComplete) {
+ if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO,
+ mtbAart,
+ initialNumCnf,
+ initialQtaCnf,
+ initialQtaTot,
+ totalQtaOrd,
+ totalNumCnfOrd,
+ qtaCnfOrd,
+ totalQtaToBeTaken,
+ totalNumCnfToBeTaken,
+ qtaCnfToBeTaken,
+ totalQtaAvailable,
+ totalNumCnfAvailable,
+ qtaCnfAvailable,
+ partitaMag,
+ dataScad,
+ canPartitaMagBeChanged,
+ onComplete);
+ }
+
+
+ private void sendOnRowSaved() {
+ 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();
+ }
+
+ private void sendMtbColrDeleteRequest(RunnableArgs onComplete) {
+ if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete);
+ }
+
+ public AccettazionePickingViewModel setListeners(AccettazionePickingViewModel.Listener
+ listener) {
+ this.mListener = listener;
+ return this;
+ }
+
+ public interface Listener extends ILoadingListener, ILUPrintListener, ILUBaseOperationsListener {
+
+ void onNoteAggiuntiveRequest(RunnableArgs onComplete);
+
+ void onError(Exception ex);
+
+ void onItemDispatched(PickingObjectDTO pickingObjectDTO,
+ MtbAart mtbAart,
+ BigDecimal initialNumCnf,
+ BigDecimal initialQtaCnf,
+ BigDecimal initialQtaTot,
+ BigDecimal totalQtaOrd,
+ BigDecimal totalNumCnfOrd,
+ BigDecimal qtaCnfOrd,
+ BigDecimal totalQtaToBeTaken,
+ BigDecimal totalNumCnfToBeTaken,
+ BigDecimal qtaCnfToBeTaken,
+ BigDecimal totalQtaAvailable,
+ BigDecimal totalNumCnfAvailable,
+ BigDecimal qtaCnfAvailable,
+ String partitaMag,
+ Date dataScad,
+ boolean canOverflowOrderQuantity,
+ RunnableArgss onComplete);
+
+ void onRowSaved();
+
+ void onFilterApplied(String newValue);
+
+ void onFilterRemoved();
+
+ void onMtbColrDeleteRequest(RunnableArgs onComplete);
+
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/core/AccettazioneListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/core/AccettazioneListAdapter.java
new file mode 100644
index 00000000..a5aefc73
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/core/AccettazioneListAdapter.java
@@ -0,0 +1,159 @@
+package it.integry.integrywmsnative.gest.accettazione_picking.core;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.databinding.DataBindingUtil;
+import androidx.databinding.ObservableArrayList;
+import androidx.databinding.ObservableList;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.utility.UtilityNumber;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.databinding.AccettazioneOrdineInevasoMainListGroupHeaderBinding;
+import it.integry.integrywmsnative.databinding.AccettazioneOrdineInevasoMainListGroupItemBinding;
+import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
+
+public class AccettazioneListAdapter extends SectionedRecyclerViewAdapter {
+
+ private Context mContext;
+ private List mDataset = new ArrayList<>();
+
+ private RunnableArgs mOnItemClicked;
+
+ static class SubheaderHolder extends RecyclerView.ViewHolder {
+
+ AccettazioneOrdineInevasoMainListGroupHeaderBinding mBinding;
+
+ SubheaderHolder(AccettazioneOrdineInevasoMainListGroupHeaderBinding binding) {
+ super(binding.getRoot());
+ this.mBinding = binding;
+ }
+
+ }
+
+ static class SingleItemViewHolder extends RecyclerView.ViewHolder {
+
+ AccettazioneOrdineInevasoMainListGroupItemBinding mBinding;
+
+ SingleItemViewHolder(AccettazioneOrdineInevasoMainListGroupItemBinding binding) {
+ super(binding.getRoot());
+ this.mBinding = binding;
+ }
+ }
+
+
+ public AccettazioneListAdapter(AppCompatActivity context, ObservableArrayList mutableDataSet) {
+ this.mContext = context;
+
+ mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() {
+ @Override
+ public void onChanged(ObservableList sender) {
+ mDataset.clear();
+ mDataset.addAll(sender);
+ notifyDataSetChanged();
+ notifyDataChanged();
+ }
+ });
+ }
+
+ public void setOnItemClicked(RunnableArgs onItemClicked) {
+ this.mOnItemClicked = onItemClicked;
+ }
+
+
+ @Override
+ public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
+ AccettazioneOrdineInevasoMainListGroupHeaderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.accettazione_ordine_inevaso_main_list__group_header, parent, false);
+ return new SubheaderHolder(binding);
+ }
+
+ @Override
+ public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
+ AccettazioneOrdineInevasoMainListGroupItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.accettazione_ordine_inevaso_main_list__group_item, parent, false);
+ return new SingleItemViewHolder(binding);
+ }
+
+
+ @Override
+ public void onBindSubheaderViewHolder(SubheaderHolder subheaderHolder, int nextItemPosition) {
+ AccettazioneListModel pickingObjectDTO = this.mDataset.get(nextItemPosition);
+
+ subheaderHolder.mBinding.spedizioneGroupTitle.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getGroupTitle()) ? View.GONE : View.VISIBLE);
+ subheaderHolder.mBinding.spedizioneGroupTitle.setText(pickingObjectDTO.getGroupTitle());
+ }
+
+ @Override
+ public void onBindItemViewHolder(final SingleItemViewHolder holder, final int position) {
+ AccettazioneListModel pickingObjectDTO = this.mDataset.get(position);
+
+ if (pickingObjectDTO.getQtaEvasa().subtract(pickingObjectDTO.getQtaTot()).floatValue() >= 0) {
+ holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
+ } else if (pickingObjectDTO.getQtaEvasa().floatValue() > 0) {
+ holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
+ } else if (position % 2 == 1) {
+ holder.mBinding.getRoot().setBackgroundColor(Color.WHITE);
+ } else {
+ holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
+ }
+
+ holder.mBinding.deactivatedOverBg.setVisibility(!pickingObjectDTO.isActive() ? View.VISIBLE : View.GONE);
+ holder.mBinding.getRoot().setAlpha(!pickingObjectDTO.isActive() ? 0.8f : 1);
+ holder.mBinding.badge1.setBackground(mContext.getResources().getDrawable(!pickingObjectDTO.isActive() ? R.drawable.badge_gray_round_corner : R.drawable.badge1_round_corner));
+ holder.mBinding.qtaEvasa.setTextColor(mContext.getResources().getColor(!pickingObjectDTO.isActive() ? R.color.gray_600 : R.color.green_700));
+
+ holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione());
+ holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY);
+
+
+ holder.mBinding.badge1.setText(pickingObjectDTO.getBadge1());
+ holder.mBinding.badge2.setText(pickingObjectDTO.getBadge2());
+ holder.mBinding.badge2.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getBadge2()) ? View.GONE : View.VISIBLE);
+
+
+ holder.mBinding.qtaEvasa.setText(UtilityNumber.decimalToString(pickingObjectDTO.getQtaEvasa()));
+ holder.mBinding.qtaTot.setText(UtilityNumber.decimalToString(pickingObjectDTO.getQtaTot()));
+
+ holder.mBinding.untMis.setText(pickingObjectDTO.getUntMis());
+ holder.mBinding.untMis.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getUntMis()) ? View.GONE : View.VISIBLE);
+
+ holder.mBinding.getRoot().setOnClickListener(v -> {
+ if (this.mOnItemClicked != null)
+ this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel());
+ });
+ }
+
+ @Override
+ public boolean onPlaceSubheaderBetweenItems(int position) {
+
+ if (getItemSize() == 1) return true;
+ else if (getItemSize() > 1) {
+ AccettazioneListModel compare1 = this.mDataset.get(position);
+ AccettazioneListModel compare2 = this.mDataset.get(position + 1);
+
+ if (UtilityString.equalsIgnoreCase(compare1.getGroupTitle(), compare2.getGroupTitle())) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ @Override
+ public int getItemSize() {
+ return mDataset.size();
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/core/AccettazioneListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/core/AccettazioneListModel.java
new file mode 100644
index 00000000..1de765c5
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/core/AccettazioneListModel.java
@@ -0,0 +1,144 @@
+package it.integry.integrywmsnative.gest.accettazione_picking.core;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.math.BigDecimal;
+
+import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
+
+public class AccettazioneListModel implements Cloneable {
+ private String groupTitle;
+
+ private String badge1;
+ private String badge2;
+
+ private String descrizione;
+ private boolean descrizionePresente;
+ private String subDescrizione1;
+ private String subDescrizione2;
+ private BigDecimal qtaEvasa;
+ private BigDecimal qtaTot;
+ private String untMis;
+
+ private boolean active;
+
+ private PickingObjectDTO mOriginalModel;
+
+ @NotNull
+ @Override
+ public Object clone() {
+ try {
+ return super.clone();
+ } catch (Exception ex) {
+ return null;
+ }
+ }
+
+ public String getGroupTitle() {
+ return groupTitle;
+ }
+
+ public AccettazioneListModel setGroupTitle(String groupTitle) {
+ this.groupTitle = groupTitle;
+ return this;
+ }
+
+ public String getBadge1() {
+ return badge1;
+ }
+
+ public AccettazioneListModel setBadge1(String badge1) {
+ this.badge1 = badge1;
+ return this;
+ }
+
+ public String getBadge2() {
+ return badge2;
+ }
+
+ public AccettazioneListModel setBadge2(String badge2) {
+ this.badge2 = badge2;
+ return this;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public AccettazioneListModel setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ return this;
+ }
+
+ public boolean isDescrizionePresente() {
+ return descrizionePresente;
+ }
+
+ public AccettazioneListModel setDescrizionePresente(boolean descrizionePresente) {
+ this.descrizionePresente = descrizionePresente;
+ return this;
+ }
+
+ public String getSubDescrizione1() {
+ return subDescrizione1;
+ }
+
+ public AccettazioneListModel setSubDescrizione1(String subDescrizione1) {
+ this.subDescrizione1 = subDescrizione1;
+ return this;
+ }
+
+ public String getSubDescrizione2() {
+ return subDescrizione2;
+ }
+
+ public AccettazioneListModel setSubDescrizione2(String subDescrizione2) {
+ this.subDescrizione2 = subDescrizione2;
+ return this;
+ }
+
+ public BigDecimal getQtaEvasa() {
+ return qtaEvasa;
+ }
+
+ public AccettazioneListModel setQtaEvasa(BigDecimal qtaEvasa) {
+ this.qtaEvasa = qtaEvasa;
+ return this;
+ }
+
+ public BigDecimal getQtaTot() {
+ return qtaTot;
+ }
+
+ public AccettazioneListModel setQtaTot(BigDecimal qtaTot) {
+ this.qtaTot = qtaTot;
+ return this;
+ }
+
+ public String getUntMis() {
+ return untMis;
+ }
+
+ public AccettazioneListModel setUntMis(String untMis) {
+ this.untMis = untMis;
+ return this;
+ }
+
+ public boolean isActive() {
+ return active;
+ }
+
+ public AccettazioneListModel setActive(boolean active) {
+ this.active = active;
+ return this;
+ }
+
+ public PickingObjectDTO getOriginalModel() {
+ return mOriginalModel;
+ }
+
+ public AccettazioneListModel setOriginalModel(PickingObjectDTO mOriginalModel) {
+ this.mOriginalModel = mOriginalModel;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/dto/AccettazioneListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/dto/AccettazioneListModel.java
new file mode 100644
index 00000000..f8ffe200
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/dto/AccettazioneListModel.java
@@ -0,0 +1,133 @@
+package it.integry.integrywmsnative.gest.accettazione_picking.dto;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.math.BigDecimal;
+
+public class AccettazioneListModel implements Cloneable {
+
+
+ private String groupTitle;
+
+ private String badge1;
+ private String badge2;
+
+ private String descrizione;
+ private boolean descrizionePresente;
+ private String subDescrizione1;
+ private String subDescrizione2;
+ private BigDecimal qtaEvasa;
+ private BigDecimal qtaTot;
+ private String untMis;
+
+ private boolean active;
+
+ @NotNull
+ @Override
+ public Object clone() {
+ try {
+ return super.clone();
+ } catch (Exception ex) {
+ return null;
+ }
+ }
+
+ public String getGroupTitle() {
+ return groupTitle;
+ }
+
+ public AccettazioneListModel setGroupTitle(String groupTitle) {
+ this.groupTitle = groupTitle;
+ return this;
+ }
+
+ public String getBadge1() {
+ return badge1;
+ }
+
+ public AccettazioneListModel setBadge1(String badge1) {
+ this.badge1 = badge1;
+ return this;
+ }
+
+ public String getBadge2() {
+ return badge2;
+ }
+
+ public AccettazioneListModel setBadge2(String badge2) {
+ this.badge2 = badge2;
+ return this;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public AccettazioneListModel setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ return this;
+ }
+
+ public boolean isDescrizionePresente() {
+ return descrizionePresente;
+ }
+
+ public AccettazioneListModel setDescrizionePresente(boolean descrizionePresente) {
+ this.descrizionePresente = descrizionePresente;
+ return this;
+ }
+
+ public String getSubDescrizione1() {
+ return subDescrizione1;
+ }
+
+ public AccettazioneListModel setSubDescrizione1(String subDescrizione1) {
+ this.subDescrizione1 = subDescrizione1;
+ return this;
+ }
+
+ public String getSubDescrizione2() {
+ return subDescrizione2;
+ }
+
+ public AccettazioneListModel setSubDescrizione2(String subDescrizione2) {
+ this.subDescrizione2 = subDescrizione2;
+ return this;
+ }
+
+ public BigDecimal getQtaEvasa() {
+ return qtaEvasa;
+ }
+
+ public AccettazioneListModel setQtaEvasa(BigDecimal qtaEvasa) {
+ this.qtaEvasa = qtaEvasa;
+ return this;
+ }
+
+ public BigDecimal getQtaTot() {
+ return qtaTot;
+ }
+
+ public AccettazioneListModel setQtaTot(BigDecimal qtaTot) {
+ this.qtaTot = qtaTot;
+ return this;
+ }
+
+ public String getUntMis() {
+ return untMis;
+ }
+
+ public AccettazioneListModel setUntMis(String untMis) {
+ this.untMis = untMis;
+ return this;
+ }
+
+ public boolean isActive() {
+ return active;
+ }
+
+ public AccettazioneListModel setActive(boolean active) {
+ this.active = active;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/dto/AccettazioneOrdineInevasoOrderBy.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/dto/AccettazioneOrdineInevasoOrderBy.java
similarity index 90%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/dto/AccettazioneOrdineInevasoOrderBy.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/dto/AccettazioneOrdineInevasoOrderBy.java
index 867563c4..084f0df0 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/dto/AccettazioneOrdineInevasoOrderBy.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/dto/AccettazioneOrdineInevasoOrderBy.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto;
+package it.integry.integrywmsnative.gest.accettazione_picking.dto;
/**
* Created by GiuseppeS on 21/03/2018.
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/dto/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/dto/PickingObjectDTO.java
new file mode 100644
index 00000000..23e6bff2
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/dto/PickingObjectDTO.java
@@ -0,0 +1,64 @@
+package it.integry.integrywmsnative.gest.accettazione_picking.dto;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.integry.integrywmsnative.core.model.MtbAart;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
+import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
+
+public class PickingObjectDTO {
+ private SitArtOrdDTO sitArtOrdDTO;
+ private MtbAart mtbAart;
+
+ private PickDataDTO tempPickData;
+ private List withdrawMtbColrs = new ArrayList<>();
+
+ private boolean hidden = false;
+
+ public SitArtOrdDTO getSitArtOrdDTO() {
+ return sitArtOrdDTO;
+ }
+
+ public PickingObjectDTO setSitArtOrdDTO(SitArtOrdDTO sitArtOrdDTO) {
+ this.sitArtOrdDTO = sitArtOrdDTO;
+ return this;
+ }
+
+ public MtbAart getMtbAart() {
+ return mtbAart;
+ }
+
+ public PickingObjectDTO setMtbAart(MtbAart mtbAart) {
+ this.mtbAart = mtbAart;
+ return this;
+ }
+
+ public PickDataDTO getTempPickData() {
+ return tempPickData;
+ }
+
+ public PickingObjectDTO setTempPickData(PickDataDTO tempPickData) {
+ this.tempPickData = tempPickData;
+ return this;
+ }
+
+ public List getWithdrawMtbColrs() {
+ return withdrawMtbColrs;
+ }
+
+ public PickingObjectDTO setWithdrawMtbColrs(List withdrawMtbColrs) {
+ this.withdrawMtbColrs = withdrawMtbColrs;
+ return this;
+ }
+
+ public boolean isHidden() {
+ return hidden;
+ }
+
+ public PickingObjectDTO setHidden(boolean hidden) {
+ this.hidden = hidden;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/rest/OrdineAccettazioneInevasoRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/rest/AccettazionePickingRESTConsumer.java
similarity index 64%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/rest/OrdineAccettazioneInevasoRESTConsumerService.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/rest/AccettazionePickingRESTConsumer.java
index d3b8f11a..c1e5b818 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/rest/OrdineAccettazioneInevasoRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/rest/AccettazionePickingRESTConsumer.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.rest;
+package it.integry.integrywmsnative.gest.accettazione_picking.rest;
import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken;
@@ -8,29 +8,40 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
-import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
+import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
-public class OrdineAccettazioneInevasoRESTConsumerService {
+@Singleton
+public class AccettazionePickingRESTConsumer {
- public static void getBancaliGiaRegistrati(List ordiniToShow, RunnableArgs> onComplete, RunnableArgs onFailed) throws Exception {
+ private final SystemRESTConsumer mSystemRestConsumer;
+
+ @Inject
+ public AccettazionePickingRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
+ this.mSystemRestConsumer = systemRESTConsumer;
+ }
+
+ public void getBancaliGiaRegistrati(List ordiniToShow, RunnableArgs> onComplete, RunnableArgs onFailed) {
List colliWhereCond = new ArrayList<>();
Stream.of(ordiniToShow).forEach(x -> {
try {
- Date date = UtilityDate.recognizeDate(x.getData());
+ Date date = UtilityDate.recognizeDate(x.getDataOrd());
String dateString = UtilityDate.formatDate(date, "yyyy/MM/dd");
- if (!colliWhereCond.contains(x.getGestione() + " " + dateString + " " + x.getNumero())) {
+ if (!colliWhereCond.contains(x.getGestione() + " " + dateString + " " + x.getNumOrd())) {
String gestione = x.getGestione().equalsIgnoreCase("P") ? "L" : x.getGestione();
- colliWhereCond.add(gestione + " " + dateString + " " + x.getNumero());
+ colliWhereCond.add(gestione + " " + dateString + " " + x.getNumOrd());
}
} catch (Exception ex){
UtilityLogger.errorMe(ex);
@@ -38,12 +49,12 @@ public class OrdineAccettazioneInevasoRESTConsumerService {
});
- String colliINCondition = "";
+ StringBuilder colliINCondition = new StringBuilder();
for(int i = 0; i < colliWhereCond.size(); i ++){
- colliINCondition += "'" + colliWhereCond.get(i) + "'";
+ colliINCondition.append("'").append(colliWhereCond.get(i)).append("'");
- if(i < (colliWhereCond.size()-1)) colliINCondition += ",";
+ if(i < (colliWhereCond.size()-1)) colliINCondition.append(",");
}
@@ -59,9 +70,9 @@ public class OrdineAccettazioneInevasoRESTConsumerService {
Type typeOfObjectsList = new TypeToken>() {}.getType();
- SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback>() {
+ mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() {
@Override
- public void onSuccess(List value) {
+ public void onSuccess(ArrayList value) {
if(onComplete != null) onComplete.run(value);
}
@@ -73,4 +84,5 @@ public class OrdineAccettazioneInevasoRESTConsumerService {
}
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java
index 3a8cd77d..9b332953 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java
@@ -17,6 +17,8 @@ import it.integry.integrywmsnative.core.exception.NoLUFoundException;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOperationsListener;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr;
@@ -35,7 +37,7 @@ import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
-import it.integry.integrywmsnative.gest.spedizione.model.PickDataDTO;
+import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
@@ -812,15 +814,7 @@ public class PickingLiberoViewModel {
return this;
}
- public interface Listener {
- void onLoadingStarted();
-
- void onLoadingEnded();
-
- void onLUOpened(MtbColt mtbColt);
-
- void onLUClosed();
-
+ public interface Listener extends ILoadingListener, ILUBaseOperationsListener {
void onMtbColrDeleteRequest(RunnableArgs onComplete);
void onError(Exception ex);
@@ -848,8 +842,6 @@ public class PickingLiberoViewModel {
RunnableArgss onComplete);
void onRowSaved();
-
-
}
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 a8110542..ce9368ea 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
@@ -34,7 +34,7 @@ import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.FragmentProdOrdineProduzioneElencoBinding;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
-import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
+import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso_OLD.AccettazioneOrdineInevasoActivity;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.core.OrdineProduzioneHelper;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.core.OrdineProduzioneListAdapter;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzato;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java
index 7716d498..be2af4fe 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java
@@ -38,7 +38,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeRESTConsumer;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
-import it.integry.integrywmsnative.gest.spedizione.model.PickDataDTO;
+import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
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 c4de92fd..182ebb03 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
@@ -1,6 +1,5 @@
package it.integry.integrywmsnative.gest.spedizione;
-import android.app.Dialog;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
@@ -45,7 +44,6 @@ 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.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.ActivitySpedizioneBinding;
@@ -68,7 +66,7 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQua
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArt;
-public class SpedizioneActivity extends BaseActivity implements SpedizioneViewModel.Listeners, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
+public class SpedizioneActivity extends BaseActivity implements SpedizioneViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
private ActivitySpedizioneBinding mBindings;
@@ -94,7 +92,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
private ArrayList mTestateOrdini;
private ArrayList mColliRegistrati;
- private Dialog mCurrentProgress;
private boolean mShouldCloseActivity;
private final int PICK_UL_REQUEST = 1;
@@ -142,7 +139,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
boolean canOverflowOrderQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione();
boolean shouldAskPesoLU = SettingsManager.iDB().isFlagAskPesoColloSpedizione();
- if (mEnableGiacenza) mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this);
+ if (mEnableGiacenza) this.openProgress();
mViewmodel.init(codMdep, mEnableGiacenza, enableCheckPartitaMag, shouldAskPesoLU, canOverflowOrderQuantity, mSitArtOrd, mTestateOrdini, mColliRegistrati);
}
@@ -206,7 +203,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
List spedizioneListModels = new ArrayList<>();
-
List sortedList = null;
if(!mDivideByGrpMerc) {
@@ -714,19 +710,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
this.mViewmodel.deleteRow(mtbColr);
}
- private void openProgress() {
- if (this.mCurrentProgress == null) {
- this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this);
- }
- }
-
- private void closeProgress() {
- if (mCurrentProgress != null) {
- mCurrentProgress.dismiss();
- mCurrentProgress = null;
- }
- }
-
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneComponent.java
index 2183034c..311ea790 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneComponent.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneComponent.java
@@ -7,7 +7,6 @@ public interface SpedizioneComponent {
@Subcomponent.Factory
interface Factory {
-
SpedizioneComponent create();
}
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 71acec42..f6a0988d 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
@@ -27,7 +27,9 @@ import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOperationsListener;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPrintListener;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
import it.integry.integrywmsnative.core.model.MtbAart;
@@ -62,7 +64,7 @@ import it.integry.integrywmsnative.gest.spedizione.exceptions.NoOrdersSelectedEx
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
-import it.integry.integrywmsnative.gest.spedizione.model.PickDataDTO;
+import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
@@ -73,7 +75,7 @@ public class SpedizioneViewModel {
private MutableLiveData> mPickingList = new MutableLiveData<>();
private List mColliRegistrati = new ArrayList<>();
- private Listeners mListener;
+ private Listener mListener;
private GestioneEnum mDefaultGestioneOfUL = null;
private String mDefaultCodMdep = null;
@@ -519,12 +521,6 @@ public class SpedizioneViewModel {
}
PickDataDTO pickDataDTO = PickDataDTO.fromEan128(ean128Model);
-
-// if(!mEnableGiacenza) {
-// pickDataDTO.getManualPickDTO().setNumCnf(null);
-// pickDataDTO.getManualPickDTO().setQtaTot(null);
-// }
-
this.loadArticolo(barcodeProd, pickDataDTO, onComplete);
}
} else {
@@ -1246,9 +1242,9 @@ public class SpedizioneViewModel {
public void deleteRow(MtbColr mtbColrToDelete) {
- this.sendMtbColrDeleteRequest(shouldDelete -> {
+ this.sendMtbColrDeleteRequest(canDelete -> {
- if (shouldDelete) {
+ if (canDelete) {
this.sendOnLoadingStarted();
MtbColt mtbColt = new MtbColt()
@@ -1498,19 +1494,13 @@ public class SpedizioneViewModel {
return (ArrayList) this.mColliRegistrati;
}
- public SpedizioneViewModel setListeners(Listeners listeners) {
- this.mListener = listeners;
+ public SpedizioneViewModel setListeners(Listener listener) {
+ this.mListener = listener;
return this;
}
- public interface Listeners extends ILUPrintListener {
- void onLoadingStarted();
+ public interface Listener extends ILUPrintListener, ILoadingListener, ILUBaseOperationsListener {
- void onLoadingEnded();
-
- void onLUOpened(MtbColt mtbColt);
-
- void onLUClosed();
void onLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss onComplete);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneListModel.java
index 503b6f64..94f425fa 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneListModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneListModel.java
@@ -7,7 +7,7 @@ import java.math.BigDecimal;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
-public class SpedizioneListModel implements Cloneable{
+public class SpedizioneListModel implements Cloneable {
private String groupTitle;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickingObjectDTO.java
index f36ace32..ddd7e7a1 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickingObjectDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickingObjectDTO.java
@@ -6,6 +6,7 @@ import java.util.List;
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.rest.model.SitArtOrdDTO;
public class PickingObjectDTO {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java
index ec1b6df5..09a28293 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java
@@ -1,7 +1,6 @@
package it.integry.integrywmsnative.gest.vendita.core;
import android.content.Context;
-import android.text.TextUtils;
import android.util.Log;
import com.annimon.stream.Stream;
@@ -12,23 +11,21 @@ import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.DtbOrdt;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.EsitoType;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-import it.integry.integrywmsnative.core.model.DtbOrdt;
-import it.integry.integrywmsnative.core.model.MtbColt;
-import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityFirebase;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
-import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
-import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
import it.integry.integrywmsnative.gest.vendita.rest.OrdiniVenditaRESTConsumerService;
import retrofit2.Call;
import retrofit2.Callback;
@@ -87,106 +84,6 @@ public class VenditaHelper {
- public void retrievePickingList(List barcodeOrdini, String dateCons, RunnableArgs> onComplete, RunnableArgs onFailed){
- String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
-
- String joinedBarcodes = TextUtils.join(",", barcodeOrdini);
-
- OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class, 90);
-
- Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_pick_v");
- perfTrace.start();
-
- codMdep = SettingsManager.iDB().isFlagEnableCheckDepositoSpedizione() ? codMdep : null;
-
- service.getPickingList(codMdep, dateCons, joinedBarcodes).enqueue(new Callback>>() {
- @Override
- public void onResponse(Call>> call, Response>> response) {
- if(response.isSuccessful()) {
-
- if(response.body() != null) {
- if(response.body().getEsito() == EsitoType.OK) {
- UtilityFirebase.stopPerformanceTrace(perfTrace, false);
- onComplete.run(response.body().getDto());
-
- } else {
- UtilityFirebase.stopPerformanceTrace(perfTrace, true);
- onFailed.run(new Exception(response.body().getErrorMessage()));
- }
- } else {
- UtilityFirebase.stopPerformanceTrace(perfTrace, true);
- onFailed.run(new Exception(response.message()));
- }
- } else {
- UtilityFirebase.stopPerformanceTrace(perfTrace, true);
- onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
- }
- }
-
- @Override
- public void onFailure(Call>> call, Throwable t) {
- UtilityFirebase.stopPerformanceTrace(perfTrace, true);
- onFailed.run(new Exception(t));
- }
- });
-
- }
-
- public void retrievePickingListNew(List orders, RunnableArgs> onComplete, RunnableArgs onFailed){
- String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
-
- List getPickingListDTOs = Stream.of(orders)
- .map(x -> new GetPickingListDTO()
- .setData(x.getDataOrdS())
- .setGestione(x.getGestione())
- .setNumero(x.getNumOrd())
- .setDataConsegna(x.getDataConsS())
- .setIdViaggio(x.getIdViaggio()))
- .toList();
-
- OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class, 90);
-
- Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_pick_v_new");
- perfTrace.start();
-
- codMdep = SettingsManager.iDB().isFlagEnableCheckDepositoSpedizione() ? codMdep : null;
-
- service.getPickingListNew(codMdep, getPickingListDTOs).enqueue(new Callback>>() {
- @Override
- public void onResponse(Call>> call, Response>> response) {
- if(response.isSuccessful()) {
-
- if(response.body() != null) {
- if(response.body().getEsito() == EsitoType.OK) {
- UtilityFirebase.stopPerformanceTrace(perfTrace, false);
- onComplete.run(response.body().getDto());
-
- } else {
- UtilityFirebase.stopPerformanceTrace(perfTrace, true);
- onFailed.run(new Exception(response.body().getErrorMessage()));
- }
- } else {
- UtilityFirebase.stopPerformanceTrace(perfTrace, true);
- onFailed.run(new Exception(response.message()));
- }
- } else {
- UtilityFirebase.stopPerformanceTrace(perfTrace, true);
- onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
- }
- }
-
- @Override
- public void onFailure(Call>> call, Throwable t) {
- UtilityFirebase.stopPerformanceTrace(perfTrace, true);
- onFailed.run(new Exception(t));
- }
- });
-
- }
-
-
-
-
public void getBancaliVenditaGiaRegistrati(List orders, RunnableArgs> onComplete, RunnableArgs onFailed) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTOOld.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTOOld.java
deleted file mode 100644
index 1b3e24c3..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTOOld.java
+++ /dev/null
@@ -1,464 +0,0 @@
-package it.integry.integrywmsnative.gest.vendita.dto;
-
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.Date;
-
-import it.integry.integrywmsnative.core.model.MtbPartitaMag;
-import it.integry.integrywmsnative.core.rest.model.Ean128Model;
-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.utility.UtilityDate;
-import it.integry.integrywmsnative.core.utility.UtilityLogger;
-import it.integry.integrywmsnative.core.utility.UtilityString;
-
-public class PickingObjectDTOOld {
-
- private Integer numCollo;
- private String gestione;
- private String serCollo;
- private String descrizioneEstesa;
- private String codJcom;
- private String codMart;
- private String posizione;
- private BigDecimal qtaCollo;
- private String dataCollo;
- private Integer idViaggio;
- private String codTagl;
- private String codCol;
- private String dataScad;
- private String codArtFor;
- private String partitaMag;
- private BigDecimal qtaOrd;
- private BigDecimal numCnfCollo;
- private BigDecimal numCnfOrd;
- private String codAlis;
- private BigDecimal colliPedana;
- private BigDecimal qtaDisponibileCollo;
- private BigDecimal numCnfDisponibileCollo;
- private String codTcol;
-
- private MtbAart mtbAart;
-
- private Boolean hidden = null;
- private Boolean deactivated = null;
- private Boolean tempHidden = null;
- private PickData tempPickData = null;
-
- private ArrayList withdrawRows = new ArrayList<>();
-
- public Integer getNumCollo() {
- return numCollo;
- }
-
- public PickingObjectDTOOld setNumCollo(Integer numCollo) {
- this.numCollo = numCollo;
- return this;
- }
-
- public String getGestione() {
- return gestione;
- }
-
- public PickingObjectDTOOld setGestione(String gestione) {
- this.gestione = gestione;
- return this;
- }
-
- public String getSerCollo() {
- return serCollo;
- }
-
- public PickingObjectDTOOld setSerCollo(String serCollo) {
- this.serCollo = serCollo;
- return this;
- }
-
- public String getDescrizioneEstesa() {
- return descrizioneEstesa;
- }
-
- public PickingObjectDTOOld setDescrizioneEstesa(String descrizioneEstesa) {
- this.descrizioneEstesa = descrizioneEstesa;
- return this;
- }
-
- public String getCodJcom() {
- return codJcom;
- }
-
- public PickingObjectDTOOld setCodJcom(String codJcom) {
- this.codJcom = codJcom;
- return this;
- }
-
- public String getCodMart() {
- return codMart;
- }
-
- public PickingObjectDTOOld setCodMart(String codMart) {
- this.codMart = codMart;
- return this;
- }
-
- public String getPosizione() {
- return posizione;
- }
-
- public PickingObjectDTOOld setPosizione(String posizione) {
- this.posizione = posizione;
- return this;
- }
-
- public BigDecimal getQtaCollo() {
- return qtaCollo != null ? qtaCollo : BigDecimal.ZERO;
- }
-
- public PickingObjectDTOOld setQtaCollo(BigDecimal qtaCollo) {
- this.qtaCollo = qtaCollo;
- return this;
- }
-
- public String getDataColloS() {
- return dataCollo;
- }
-
- public Date getDataColloD() {
- return UtilityDate.recognizeDateWithExceptionHandler(getDataColloS());
- }
-
- public String getDataColloHuman() {
- Date dataColloD = null;
- try {
- dataColloD = getDataColloD();
- } catch (Exception ex){
- UtilityLogger.errorMe(ex);
- }
-
- if(dataColloD != null){
- return UtilityDate.formatDate(dataColloD, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN);
- } else return null;
- }
-
- public PickingObjectDTOOld setDataCollo(String dataCollo) {
- this.dataCollo = dataCollo;
- return this;
- }
-
- public Integer getIdViaggio() {
- return idViaggio;
- }
-
- public PickingObjectDTOOld setIdViaggio(Integer idViaggio) {
- this.idViaggio = idViaggio;
- return this;
- }
-
- public String getCodTagl() {
- return codTagl;
- }
-
- public PickingObjectDTOOld setCodTagl(String codTagl) {
- this.codTagl = codTagl;
- return this;
- }
-
- public String getCodCol() {
- return codCol;
- }
-
- public PickingObjectDTOOld setCodCol(String codCol) {
- this.codCol = codCol;
- return this;
- }
-
- public String getDataScadS() {
- return dataScad;
- }
-
- public Date getDataScadD() {
- return UtilityDate.recognizeDateWithExceptionHandler(getDataScadS());
- }
-
- public PickingObjectDTOOld setDataScad(String dataScad) {
- this.dataScad = dataScad;
- return this;
- }
-
- public String getCodArtFor() {
- return codArtFor;
- }
-
- public PickingObjectDTOOld setCodArtFor(String codArtFor) {
- this.codArtFor = codArtFor;
- return this;
- }
-
- public String getPartitaMag() {
- return partitaMag;
- }
-
- public PickingObjectDTOOld setPartitaMag(String partitaMag) {
- this.partitaMag = partitaMag;
- return this;
- }
-
- public BigDecimal getQtaOrd() {
- return qtaOrd != null ? qtaOrd : BigDecimal.ZERO;
- }
-
- public PickingObjectDTOOld setQtaOrd(BigDecimal qtaOrd) {
- this.qtaOrd = qtaOrd;
- return this;
- }
-
- public BigDecimal getNumCnfCollo() {
- return numCnfCollo;
- }
-
- public PickingObjectDTOOld setNumCnfCollo(BigDecimal numCnfCollo) {
- this.numCnfCollo = numCnfCollo;
- return this;
- }
-
- public BigDecimal getNumCnfOrd() {
- return numCnfOrd;
- }
-
- public PickingObjectDTOOld setNumCnfOrd(BigDecimal numCnfOrd) {
- this.numCnfOrd = numCnfOrd;
- return this;
- }
-
- public BigDecimal getQtaCnfCollo() {
- if(numCnfCollo != null && numCnfCollo.compareTo(BigDecimal.ZERO) > 0 && qtaCollo != null && qtaCollo.compareTo(BigDecimal.ZERO) > 0) {
- return qtaCollo.divide(numCnfCollo, 3, RoundingMode.HALF_EVEN);
- }
- return null;
- }
-
- public BigDecimal getQtaCnfOrd() {
- if(numCnfOrd != null && numCnfOrd.compareTo(BigDecimal.ZERO) > 0 && qtaOrd != null && qtaOrd.compareTo(BigDecimal.ZERO) > 0) {
- return qtaOrd.divide(numCnfOrd, 3, RoundingMode.HALF_EVEN);
- }
- return null;
- }
-
- public String getCodAlis() {
- return codAlis;
- }
-
- public PickingObjectDTOOld setCodAlis(String codAlis) {
- this.codAlis = codAlis;
- return this;
- }
-
- public BigDecimal getColliPedana() {
- return colliPedana;
- }
-
- public PickingObjectDTOOld setColliPedana(BigDecimal colliPedana) {
- this.colliPedana = colliPedana;
- return this;
- }
-
- public BigDecimal getQtaDisponibileCollo() {
- return qtaDisponibileCollo;
- }
-
- public PickingObjectDTOOld setQtaDisponibileCollo(BigDecimal qtaDisponibileCollo) {
- this.qtaDisponibileCollo = qtaDisponibileCollo;
- return this;
- }
-
- public BigDecimal getNumCnfDisponibileCollo() {
- return numCnfDisponibileCollo;
- }
-
- public PickingObjectDTOOld setNumCnfDisponibileCollo(BigDecimal numCnfDisponibileCollo) {
- this.numCnfDisponibileCollo = numCnfDisponibileCollo;
- return this;
- }
-
- public String getCodTcol() {
- return codTcol;
- }
-
- public PickingObjectDTOOld setCodTcol(String codTcol) {
- this.codTcol = codTcol;
- return this;
- }
-
- public MtbAart getMtbAart() {
- return mtbAart;
- }
-
- public PickingObjectDTOOld setMtbAart(MtbAart mtbAart) {
- this.mtbAart = mtbAart;
- return this;
- }
-
- public Boolean isHidden() {
- if(hidden == null) hidden = false;
- return hidden;
- }
-
- public PickingObjectDTOOld setHidden(boolean hidden) {
- this.hidden = hidden;
- return this;
- }
-
- public Boolean isDeactivated() {
- if(deactivated == null) deactivated = getQtaCollo() == null || getQtaCollo().floatValue() == 0;
- return deactivated;
- }
-
- public PickingObjectDTOOld setDeactivated(boolean deactivated) {
- this.deactivated = deactivated;
- return this;
- }
-
- public Boolean isTempHidden() {
- if(tempHidden == null) tempHidden = false;
- return tempHidden;
- }
-
- public PickingObjectDTOOld setTempHidden(Boolean tempHidden) {
- this.tempHidden = tempHidden;
- return this;
- }
-
- public PickData getTempPickData() {
- return tempPickData;
- }
-
- public PickingObjectDTOOld setTempPickData(PickData tempPickData) {
- this.tempPickData = tempPickData;
- return this;
- }
-
- public ArrayList getWithdrawRows() {
- if(withdrawRows == null) withdrawRows = new ArrayList<>();
- return withdrawRows;
- }
-
- public PickingObjectDTOOld setWithdrawRows(ArrayList withdrawRows) {
- this.withdrawRows = withdrawRows;
- return this;
- }
-
- public static class PickData {
- private BigDecimal qtaTot;
- private BigDecimal qtaCnf;
- private BigDecimal numCnf;
- private MtbColt sourceMtbColt;
- private MtbPartitaMag mtbPartitaMag;
- private boolean isEanPeso;
-
- public BigDecimal getQtaTot() {
- return qtaTot;
- }
-
- public PickData setQtaTot(BigDecimal qtaTot) {
- this.qtaTot = qtaTot;
- return this;
- }
-
- public BigDecimal getQtaCnf() {
- return qtaCnf;
- }
-
- public PickData setQtaCnf(BigDecimal qtaCnf) {
- this.qtaCnf = qtaCnf;
- return this;
- }
-
- public BigDecimal getNumCnf() {
- return numCnf;
- }
-
- public PickData setNumCnf(BigDecimal numCnf) {
- this.numCnf = numCnf;
- return this;
- }
-
- public MtbColt getSourceMtbColt() {
- return sourceMtbColt;
- }
-
- public PickData setSourceMtbColt(MtbColt sourceMtbColt) {
- this.sourceMtbColt = sourceMtbColt;
- return this;
- }
-
- public MtbPartitaMag getMtbPartitaMag() {
- return mtbPartitaMag;
- }
-
- public PickData setMtbPartitaMag(MtbPartitaMag mtbPartitaMag) {
- this.mtbPartitaMag = mtbPartitaMag;
- return this;
- }
-
- public boolean isEanPeso() {
- return isEanPeso;
- }
-
- public PickData setEanPeso(boolean eanPeso) {
- isEanPeso = eanPeso;
- return this;
- }
-
- public static PickData fromEan128(Ean128Model ean128Model) {
- PickingObjectDTOOld.PickData pickData = null;
-
- if(ean128Model != null){
- pickData = new PickingObjectDTOOld.PickData();
-
-
- MtbPartitaMag mtbPartitaMag = new MtbPartitaMag();
- if(!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) {
- mtbPartitaMag.setPartitaMag(ean128Model.BatchLot);
- }
-
- try {
- if(!UtilityString.isNullOrEmpty(ean128Model.BestBefore)){
- mtbPartitaMag.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore));
- } else if(!UtilityString.isNullOrEmpty(ean128Model.Expiry)) {
- mtbPartitaMag.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry));
- }
-
- } catch (Exception e) {
- UtilityLogger.errorMe(e);
- }
-
-
- if(!UtilityString.isNullOrEmpty(mtbPartitaMag.getPartitaMag())) {
- pickData.setMtbPartitaMag(mtbPartitaMag);
- }
-
- if(ean128Model.Count != null && ean128Model.Count > 0) {
- //if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
- pickData.setNumCnf(new BigDecimal(ean128Model.Count));
- //} else {
- // dto.setQtaTot(new BigDecimal(ean128Model.Count));
- //}
- }
-
- if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0) {
- pickData.setQtaTot(new BigDecimal(ean128Model.NetWeightKg));
- pickData.setEanPeso(true);
- }
-
- if(pickData.getQtaTot() != null && pickData.getQtaTot().floatValue() > 0 && pickData.getNumCnf() != null && pickData.getNumCnf().floatValue() > 0) {
- pickData.setQtaCnf(pickData.getQtaTot().divide(pickData.getNumCnf()));
- }
-
- }
-
- return pickData;
- }
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/OrdiniVenditaRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/OrdiniVenditaRESTConsumerService.java
index 459f5d71..44707f5e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/OrdiniVenditaRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/OrdiniVenditaRESTConsumerService.java
@@ -2,15 +2,11 @@ package it.integry.integrywmsnative.gest.vendita.rest;
import java.util.List;
-import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.model.DtbOrdt;
-import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
-import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
import retrofit2.Call;
-import retrofit2.http.Body;
import retrofit2.http.GET;
-import retrofit2.http.POST;
import retrofit2.http.Query;
public interface OrdiniVenditaRESTConsumerService {
@@ -21,12 +17,6 @@ public interface OrdiniVenditaRESTConsumerService {
@GET("SM2GetOrdiniVenditaInevasi")
Call>> listOrdiniInevasi(@Query("codMdep") String codMdep, @Query("gestione") String gestione);
- @GET("getPickingListFromOrdini")
- Call>> getPickingList(@Query("codMdep") String codMdep, @Query("dataCons") String dataCons, @Query("chiaviOrdini") String codBarreBacale);
-
- @POST("getPickingListFromOrdini2")
- Call>> getPickingListNew(@Query("codMdep") String codMdep, @Body List pickingListDTO);
-
@GET("getOrdiniInCommCollo")
Call>> getOrdiniInCommessaCollo(@Query("dataCollo") String dataCollo, @Query("numCollo") Integer numCollo, @Query("serCollo") String serCollo, @Query("gestioneCollo") String gestioneCollo, @Query("gestioneOrdine") String gestioneOrdine, @Query("codMdep") String codMdep);
diff --git a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list___cod_art_for.xml b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list___cod_art_for.xml
deleted file mode 100644
index 1c960ba9..00000000
--- a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list___cod_art_for.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list___cod_art_for_group_model.xml b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list___cod_art_for_group_model.xml
deleted file mode 100644
index aa886c73..00000000
--- a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list___cod_art_for_group_model.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_header.xml b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_header.xml
new file mode 100644
index 00000000..edd82cdc
--- /dev/null
+++ b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_header.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml
new file mode 100644
index 00000000..c2152361
--- /dev/null
+++ b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml b/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
index c2551600..6b9086bd 100644
--- a/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
+++ b/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
@@ -1,263 +1,258 @@
+
+ name="accettazioneView"
+ type="it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingActivity" />
-
+
-
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
+
+ android:layout_height="match_parent">
-
+ android:layout_height="match_parent">
-
-
-
-
-
-
-
-
+ android:background="@color/full_white"
+ android:minHeight="?attr/actionBarSize">
-
+ android:layout_height="?attr/actionBarSize"
+ app:layout_collapseMode="pin"
+ style="@style/AppTheme.NewMaterial.Text" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
+ app:el_duration="400"
+ app:el_expanded="false">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
+
\ No newline at end of file
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index c95f704a..c403e990 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -232,7 +232,7 @@
Scansiona un articolo per iniziare
Picking libero
Impossibile caricare ordini di diverse gestioni
- Non è stato possibile identificare la gestione degli ordini selezionati
+ Non è stato possibile identificare la gestione degli ordini selezionati
Impossibile caricare ordini di diversi depositi
Non verrà salvata la linea di produzione poiché stai selezionando ordini di diverse produzioni
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 70aad5ac..ec14fa05 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -231,7 +231,7 @@
Please press + button to start with picking
Scan an item to start
Can\'t load orders of different type
- Can\'t load current order type
+ Can\'t load current order type
Can\'t load orders of different deposits
The production line will not be saved because you are selecting orders for different productions
Logistics Unit\'s barcode is not accepted at this moment
diff --git a/build.gradle b/build.gradle
index 30070adf..75bc5228 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,7 +10,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.0.1'
+ classpath 'com.android.tools.build:gradle:4.0.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.4'
classpath 'com.google.firebase:perf-plugin:1.3.1'