diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
deleted file mode 100644
index 3d6e3c4b..00000000
--- a/.idea/deploymentTargetDropDown.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
index 2b8a50fc..fdf8d994 100644
--- a/.idea/kotlinc.xml
+++ b/.idea/kotlinc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 24feed7e..ffae8061 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 390
- def appVersionName = '1.34.06'
+ def appVersionCode = 391
+ def appVersionName = '1.35.00'
signingConfigs {
release {
@@ -92,7 +92,7 @@ android {
}
dependencies {
- coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.2'
+ coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0', {
exclude group: 'com.android.support', module: 'support-annotations'
@@ -108,32 +108,32 @@ dependencies {
implementation 'com.google.firebase:firebase-core'
implementation 'com.google.firebase:firebase-crashlytics'
implementation 'com.google.firebase:firebase-perf'
- implementation 'com.google.android.gms:play-services-basement:18.1.0'
+ implementation 'com.google.android.gms:play-services-basement:18.2.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- implementation 'com.google.android.material:material:1.8.0'
+ implementation 'com.google.android.material:material:1.9.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.cardview:cardview:1.0.0'
- implementation 'androidx.recyclerview:recyclerview:1.2.1'
+ implementation 'androidx.recyclerview:recyclerview:1.3.1'
- implementation('androidx.preference:preference-ktx:1.2.0') {
+ implementation('androidx.preference:preference-ktx:1.2.1') {
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel'
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
}
implementation "androidx.slidingpanelayout:slidingpanelayout:1.2.0"
- implementation 'com.squareup.okhttp3:okhttp:4.9.1'
+ implementation 'com.squareup.okhttp3:okhttp:4.10.0'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.annimon:stream:1.2.2'
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.2'
// implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'org.apache.commons:commons-text:1.9'
//MVVM
- def dagger2_version = '2.40.1'
+ def dagger2_version = '2.46.1'
api "com.google.dagger:dagger:$dagger2_version"
annotationProcessor "com.google.dagger:dagger-compiler:$dagger2_version"
api "com.google.dagger:dagger-android:$dagger2_version"
@@ -152,12 +152,11 @@ dependencies {
implementation 'com.github.pedromassango:doubleClick:3.0'
//SQLite ROOM
- def room_version = "2.5.0"
+ def room_version = "2.5.2"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-rxjava3:$room_version"
- androidTestImplementation "androidx.room:room-testing:2.5.0"
//AppUpdate
implementation 'com.github.javiersantos:AppUpdater:2.7'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e5de414b..57b819d7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,7 +71,7 @@
android:theme="@style/Light"
android:configChanges="orientation|screenSize|keyboardHidden" />
@@ -108,6 +108,11 @@
+
+
observableDate, BaseDialogFragment parentFragment, boolean warningOnOldDates) {
- Pair, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
+ public static void bindEditTextDate(EditText view, final ObservableField observableDate, BaseDialogFragment parentFragment, boolean warningOnOldDates) {
+ Pair, TextWatcherAdapter> pair = (Pair) view.getTag(R.id.bound_observable);
if (pair == null || pair.first != observableDate) {
if (pair != null) {
view.removeTextChangedListener(pair.second);
@@ -473,37 +473,33 @@ public class Converters {
RunnableArgs onClick = v -> {
// Get Current Date
- Calendar c = UtilityDate.getCalendarInstance();
-
- if (observableDate.get() != null) {
- c.setTime(observableDate.get());
- }
-
+ LocalDate selectedDate = observableDate.get() != null ? observableDate.get() : UtilityDate.getNow();
var datePicker =
MaterialDatePicker.Builder.datePicker()
- .setSelection(c.getTimeInMillis())
+ .setSelection(UtilityDate.localDateToMillisTime(selectedDate))
.build();
+
+
datePicker.addOnDismissListener(dialog -> {
if(datePicker.getSelection() != null) {
- var timeInMillis = datePicker.getSelection();
+ var selectedTimeInMillis = datePicker.getSelection();
+ var nowTime = UtilityDate.millisTimeToLocalDate(selectedTimeInMillis, null);
- var calendar = UtilityDate.getCalendarInstance();
- calendar.setTimeInMillis(timeInMillis);
- if (parentFragment != null && warningOnOldDates && calendar.before(UtilityDate.getCalendarInstance())) {
+ if (parentFragment != null && warningOnOldDates && nowTime.isBefore(UtilityDate.getNow())) {
DialogSimpleMessageView
.makeWarningDialog(new SpannableString("Hai scelto una data precedente a quella odierna. Continuare?"), null, () -> {
- view.setText(UtilityDate.formatDate(calendar.getTime(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
- observableDate.set(calendar.getTime());
+ view.setText(UtilityDate.formatDate(nowTime, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
+ observableDate.set(nowTime);
}, () -> {
})
.show(parentFragment.requireActivity().getSupportFragmentManager(), "tag");
} else {
- view.setText(UtilityDate.formatDate(calendar.getTime(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
- observableDate.set(calendar.getTime());
+ view.setText(UtilityDate.formatDate(nowTime, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
+ observableDate.set(nowTime);
}
}
else {
@@ -522,7 +518,7 @@ public class Converters {
((TextInputLayout) view.getParent().getParent()).setOnClickListener(onClick::run);
}
}
- Date newValue = observableDate.get();
+ var newValue = observableDate.get();
view.setText(UtilityDate.formatDate(newValue, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java
index 88a823ea..4cc4d8b5 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/DtbDocr.java
@@ -1,6 +1,7 @@
package it.integry.integrywmsnative.core.model;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.Date;
import it.integry.integrywmsnative.core.utility.UtilityDate;
@@ -141,7 +142,7 @@ public class DtbDocr {
private MtbAart mtbAart;
- private String dataScadPartitaMag;
+ private LocalDate dataScadPartitaMag;
public String getCodAnag() {
return codAnag;
@@ -741,15 +742,12 @@ public class DtbDocr {
return this;
}
- public String getDataScadPartitaMag() {
+ public LocalDate getDataScadPartitaMag() {
return dataScadPartitaMag;
}
- public Date getDataScadPartitaMagD() {
- return UtilityDate.recognizeDateWithExceptionHandler(getDataScadPartitaMag());
- }
- public DtbDocr setDataScadPartitaMag(String dataScadPartitaMag) {
+ public DtbDocr setDataScadPartitaMag(LocalDate dataScadPartitaMag) {
this.dataScadPartitaMag = dataScadPartitaMag;
return this;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java
index 38458d0a..ffaf32b9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java
@@ -1,6 +1,7 @@
package it.integry.integrywmsnative.core.model;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.Date;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
@@ -36,7 +37,7 @@ public class MtbColr extends EntityBase {
private BigDecimal numCnf;
private String insPartitaMag;
private String mtbPartitaMag_descrizione;
- private String dataScadPartita;
+ private LocalDate dataScadPartita;
private String descrizione;
private String untMis;
private Integer causale;
@@ -361,25 +362,15 @@ public class MtbColr extends EntityBase {
}
- public String getDataScadPartitaS() {
+ public LocalDate getDataScadPartita() {
return dataScadPartita;
}
- public Date getDataScadPartitaD() {
- return UtilityDate.recognizeDateWithExceptionHandler(getDataScadPartitaS());
- }
-
- public MtbColr setDataScadPartita(String dataScadPartita) {
+ public MtbColr setDataScadPartita(LocalDate dataScadPartita) {
this.dataScadPartita = dataScadPartita;
return this;
}
- public MtbColr setDataScadPartita(Date dataScadPartita) {
- this.dataScadPartita = UtilityDate.formatDate(dataScadPartita, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
- return this;
- }
-
-
public String getDescrizione() {
return descrizione;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java
index f677fc1b..909930c0 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbPartitaMag.java
@@ -1,17 +1,16 @@
package it.integry.integrywmsnative.core.model;
import java.math.BigDecimal;
-import java.util.Date;
-
-import it.integry.integrywmsnative.core.utility.UtilityDate;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
public class MtbPartitaMag extends EntityBase{
private String codMart;
private String partitaMag;
private String descrizione;
- private String dataIns;
- private String dataScad;
+ private LocalDateTime dataIns;
+ private LocalDate dataScad;
private Integer scelta;
private BigDecimal costoUntUmMag;
private BigDecimal valUntUmMag;
@@ -62,33 +61,24 @@ public class MtbPartitaMag extends EntityBase{
return this;
}
- public String getDataIns() {
+ public LocalDateTime getDataIns() {
return dataIns;
}
- public MtbPartitaMag setDataIns(String dataIns) {
+ public MtbPartitaMag setDataIns(LocalDateTime dataIns) {
this.dataIns = dataIns;
return this;
}
- public String getDataScadS() {
+ public LocalDate getDataScad() {
return dataScad;
}
- public Date getDataScadD() {
- return UtilityDate.recognizeDateWithExceptionHandler(getDataScadS());
- }
-
- public MtbPartitaMag setDataScad(String dataScad) {
+ public MtbPartitaMag setDataScad(LocalDate dataScad) {
this.dataScad = dataScad;
return this;
}
- public MtbPartitaMag setDataScad(Date dataScad) {
- this.dataScad = UtilityDate.formatDate(dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
- return this;
- }
-
public Integer getScelta() {
return scelta;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/AlreadyRegisteredUDCDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/AlreadyRegisteredUDCDTO.java
new file mode 100644
index 00000000..dbe9acb0
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/AlreadyRegisteredUDCDTO.java
@@ -0,0 +1,29 @@
+package it.integry.integrywmsnative.core.model.dto;
+
+
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public class AlreadyRegisteredUDCDTO {
+
+ private MtbColt mtbColt;
+
+ private boolean canBeRecovered;
+
+ public MtbColt getMtbColt() {
+ return mtbColt;
+ }
+
+ public AlreadyRegisteredUDCDTO setMtbColt(MtbColt mtbColt) {
+ this.mtbColt = mtbColt;
+ return this;
+ }
+
+ public boolean isCanBeRecovered() {
+ return canBeRecovered;
+ }
+
+ public AlreadyRegisteredUDCDTO setCanBeRecovered(boolean canBeRecovered) {
+ this.canBeRecovered = canBeRecovered;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java
index f43cb742..6c5dbda3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/PickDataDTO.java
@@ -54,7 +54,7 @@ public class PickDataDTO {
if (!UtilityString.isNullOrEmpty(partitaMag)) {
MtbPartitaMag mtbPartitaMag = new MtbPartitaMag()
.setPartitaMag(partitaMag)
- .setDataScad(UtilityDate.recognizeDateWithExceptionHandler(dataScad));
+ .setDataScad(UtilityDate.recognizeLocalDateWithExceptionHandler(dataScad));
manualPickDTO.setMtbPartitaMag(mtbPartitaMag);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java
index 26a6e35c..0dad8b69 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java
@@ -19,6 +19,9 @@ import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.articolo.RetrieveArticoloByCodMartRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.articolo.SearchArticoloByBarcodeRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.articolo.SearchArticoloByBarcodeResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.articolo.UpdateBarcodeImballoRequestDTO;
import it.integry.integrywmsnative.core.utility.UtilityQuery;
import retrofit2.Call;
import retrofit2.Callback;
@@ -33,23 +36,28 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
this.systemRESTConsumer = systemRESTConsumer;
}
- public void getByBarcodeProd(String barcodeProd, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ public void searchByBarcode(String barcodeProd, RunnableArgs> onComplete, RunnableArgs onFailed) {
ArticoloRESTConsumerService articoloRESTConsumerService = RESTBuilder.getService(ArticoloRESTConsumerService.class);
- articoloRESTConsumerService.getByBarcodeProd(barcodeProd).enqueue(new Callback<>() {
- @Override
- public void onResponse(Call> call, Response> response) {
- analyzeAnswer(response, "getByBarcodeProd", (m) -> {
- List aartList = response.body().getEntityList();
- aartList = aartList != null ? Stream.of(aartList).filter(x -> x.getFlagStato().equalsIgnoreCase("A")).toList() : null;
- onComplete.run(aartList);
- }, onFailed);
- }
- @Override
- public void onFailure(Call> call, Throwable t) {
- onFailed.run(new Exception(t));
- }
- });
+ var request = new SearchArticoloByBarcodeRequestDTO()
+ .setBarcode(barcodeProd)
+ .setOnlyActive(true);
+
+ articoloRESTConsumerService
+ .searchByBarcode(request)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "searchByBarcode", (m) -> {
+ onComplete.run(response.body().getDto().getArts());
+ }, onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
}
@@ -191,4 +199,29 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
onComplete.run(inputMtbAart);
}, onFailed);
}
+
+
+ public void updateBarcodeImballo(String codMart, String newBarcodeImballo, Runnable onComplete, RunnableArgs onFailed) {
+ ArticoloRESTConsumerService articoloRESTConsumerService = RESTBuilder.getService(ArticoloRESTConsumerService.class);
+
+ var request = new UpdateBarcodeImballoRequestDTO()
+ .setCodMart(codMart)
+ .setNewBarcodeImballo(newBarcodeImballo);
+
+ articoloRESTConsumerService
+ .updateBarcodeImballo(request)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "updateBarcodeImballo", m -> {
+ onComplete.run();
+ }, onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java
index 61cca9b4..f872a169 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java
@@ -6,6 +6,9 @@ import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.articolo.RetrieveArticoloByCodMartRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.articolo.SearchArticoloByBarcodeRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.articolo.SearchArticoloByBarcodeResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.articolo.UpdateBarcodeImballoRequestDTO;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
@@ -14,13 +17,15 @@ import retrofit2.http.Query;
public interface ArticoloRESTConsumerService {
-
- @POST("SM2getArticoloByBarcode")
- Call> getByBarcodeProd(@Query("barcode") String barcodeProd);
+ @POST("wms/articolo/searchByBarcode")
+ Call> searchByBarcode(@Body() SearchArticoloByBarcodeRequestDTO searchArticoloByBarcodeRequest);
@POST("wms/articolo/retrieveByCodMart")
Call> getByCodMart(@Body RetrieveArticoloByCodMartRequestDTO retrieveArticoloByCodMartRequest);
+ @POST("wms/articolo/updateBarcodeImballo")
+ Call> updateBarcodeImballo(@Body UpdateBarcodeImballoRequestDTO updateBarcodeImballoRequest);
+
@GET("getProductLotStatus")
Call>> getStatoPartita(@Query("codMart") String codMart, @Query("partitaMag") String partitaMag);
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 58b6bc72..fcd030f3 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
@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.rest.consumers;
import android.util.Log;
import java.util.List;
+import java.util.stream.Collectors;
import javax.inject.Singleton;
@@ -11,6 +12,7 @@ import it.integry.integrywmsnative.core.model.StbGestSetup;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.GestSetupDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.settings.StbGestSetupReader;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import retrofit2.Call;
import retrofit2.Callback;
@@ -24,18 +26,18 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
service.getGestSetupValue(gestName, sectionName, keySection)
.enqueue(new Callback<>() {
- @Override
- public void onResponse(Call> call, Response> response) {
- analyzeAnswer(response, "GestSetup", onComplete, onFailed);
- }
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "GestSetup", onComplete, onFailed);
+ }
- @Override
- public void onFailure(Call> call, Throwable t) {
- Log.e("GestSetup", t.toString());
- // UtilityLogger.errorMe(new Exception(t));
- if (onFailed != null) onFailed.run(new Exception(t));
- }
- });
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ Log.e("GestSetup", t.toString());
+ // UtilityLogger.errorMe(new Exception(t));
+ if (onFailed != null) onFailed.run(new Exception(t));
+ }
+ });
}
public void getBooleanValue(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
@@ -76,12 +78,25 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
}
- public void getValues(String codMdep, List stbGestSetupList, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ public void getValues(String codMdep, List stbGestSetupList, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ var stbGestSetups = stbGestSetupList.stream().map(x -> (StbGestSetup) x).collect(Collectors.toList());
+
GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
- service.getGestSetupValues(codMdep, stbGestSetupList).enqueue(new Callback<>() {
+ service.getGestSetupValues(codMdep, stbGestSetups).enqueue(new Callback<>() {
@Override
public void onResponse(Call>> call, Response>> response) {
- analyzeAnswer(response, "GestSetup", onComplete, onFailed);
+ analyzeAnswer(response, "GestSetup", data -> {
+
+ for (StbGestSetup stbGestSetup : data) {
+ stbGestSetupList.stream().filter(x -> stbGestSetup.getGestName().equalsIgnoreCase(x.getGestName()) &&
+ stbGestSetup.getSection().equalsIgnoreCase(x.getSection()) &&
+ stbGestSetup.getKeySection().equalsIgnoreCase(x.getKeySection()))
+ .findFirst()
+ .ifPresent(x -> x.setValue(stbGestSetup.getValue()));
+ }
+
+ onComplete.run(stbGestSetupList);
+ }, onFailed);
}
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/SearchArticoloByBarcodeRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/SearchArticoloByBarcodeRequestDTO.java
new file mode 100644
index 00000000..d7f58f79
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/SearchArticoloByBarcodeRequestDTO.java
@@ -0,0 +1,25 @@
+package it.integry.integrywmsnative.core.rest.model.articolo;
+
+public class SearchArticoloByBarcodeRequestDTO {
+
+ private String barcode;
+ private boolean onlyActive;
+
+ public String getBarcode() {
+ return barcode;
+ }
+
+ public SearchArticoloByBarcodeRequestDTO setBarcode(String barcode) {
+ this.barcode = barcode;
+ return this;
+ }
+
+ public boolean isOnlyActive() {
+ return onlyActive;
+ }
+
+ public SearchArticoloByBarcodeRequestDTO setOnlyActive(boolean onlyActive) {
+ this.onlyActive = onlyActive;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/SearchArticoloByBarcodeResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/SearchArticoloByBarcodeResponseDTO.java
new file mode 100644
index 00000000..c55fe7ef
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/SearchArticoloByBarcodeResponseDTO.java
@@ -0,0 +1,20 @@
+package it.integry.integrywmsnative.core.rest.model.articolo;
+
+
+import java.util.List;
+
+import it.integry.integrywmsnative.core.model.MtbAart;
+
+public class SearchArticoloByBarcodeResponseDTO {
+
+ private List arts;
+
+ public List getArts() {
+ return arts;
+ }
+
+ public SearchArticoloByBarcodeResponseDTO setArts(List arts) {
+ this.arts = arts;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/UpdateBarcodeImballoRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/UpdateBarcodeImballoRequestDTO.java
new file mode 100644
index 00000000..dc20d0bd
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/UpdateBarcodeImballoRequestDTO.java
@@ -0,0 +1,26 @@
+package it.integry.integrywmsnative.core.rest.model.articolo;
+
+public class UpdateBarcodeImballoRequestDTO {
+
+ private String codMart;
+
+ private String newBarcodeImballo;
+
+ public String getCodMart() {
+ return codMart;
+ }
+
+ public UpdateBarcodeImballoRequestDTO setCodMart(String codMart) {
+ this.codMart = codMart;
+ return this;
+ }
+
+ public String getNewBarcodeImballo() {
+ return newBarcodeImballo;
+ }
+
+ public UpdateBarcodeImballoRequestDTO setNewBarcodeImballo(String newBarcodeImballo) {
+ this.newBarcodeImballo = newBarcodeImballo;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/udc/CreateUDCRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/udc/CreateUDCRequestDTO.java
index 21b491cc..119da115 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/udc/CreateUDCRequestDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/udc/CreateUDCRequestDTO.java
@@ -7,6 +7,7 @@ public class CreateUDCRequestDTO {
private String codMdep;
private Integer numCollo;
private String serCollo;
+ private String codAnag;
private String codTcol;
private String annotazioni;
@@ -41,6 +42,15 @@ public class CreateUDCRequestDTO {
return this;
}
+ public String getCodAnag() {
+ return codAnag;
+ }
+
+ public CreateUDCRequestDTO setCodAnag(String codAnag) {
+ this.codAnag = codAnag;
+ return this;
+ }
+
public String getCodTcol() {
return codTcol;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDCRowRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDCRowRequestDTO.java
index 96bb9537..1184c33c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDCRowRequestDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDCRowRequestDTO.java
@@ -9,6 +9,8 @@ public class InsertUDCRowRequestDTO {
private MtbColt targetMtbColt;
private String codMart;
+ private String descrizione;
+ private String barcode;
private BigDecimal qtaTot;
private BigDecimal qtaCnf;
private BigDecimal numCnf;
@@ -21,6 +23,11 @@ public class InsertUDCRowRequestDTO {
private Integer numOrd;
private Integer rigaOrd;
+ private LocalDate dataDoc;
+ private Integer numDoc;
+ private String serDoc;
+ private String codDtip;
+
public MtbColt getTargetMtbColt() {
return targetMtbColt;
@@ -40,6 +47,24 @@ public class InsertUDCRowRequestDTO {
return this;
}
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public InsertUDCRowRequestDTO setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ return this;
+ }
+
+ public String getBarcode() {
+ return barcode;
+ }
+
+ public InsertUDCRowRequestDTO setBarcode(String barcode) {
+ this.barcode = barcode;
+ return this;
+ }
+
public BigDecimal getQtaTot() {
return qtaTot;
}
@@ -129,4 +154,40 @@ public class InsertUDCRowRequestDTO {
this.rigaOrd = rigaOrd;
return this;
}
+
+ public LocalDate getDataDoc() {
+ return dataDoc;
+ }
+
+ public InsertUDCRowRequestDTO setDataDoc(LocalDate dataDoc) {
+ this.dataDoc = dataDoc;
+ return this;
+ }
+
+ public Integer getNumDoc() {
+ return numDoc;
+ }
+
+ public InsertUDCRowRequestDTO setNumDoc(Integer numDoc) {
+ this.numDoc = numDoc;
+ return this;
+ }
+
+ public String getSerDoc() {
+ return serDoc;
+ }
+
+ public InsertUDCRowRequestDTO setSerDoc(String serDoc) {
+ this.serDoc = serDoc;
+ return this;
+ }
+
+ public String getCodDtip() {
+ return codDtip;
+ }
+
+ public InsertUDCRowRequestDTO setCodDtip(String codDtip) {
+ this.codDtip = codDtip;
+ return this;
+ }
}
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 461226c8..6d52bd65 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
@@ -62,6 +62,13 @@ public class DBSettingsModel {
private String commessaMagazzino;
private boolean flagGeneraDocumentoSpedizione = false;
private boolean flagIsInventarioCacheEnabled = false;
+ private boolean flagAskPrintUlAccettazioneBolla = false;
+ private boolean flagAskTipoColloAccettazioneBolla = false;
+ private boolean flagAskVersamentoAutomaticoAccettazioneBolla = false;
+ private boolean flagCanAddUnknownItemsAccettazioneBolla = false;
+ private boolean flagCanAddUnknownBarcodesAccettazioneBolla = false;
+ private boolean flagEnableFastPickAccettazioneBolla = false;
+ private boolean flagDisableMandatoryTracciabilitaAccettazioneBolla = false;
public boolean isFlagSpedizioneEnableFakeGiacenza() {
return flagSpedizioneEnableFakeGiacenza;
@@ -486,4 +493,67 @@ public class DBSettingsModel {
this.flagIsInventarioCacheEnabled = flagIsInventarioCacheEnabled;
return this;
}
+
+ public boolean isFlagAskPrintUlAccettazioneBolla() {
+ return flagAskPrintUlAccettazioneBolla;
+ }
+
+ public DBSettingsModel setFlagAskPrintUlAccettazioneBolla(boolean flagAskPrintUlAccettazioneBolla) {
+ this.flagAskPrintUlAccettazioneBolla = flagAskPrintUlAccettazioneBolla;
+ return this;
+ }
+
+ public boolean isFlagAskTipoColloAccettazioneBolla() {
+ return flagAskTipoColloAccettazioneBolla;
+ }
+
+ public DBSettingsModel setFlagAskTipoColloAccettazioneBolla(boolean flagAskTipoColloAccettazioneBolla) {
+ this.flagAskTipoColloAccettazioneBolla = flagAskTipoColloAccettazioneBolla;
+ return this;
+ }
+
+ public boolean isFlagAskVersamentoAutomaticoAccettazioneBolla() {
+ return flagAskVersamentoAutomaticoAccettazioneBolla;
+ }
+
+ public DBSettingsModel setFlagAskVersamentoAutomaticoAccettazioneBolla(boolean flagAskVersamentoAutomaticoAccettazioneBolla) {
+ this.flagAskVersamentoAutomaticoAccettazioneBolla = flagAskVersamentoAutomaticoAccettazioneBolla;
+ return this;
+ }
+
+ public boolean isFlagCanAddUnknownItemsAccettazioneBolla() {
+ return flagCanAddUnknownItemsAccettazioneBolla;
+ }
+
+ public DBSettingsModel setFlagCanAddUnknownItemsAccettazioneBolla(boolean flagCanAddUnknownItemsAccettazioneBolla) {
+ this.flagCanAddUnknownItemsAccettazioneBolla = flagCanAddUnknownItemsAccettazioneBolla;
+ return this;
+ }
+
+ public boolean isFlagCanAddUnknownBarcodesAccettazioneBolla() {
+ return flagCanAddUnknownBarcodesAccettazioneBolla;
+ }
+
+ public DBSettingsModel setFlagCanAddUnknownBarcodesAccettazioneBolla(boolean flagCanAddUnknownBarcodesAccettazioneBolla) {
+ this.flagCanAddUnknownBarcodesAccettazioneBolla = flagCanAddUnknownBarcodesAccettazioneBolla;
+ return this;
+ }
+
+ public boolean isFlagEnableFastPickAccettazioneBolla() {
+ return flagEnableFastPickAccettazioneBolla;
+ }
+
+ public DBSettingsModel setFlagEnableFastPickAccettazioneBolla(boolean flagEnableFastPickAccettazioneBolla) {
+ this.flagEnableFastPickAccettazioneBolla = flagEnableFastPickAccettazioneBolla;
+ return this;
+ }
+
+ public boolean isFlagDisableMandatoryTracciabilitaAccettazioneBolla() {
+ return flagDisableMandatoryTracciabilitaAccettazioneBolla;
+ }
+
+ public DBSettingsModel setFlagDisableMandatoryTracciabilitaAccettazioneBolla(boolean flagDisableMandatoryTracciabilitaAccettazioneBolla) {
+ this.flagDisableMandatoryTracciabilitaAccettazioneBolla = flagDisableMandatoryTracciabilitaAccettazioneBolla;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
index 31916bd5..503a85d1 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
@@ -2,7 +2,6 @@ package it.integry.integrywmsnative.core.settings;
import android.content.Context;
-import com.annimon.stream.Stream;
import com.google.firebase.perf.metrics.Trace;
import com.google.gson.reflect.TypeToken;
@@ -17,7 +16,6 @@ import javax.inject.Singleton;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-import it.integry.integrywmsnative.core.model.StbGestSetup;
import it.integry.integrywmsnative.core.model.dto.InternalCodAnagsDTO;
import it.integry.integrywmsnative.core.rest.consumers.AziendaRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
@@ -62,9 +60,6 @@ public class SettingsManager {
settingsModelIstance = new SettingsModel();
settingsModelIstance.setServer(new SettingsModel.Server());
- //settingsModelIstance.user = new SettingsModel.User();
- //settingsModelIstance.userSession = new SettingsModel.UserSession();
-
firstStart = true;
}
@@ -210,271 +205,304 @@ public class SettingsManager {
private static void loadGestSetupValues(Runnable onComplete, RunnableArgs onFailed) {
- List stbGestSetupList = new ArrayList<>();
+ List stbGestSetupReaderList = new ArrayList<>();
- stbGestSetupList.add(new StbGestSetup()
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SETUP")
- .setKeySection("ENABLE_CHECK_PARTITA_MAG_PICKING_V"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("ENABLE_CHECK_PARTITA_MAG_PICKING_V")
+ .setSetter(dbSettingsModelIstance::setEnableCheckPartitaMagCheckPickingV));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SETUP")
- .setKeySection("FLAG_MULTI_CLIENTE_ORD_VENDITA"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_MULTI_CLIENTE_ORD_VENDITA")
+ .setSetter(dbSettingsModelIstance::setFlagMultiClienteOrdV));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SETUP")
- .setKeySection("FLAG_USE_COD_ANAG_AZIENDALE"));
- stbGestSetupList.add(new StbGestSetup()
- .setGestName("PICKING")
- .setSection("SETUP")
- .setKeySection("DEFAULT_CRITERIO_DISTRIBUZIONE"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_USE_COD_ANAG_AZIENDALE")
+ .setSetter(dbSettingsModelIstance::setFlagUseCodAnagAziendale));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("PICKING_LIBERO")
- .setKeySection("FLAG_ASK_CLIENTE"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_ASK_CLIENTE")
+ .setSetter(dbSettingsModelIstance::setFlagAskClienteInPickingLibero));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("PICKING_LIBERO")
- .setKeySection("FLAG_ALLOW_EMPTY_CLIENTE"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_ALLOW_EMPTY_CLIENTE")
+ .setSetter(dbSettingsModelIstance::setFlagPickLiberoAllowEmptyCliente));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_CAN_ADD_EXTRA_ITEMS"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_CAN_ADD_EXTRA_ITEMS")
+ .setSetter(dbSettingsModelIstance::setFlagCanAddExtraItemSpedizione));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("ACCETTAZIONE")
- .setKeySection("FLAG_AUTO_OPEN_NEW_UL"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_AUTO_OPEN_NEW_UL")
+ .setSetter(dbSettingsModelIstance::setFlagCanAutoOpenNewULAccettazione));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_CAN_ADD_EXTRA_QUANTITY"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_CAN_ADD_EXTRA_QUANTITY")
+ .setSetter(dbSettingsModelIstance::setFlagCanAddExtraQuantitySpedizione));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("ENABLE_CHECK_DEPOSITO"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("ENABLE_CHECK_DEPOSITO")
+ .setSetter(dbSettingsModelIstance::setFlagEnableCheckDepositoSpedizione));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SETUP")
- .setKeySection("FLAG_FORCE_ALL_TO_COLLI"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_FORCE_ALL_TO_COLLI")
+ .setSetter(dbSettingsModelIstance::setFlagForceAllToColli));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SETUP")
- .setKeySection("FLAG_ASK_PESO_COLLO"));
- stbGestSetupList.add(new StbGestSetup()
- .setGestName("PICKING")
- .setSection("SPEDIZIONE")
- .setKeySection("FLAG_USE_NEW_PICKING_LIST"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_ASK_PESO_COLLO")
+ .setSetter(dbSettingsModelIstance::setFlagAskPesoColloSpedizione));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("PRODUZIONE")
- .setKeySection("FLAG_VERSAMENTO_DIRETTO"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_VERSAMENTO_DIRETTO")
+ .setSetter(dbSettingsModelIstance::setFlagVersamentoDirettoProduzione));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
.setGestName("PICKING")
.setSection("PRODUZIONE")
- .setKeySection("FILTER_FORNTIORE_PROD"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FILTER_FORNTIORE_PROD")
+ .setSetter(dbSettingsModelIstance::setFilterFornitoreProd));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("ENABLE_MANUAL_PICK"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("ENABLE_MANUAL_PICK")
+ .setSetter(dbSettingsModelIstance::setFlagSpedizioneEnableManualPick));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("ENABLE_FAKE_GIACENZA"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("ENABLE_FAKE_GIACENZA")
+ .setSetter(dbSettingsModelIstance::setFlagSpedizioneEnableFakeGiacenza));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS")
+ .setSetter(dbSettingsModelIstance::setFlagSpedizioneCanSelectMultipleOrders));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_USE_QTA_ORD"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_USE_QTA_ORD")
+ .setSetter(dbSettingsModelIstance::setFlagSpedizioneUseQtaOrd));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Integer.class)
.setGestName("PICKING")
.setSection("SETUP")
- .setKeySection("ON_NUM_CNF_INPUT_CHANGED"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("ON_NUM_CNF_INPUT_CHANGED")
+ .setSetter(data -> {
+ if (data != null) dbSettingsModelIstance.setOnNumCnfInputChanged(data);
+ }));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Integer.class)
.setGestName("PICKING")
.setSection("SETUP")
- .setKeySection("ON_QTA_TOT_INPUT_CHANGED"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("ON_QTA_TOT_INPUT_CHANGED")
+ .setSetter(data -> {
+ if (data != null) dbSettingsModelIstance.setOnQtaTotInputChanged(data);
+ }));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
.setGestName("PVM")
.setSection("DOC_INTERNI")
- .setKeySection("NOTE_PERDITA"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("NOTE_PERDITA")
+ .setSetter(data -> {
+ if (data != null)
+ dbSettingsModelIstance.setNotePerditaDocInterni(Arrays.asList(data.split("\\|")));
+ }));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PVM")
.setSection("ORDINI_A")
- .setKeySection("ORDINA_NUOVI_ARTICOLI"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("ORDINA_NUOVI_ARTICOLI")
+ .setSetter(dbSettingsModelIstance::setFlagOrdinaNuoviArticoliInGriglia));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PVM")
.setSection("ORDINI_A")
- .setKeySection("ORDINA_ARTICOLI_ON_SCAN"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("ORDINA_ARTICOLI_ON_SCAN")
+ .setSetter(dbSettingsModelIstance::setFlagOrdinaArticoliOnScan));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PVM")
.setSection("ORDINI_A")
- .setKeySection("FLAG_CONSENTI_ORDINE_DA_GRIGLIA"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_CONSENTI_ORDINE_DA_GRIGLIA")
+ .setSetter(dbSettingsModelIstance::setFlagConsentiFuoriPianoLogistico));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PVM")
.setSection("ORDINI_A")
- .setKeySection("FLAG_CONSENTI_ORDINE_SENZA_GRIGLIA"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_CONSENTI_ORDINE_SENZA_GRIGLIA")
+ .setSetter(dbSettingsModelIstance::setFlagConsentiOrdineSenzaGriglia));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
.setGestName("PVM")
.setSection("DOC_INTERNI")
- .setKeySection("CHECK_FORNITORE"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("CHECK_FORNITORE")
+ .setSetter(dbSettingsModelIstance::setDocInterniCheckFornitore));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("ACCETTAZIONE")
- .setKeySection("FLAG_USE_QTA_ORD"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_USE_QTA_ORD")
+ .setSetter(dbSettingsModelIstance::setFlagAccettazioneUseQtaOrd));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("PICKING_LIBERO")
- .setKeySection("FLAG_ALLOW_EMPTY_DEST"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_ALLOW_EMPTY_DEST")
+ .setSetter(dbSettingsModelIstance::setFlagPickLiberoAllowEmptyDest));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_PRINT_PACKING_LIST_ON_CLOSE"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_PRINT_PACKING_LIST_ON_CLOSE")
+ .setSetter(dbSettingsModelIstance::setFlagPrintPackingListOnOrderClose));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_PRINT_ETICHETTE_ON_CLOSE"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_PRINT_ETICHETTE_ON_CLOSE")
+ .setSetter(dbSettingsModelIstance::setFlagPrintEtichetteOnOrderClose));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_PRINT_ETICHETTE_ON_LU_CLOSE"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_PRINT_ETICHETTE_ON_LU_CLOSE")
+ .setSetter(dbSettingsModelIstance::setFlagPrintEtichetteOnLUClose)
+ .setDefaultValue(true));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_ALLOW_EMPTY_DEST"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_ASK_INFO_AGGIUNTIVE")
+ .setSetter(dbSettingsModelIstance::setFlagAskInfoAggiuntiveSpedizione));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_ASK_INFO_AGGIUNTIVE"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("COD_DTIP_ORD_TRASF")
+ .setSetter(dbSettingsModelIstance::setCodDtipOrdTrasfV));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("COD_DTIP_ORD_TRASF"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_NOTIFICA_STATO_PARTITA")
+ .setSetter(dbSettingsModelIstance::setNotifyLotStatus));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_NOTIFICA_STATO_PARTITA"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_SHOW_COD_FORN")
+ .setSetter(dbSettingsModelIstance::setShowCodFornSpedizione)
+ .setDefaultValue(true));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("FLAG_SHOW_COD_FORN"));
- stbGestSetupList.add(new StbGestSetup()
- .setGestName("PICKING")
- .setSection("SPEDIZIONE")
- .setKeySection("FLAG_GROUP_BY_GRP_MERC"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_GROUP_BY_GRP_MERC")
+ .setSetter(dbSettingsModelIstance::setGroupShippingByCommodityGroup)
+ .setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("INVENTARIO")
- .setKeySection("FLAG_CAN_CREATE_INVENTARIO"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_CAN_CREATE_INVENTARIO")
+ .setSetter(dbSettingsModelIstance::setFlagCanCreateInventario)
+ .setDefaultValue(true));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("INVENTARIO")
- .setKeySection("FLAG_CAN_ADD_UNKNOWN_ITEMS"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_CAN_ADD_UNKNOWN_ITEMS")
+ .setSetter(dbSettingsModelIstance::setFlagCanAddUnknownItemsInventario)
+ .setDefaultValue(true));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("INVENTARIO")
- .setKeySection("FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW")
+ .setSetter(dbSettingsModelIstance::setFlagShouldAskToCreateOrUpdateRowInventario)
+ .setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("INVENTARIO")
- .setKeySection("ENABLE_OFFLINE_CACHE"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("ENABLE_OFFLINE_CACHE")
+ .setSetter(dbSettingsModelIstance::setFlagIsInventarioCacheEnabled)
+ .setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
.setGestName("PICKING")
.setSection("SETUP")
- .setKeySection("COMMESSA_MAGAZZINO"));
- stbGestSetupList.add(new StbGestSetup()
+ .setKeySection("COMMESSA_MAGAZZINO")
+ .setSetter(dbSettingsModelIstance::setCommessaMagazzino)
+ .setDefaultValue(CommonConst.Config.COMMESSA_MAG));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
- .setKeySection("GENERA_DOC"));
+ .setKeySection("GENERA_DOC")
+ .setSetter(dbSettingsModelIstance::setFlagGeneraDocumentoSpedizione)
+ .setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
+ .setGestName("PICKING")
+ .setSection("ACCETTAZIONE_BOLLA")
+ .setKeySection("FLAG_ASK_PRINT_UL")
+ .setSetter(dbSettingsModelIstance::setFlagAskPrintUlAccettazioneBolla)
+ .setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
+ .setGestName("PICKING")
+ .setSection("ACCETTAZIONE_BOLLA")
+ .setKeySection("FLAG_ASK_TIPO_COLLO")
+ .setSetter(dbSettingsModelIstance::setFlagAskTipoColloAccettazioneBolla)
+ .setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
+ .setGestName("PICKING")
+ .setSection("ACCETTAZIONE_BOLLA")
+ .setKeySection("FLAG_ASK_VERSAMENTO_AUTOMATICO")
+ .setSetter(dbSettingsModelIstance::setFlagAskVersamentoAutomaticoAccettazioneBolla)
+ .setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
+ .setGestName("PICKING")
+ .setSection("ACCETTAZIONE_BOLLA")
+ .setKeySection("FLAG_CAN_ADD_UNKNOWN_ITEMS")
+ .setSetter(dbSettingsModelIstance::setFlagCanAddUnknownItemsAccettazioneBolla)
+ .setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
+ .setGestName("PICKING")
+ .setSection("ACCETTAZIONE_BOLLA")
+ .setKeySection("FLAG_CAN_ADD_UNKNOWN_BARCODES")
+ .setSetter(dbSettingsModelIstance::setFlagCanAddUnknownBarcodesAccettazioneBolla)
+ .setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
+ .setGestName("PICKING")
+ .setSection("ACCETTAZIONE_BOLLA")
+ .setKeySection("FLAG_ENABLE_FAST_PICK")
+ .setSetter(dbSettingsModelIstance::setFlagEnableFastPickAccettazioneBolla)
+ .setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
+ .setGestName("PICKING")
+ .setSection("ACCETTAZIONE_BOLLA")
+ .setKeySection("FLAG_DISABLE_MANDATORY_TRACCIABILITA")
+ .setSetter(dbSettingsModelIstance::setFlagDisableMandatoryTracciabilitaAccettazioneBolla)
+ .setDefaultValue(false));
+
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
- mGestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> {
- dbSettingsModelIstance.setEnableCheckPartitaMagCheckPickingV(getValueFromList(list, "SETUP", "ENABLE_CHECK_PARTITA_MAG_PICKING_V", Boolean.class));
- dbSettingsModelIstance.setFlagMultiClienteOrdV(getValueFromList(list, "SETUP", "FLAG_MULTI_CLIENTE_ORD_VENDITA", Boolean.class));
- dbSettingsModelIstance.setFlagUseCodAnagAziendale(getValueFromList(list, "SETUP", "FLAG_USE_COD_ANAG_AZIENDALE", Boolean.class));
- dbSettingsModelIstance.setFlagAskClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ASK_CLIENTE", Boolean.class));
- dbSettingsModelIstance.setFlagPickLiberoAllowEmptyCliente(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_CLIENTE", Boolean.class));
- dbSettingsModelIstance.setFlagCanAddExtraItemSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_ITEMS", Boolean.class));
- dbSettingsModelIstance.setFlagCanAutoOpenNewULAccettazione(getValueFromList(list, "ACCETTAZIONE", "FLAG_AUTO_OPEN_NEW_UL", Boolean.class));
- dbSettingsModelIstance.setFlagCanAddExtraQuantitySpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_QUANTITY", Boolean.class));
- dbSettingsModelIstance.setFlagEnableCheckDepositoSpedizione(getValueFromList(list, "SPEDIZIONE", "ENABLE_CHECK_DEPOSITO", Boolean.class));
- dbSettingsModelIstance.setFlagForceAllToColli(getValueFromList(list, "SETUP", "FLAG_FORCE_ALL_TO_COLLI", Boolean.class));
- dbSettingsModelIstance.setFlagAskPesoColloSpedizione(getValueFromList(list, "SETUP", "FLAG_ASK_PESO_COLLO", Boolean.class));
- dbSettingsModelIstance.setFlagVersamentoDirettoProduzione(getValueFromList(list, "PRODUZIONE", "FLAG_VERSAMENTO_DIRETTO", Boolean.class));
- dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
- dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
- dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
- dbSettingsModelIstance.setFlagSpedizioneUseQtaOrd(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
- dbSettingsModelIstance.setFlagOrdinaNuoviArticoliInGriglia(getValueFromList(list, "ORDINI_A", "ORDINA_NUOVI_ARTICOLI", Boolean.class));
- dbSettingsModelIstance.setDocInterniCheckFornitore(getValueFromList(list, "DOC_INTERNI", "CHECK_FORNITORE", String.class));
- dbSettingsModelIstance.setFlagAccettazioneUseQtaOrd(getValueFromList(list, "ACCETTAZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
- dbSettingsModelIstance.setFlagPickLiberoAllowEmptyDest(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_DEST", Boolean.class));
- dbSettingsModelIstance.setFlagOrdinaArticoliOnScan(getValueFromList(list, "ORDINI_A", "ORDINA_ARTICOLI_ON_SCAN", Boolean.class));
- dbSettingsModelIstance.setFlagConsentiFuoriPianoLogistico(getValueFromList(list, "ORDINI_A", "FLAG_CONSENTI_ORDINE_DA_GRIGLIA", Boolean.class));
- dbSettingsModelIstance.setFlagConsentiOrdineSenzaGriglia(getValueFromList(list, "ORDINI_A", "FLAG_CONSENTI_ORDINE_SENZA_GRIGLIA", Boolean.class));
- dbSettingsModelIstance.setFlagPrintPackingListOnOrderClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_PACKING_LIST_ON_CLOSE", Boolean.class));
- dbSettingsModelIstance.setFlagPrintEtichetteOnOrderClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_ETICHETTE_ON_CLOSE", Boolean.class));
- dbSettingsModelIstance.setFlagPrintEtichetteOnLUClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_ETICHETTE_ON_LU_CLOSE", Boolean.class, true));
- dbSettingsModelIstance.setFlagAskInfoAggiuntiveSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_ASK_INFO_AGGIUNTIVE", Boolean.class));
- dbSettingsModelIstance.setFilterFornitoreProd(getValueFromList(list, "PRODUZIONE", "FILTER_FORNTIORE_PROD", String.class));
- dbSettingsModelIstance.setCodDtipOrdTrasfV(getValueFromList(list, "SPEDIZIONE", "COD_DTIP_ORD_TRASF", String.class));
- dbSettingsModelIstance.setNotifyLotStatus(getValueFromList(list, "SPEDIZIONE", "FLAG_NOTIFICA_STATO_PARTITA", Boolean.class));
- dbSettingsModelIstance.setShowCodFornSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_SHOW_COD_FORN", Boolean.class, Boolean.TRUE));
- dbSettingsModelIstance.setGroupShippingByCommodityGroup(getValueFromList(list, "SPEDIZIONE", "FLAG_GROUP_BY_GRP_MERC", Boolean.class, Boolean.FALSE));
- dbSettingsModelIstance.setFlagCanCreateInventario(getValueFromList(list, "INVENTARIO", "FLAG_CAN_CREATE_INVENTARIO", Boolean.class, Boolean.TRUE));
- dbSettingsModelIstance.setFlagCanAddUnknownItemsInventario(getValueFromList(list, "INVENTARIO", "FLAG_CAN_ADD_UNKNOWN_ITEMS", Boolean.class, Boolean.TRUE));
- dbSettingsModelIstance.setFlagShouldAskToCreateOrUpdateRowInventario(getValueFromList(list, "INVENTARIO", "FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW", Boolean.class, Boolean.FALSE));
- dbSettingsModelIstance.setCommessaMagazzino(getValueFromList(list, "SETUP", "COMMESSA_MAGAZZINO", String.class, CommonConst.Config.COMMESSA_MAG));
- dbSettingsModelIstance.setFlagGeneraDocumentoSpedizione(getValueFromList(list, "SPEDIZIONE", "GENERA_DOC", Boolean.class, Boolean.FALSE));
- dbSettingsModelIstance.setFlagIsInventarioCacheEnabled(getValueFromList(list, "INVENTARIO", "ENABLE_OFFLINE_CACHE", Boolean.class, Boolean.FALSE));
- String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
- if (notePerdita != null)
- dbSettingsModelIstance.setNotePerditaDocInterni(Arrays.asList(notePerdita.split("\\|")));
+ mGestSetupRESTConsumer.getValues(codMdep, stbGestSetupReaderList, list -> {
- Integer onNumCnfInputChanged = getValueFromList(list, "SETUP", "ON_NUM_CNF_INPUT_CHANGED", Integer.class);
- if (onNumCnfInputChanged != null)
- dbSettingsModelIstance.setOnNumCnfInputChanged(onNumCnfInputChanged);
+ for (var stbGestSetupReader : list) {
+ var value = stbGestSetupReader.getValue();
+ var clazz = stbGestSetupReader.getClazz();
- Integer onQtaTotInputChanged = getValueFromList(list, "SETUP", "ON_QTA_TOT_INPUT_CHANGED", Integer.class);
- if (onQtaTotInputChanged != null)
- dbSettingsModelIstance.setOnQtaTotInputChanged(onQtaTotInputChanged);
+ Object finalValue = null;
+ if (value != null) {
+ if (clazz == String.class) {
+ finalValue = clazz.cast(value);
+ } else if (clazz == Boolean.class) {
+ finalValue = clazz.cast("S".equalsIgnoreCase(value));
+ } else if (clazz == Integer.class && value != null) {
+ finalValue = clazz.cast(Integer.parseInt(value));
+ }
+ } else if (stbGestSetupReader.getDefaultValue() == null) {
+ if (clazz == Boolean.class) {
+ finalValue = clazz.cast(Boolean.FALSE);
+ } else if (clazz == Integer.class) {
+ finalValue = clazz.cast(0);
+ }
+ } else finalValue = stbGestSetupReader.getDefaultValue();
+
+ stbGestSetupReader.getSetter().run(finalValue);
+ }
if (onComplete != null) onComplete.run();
}, onFailed);
}
-
- public static T getValueFromList(List stbGestSetupList, String section, String keySectionName, Class clazz) {
- return getValueFromList(stbGestSetupList, section, keySectionName, clazz, null);
- }
-
- public static T getValueFromList(List stbGestSetupList, String section, String keySectionName, Class clazz, T defaultValue) {
-
- StbGestSetup value = Stream.of(stbGestSetupList)
- .filter(x -> x.getSection().equalsIgnoreCase(section) && x.getKeySection().equalsIgnoreCase(keySectionName))
- .findFirstOrElse(null);
-
- if (value != null) {
- if (clazz == String.class) {
- return clazz.cast(value.getValue());
- } else if (clazz == Boolean.class) {
- return clazz.cast("S".equalsIgnoreCase(value.getValue()));
- } else if (clazz == Integer.class && value.getValue() != null) {
- return clazz.cast(Integer.parseInt(value.getValue()));
- }
- } else if (defaultValue == null) {
- if (clazz == Boolean.class) {
- return clazz.cast(Boolean.FALSE);
- } else if (clazz == Integer.class) {
- return clazz.cast(0);
- }
- }
-
- return defaultValue;
- }
-
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java
index 40bfc937..027d4eb1 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java
@@ -99,6 +99,7 @@ public class SettingsModel {
private String profileDB;
private AvailableCodMdepsDTO depo;
private Integer defaultOrdinamentoPickingAccettazione = 0;
+ private Integer defaultOrdinamentoPickingAccettazioneBolle = 0;
public String getDeviceId() {
return deviceId;
@@ -134,6 +135,15 @@ public class SettingsModel {
this.defaultOrdinamentoPickingAccettazione = defaultOrdinamentoPickingAccettazione;
return this;
}
+
+ public Integer getDefaultOrdinamentoPickingAccettazioneBolle() {
+ return defaultOrdinamentoPickingAccettazioneBolle;
+ }
+
+ public UserSession setDefaultOrdinamentoPickingAccettazioneBolle(Integer defaultOrdinamentoPickingAccettazioneBolle) {
+ this.defaultOrdinamentoPickingAccettazioneBolle = defaultOrdinamentoPickingAccettazioneBolle;
+ return this;
+ }
}
public Server getServer() {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/StbGestSetupReader.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/StbGestSetupReader.java
new file mode 100644
index 00000000..316425b5
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/StbGestSetupReader.java
@@ -0,0 +1,58 @@
+package it.integry.integrywmsnative.core.settings;
+
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.StbGestSetup;
+
+public class StbGestSetupReader extends StbGestSetup {
+
+ private RunnableArgs setter;
+ private T defaultValue;
+ private transient Class clazz;
+
+ public StbGestSetupReader(Class clazz) {
+ this.clazz = clazz;
+ }
+
+ public StbGestSetupReader setGestName(String gestName) {
+ super.setGestName(gestName);
+ return this;
+ }
+
+ public StbGestSetupReader setSection(String section) {
+ super.setSection(section);
+ return this;
+ }
+
+ public StbGestSetupReader setKeySection(String keySection) {
+ super.setKeySection(keySection);
+ return this;
+ }
+
+ public RunnableArgs getSetter() {
+ return setter;
+ }
+
+ public StbGestSetupReader setSetter(RunnableArgs setter) {
+ this.setter = setter;
+ return this;
+ }
+
+ public T getDefaultValue() {
+ return defaultValue;
+ }
+
+ public StbGestSetupReader setDefaultValue(T defaultValue) {
+ this.defaultValue = defaultValue;
+ return this;
+ }
+
+ public Class getClazz() {
+ return clazz;
+ }
+
+// public Class reflectClassType() {
+// return ((Class) ((ParameterizedType) getClass()
+// .getGenericSuperclass()).getActualTypeArguments()[0]);
+// }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java
index 9aa27662..9173db1c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java
@@ -53,14 +53,57 @@ public class UtilityDate {
}
public static Date recognizeDate(String dateString) throws ParseException, DateNotRecognizedException, TimeNotRecognizedException {
+ if(dateString == null) return null;
+ final String format = recognizeDateFormat(dateString);
+ if(format == null) return null;
+
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+
+ return sdf.parse(dateString);
+ }
+
+ public static LocalDate recognizeLocalDateWithExceptionHandler(String dateString) {
+ try {
+ return UtilityDate.recognizeLocalDate(dateString);
+ } catch (DateNotRecognizedException | TimeNotRecognizedException pex) {
+ UtilityLogger.error(pex);
+ return null;
+ }
+ }
+
+ public static LocalDate recognizeLocalDate(String dateString) throws DateNotRecognizedException, TimeNotRecognizedException {
+ final String format = recognizeDateFormat(dateString);
+ if(format == null) return null;
+
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
+ return LocalDate.parse(dateString, formatter);
+ }
+
+ public static LocalDateTime recognizeLocalDateTimeWithExceptionHandler(String dateString) {
+ try {
+ return UtilityDate.recognizeLocalDateTime(dateString);
+ } catch (DateNotRecognizedException | TimeNotRecognizedException pex) {
+ UtilityLogger.error(pex);
+ return null;
+ }
+ }
+
+ public static LocalDateTime recognizeLocalDateTime(String dateString) throws DateNotRecognizedException, TimeNotRecognizedException {
+ final String format = recognizeDateFormat(dateString);
+ if(format == null) return null;
+
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
+ return LocalDateTime.parse(dateString, formatter);
+ }
+
+ private static String recognizeDateFormat(String dateString) throws DateNotRecognizedException, TimeNotRecognizedException {
if (dateString == null) {
return null;
}
//SE SONO PIU' DI 10 caratteri allora c'è anche l'ora
- SimpleDateFormat format = null;
char dateSeparator;
String onlyDateSubstring = dateString.substring(0, 10);
@@ -85,16 +128,12 @@ public class UtilityDate {
String timeFormatString = "HH" + timeSeparator + "mm" + timeSeparator + "ss";
- format = new SimpleDateFormat(dateFormatString + " " + timeFormatString);
+ return dateFormatString + " " + timeFormatString;
} else {
- format = new SimpleDateFormat(dateFormatString);
+ return dateFormatString;
}
-
- //format.setTimeZone(TimeZone.getTimeZone("GMT"));
-
- return format.parse(dateString);
}
@@ -170,27 +209,27 @@ public class UtilityDate {
}
public static LocalDate toLocalDate(Date dateToConvert) {
- return dateToConvert.toInstant()
+ return dateToConvert != null ? dateToConvert.toInstant()
.atZone(currentZone)
- .toLocalDate();
+ .toLocalDate() : null;
}
public static LocalDateTime toLocalDateTime(Date dateToConvert) {
- return dateToConvert.toInstant()
+ return dateToConvert != null ? dateToConvert.toInstant()
.atZone(currentZone)
- .toLocalDateTime();
+ .toLocalDateTime() : null;
}
public static Date toDate(LocalDate dateToConvert) {
- return Date.from(dateToConvert.atStartOfDay()
+ return dateToConvert != null ? Date.from(dateToConvert.atStartOfDay()
.atZone(currentZone)
- .toInstant());
+ .toInstant()) : null;
}
public static Date toDateTime(LocalDateTime dateToConvert) {
- return Date.from(dateToConvert
+ return dateToConvert != null ? Date.from(dateToConvert
.atZone(currentZone)
- .toInstant());
+ .toInstant()) : null;
}
@@ -206,6 +245,12 @@ public class UtilityDate {
.toLocalDateTime();
}
+ public static LocalDate millisTimeToLocalDate(long time, @Nullable String timezone) {
+ return Instant.ofEpochMilli(time)
+ .atZone(timezone == null ? currentZone : ZoneId.of(timezone))
+ .toLocalDate();
+ }
+
public static LocalDate timeToLocalDate(long time, @Nullable String timezone) {
return Instant.ofEpochSecond(time)
.atZone(timezone == null ? currentZone : ZoneId.of(timezone))
@@ -229,5 +274,9 @@ public class UtilityDate {
return TimeUnit.DAYS.toSeconds(localDate.toEpochDay());
}
+ public static long localDateToMillisTime(LocalDate localDate) {
+ return TimeUnit.DAYS.toMillis(localDate.toEpochDay());
+ }
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
index 9ee6fbbc..6843d1b8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
@@ -31,9 +31,9 @@ public class UtilityExceptions {
public static void defaultException(Context context, Exception ex, boolean sendEmail) {
if (ex.getMessage() != null) {
- Logger.e(ex, Html.fromHtml(ex.getMessage()).toString(), ex.getStackTrace());
+ Logger.e(ex, Html.fromHtml(ex.getMessage()).toString(), (Object) ex.getStackTrace());
} else {
- Logger.e(ex, "Errore", ex.getStackTrace());
+ Logger.e(ex, "Errore", (Object) ex.getStackTrace());
}
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneComponent.java
deleted file mode 100644
index bff63b69..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneComponent.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package it.integry.integrywmsnative.gest.accettazione;
-
-import dagger.Subcomponent;
-
-@Subcomponent
-public interface MainAccettazioneComponent {
-
- @Subcomponent.Factory
- interface Factory {
-
- MainAccettazioneComponent create();
- }
-
- void inject(MainAccettazioneFragment mainAccettazioneFragment);
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneModule.java
deleted file mode 100644
index 9480528f..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneModule.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package it.integry.integrywmsnative.gest.accettazione;
-
-import dagger.Module;
-import dagger.Provides;
-import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumer;
-
-@Module(subcomponents = {MainAccettazioneComponent.class})
-public class MainAccettazioneModule {
-
- @Provides
- OrdiniAccettazioneRESTConsumer providesOrdiniAccettazioneRESTConsumer() {
- return new OrdiniAccettazioneRESTConsumer();
- }
-
- @Provides
- MainAccettazioneViewModel providesMainAccettazioneViewModel(OrdiniAccettazioneRESTConsumer ordiniAccettazioneRESTConsumer) {
- return new MainAccettazioneViewModel(ordiniAccettazioneRESTConsumer);
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoComponent.java
new file mode 100644
index 00000000..4c1bc9d1
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoComponent.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface MainAccettazioneBollaElencoComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+
+ MainAccettazioneBollaElencoComponent create();
+ }
+
+ void inject(MainAccettazioneBollaElencoFragment mainAccettazioneBollaElencoFragment);
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoFragment.java
new file mode 100644
index 00000000..ce467dfd
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoFragment.java
@@ -0,0 +1,225 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.widget.AppCompatTextView;
+import androidx.databinding.ObservableArrayList;
+
+import com.annimon.stream.Stream;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.MainApplication;
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.data_cache.DataCache;
+import it.integry.integrywmsnative.core.di.BindableBoolean;
+import it.integry.integrywmsnative.core.expansion.BaseFragment;
+import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
+import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
+import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBollaBinding;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.ui.MainAccettazioneBolleElencoAdapter;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.ui.MainAccettazioneBolleElencoListModel;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.AccettazioneBollaPickingActivity;
+import it.integry.integrywmsnative.ui.ElevatedToolbar;
+
+public class MainAccettazioneBollaElencoFragment extends BaseFragment implements ITitledFragment, IScrollableFragment, MainAccettazioneBollaElencoViewModel.Listener {
+
+
+ @Inject
+ MainAccettazioneBollaElencoViewModel mViewModel;
+
+
+ private final ObservableArrayList mBolleInevaseMutableData = new ObservableArrayList<>();
+ private FragmentMainAccettazioneBollaBinding mBinding;
+ private ElevatedToolbar mToolbar;
+ private AppCompatTextView mAppBarTitle;
+
+ public BindableBoolean fabVisible = new BindableBoolean(false);
+
+ private String mTextFilter;
+
+
+ private final List mOnPreDestroyList = new ArrayList<>();
+
+
+ public MainAccettazioneBollaElencoFragment() {
+ }
+
+ public static MainAccettazioneBollaElencoFragment newInstance() {
+ return new MainAccettazioneBollaElencoFragment();
+ }
+
+
+ @Override
+ public void onCreateActionBar(AppCompatTextView titleText, Context context) {
+ mAppBarTitle = titleText;
+ mAppBarTitle.setText(context.getText(R.string.accettazione_ordine_title_fragment).toString());
+ }
+
+ @Override
+ public void onSaveInstanceState(@NonNull Bundle outState) {
+ onLoadingEnded();
+ outState.putString("mToolbar", DataCache.addItem(mToolbar));
+
+ super.onSaveInstanceState(outState);
+ }
+
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ setRetainInstance(true);
+
+ if (savedInstanceState != null && savedInstanceState.containsKey("mToolbar"))
+ mToolbar = DataCache.retrieveItem(savedInstanceState.getString("mToolbar"));
+
+ mBinding = FragmentMainAccettazioneBollaBinding.inflate(inflater, container, false);
+
+ MainApplication.appComponent
+ .mainAccettazioneBollaElencoComponent()
+ .create()
+ .inject(this);
+
+ mViewModel.setListener(this);
+
+ mBinding.setLifecycleOwner(this);
+ mBinding.setView(this);
+
+ this.initRecyclerView();
+
+ mToolbar.setRecyclerView(mBinding.accettazioneMainList);
+
+ return mBinding.getRoot();
+ }
+
+
+ @Override
+ public void onStart() {
+ super.onStart();
+
+ this.fabVisible.set(false);
+ mViewModel.init();
+ }
+
+ @Override
+ public void onDestroy() {
+ for (Runnable onPreDestroy : mOnPreDestroyList) {
+ onPreDestroy.run();
+ }
+ super.onDestroy();
+ }
+
+ private void initRecyclerView() {
+ this.mViewModel.getBolleList().observe(getViewLifecycleOwner(), x -> {
+ this.refreshList();
+ });
+
+
+ MainAccettazioneBolleElencoAdapter adapter = new MainAccettazioneBolleElencoAdapter(getActivity(), mBolleInevaseMutableData)
+ .setOnGroupItemClicked(x -> {
+ Stream.of(mBolleInevaseMutableData)
+ .filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get())
+ .forEach(y -> y.getSelectedObservable().set(false));
+
+ boolean allSelected = Stream.of(mBolleInevaseMutableData)
+ .filter(y -> y.getGroupTitle().equalsIgnoreCase(x))
+ .allMatch(y -> y.getSelectedObservable().get());
+
+ Stream.of(mBolleInevaseMutableData)
+ .filter(y -> y.getGroupTitle().equalsIgnoreCase(x))
+ .forEach(y -> y.getSelectedObservable().set(!allSelected));
+ })
+ .setOnItemChecked(x -> {
+ Stream.of(mBolleInevaseMutableData)
+ .filter(y -> !y.getGroupTitle().equalsIgnoreCase(x.getGroupTitle()) && y.getSelectedObservable().get())
+ .forEach(y -> y.getSelectedObservable().set(false));
+
+ fabVisible.set(Stream.of(mBolleInevaseMutableData)
+ .anyMatch(y -> y.getSelectedObservable().get()));
+ });
+
+ adapter.setEmptyView(this.mBinding.bolleAccettazioneEmptyView);
+
+ this.mBinding.accettazioneMainList.setAdapter(adapter);
+
+ if (mToolbar != null)
+ mToolbar.setRecyclerView(this.mBinding.accettazioneMainList);
+ }
+
+
+ private void refreshList() {
+ List tmpList = mViewModel.getBolleList().getValue();
+
+ //TODO: Filter here
+
+ this.mBolleInevaseMutableData.clear();
+ this.mBolleInevaseMutableData.addAll(convertDataModelToListModel(tmpList));
+ }
+
+ @Override
+ public void setScrollToolbar(ElevatedToolbar toolbar) {
+ mToolbar = toolbar;
+ }
+
+
+ @Override
+ public void addOnPreDestroy(Runnable onPreDestroy) {
+ this.mOnPreDestroyList.add(onPreDestroy);
+ }
+
+
+
+
+
+ private List convertDataModelToListModel(List dataList) {
+
+ final Comparator comparer = Comparator.comparing(TestataBollaAccettazioneDTO::getListino)
+ .thenComparing(TestataBollaAccettazioneDTO::getRagSoc)
+ .thenComparing(TestataBollaAccettazioneDTO::getNumDoc);
+
+
+ return Stream.of(dataList)
+ .sorted(comparer)
+ .map(x -> {
+ MainAccettazioneBolleElencoListModel listModel = new MainAccettazioneBolleElencoListModel();
+
+ listModel.setOriginalModel(x);
+ listModel.setGroupTitle(x.getListino() + " - " + x.getRagSoc());
+ listModel.setDescription(String.format(getString(R.string.ord_acq_testata), x.getNumDoc(), UtilityDate.formatDate(x.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
+
+ listModel.setSubDescription(x.getDescrizioneListino());
+ listModel.setRightDescription(x.getCodAnag());
+ listModel.setRightSubDescription(x.getCodJcom());
+
+ return listModel;
+ })
+ .toList();
+ }
+
+
+ public void dispatchBolle() {
+ List selectedBolle = Stream.of(this.mBolleInevaseMutableData)
+ .filter(x -> x.getSelectedObservable().get())
+ .map(MainAccettazioneBolleElencoListModel::getOriginalModel)
+ .toList();
+
+ this.mViewModel.loadPicking(selectedBolle);
+ }
+
+ @Override
+ public void onPickingReady(List bolle, List sitArts) {
+ AccettazioneBollaPickingActivity.startActivity(requireContext(), bolle, sitArts);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoModule.java
new file mode 100644
index 00000000..0491cd7a
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoModule.java
@@ -0,0 +1,21 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco;
+
+import dagger.Module;
+import dagger.Provides;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.BolleAccettazioneRESTConsumer;
+
+@Module(subcomponents = {MainAccettazioneBollaElencoComponent.class})
+public class MainAccettazioneBollaElencoModule {
+
+
+ @Provides
+ BolleAccettazioneRESTConsumer providesBolleAccettazioneRESTConsumer() {
+ return new BolleAccettazioneRESTConsumer();
+ }
+
+
+ @Provides
+ MainAccettazioneBollaElencoViewModel providesMainAccettazioneBollaViewModel(BolleAccettazioneRESTConsumer bolleAccettazioneRESTConsumer) {
+ return new MainAccettazioneBollaElencoViewModel(bolleAccettazioneRESTConsumer);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoViewModel.java
new file mode 100644
index 00000000..868b2c32
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoViewModel.java
@@ -0,0 +1,100 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco;
+
+import androidx.lifecycle.MutableLiveData;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.BolleAccettazioneRESTConsumer;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+
+public class MainAccettazioneBollaElencoViewModel {
+
+ private final BolleAccettazioneRESTConsumer bolleAccettazioneRESTConsumer;
+
+ private final MutableLiveData> bolleList = new MutableLiveData<>();
+ private Listener listener;
+
+ @Inject
+ public MainAccettazioneBollaElencoViewModel(BolleAccettazioneRESTConsumer bolleAccettazioneRESTConsumer) {
+ this.bolleAccettazioneRESTConsumer = bolleAccettazioneRESTConsumer;
+ }
+
+ public void init() {
+ this.sendOnLoadingStarted();
+
+ bolleAccettazioneRESTConsumer.retrieveBolleDaAccettare(bolleList -> {
+ this.bolleList.postValue(bolleList);
+
+ this.sendOnLoadingEnded();
+
+ }, this::sendError);
+ }
+
+
+ public MutableLiveData> getBolleList() {
+ return bolleList;
+ }
+
+
+
+
+ public void loadPicking(List selectedBolle) {
+ this.sendOnLoadingStarted();
+
+ this.bolleAccettazioneRESTConsumer.retrievePickingListBolle(selectedBolle, sitArts -> {
+ this.sendOnLoadingEnded();
+
+ this.sendOnPickingReady(selectedBolle, sitArts);
+
+ }, this::sendError);
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public MainAccettazioneBollaElencoViewModel setListener(MainAccettazioneBollaElencoViewModel.Listener listener) {
+ this.listener = listener;
+ return this;
+ }
+
+ private void sendOnLoadingStarted() {
+ if (this.listener != null) listener.onLoadingStarted();
+ }
+
+ private void sendOnLoadingEnded() {
+ if (this.listener != null) listener.onLoadingEnded();
+ }
+
+ private void sendError(Exception ex) {
+ if (this.listener != null) listener.onError(ex);
+ }
+
+ private void sendOnPickingReady(List bolle, List sitArts) {
+ if(this.listener != null) listener.onPickingReady(bolle, sitArts);
+ }
+
+
+ public interface Listener extends ILoadingListener {
+ void onError(Exception ex);
+
+ void onPickingReady(List bolle, List sitArts);
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java
new file mode 100644
index 00000000..7bae2e9f
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumer.java
@@ -0,0 +1,60 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest;
+
+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.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaRequestDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaResponseDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoBolleAccettazioneResponseDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+@Singleton
+public class BolleAccettazioneRESTConsumer extends _BaseRESTConsumer {
+
+
+ public void retrieveBolleDaAccettare(RunnableArgs> onComplete, RunnableArgs onFailed) {
+ BolleAccettazioneRESTConsumerService service = RESTBuilder.getService(BolleAccettazioneRESTConsumerService.class);
+ service.retrieveElencoBolle()
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "retrieveBolleDaAccettare", data -> onComplete.run(data.getBolleDaAccettare()), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+ }
+
+ public void retrievePickingListBolle(List bolle, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ BolleAccettazioneRESTConsumerService service = RESTBuilder.getService(BolleAccettazioneRESTConsumerService.class);
+
+ var request = new RetrieveElencoArticoliAccettazioneBollaRequestDTO()
+ .setBolle(bolle);
+
+ service.retrievePickingListBolle(request)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "retrievePickingListBolle", data -> onComplete.run(data.getSitArticoli()), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java
new file mode 100644
index 00000000..ae71bc6f
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/BolleAccettazioneRESTConsumerService.java
@@ -0,0 +1,20 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest;
+
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaRequestDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoArticoliAccettazioneBollaResponseDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.RetrieveElencoBolleAccettazioneResponseDTO;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.POST;
+
+public interface BolleAccettazioneRESTConsumerService {
+
+ @GET("wms/accettazione-bolla/retrieveElencoBolle")
+ Call> retrieveElencoBolle();
+
+ @POST("wms/accettazione-bolla/retrievePickingList")
+ Call> retrievePickingListBolle(@Body RetrieveElencoArticoliAccettazioneBollaRequestDTO retrieveElencoArticoliAccettazioneBollaReques);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaRequestDTO.java
new file mode 100644
index 00000000..d547190e
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaRequestDTO.java
@@ -0,0 +1,17 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto;
+
+import java.util.List;
+
+public class RetrieveElencoArticoliAccettazioneBollaRequestDTO {
+
+ private List bolle;
+
+ public List getBolle() {
+ return bolle;
+ }
+
+ public RetrieveElencoArticoliAccettazioneBollaRequestDTO setBolle(List bolle) {
+ this.bolle = bolle;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaResponseDTO.java
new file mode 100644
index 00000000..b21c872c
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoArticoliAccettazioneBollaResponseDTO.java
@@ -0,0 +1,17 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto;
+
+import java.util.List;
+
+public class RetrieveElencoArticoliAccettazioneBollaResponseDTO {
+
+ private List sitArticoli;
+
+ public List getSitArticoli() {
+ return sitArticoli;
+ }
+
+ public RetrieveElencoArticoliAccettazioneBollaResponseDTO setSitArticoli(List sitArticoli) {
+ this.sitArticoli = sitArticoli;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java
new file mode 100644
index 00000000..6a0e6009
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/RetrieveElencoBolleAccettazioneResponseDTO.java
@@ -0,0 +1,12 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto;
+
+import java.util.List;
+
+public class RetrieveElencoBolleAccettazioneResponseDTO {
+
+ private List bolleDaAccettare;
+
+ public List getBolleDaAccettare() {
+ return bolleDaAccettare;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java
new file mode 100644
index 00000000..8505f0e9
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java
@@ -0,0 +1,149 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+public class SitBollaAccettazioneDTO {
+
+ private int numDoc;
+ private LocalDate dataDoc;
+ private String serDoc;
+ private String codDtip;
+ private String codMart;
+ private String codArtFor;
+ private String partitaMag;
+
+ private BigDecimal qtaDoc;
+ private BigDecimal qtaCnfDoc;
+ private BigDecimal numCnfDoc;
+ private BigDecimal qtaAccettata;
+ private BigDecimal numCnfAccettata;
+ private BigDecimal qtaDaAccettare;
+ private BigDecimal numCnfDaAccettare;
+
+ public int getNumDoc() {
+ return numDoc;
+ }
+
+ public SitBollaAccettazioneDTO setNumDoc(int numDoc) {
+ this.numDoc = numDoc;
+ return this;
+ }
+
+ public LocalDate getDataDoc() {
+ return dataDoc;
+ }
+
+ public SitBollaAccettazioneDTO setDataDoc(LocalDate dataDoc) {
+ this.dataDoc = dataDoc;
+ return this;
+ }
+
+ public String getSerDoc() {
+ return serDoc;
+ }
+
+ public SitBollaAccettazioneDTO setSerDoc(String serDoc) {
+ this.serDoc = serDoc;
+ return this;
+ }
+
+ public String getCodDtip() {
+ return codDtip;
+ }
+
+ public SitBollaAccettazioneDTO setCodDtip(String codDtip) {
+ this.codDtip = codDtip;
+ return this;
+ }
+
+ public String getCodMart() {
+ return codMart;
+ }
+
+ public SitBollaAccettazioneDTO setCodMart(String codMart) {
+ this.codMart = codMart;
+ return this;
+ }
+
+ public String getCodArtFor() {
+ return codArtFor;
+ }
+
+ public SitBollaAccettazioneDTO setCodArtFor(String codArtFor) {
+ this.codArtFor = codArtFor;
+ return this;
+ }
+
+ public String getPartitaMag() {
+ return partitaMag;
+ }
+
+ public SitBollaAccettazioneDTO setPartitaMag(String partitaMag) {
+ this.partitaMag = partitaMag;
+ return this;
+ }
+
+ public BigDecimal getQtaDoc() {
+ return qtaDoc;
+ }
+
+ public SitBollaAccettazioneDTO setQtaDoc(BigDecimal qtaDoc) {
+ this.qtaDoc = qtaDoc;
+ return this;
+ }
+
+ public BigDecimal getQtaCnfDoc() {
+ return qtaCnfDoc;
+ }
+
+ public SitBollaAccettazioneDTO setQtaCnfDoc(BigDecimal qtaCnfDoc) {
+ this.qtaCnfDoc = qtaCnfDoc;
+ return this;
+ }
+
+ public BigDecimal getNumCnfDoc() {
+ return numCnfDoc;
+ }
+
+ public SitBollaAccettazioneDTO setNumCnfDoc(BigDecimal numCnfDoc) {
+ this.numCnfDoc = numCnfDoc;
+ return this;
+ }
+
+ public BigDecimal getQtaAccettata() {
+ return qtaAccettata;
+ }
+
+ public SitBollaAccettazioneDTO setQtaAccettata(BigDecimal qtaAccettata) {
+ this.qtaAccettata = qtaAccettata;
+ return this;
+ }
+
+ public BigDecimal getNumCnfAccettata() {
+ return numCnfAccettata;
+ }
+
+ public SitBollaAccettazioneDTO setNumCnfAccettata(BigDecimal numCnfAccettata) {
+ this.numCnfAccettata = numCnfAccettata;
+ return this;
+ }
+
+ public BigDecimal getQtaDaAccettare() {
+ return qtaDaAccettare;
+ }
+
+ public SitBollaAccettazioneDTO setQtaDaAccettare(BigDecimal qtaDaAccettare) {
+ this.qtaDaAccettare = qtaDaAccettare;
+ return this;
+ }
+
+ public BigDecimal getNumCnfDaAccettare() {
+ return numCnfDaAccettare;
+ }
+
+ public SitBollaAccettazioneDTO setNumCnfDaAccettare(BigDecimal numCnfDaAccettare) {
+ this.numCnfDaAccettare = numCnfDaAccettare;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java
new file mode 100644
index 00000000..83c7be54
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/TestataBollaAccettazioneDTO.java
@@ -0,0 +1,51 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto;
+
+import java.time.LocalDate;
+
+public class TestataBollaAccettazioneDTO {
+ private String codAnag;
+ private String ragSoc;
+ private String codDtip;
+ private LocalDate dataDoc;
+ private String serDoc;
+ private int numDoc;
+ private String listino;
+ private String descrizioneListino;
+ private String codJcom;
+
+ public String getCodAnag() {
+ return codAnag;
+ }
+
+ public String getRagSoc() {
+ return ragSoc;
+ }
+
+ public String getCodDtip() {
+ return codDtip;
+ }
+
+ public LocalDate getDataDoc() {
+ return dataDoc;
+ }
+
+ public String getSerDoc() {
+ return serDoc;
+ }
+
+ public int getNumDoc() {
+ return numDoc;
+ }
+
+ public String getListino() {
+ return listino;
+ }
+
+ public String getDescrizioneListino() {
+ return descrizioneListino;
+ }
+
+ public String getCodJcom() {
+ return codJcom;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java
new file mode 100644
index 00000000..578611ab
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoAdapter.java
@@ -0,0 +1,143 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.ui;
+
+import android.content.Context;
+import android.text.Html;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.core.content.res.ResourcesCompat;
+import androidx.databinding.ObservableArrayList;
+import androidx.recyclerview.widget.RecyclerView;
+
+import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.expansion.view.ExtendedSectionedRecyclerView;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBollaListGroupModelBinding;
+import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBollaListModelBinding;
+
+public class MainAccettazioneBolleElencoAdapter extends ExtendedSectionedRecyclerView {
+
+ private final Context mContext;
+ private RunnableArgs mOnGroupItemClicked;
+ private RunnableArgs mOnItemChecked;
+
+ static class SubheaderHolder extends RecyclerView.ViewHolder {
+
+ FragmentMainAccettazioneBollaListModelBinding mBinding;
+
+ SubheaderHolder(FragmentMainAccettazioneBollaListModelBinding binding) {
+ super(binding.getRoot());
+ this.mBinding = binding;
+ }
+ }
+
+ static class SingleItemViewHolder extends RecyclerView.ViewHolder {
+
+ FragmentMainAccettazioneBollaListGroupModelBinding mBinding;
+
+ SingleItemViewHolder(FragmentMainAccettazioneBollaListGroupModelBinding binding) {
+ super(binding.getRoot());
+ this.mBinding = binding;
+ }
+ }
+
+ public MainAccettazioneBolleElencoAdapter(Context context, ObservableArrayList mutableDataSet) {
+ super(mutableDataSet);
+ mContext = context;
+ }
+
+ public MainAccettazioneBolleElencoAdapter setOnGroupItemClicked(RunnableArgs mOnGroupItemClicked) {
+ this.mOnGroupItemClicked = mOnGroupItemClicked;
+ return this;
+ }
+
+ public MainAccettazioneBolleElencoAdapter setOnItemChecked(RunnableArgs mOnItemChecked) {
+ this.mOnItemChecked = mOnItemChecked;
+ return this;
+ }
+
+ @Override
+ public MainAccettazioneBolleElencoAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
+ FragmentMainAccettazioneBollaListModelBinding binding = FragmentMainAccettazioneBollaListModelBinding.inflate(LayoutInflater.from(mContext), parent, false);
+ return new MainAccettazioneBolleElencoAdapter.SubheaderHolder(binding);
+ }
+
+ @Override
+ public MainAccettazioneBolleElencoAdapter.SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
+ FragmentMainAccettazioneBollaListGroupModelBinding binding = FragmentMainAccettazioneBollaListGroupModelBinding.inflate(LayoutInflater.from(mContext), parent, false);
+ return new MainAccettazioneBolleElencoAdapter.SingleItemViewHolder(binding);
+ }
+
+ @Override
+ public void onBindSubheaderViewHolder(MainAccettazioneBolleElencoAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
+ MainAccettazioneBolleElencoListModel pickingObjectDTO = this.mDataset.get(nextItemPosition);
+
+ subheaderHolder.mBinding.groupTitle.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getGroupTitle()) ? View.GONE : View.VISIBLE);
+ subheaderHolder.mBinding.groupTitle.setText(Html.fromHtml(pickingObjectDTO.getGroupTitle()));
+
+ subheaderHolder.mBinding.getRoot().setOnClickListener(new OnSingleClickListener() {
+ @Override
+ public void onSingleClick(View v) {
+ if(mOnGroupItemClicked != null) mOnGroupItemClicked.run(pickingObjectDTO.getGroupTitle());
+ }
+ });
+ }
+
+ @Override
+ public void onBindItemViewHolder(final MainAccettazioneBolleElencoAdapter.SingleItemViewHolder holder, final int position) {
+ MainAccettazioneBolleElencoListModel listModel = this.mDataset.get(position);
+
+ listModel.getSelectedObservable().resetOnPropertyChangedCallback();
+
+ if(listModel.getEtichettaColor() != null)
+ holder.mBinding.emptyView.setBackgroundColor(listModel.getEtichettaColor());
+ else holder.mBinding.emptyView.setBackgroundColor(ResourcesCompat.getColor(mContext.getResources(), android.R.color.transparent, null));
+
+ if(!UtilityString.isNullOrEmpty(listModel.getDescription())) {
+ holder.mBinding.descrizione.setText(Html.fromHtml(listModel.getDescription()));
+ holder.mBinding.descrizione.setVisibility(View.VISIBLE);
+ } else holder.mBinding.descrizione.setVisibility(View.GONE);
+
+ if(!UtilityString.isNullOrEmpty(listModel.getSubDescription())) {
+ holder.mBinding.subDescrizione.setText(Html.fromHtml(listModel.getSubDescription()));
+ holder.mBinding.subDescrizione.setVisibility(View.VISIBLE);
+ } else holder.mBinding.subDescrizione.setVisibility(View.GONE);
+
+ if(!UtilityString.isNullOrEmpty(listModel.getRightDescription())) {
+ holder.mBinding.rightDescrizione.setText(Html.fromHtml(listModel.getRightDescription()));
+ holder.mBinding.rightDescrizione.setVisibility(View.VISIBLE);
+ } else holder.mBinding.rightDescrizione.setVisibility(View.GONE);
+
+ if(!UtilityString.isNullOrEmpty(listModel.getRightSubDescription())) {
+ holder.mBinding.rightSubDescrizione.setText(Html.fromHtml(listModel.getRightSubDescription()));
+ holder.mBinding.rightSubDescrizione.setVisibility(View.VISIBLE);
+ } else holder.mBinding.rightSubDescrizione.setVisibility(View.GONE);
+
+ holder.mBinding.setSelected(listModel.getSelectedObservable());
+ holder.mBinding.executePendingBindings();
+ holder.mBinding.checkbox.jumpDrawablesToCurrentState();
+
+ listModel.getSelectedObservable().addOnPropertyChangedCallback(() -> {
+ if(this.mOnItemChecked != null) this.mOnItemChecked.run(listModel);
+ });
+
+ holder.mBinding.getRoot().setOnClickListener(v -> {
+ listModel.getSelectedObservable().set(!listModel.getSelectedObservable().get());
+ });
+ }
+ @Override
+ public boolean onPlaceSubheaderBetweenItems(int position) {
+
+ if (getItemSize() == 1) return true;
+ else if (getItemSize() > 1) {
+ MainAccettazioneBolleElencoListModel compare1 = this.mDataset.get(position);
+ MainAccettazioneBolleElencoListModel compare2 = this.mDataset.get(position + 1);
+
+ return !UtilityString.equalsIgnoreCase(compare1.getGroupTitle(), compare2.getGroupTitle());
+ }
+
+ return true;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java
new file mode 100644
index 00000000..1f98fbfd
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/ui/MainAccettazioneBolleElencoListModel.java
@@ -0,0 +1,99 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_elenco.ui;
+
+import androidx.annotation.ColorInt;
+
+import it.integry.integrywmsnative.core.di.BindableBoolean;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+
+public class MainAccettazioneBolleElencoListModel implements Cloneable {
+ private String groupTitle;
+
+ private String description;
+ private String subDescription;
+ private String rightDescription;
+ private String rightSubDescription;
+
+ private @ColorInt Integer etichettaColor;
+
+ private boolean hidden;
+ private BindableBoolean selected = new BindableBoolean();
+
+
+ private TestataBollaAccettazioneDTO originalModel;
+
+
+ public String getGroupTitle() {
+ return groupTitle;
+ }
+
+ public MainAccettazioneBolleElencoListModel setGroupTitle(String groupTitle) {
+ this.groupTitle = groupTitle;
+ return this;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public MainAccettazioneBolleElencoListModel setDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ public String getSubDescription() {
+ return subDescription;
+ }
+
+ public MainAccettazioneBolleElencoListModel setSubDescription(String subDescription) {
+ this.subDescription = subDescription;
+ return this;
+ }
+
+ public String getRightDescription() {
+ return rightDescription;
+ }
+
+ public MainAccettazioneBolleElencoListModel setRightDescription(String rightDescription) {
+ this.rightDescription = rightDescription;
+ return this;
+ }
+
+ public String getRightSubDescription() {
+ return rightSubDescription;
+ }
+
+ public MainAccettazioneBolleElencoListModel setRightSubDescription(String rightSubDescription) {
+ this.rightSubDescription = rightSubDescription;
+ return this;
+ }
+
+ public @ColorInt Integer getEtichettaColor() {
+ return etichettaColor;
+ }
+
+ public MainAccettazioneBolleElencoListModel setEtichettaColor(@ColorInt Integer etichettaColor) {
+ this.etichettaColor = etichettaColor;
+ return this;
+ }
+
+ public boolean isHidden() {
+ return hidden;
+ }
+
+ public MainAccettazioneBolleElencoListModel setHidden(boolean hidden) {
+ this.hidden = hidden;
+ return this;
+ }
+
+ public BindableBoolean getSelectedObservable() {
+ return selected;
+ }
+
+ public TestataBollaAccettazioneDTO getOriginalModel() {
+ return originalModel;
+ }
+
+ public void setOriginalModel(TestataBollaAccettazioneDTO originalModel) {
+ this.originalModel = originalModel;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java
new file mode 100644
index 00000000..1f1720f5
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java
@@ -0,0 +1,565 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_picking;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.text.SpannableString;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
+import androidx.databinding.ObservableArrayList;
+import androidx.preference.PreferenceManager;
+
+import com.annimon.stream.ComparatorCompat;
+import com.annimon.stream.Stream;
+import com.tfb.fbtoast.FBToast;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.MainApplication;
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
+import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
+import it.integry.integrywmsnative.core.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.MtbTCol;
+import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
+import it.integry.integrywmsnative.core.report.ReportManager;
+import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
+import it.integry.integrywmsnative.core.settings.SettingsManager;
+import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
+import it.integry.integrywmsnative.core.utility.UtilityExceptions;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+import it.integry.integrywmsnative.core.utility.UtilityToast;
+import it.integry.integrywmsnative.databinding.ActivityAccettazioneBollaPickingBinding;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.AccettazioneBollaPickingOrderBy;
+import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListAdapter;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListModel;
+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.ask_should_versamento_automatico_ul.DialogAskShouldVersamentoAutomaticoULView;
+import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesView;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
+import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageView;
+import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
+import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
+import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
+import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
+
+public class AccettazioneBollaPickingActivity extends BaseActivity implements AccettazioneBollaPickingViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
+
+
+ @Inject
+ AccettazioneBollaPickingViewModel mViewModel;
+
+ @Inject
+ DialogInputQuantityV2View mDialogInputQuantityV2View;
+
+ private ActivityAccettazioneBollaPickingBinding mBindings;
+
+ private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel;
+
+
+ private final 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 boolean mShowSecondaryUntMis = true;
+ private boolean mShouldCloseActivity;
+ private AccettazioneBollaPickingOrderBy.Enum mCurrentOrderBy;
+
+ private final int PICK_UL_REQUEST = 1;
+
+ private List testataBolle;
+ private List sitArts;
+
+ //Pass here all external parameters
+ public static void startActivity(Context context, List testataBolle, List sitArts) {
+ Intent myIntent = new Intent(context, AccettazioneBollaPickingActivity.class);
+
+ String keyBolle = DataCache.addItem(testataBolle);
+ myIntent.putExtra("keyBolle", keyBolle);
+
+ String keySitArts = DataCache.addItem(sitArts);
+ myIntent.putExtra("keySitArts", keySitArts);
+
+ context.startActivity(myIntent);
+ }
+
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ testataBolle = DataCache.retrieveItem(getIntent().getStringExtra("keyBolle"));
+ sitArts = DataCache.retrieveItem(getIntent().getStringExtra("keySitArts"));
+
+ mBindings = ActivityAccettazioneBollaPickingBinding.inflate(getLayoutInflater());
+ mBindings.setLifecycleOwner(this);
+ mBindings.setAccettazioneView(this);
+
+ setContentView(mBindings.getRoot());
+
+ MainApplication.appComponent
+ .accettazioneBollaPickingComponent()
+ .create()
+ .inject(this);
+
+
+ setSupportActionBar(mBindings.toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ mBottomSheetFragmentLUContentViewModel = mBindings.bottomSheetLuContent.getViewModelInstance();
+ mBindings.bottomSheetLuContent.setListener(this);
+ mBottomSheetFragmentLUContentViewModel.setListener(this);
+
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
+ mShowSecondaryUntMis = sharedPreferences.getBoolean("picking_ingresso_enable_sec_unt_mis", true);
+
+ this.initVars();
+ this.initBarcodeReader();
+ this.initRecyclerView();
+// this.initFilters();
+
+ boolean useQtaBolla = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
+
+ mViewModel.setListeners(this);
+ mViewModel.init(
+ testataBolle,
+ sitArts,
+ useQtaBolla);
+ }
+
+ @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();
+ }
+ }
+
+ private void initVars() {
+ this.noLUPresent.addOnPropertyChangedCallback(() -> {
+ this.bottomSheetEnabled.set(!this.noLUPresent.get());
+ });
+
+ mCurrentOrderBy = AccettazioneBollaPickingOrderBy.Enum.fromInt(SettingsManager.i().getUserSession().getDefaultOrdinamentoPickingAccettazioneBolle());
+ }
+
+ private void initBarcodeReader() {
+ barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
+ .setOnScanSuccessful(onScanSuccessful)
+ .setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
+ }
+
+ private void initRecyclerView() {
+ AccettazioneBollaPickingListAdapter adapter = new AccettazioneBollaPickingListAdapter(this, mAccettazioneMutableData, mShowSecondaryUntMis);
+ this.mBindings.accettazionePickingList.setAdapter(adapter);
+
+ this.mViewModel.getPickingList().observe(this, updatedData -> {
+// mAppliedFilterViewModel.init(updatedData);
+
+ refreshList();
+ });
+
+ adapter.setOnItemClicked(clickedItem -> {
+ this.mViewModel.manageDispatchBollaRow(clickedItem);
+ });
+ }
+
+ private void refreshList() {
+
+ runOnUiThread(() -> {
+ List tmpList;
+
+// if (mAppliedFilterViewModel != null) {
+// mAppliedFilterViewModel.applyAllTests();
+// tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue();
+// } else {
+ tmpList = mViewModel.getPickingList().getValue();
+// }
+//
+ var list = convertDataModelToListModel(tmpList);
+
+ this.mAccettazioneMutableData.clear();
+ this.mAccettazioneMutableData.addAll(list);
+ this.noItemsToPick.set(!isThereAnyItemToPick(tmpList));
+
+ });
+ }
+
+ private boolean isThereAnyItemToPick(List dataList) {
+ return Stream.of(dataList)
+ .anyMatch(x -> !x.isHidden());
+ }
+
+ private List convertDataModelToListModel(List dataList) {
+ List tmpList = Stream.of(dataList)
+ .filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitBollaAccettazione().getQtaDaAccettare(), BigDecimal.ZERO))
+ .toList();
+
+ return switch (mCurrentOrderBy) {
+ case COD_ART_FOR -> convertDataModelToListModel__NormalView(
+ tmpList,
+ ComparatorCompat
+ .comparing(x -> x.getSitBollaAccettazione().getCodArtFor()));
+ case DESCR_ART -> //convertDataModelToListModel__DescrArt(tmpList);
+ new ArrayList<>();
+ };
+ }
+
+ private List convertDataModelToListModel__NormalView(List dataList, ComparatorCompat comparator) {
+ ArrayList list = new ArrayList<>();
+ Stream.of(dataList)
+ .sorted(comparator)
+ .forEach(x -> {
+ AccettazioneBollaPickingListModel accettazioneBollaPickingListModel = new AccettazioneBollaPickingListModel();
+ accettazioneBollaPickingListModel.setActive(true);
+
+ accettazioneBollaPickingListModel.setTitolo(x.getMtbAart().getCodMart());
+
+ accettazioneBollaPickingListModel.setBadge2Icon(R.drawable.ic_document_outline);
+ accettazioneBollaPickingListModel.setBadge2(x.getSitBollaAccettazione().getNumDoc() + " del " + UtilityDate.formatDate(x.getSitBollaAccettazione().getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
+
+ accettazioneBollaPickingListModel.setDescrizione(x.getMtbAart().getDescrizione());
+
+ //Calc Num CNF
+ BigDecimal numCnfEvasa = BigDecimal.ZERO;
+
+ if (x.getWithdrawMtbColrs().size() > 0) {
+ numCnfEvasa = Stream.of(x.getWithdrawMtbColrs())
+ .map(MtbColr::getNumCnf)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ }
+
+ //Calc qta col
+ BigDecimal qtaEvasa = BigDecimal.ZERO;
+
+ if (x.getWithdrawMtbColrs().size() > 0) {
+ qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
+ .map(MtbColr::getQtaCol)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ }
+
+
+ if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
+ accettazioneBollaPickingListModel.setQtaEvasa(numCnfEvasa);
+ accettazioneBollaPickingListModel.setQtaTot(x.getSitBollaAccettazione().getNumCnfDaAccettare());
+ accettazioneBollaPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
+
+ accettazioneBollaPickingListModel.setSecQtaEvasa(qtaEvasa);
+ accettazioneBollaPickingListModel.setSecQtaTot(x.getSitBollaAccettazione().getQtaDaAccettare());
+ if (x.getMtbAart() != null)
+ accettazioneBollaPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
+ } else {
+ accettazioneBollaPickingListModel.setQtaEvasa(qtaEvasa);
+ accettazioneBollaPickingListModel.setQtaTot(x.getSitBollaAccettazione().getQtaDaAccettare());
+ if (x.getMtbAart() != null)
+ accettazioneBollaPickingListModel.setUntMis(x.getMtbAart().getUntMis());
+
+ accettazioneBollaPickingListModel.setSecQtaEvasa(numCnfEvasa);
+ accettazioneBollaPickingListModel.setSecQtaTot(x.getSitBollaAccettazione().getNumCnfDaAccettare());
+ accettazioneBollaPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
+ }
+
+ accettazioneBollaPickingListModel.setOriginalModel(x);
+
+ list.add(accettazioneBollaPickingListModel);
+ });
+
+ return list;
+ }
+
+
+ private final RunnableArgs onScanSuccessful = data -> {
+ this.onLoadingStarted();
+
+ this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded);
+ };
+
+ public void createNewLU() {
+ this.mBindings.accettazioneOrdineInevasoFab.close(true);
+ this.onLoadingStarted();
+
+ this.mViewModel.createNewLU(null, null, false, this::onLoadingEnded);
+ }
+
+ public void showCreatedUL() {
+ this.mBindings.accettazioneOrdineInevasoFab.close(true);
+
+ this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
+ }
+
+ private void showOrderByDialog() {
+ AlertDialog dialog = new AlertDialog.Builder(this)
+ .setTitle(this.getText(R.string.action_orderBy))
+ .setSingleChoiceItems(AccettazioneBollaPickingOrderBy.descriptions, mCurrentOrderBy.getVal(), (dialog12, which) -> {
+ mCurrentOrderBy = AccettazioneBollaPickingOrderBy.Enum.fromInt(which);
+ SettingsManager.i().getUserSession().setDefaultOrdinamentoPickingAccettazione(which);
+ })
+ .setPositiveButton(getText(R.string.ok), (dialog1, which) -> this.refreshList())
+ .create();
+ dialog.show();
+ }
+
+ public void startListaBancaliRegistratiActivity(List mtbColts) {
+
+ Intent myIntent = ListaBancaliActivity.createIntent(this,
+
+ Stream.of(mtbColts)
+ .map(AlreadyRegisteredUDCDTO::getMtbColt)
+ .toList(),
+
+ input -> Stream.of(mtbColts)
+ .filter(x -> x.getMtbColt() == input)
+ .findFirstOrElse(null)
+ .isCanBeRecovered(),
+
+ ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
+
+ this.startActivityForResult(myIntent, PICK_UL_REQUEST);
+ }
+
+ @Override
+ public void onMtbColrDeleteRequest(RunnableArgs onComplete) {
+ runOnUiThread(() -> {
+ String text = getResources().getString(R.string.alert_delete_mtb_colr);
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(text),
+ null,
+ () -> onComplete.run(true),
+ () -> onComplete.run(false)
+ ).show(getSupportFragmentManager(), "tag");
+ });
+ }
+
+ @Override
+ public void onLUOpened(MtbColt mtbColt) {
+ runOnUiThread(() -> {
+ noLUPresent.set(false);
+ FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
+
+ this.mBottomSheetFragmentLUContentViewModel.setMtbColt(mtbColt);
+ });
+ }
+
+ @Override
+ public void onLUClosed() {
+ runOnUiThread(() -> {
+ noLUPresent.set(true);
+ this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
+
+ if (this.mShouldCloseActivity) super.onBackPressed();
+ });
+ }
+
+ @Override
+ public void onRowSaved() {
+ runOnUiThread(() -> {
+ FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
+ });
+ }
+
+ @Override
+ public void onLUSuccessullyPrinted() {
+ Resources res = getResources();
+ String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
+ DialogSimpleMessageView
+ .makeSuccessDialog(res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null)
+ .show(getSupportFragmentManager(), "tag");
+ }
+
+ @Override
+ public void onLUPrintRequest(RunnableArgs onComplete) {
+
+ }
+
+ @Override
+ public void onLUPrintError(Exception ex, Runnable onComplete) {
+ this.onLoadingEnded();
+ DialogSimpleMessageView.makeErrorDialog(
+ new SpannableString(ex.getMessage()),
+ null,
+ null,
+ R.string.button_ignore_print,
+ onComplete)
+ .show(getSupportFragmentManager(), "tag");
+ }
+
+ @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 onVersamentoAutomaticoULRequest(RunnableArgs onComplete) {
+ runOnUiThread(() -> {
+ DialogAskShouldVersamentoAutomaticoULView.newInstance(onComplete)
+ .show(getSupportFragmentManager(), "tag");
+ });
+ }
+
+ @Override
+ public void onInfoAggiuntiveRequest(RunnableArgss onComplete) {
+ runOnUiThread(() -> {
+ DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
+ });
+ }
+
+ @Override
+ public void onError(Exception ex) {
+ this.onLoadingEnded();
+
+ if (ex instanceof InvalidPesoKGException) {
+ UtilityToast.showToast(ex.getMessage());
+ } else {
+ UtilityExceptions.defaultException(this, ex);
+ }
+
+ 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, LocalDate dataScad, boolean canPartitaMagBeChanged,
+ boolean canOverflowQuantity, 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)
+ .setCanLUBeClosed(true)
+ .setCanOverflowOrderQuantity(canOverflowQuantity)
+ .setDisableTracciabilitaCheck(SettingsManager.iDB().isFlagDisableMandatoryTracciabilitaAccettazioneBolla());
+
+ if (!mDialogInputQuantityV2View.isVisible())
+ mDialogInputQuantityV2View
+ .setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
+ .setOnComplete((resultDTO, shouldCloseLU) -> {
+ PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
+ .setNumCnf(resultDTO.getNumCnf())
+ .setQtaCnf(resultDTO.getQtaCnf())
+ .setQtaTot(resultDTO.getQtaTot())
+ .setPartitaMag(resultDTO.getPartitaMag())
+ .setDataScad(resultDTO.getDataScad());
+ onComplete.run(pickedQuantityDTO, shouldCloseLU);
+ })
+ .setOnAbort(() -> this.mViewModel.resetMatchedRows())
+ .show(getSupportFragmentManager(), "tag");
+ }
+
+ @Override
+ public void onFilterCodMartApplied(String codMartToFilter) {
+ runOnUiThread(() -> {
+ var codMarts = new ArrayList();
+ codMarts.add(codMartToFilter);
+
+// this.mAppliedFilterViewModel.setCodArtFilter(codMarts);
+ });
+ }
+
+ @Override
+ public void onFilterPosizioneApplied(String posizioneToFilter) {
+ runOnUiThread(() -> {
+ var posizioni = new ArrayList();
+ posizioni.add(posizioneToFilter);
+
+// this.mAppliedFilterViewModel.setPosFilter(posizioni);
+ });
+ }
+
+ @Override
+ public void onULVersata(VersamentoAutomaticoULResponseDTO
+ versamentoAutomaticoULResponseDTO, Runnable onComplete) {
+
+ runOnUiThread(() -> {
+ DialogVersamentoAutomaticoULDoneView
+ .newInstance(versamentoAutomaticoULResponseDTO, onComplete)
+ .show(getSupportFragmentManager(), "tag");
+ });
+ }
+
+ @Override
+ public void onUnknownBarcodeScanned(String barcode, RunnableArgs done, Runnable abort) {
+ DialogAskUnknownBarcodeNotesView
+ .newInstance(barcode, done, abort)
+ .show(getSupportFragmentManager(), DialogBindProductBarcodeWithPackageView.class.getName());
+ }
+
+ @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);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingComponent.java
new file mode 100644
index 00000000..d75161a8
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingComponent.java
@@ -0,0 +1,14 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_picking;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface AccettazioneBollaPickingComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+ AccettazioneBollaPickingComponent create();
+ }
+
+ void inject(AccettazioneBollaPickingActivity AccettazioneBollaPickingActivity);
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingModule.java
new file mode 100644
index 00000000..4a1d478c
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingModule.java
@@ -0,0 +1,33 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_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.ColliAccettazioneRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.rest.AccettazioneBollaPickingRESTConsumer;
+
+@Module(subcomponents = AccettazioneBollaPickingComponent.class)
+public class AccettazioneBollaPickingModule {
+
+ @Provides
+ AccettazioneBollaPickingViewModel providesAccettazioneBollaPickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
+ BarcodeRESTConsumer barcodeRESTConsumer,
+ ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
+ PrinterRESTConsumer printerRESTConsumer,
+ AccettazioneBollaPickingRESTConsumer accettazioneBollaPickingRESTConsumer,
+ ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
+ ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer) {
+ return new AccettazioneBollaPickingViewModel(articoloRESTConsumer,
+ barcodeRESTConsumer,
+ colliMagazzinoRESTConsumer,
+ printerRESTConsumer,
+ accettazioneBollaPickingRESTConsumer,
+ colliAccettazioneRESTConsumer,
+ colliLavorazioneRESTConsumer);
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java
new file mode 100644
index 00000000..e9bd6875
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java
@@ -0,0 +1,1045 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_picking;
+
+import androidx.annotation.NonNull;
+import androidx.databinding.ObservableArrayList;
+import androidx.lifecycle.MutableLiveData;
+
+import com.annimon.stream.Optional;
+import com.annimon.stream.Stream;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+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.LUScanNotGrantedException;
+import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
+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.MtbAart;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.model.MtbTCol;
+import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
+import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
+import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
+import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliCaricoRESTConsumerInterface;
+import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
+import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.udc.DeleteUDCRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.PrintULRequestDTO;
+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_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.rest.AccettazioneBollaPickingRESTConsumer;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.HistoryMtbAartDTO;
+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 AccettazioneBollaPickingViewModel {
+
+
+ private final ArticoloRESTConsumer mArticoloRESTConsumer;
+ private final BarcodeRESTConsumer mBarcodeRESTConsumer;
+ private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
+ private final PrinterRESTConsumer mPrinterRESTConsumer;
+ private final AccettazioneBollaPickingRESTConsumer mAccettazioneBollaPickingRESTConsumer;
+ private final ColliAccettazioneRESTConsumer mColliAccettazioneRESTConsumer;
+ private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
+
+
+ private ColliCaricoRESTConsumerInterface mColliCaricoRESTConsumer;
+
+
+ private Listener mListener;
+
+ private List mBolle;
+ private boolean mUseQtaBolla;
+ private final MutableLiveData> mPickingList = new MutableLiveData<>();
+
+ private MtbColt mCurrentMtbColt = null;
+ private GestioneEnum defaultGestioneOfUL = null;
+ private String defaultCodAnag = null;
+
+ private final List mHistoryUsedAarts = new ArrayList<>();
+
+ @Inject
+ public AccettazioneBollaPickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
+ BarcodeRESTConsumer barcodeRESTConsumer,
+ ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
+ PrinterRESTConsumer printerRESTConsumer,
+ AccettazioneBollaPickingRESTConsumer accettazioneBollaPickingRESTConsumer,
+ ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
+ ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer) {
+ this.mArticoloRESTConsumer = articoloRESTConsumer;
+ this.mBarcodeRESTConsumer = barcodeRESTConsumer;
+ this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
+ this.mPrinterRESTConsumer = printerRESTConsumer;
+ this.mAccettazioneBollaPickingRESTConsumer = accettazioneBollaPickingRESTConsumer;
+ this.mColliAccettazioneRESTConsumer = colliAccettazioneRESTConsumer;
+ this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
+ }
+
+ public void init(List bolle, List sitArts, boolean useQtaOrd) {
+ this.mBolle = bolle;
+ this.mUseQtaBolla = useQtaOrd;
+
+ List mSitArts = Stream.of(sitArts)
+ .filter(x ->
+ UtilityBigDecimal.greaterThan(x.getQtaDaAccettare(), BigDecimal.ZERO))
+ .toList();
+
+ getEmptyPickingList(mSitArts, this.mPickingList::postValue);
+
+
+ defaultGestioneOfUL = GestioneEnum.ACQUISTO;
+
+ var availableCodAnags = bolle.stream()
+ .map(TestataBollaAccettazioneDTO::getCodAnag)
+ .distinct()
+ .collect(Collectors.toList());
+ defaultCodAnag = availableCodAnags.size() == 1 ? availableCodAnags.get(0) : null;
+
+ switch (defaultGestioneOfUL) {
+ case ACQUISTO -> this.mColliCaricoRESTConsumer = mColliAccettazioneRESTConsumer;
+ case LAVORAZIONE -> this.mColliCaricoRESTConsumer = mColliLavorazioneRESTConsumer;
+ }
+ }
+
+ private void getEmptyPickingList(List sitBolleList, RunnableArgs> onComplete) {
+
+ List codMarts = Stream.of(sitBolleList)
+ .map(SitBollaAccettazioneDTO::getCodMart)
+ .toList();
+
+ this.mArticoloRESTConsumer.getByCodMarts(codMarts, listMtbAarts -> {
+ List pickingList = Stream.of(sitBolleList)
+ .map(sitBolla -> {
+ MtbAart mtbAart = null;
+
+ for (MtbAart mtbAartItem : listMtbAarts) {
+ if (mtbAartItem.getCodMart().equalsIgnoreCase(sitBolla.getCodMart())) {
+ mtbAart = mtbAartItem;
+ break;
+ }
+ }
+
+ return new PickingObjectDTO()
+ .setSitBollaAccettazione(sitBolla)
+ .setMtbAart(mtbAart);
+ })
+ .toList();
+
+ onComplete.run(pickingList);
+ }, this::sendError);
+ }
+
+ public MutableLiveData> getPickingList() {
+ return mPickingList;
+ }
+
+
+ public void retrieveExistentLU(RunnableArgs> onComplete) {
+ this.sendOnLoadingStarted();
+
+ this.mAccettazioneBollaPickingRESTConsumer.retrieveAlreadyRegisteredUDC(this.mBolle, 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 {
+ int numCollo = -1;
+
+ try {
+ numCollo = UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue());
+ this.createNewLU(
+ numCollo,
+ CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, true, onComplete);
+ } catch (Exception ex) {
+ this.sendError(ex);
+ }
+ }
+ } 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.isEtichettaPosizione(barcodeScanDTO)) {
+ //Applico filtro per posizione
+ this.executeEtichettaPosizione(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 {
+
+ 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 executeEtichettaPosizione(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+
+ var optionalPos = Stream.of(SettingsManager.iDB().getAvailablePosizioni())
+ .filter(x -> x.getPosizione().equalsIgnoreCase(barcodeScanDTO.getStringValue()))
+ .findFirst();
+
+ this.sendFilterPosizioneApplied(optionalPos.get().getPosizione());
+ onComplete.run();
+ }
+
+ private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
+ this.mArticoloRESTConsumer.searchByBarcode(barcodeProd, mtbAartList -> {
+
+ if (mtbAartList != null && mtbAartList.size() > 0) {
+ this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
+ } else {
+ this.manageUnknownBarcode(barcodeProd, onComplete);
+ }
+
+ }, 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.getSitBollaAccettazione().getCodMart()))
+ .toList();
+
+ for (PickingObjectDTO pickingObjectDTO : matchPickingObject) {
+ pickingObjectDTO.setTempPickData(pickData);
+ }
+
+ this.loadMatchedRows(matchPickingObject, mtbAart);
+ onComplete.run();
+ }
+
+ private void loadMatchedRows(List matchedRows, MtbAart mtbAart) {
+ if (matchedRows == null || matchedRows.size() == 0) {
+ manageNoArtFound(mtbAart);
+ } else if (matchedRows.size() == 1) {
+ this.manageDispatchBollaRow(matchedRows.get(0));
+ } else {
+ //So che il codMart sarà solo 1
+ var firstCodMart = Stream.of(matchedRows)
+ .map(x -> x.getSitBollaAccettazione().getCodMart())
+ .distinct()
+ .findFirst()
+ .get();
+
+ this.sendFilterCodMartApplied(firstCodMart);
+ }
+ }
+
+
+ private void manageUnknownBarcode(String barcode, Runnable onComplete) {
+ if (SettingsManager.iDB().isFlagCanAddUnknownBarcodesAccettazioneBolla()) {
+ //TODO: Implementare popup che richiede delle note aggiuntive sul barcode scansionato
+ this.sendOnUnknownBarcodeScanned(barcode, notes -> {
+ this.manageDispatchBollaRow(new PickingObjectDTO()
+ .setMtbAart(new MtbAart()
+ .setDescrizione(notes)
+ .setDescrizioneEstesa(notes)
+ .setFlagTracciabilita("N")
+ .setFlagQtaCnfFissa("S")
+ .setQtaCnf(BigDecimal.ONE)
+ .setBarCode(barcode)));
+ onComplete.run();
+ }, onComplete);
+ } else {
+ this.sendError(new NoResultFromBarcodeException(barcode));
+ }
+ }
+
+
+ private void manageNoArtFound(MtbAart mtbAart) {
+ if (SettingsManager.iDB().isFlagCanAddUnknownItemsAccettazioneBolla()) {
+
+ this.manageDispatchBollaRow(new PickingObjectDTO()
+ .setMtbAart(mtbAart));
+ } else
+ this.sendError(new NoArtsFoundException());
+ }
+
+ public void createNewLU(Integer customNumCollo, String customSerCollo, boolean disablePrint, Runnable onComplete) {
+ this.manageInfoAggiuntiveRequest((additionalNotes, tCol) -> {
+
+ final CreateUDCRequestDTO createUDCRequestDTO = new CreateUDCRequestDTO()
+ .setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
+ .setAnnotazioni(additionalNotes)
+ .setCodTcol(tCol != null ? tCol.getCodTcol() : null)
+ .setNumCollo(customNumCollo)
+ .setSerCollo(customSerCollo)
+ .setCodAnag(defaultCodAnag);
+
+ this.mColliCaricoRESTConsumer.createUDC(createUDCRequestDTO, createdUDS -> {
+ this.mCurrentMtbColt = createdUDS;
+
+ this.mCurrentMtbColt.setMtbColr(new ObservableArrayList<>())
+ .setDisablePrint(disablePrint);
+
+ if (onComplete != null) onComplete.run();
+ this.sendLUOpened(createdUDS);
+ }, this::sendError);
+
+ });
+ }
+
+ private void manageInfoAggiuntiveRequest(RunnableArgss onComplete) {
+ if (!SettingsManager.iDB().isFlagAskTipoColloAccettazioneBolla()) {
+ onComplete.run(null, null);
+ return;
+ }
+
+ this.sendOnInfoAggiuntiveRequest(onComplete);
+ }
+
+ public void manageDispatchBollaRow(final PickingObjectDTO pickingObjectDTO) {
+ if (SettingsManager.iDB().isFlagEnableFastPickAccettazioneBolla()) {
+ this.saveNewRow(pickingObjectDTO,
+ BigDecimal.ONE,
+ pickingObjectDTO.getMtbAart().getQtaCnf(),
+ pickingObjectDTO.getMtbAart().getQtaCnf(),
+ null,
+ null,
+ false);
+
+ return;
+ }
+
+ dispatchBollaRow(pickingObjectDTO);
+ }
+
+ public void dispatchBollaRow(final PickingObjectDTO pickingObjectDTO) {
+ if (this.mCurrentMtbColt == null) return;
+
+ AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
+ AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
+
+ Stream.of(pickingObjectDTO.getWithdrawMtbColrs())
+ .forEach(row -> {
+ numCnfWithdrawRows.addAndGet(row.getNumCnf());
+ qtaColWithdrawRows.addAndGet(row.getQtaCol());
+ });
+
+ BigDecimal totalQtaDoc = null;
+ BigDecimal totalNumCnfDoc = null;
+ BigDecimal qtaCnfDoc = null;
+
+ BigDecimal numCnfDaEvadere = null;
+ BigDecimal qtaDaEvadere = null;
+ BigDecimal qtaCnfDaEvadere = null;
+
+ final MtbAart mtbAart = pickingObjectDTO.getMtbAart();
+ final SitBollaAccettazioneDTO sitBollaAccettazione = pickingObjectDTO.getSitBollaAccettazione();
+
+ if (sitBollaAccettazione != null) {
+
+ totalQtaDoc = sitBollaAccettazione.getQtaDaAccettare();
+ totalNumCnfDoc = sitBollaAccettazione.getNumCnfDaAccettare();
+ qtaCnfDoc = sitBollaAccettazione.getQtaCnfDoc();
+
+ numCnfDaEvadere = sitBollaAccettazione.getNumCnfDaAccettare().subtract(numCnfWithdrawRows.getBigDecimalValue());
+ qtaDaEvadere = sitBollaAccettazione.getQtaDaAccettare().subtract(qtaColWithdrawRows.getBigDecimalValue());
+ qtaCnfDaEvadere = qtaCnfDoc;
+
+ numCnfDaEvadere = UtilityBigDecimal.getGreaterBetween(numCnfDaEvadere, BigDecimal.ZERO);
+ qtaDaEvadere = UtilityBigDecimal.getGreaterBetween(qtaDaEvadere, BigDecimal.ZERO);
+ }
+
+ BigDecimal numCnfDaPrelevare = null;
+ BigDecimal qtaColDaPrelevare = null;
+ BigDecimal qtaCnfDaPrelevare = null;
+
+ String partitaMag = null;
+ LocalDate dataScad = null;
+
+ if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) {
+ //Oppure le info del barcode scansionato
+ PickDataDTO.ManualPickDTO manualPickDTO = pickingObjectDTO.getTempPickData().getManualPickDTO();
+
+
+ qtaColDaPrelevare = manualPickDTO.getQtaTot();
+ numCnfDaPrelevare = manualPickDTO.getNumCnf();
+
+ if (mtbAart.isFlagQtaCnfFissaBoolean()) {
+ qtaCnfDaPrelevare = mtbAart.getQtaCnf();
+
+ if (manualPickDTO.isEanPeso()) {
+ if (mtbAart.getUntMisRifPeso() == MtbAart.UntMisRifPesoEnum.M) {
+ if (UtilityBigDecimal.equalsTo(mtbAart.getPesoKg(), BigDecimal.ZERO)) {
+ this.sendError(new InvalidPesoKGException());
+ } else {
+ qtaColDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, mtbAart.getPesoKg());
+ }
+ }
+ }
+ } else if (qtaColDaPrelevare != null && numCnfDaPrelevare != null) {
+ qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
+ }
+
+
+ if (qtaColDaPrelevare != null && numCnfDaPrelevare == null) {
+ numCnfDaPrelevare = UtilityBigDecimal.divideAndRoundToInteger(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().getDataScad();
+ }
+ }
+
+ BigDecimal initialNumCnf;
+ BigDecimal initialQtaCnf;
+ BigDecimal initialQtaTot;
+
+ if (qtaColDaPrelevare != null) {
+ initialNumCnf = numCnfDaPrelevare;
+ initialQtaCnf = qtaCnfDaPrelevare;
+ initialQtaTot = qtaColDaPrelevare;
+
+ } else if (totalQtaDoc != null) {
+ initialNumCnf = totalNumCnfDoc;
+ initialQtaCnf = qtaCnfDoc;
+ initialQtaTot = totalQtaDoc;
+ } else {
+ initialNumCnf = BigDecimal.ONE;
+ initialQtaCnf = mtbAart.getQtaCnf();
+ initialQtaTot = mtbAart.getQtaCnf();
+ }
+
+ if (!this.mUseQtaBolla &&
+ UtilityBigDecimal.greaterThan(pickingObjectDTO.getMtbAart().getColliPedana(), BigDecimal.ZERO) &&
+ UtilityBigDecimal.greaterThan(initialNumCnf, pickingObjectDTO.getMtbAart().getColliPedana())) {
+ initialNumCnf = pickingObjectDTO.getMtbAart().getColliPedana();
+ initialQtaTot = initialNumCnf.multiply(initialQtaCnf);
+ }
+
+ if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) {
+ dataScad = UtilityDate.getNow();
+ dataScad.plusDays(pickingObjectDTO.getMtbAart().getGgScadPartita());
+ }
+
+ if (partitaMag == null && dataScad == null) {
+ HistoryMtbAartDTO historyMtbAartDTO =
+ pickingObjectDTO.getMtbAart().getCodMart() != null ?
+ this.getHistoryItemByCodMartIfExists(pickingObjectDTO.getMtbAart().getCodMart()) :
+ this.getHistoryItemByBarcodeIfExists(pickingObjectDTO.getMtbAart().getBarCode());
+
+ if (historyMtbAartDTO != null) {
+ partitaMag = historyMtbAartDTO.getPartitaMag();
+ dataScad = historyMtbAartDTO.getDataScad();
+ }
+ }
+
+ this.sendOnItemDispatched(
+ pickingObjectDTO,
+ pickingObjectDTO.getMtbAart(),
+ initialNumCnf, initialQtaCnf, initialQtaTot,
+ 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, LocalDate dataScad, boolean shouldCloseLU) {
+ if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
+ resetMatchedRows();
+
+ if (shouldCloseLU) closeLU();
+ return;
+ }
+
+ this.sendOnLoadingStarted();
+
+
+ var clonedTargetMtbColt = (MtbColt) mCurrentMtbColt.clone();
+ clonedTargetMtbColt.setMtbColr(null);
+
+ var sitBolla = pickingObjectDTO.getSitBollaAccettazione();
+ var firstAvailableBolla = mBolle.get(0);
+
+ var insertUDCRowRequestDto = new InsertUDCRowRequestDTO()
+ .setCodMart(pickingObjectDTO.getMtbAart().getCodMart())
+ .setDescrizione(pickingObjectDTO.getMtbAart().getCodMart() == null ? pickingObjectDTO.getMtbAart().getDescrizione() : null)
+ .setBarcode(pickingObjectDTO.getMtbAart().getBarCode())
+ .setQtaTot(qtaTot)
+ .setQtaCnf(qtaCnf)
+ .setNumCnf(numCnf)
+ .setPartitaMag(partitaMag)
+// .setCodJcom(pickingObjectDTO.getSitBollaAccettazione().getCodJcom())
+ .setDataDoc(sitBolla != null ? sitBolla.getDataDoc() : firstAvailableBolla.getDataDoc())
+ .setNumDoc(sitBolla != null ? sitBolla.getNumDoc() : firstAvailableBolla.getNumDoc())
+ .setCodDtip(sitBolla != null ? sitBolla.getCodDtip() : firstAvailableBolla.getCodDtip())
+ .setSerDoc(sitBolla != null ? sitBolla.getSerDoc() : firstAvailableBolla.getSerDoc())
+ .setTargetMtbColt(clonedTargetMtbColt);
+
+ if (dataScad != null)
+ insertUDCRowRequestDto
+ .setDataScad(dataScad);
+
+ mColliCaricoRESTConsumer.insertUDCRow(insertUDCRowRequestDto, insertedMtbColr -> {
+ this.addHistoryItem(insertedMtbColr);
+
+ insertedMtbColr
+ .setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
+ .setMtbAart(pickingObjectDTO.getMtbAart());
+
+ pickingObjectDTO.getWithdrawMtbColrs().add(insertedMtbColr);
+ mCurrentMtbColt.getMtbColr().add(insertedMtbColr);
+
+ //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.getDataScadPartita(),
+ 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, LocalDate dataScad, boolean shouldCloseLU) {
+ this.sendOnLoadingStarted();
+
+ MtbColr mtbColrClone = (MtbColr) mtbColrToUpdate.clone();
+ mtbColrClone.setMtbAart(null)
+ .setMtbPartitaMag(null);
+
+ var editUDCRowRequest = new EditUDCRowRequestDTO()
+ .setSourceMtbColr(mtbColrClone)
+ .setNewNumCnf(numCnf)
+ .setNewQtaCnf(qtaCnf)
+ .setNewQtaTot(qtaTot)
+ .setNewPartitaMag(partitaMag);
+
+ if (dataScad != null)
+ editUDCRowRequest
+ .setNewDataScad(dataScad);
+
+
+ this.mColliCaricoRESTConsumer.editUDCRow(editUDCRowRequest, (editedMtbColr) -> {
+
+ this.addHistoryItem(editedMtbColr);
+
+ Optional pickingObjectDTO = Stream.of(this.mPickingList.getValue())
+ .filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToUpdate))
+ .findSingle();
+
+ editedMtbColr
+ .setUntMis(mtbColrToUpdate.getUntMis())
+ .setMtbAart(mtbColrToUpdate.getMtbAart());
+
+ if (pickingObjectDTO.isPresent()) {
+ pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate);
+ pickingObjectDTO.get().getWithdrawMtbColrs().add(editedMtbColr);
+ }
+
+ this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
+ this.mCurrentMtbColt.getMtbColr().add(editedMtbColr);
+
+ //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)
+ return;
+
+ this.sendOnLoadingStarted();
+
+ var deleteUDCRowRequest = new DeleteUDCRowRequestDTO()
+ .setMtbColrToDelete(mtbColrToDelete);
+
+ this.mColliCaricoRESTConsumer.deleteUDCRow(deleteUDCRowRequest,
+ () -> {
+ 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.canULBeDeleted(mCurrentMtbColt, canBeDeleted -> {
+ if (canBeDeleted) {
+ deleteLU(() -> {
+ this.sendLUClosed();
+ this.sendOnLoadingEnded();
+ });
+ } else {
+ CloseUDCRequestDTO closeUDCRequestDTO = new CloseUDCRequestDTO()
+ .setMtbColt(mCurrentMtbColt);
+ mColliCaricoRESTConsumer.closeUDC(closeUDCRequestDTO, closeUDCResponse -> {
+
+ Runnable onVersamentoCompleted = () -> {
+ managePrintCollo(this::postCloseOperations);
+
+ this.sendLUClosed();
+ this.sendOnLoadingEnded();
+ };
+
+ manageVersamentoAutomatico(onVersamentoCompleted);
+ }, this::sendError);
+ }
+ }, this::sendError);
+ }
+
+ private void manageVersamentoAutomatico(Runnable onComplete) {
+
+ if (!SettingsManager.iDB().isFlagAskVersamentoAutomaticoAccettazioneBolla()) {
+ onComplete.run();
+ return;
+ }
+
+ sendVersamentoAutomaticoULRequest(response -> {
+ if (response) {
+ versaAutomaticamenteUL(onComplete);
+ } else {
+ onComplete.run();
+ }
+ });
+ }
+
+ private void versaAutomaticamenteUL(Runnable onComplete) {
+ if (mCurrentMtbColt == null) return;
+
+ mColliMagazzinoRESTConsumer.versamentoAutomaticoUL(mCurrentMtbColt, versamentoResult -> {
+ this.notifyVersamentoAutomaticoResult(versamentoResult, onComplete);
+ }, this::sendError);
+ }
+
+ private void managePrintCollo(Runnable onComplete) {
+ if (!mCurrentMtbColt.getDisablePrint() || !SettingsManager.iDB().isFlagAskPrintUlAccettazioneBolla()) {
+ onComplete.run();
+ return;
+ }
+
+ printCollo(onComplete);
+ }
+
+ private void printCollo(Runnable onComplete) {
+
+ MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
+ cloneMtbColt.setGestione(cloneMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE ? GestioneEnum.PRODUZIONE : cloneMtbColt.getGestioneEnum());
+
+ var printUDSRequestDto = new PrintULRequestDTO()
+ .setMtbColt(cloneMtbColt);
+
+ this.mColliMagazzinoRESTConsumer.printUL(printUDSRequestDto, onComplete,
+ ex -> this.sendLUPrintError(ex, onComplete));
+ }
+
+ private void postCloseOperations() {
+ this.mCurrentMtbColt = null;
+ this.sendLUClosed();
+ this.sendOnLoadingEnded();
+ }
+
+ private void deleteLU(Runnable onComplete) {
+ DeleteULRequestDTO deleteULRequestDTO = new DeleteULRequestDTO()
+ .setMtbColt(this.mCurrentMtbColt);
+
+ mColliMagazzinoRESTConsumer.deleteUL(deleteULRequestDTO, () -> {
+ this.mCurrentMtbColt = null;
+
+ if (onComplete != null) onComplete.run();
+ }, this::sendError);
+ }
+
+ public void resetMatchedRows() {
+ for (PickingObjectDTO pickingObjectDTO : this.mPickingList.getValue()) {
+ pickingObjectDTO
+ .setTempPickData(null);
+ }
+
+ this.mPickingList.postValue(this.mPickingList.getValue());
+ }
+
+ private void addHistoryItem(@NonNull MtbColr mtbColr) {
+ Optional optional = Stream.of(this.mHistoryUsedAarts)
+ .filter(x -> (x.getCodMart() != null && x.getCodMart().equalsIgnoreCase(mtbColr.getCodMart())) ||
+ (x.getCodMart() == null && x.getBarcode().equalsIgnoreCase(mtbColr.getCodBarre())))
+ .findFirst();
+
+ if (optional.isPresent()) {
+ optional.get()
+ .setPartitaMag(mtbColr.getPartitaMag())
+ .setDataScad(mtbColr.getDataScadPartita());
+ } else {
+ this.mHistoryUsedAarts.add(new HistoryMtbAartDTO()
+ .setCodMart(mtbColr.getCodMart())
+ .setBarcode(mtbColr.getCodBarre())
+ .setPartitaMag(mtbColr.getPartitaMag())
+ .setDataScad(mtbColr.getDataScadPartita()));
+ }
+ }
+
+ private HistoryMtbAartDTO getHistoryItemByCodMartIfExists(@NonNull String codMart) {
+ Optional optional = Stream.of(this.mHistoryUsedAarts)
+ .filter(x -> x.getCodMart().equalsIgnoreCase(codMart))
+ .findFirst();
+
+ return optional.isPresent() ? optional.get() : null;
+ }
+
+ private HistoryMtbAartDTO getHistoryItemByBarcodeIfExists(@NonNull String barcode) {
+ Optional optional = Stream.of(this.mHistoryUsedAarts)
+ .filter(x -> x.getBarcode().equalsIgnoreCase(barcode))
+ .findFirst();
+
+ return optional.isPresent() ? optional.get() : null;
+ }
+
+ private void sendOnLoadingStarted() {
+ if (this.mListener != null) mListener.onLoadingStarted();
+ }
+
+ private void sendOnLoadingEnded() {
+ if (this.mListener != null) mListener.onLoadingEnded();
+ }
+
+ private void sendVersamentoAutomaticoULRequest(RunnableArgs onComplete) {
+ if (this.mListener != null) this.mListener.onVersamentoAutomaticoULRequest(onComplete);
+ }
+
+ private void sendOnInfoAggiuntiveRequest(RunnableArgss onComplete) {
+ if (this.mListener != null) this.mListener.onInfoAggiuntiveRequest(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,
+ LocalDate 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,
+ true,
+ onComplete);
+ }
+
+
+ private void sendOnRowSaved() {
+ if (this.mListener != null) mListener.onRowSaved();
+ }
+
+ private void sendFilterCodMartApplied(String codMart) {
+ if (this.mListener != null) mListener.onFilterCodMartApplied(codMart);
+ }
+
+ private void sendFilterPosizioneApplied(String posizione) {
+ if (this.mListener != null) mListener.onFilterPosizioneApplied(posizione);
+ }
+
+ private void sendMtbColrDeleteRequest(RunnableArgs onComplete) {
+ if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete);
+ }
+
+ private void notifyVersamentoAutomaticoResult(VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, Runnable onComplete) {
+ if (this.mListener != null)
+ mListener.onULVersata(versamentoAutomaticoULResponseDTO, onComplete);
+ }
+
+ private void sendOnUnknownBarcodeScanned(String barocde, RunnableArgs onComplete, Runnable onAbort) {
+ if (this.mListener != null)
+ mListener.onUnknownBarcodeScanned(barocde, onComplete, onAbort);
+ }
+
+ public AccettazioneBollaPickingViewModel setListeners(Listener listener) {
+ this.mListener = listener;
+ return this;
+ }
+
+
+ public interface Listener extends ILoadingListener, ILUPrintListener, ILUBaseOperationsListener {
+
+ void onVersamentoAutomaticoULRequest(RunnableArgs onComplete);
+
+ void onInfoAggiuntiveRequest(RunnableArgss 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,
+ LocalDate dataScad,
+ boolean canPartitaMagBeChanged,
+ boolean canOverflowQuantity,
+ RunnableArgss onComplete);
+
+ void onFilterCodMartApplied(String codMartToFilter);
+
+ void onFilterPosizioneApplied(String posizioneToFilter);
+
+ void onULVersata(VersamentoAutomaticoULResponseDTO versamentoAutomaticoULResponseDTO, Runnable onComplete);
+
+ void onUnknownBarcodeScanned(String barcode, RunnableArgs done, Runnable abort);
+
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/AccettazioneBollaPickingOrderBy.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/AccettazioneBollaPickingOrderBy.java
new file mode 100644
index 00000000..5a24494e
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/AccettazioneBollaPickingOrderBy.java
@@ -0,0 +1,30 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto;
+
+public class AccettazioneBollaPickingOrderBy {
+
+ public static String[] descriptions = new String[] {
+ "Cod articolo fornitore",
+ "Descrizione articolo",
+ };
+
+ public enum Enum {
+ COD_ART_FOR(0),
+ DESCR_ART(1);
+
+
+ private int val;
+ Enum(int val) {
+ this.val = val;
+ }
+ public int getVal() {
+ return this.val;
+ }
+
+ public static AccettazioneBollaPickingOrderBy.Enum fromInt(int val) {
+ for (AccettazioneBollaPickingOrderBy.Enum b : AccettazioneBollaPickingOrderBy.Enum.values()) {
+ if (b.val == val) return b;
+ }
+ return null;
+ }
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/PickingObjectDTO.java
new file mode 100644
index 00000000..898ce66b
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/PickingObjectDTO.java
@@ -0,0 +1,64 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_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.core.model.dto.PickDataDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
+
+public class PickingObjectDTO {
+ private SitBollaAccettazioneDTO sitBollaAccettazione;
+ private MtbAart mtbAart;
+
+ private PickDataDTO tempPickData;
+ private List withdrawMtbColrs = new ArrayList<>();
+
+ private boolean hidden = false;
+
+ public SitBollaAccettazioneDTO getSitBollaAccettazione() {
+ return sitBollaAccettazione;
+ }
+
+ public PickingObjectDTO setSitBollaAccettazione(SitBollaAccettazioneDTO sitBollaAccettazione) {
+ this.sitBollaAccettazione = sitBollaAccettazione;
+ 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_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO.java
new file mode 100644
index 00000000..52b4bc97
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO.java
@@ -0,0 +1,19 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+
+public class RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO {
+
+ private List bolle;
+
+ public List getBolle() {
+ return bolle;
+ }
+
+ public RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO setBolle(List bolle) {
+ this.bolle = bolle;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO.java
new file mode 100644
index 00000000..699cecdd
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/dto/RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO.java
@@ -0,0 +1,19 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
+
+public class RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO {
+
+ private List udcList;
+
+ public List getUdcList() {
+ return udcList;
+ }
+
+ public RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO setUdcList(List udcList) {
+ this.udcList = udcList;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumer.java
new file mode 100644
index 00000000..709e3d94
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumer.java
@@ -0,0 +1,50 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_picking.rest;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+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.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
+import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+@Singleton
+public class AccettazioneBollaPickingRESTConsumer extends _BaseRESTConsumer {
+
+ @Inject
+ public AccettazioneBollaPickingRESTConsumer() {
+ }
+
+
+ public void retrieveAlreadyRegisteredUDC(List bolle, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ AccettazioneBollaPickingRESTConsumerService service = RESTBuilder.getService(AccettazioneBollaPickingRESTConsumerService.class);
+
+ var request = new RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO()
+ .setBolle(bolle);
+
+ service.retrieveAlreadyRegisteredUDC(request)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "retrieveAlreadyRegisteredUDC",
+ data -> onComplete.run(data.getUdcList() == null ? new ArrayList<>() : data.getUdcList()),
+ onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumerService.java
new file mode 100644
index 00000000..5d5316db
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/rest/AccettazioneBollaPickingRESTConsumerService.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_picking.rest;
+
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.RetrieveAlreadyRegisteredULAccettazioneBollaResponseDTO;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.POST;
+
+public interface AccettazioneBollaPickingRESTConsumerService {
+
+ @POST("wms/accettazione-bolla/retrieveAlreadyRegisteredUDC")
+ Call> retrieveAlreadyRegisteredUDC(@Body RetrieveAlreadyRegisteredULAccettazioneBollaRequestDTO RetrieveAlreadyRegisteredULAccettazioneBollaRequest);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java
new file mode 100644
index 00000000..30e8d9cd
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java
@@ -0,0 +1,184 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui;
+
+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.core.content.res.ResourcesCompat;
+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.AccettazioneBollaPickingMainListGroupHeaderBinding;
+import it.integry.integrywmsnative.databinding.AccettazioneBollaPickingMainListGroupItemBinding;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO;
+
+public class AccettazioneBollaPickingListAdapter extends SectionedRecyclerViewAdapter {
+
+ private final Context mContext;
+ private final boolean mShowSecondaryUntMis;
+ private final List mDataset = new ArrayList<>();
+
+ private RunnableArgs mOnItemClicked;
+
+ static class SubheaderHolder extends RecyclerView.ViewHolder {
+
+ AccettazioneBollaPickingMainListGroupHeaderBinding mBinding;
+
+ SubheaderHolder(AccettazioneBollaPickingMainListGroupHeaderBinding binding) {
+ super(binding.getRoot());
+ this.mBinding = binding;
+ }
+
+ }
+
+ static class SingleItemViewHolder extends RecyclerView.ViewHolder {
+
+ AccettazioneBollaPickingMainListGroupItemBinding mBinding;
+
+ SingleItemViewHolder(AccettazioneBollaPickingMainListGroupItemBinding binding) {
+ super(binding.getRoot());
+ this.mBinding = binding;
+ }
+ }
+
+
+ public AccettazioneBollaPickingListAdapter(AppCompatActivity context, ObservableArrayList mutableDataSet, boolean showSecondaryUntMis) {
+ this.mContext = context;
+ this.mShowSecondaryUntMis = showSecondaryUntMis;
+
+ 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 AccettazioneBollaPickingListAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
+ AccettazioneBollaPickingMainListGroupHeaderBinding binding = AccettazioneBollaPickingMainListGroupHeaderBinding.inflate(LayoutInflater.from(mContext), parent, false);
+ return new AccettazioneBollaPickingListAdapter.SubheaderHolder(binding);
+ }
+
+ @Override
+ public AccettazioneBollaPickingListAdapter.SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
+ AccettazioneBollaPickingMainListGroupItemBinding binding = AccettazioneBollaPickingMainListGroupItemBinding.inflate(LayoutInflater.from(mContext), parent, false);
+ return new AccettazioneBollaPickingListAdapter.SingleItemViewHolder(binding);
+ }
+
+
+ @Override
+ public void onBindSubheaderViewHolder(AccettazioneBollaPickingListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
+ AccettazioneBollaPickingListModel pickingObjectDTO = this.mDataset.get(nextItemPosition);
+
+ subheaderHolder.mBinding.groupTitle.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getGroupTitle()) ? View.GONE : View.VISIBLE);
+ subheaderHolder.mBinding.groupTitle.setText(pickingObjectDTO.getGroupTitle());
+ }
+
+ @Override
+ public void onBindItemViewHolder(final AccettazioneBollaPickingListAdapter.SingleItemViewHolder holder, final int position) {
+ AccettazioneBollaPickingListModel 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.qtaEvasa.setTextColor(ResourcesCompat.getColor(mContext.getResources(), !pickingObjectDTO.isActive() ? R.color.gray_600 : R.color.green_700, null));
+
+ holder.mBinding.titolo.setText(pickingObjectDTO.getTitolo());
+ holder.mBinding.titolo.setVisibility(pickingObjectDTO.isTitoloPresente() ? View.VISIBLE : View.GONE);
+
+
+ holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione());
+ holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY);
+
+
+ holder.mBinding.badge1.setBackground(ResourcesCompat.getDrawable(mContext.getResources(), !pickingObjectDTO.isActive() ? R.drawable.badge_round_corner : R.drawable.badge1_round_corner, null));
+ holder.mBinding.badge1.setText(pickingObjectDTO.getBadge1());
+ holder.mBinding.badge1.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getBadge1()) ? View.GONE : View.VISIBLE);
+
+ holder.mBinding.badge2.setText(pickingObjectDTO.getBadge2());
+ holder.mBinding.badge2.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getBadge2()) ? View.GONE : View.VISIBLE);
+
+ holder.mBinding.badge2Icon.setVisibility(pickingObjectDTO.getBadge2Icon() == null ? View.GONE : View.VISIBLE);
+ if(pickingObjectDTO.getBadge2Icon() != null) holder.mBinding.badge2Icon.setImageResource(pickingObjectDTO.getBadge2Icon());
+
+ holder.mBinding.badge3.setText(pickingObjectDTO.getPosizione());
+ holder.mBinding.badge3Layout.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getPosizione()) ? 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);
+
+ //Secondary Unt Mis
+ holder.mBinding.secondaryUntMis.setVisibility(mShowSecondaryUntMis ? View.VISIBLE : View.GONE);
+
+ if(mShowSecondaryUntMis) {
+ holder.mBinding.secQtaEvasa.setText(UtilityNumber.decimalToString(pickingObjectDTO.getSecQtaEvasa()));
+ holder.mBinding.secQtaTot.setText(UtilityNumber.decimalToString(pickingObjectDTO.getSecQtaTot()));
+
+ holder.mBinding.secUntMis.setText(pickingObjectDTO.getSecUntMis());
+ holder.mBinding.secUntMis.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getSecUntMis()) ? 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) {
+ AccettazioneBollaPickingListModel compare1 = this.mDataset.get(position);
+ AccettazioneBollaPickingListModel 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_bolla_picking/ui/AccettazioneBollaPickingListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListModel.java
new file mode 100644
index 00000000..1a612f6e
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListModel.java
@@ -0,0 +1,210 @@
+package it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui;
+
+import androidx.annotation.DrawableRes;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.math.BigDecimal;
+
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO;
+
+public class AccettazioneBollaPickingListModel implements Cloneable {
+
+ private String groupTitle;
+ private String titolo;
+
+ private String badge1;
+ private @DrawableRes Integer badge2Icon;
+ private String badge2;
+
+ private String descrizione;
+ private String subDescrizione1;
+ private String subDescrizione2;
+ private BigDecimal qtaEvasa;
+ private BigDecimal qtaTot;
+ private String untMis;
+ private BigDecimal secQtaEvasa;
+ private BigDecimal secQtaTot;
+ private String secUntMis;
+
+ private String posizione;
+
+ 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 AccettazioneBollaPickingListModel setGroupTitle(String groupTitle) {
+ this.groupTitle = groupTitle;
+ return this;
+ }
+
+ public boolean isTitoloPresente() {
+ return !UtilityString.isNullOrEmpty(titolo);
+ }
+
+ public String getTitolo() {
+ return titolo;
+ }
+
+ public AccettazioneBollaPickingListModel setTitolo(String titolo) {
+ this.titolo = titolo;
+ return this;
+ }
+
+ public String getBadge1() {
+ return badge1;
+ }
+
+ public AccettazioneBollaPickingListModel setBadge1(String badge1) {
+ this.badge1 = badge1;
+ return this;
+ }
+
+ public @DrawableRes Integer getBadge2Icon() {
+ return badge2Icon;
+ }
+
+ public AccettazioneBollaPickingListModel setBadge2Icon(@DrawableRes Integer badge2Icon) {
+ this.badge2Icon = badge2Icon;
+ return this;
+ }
+
+ public String getBadge2() {
+ return badge2;
+ }
+
+ public AccettazioneBollaPickingListModel setBadge2(String badge2) {
+ this.badge2 = badge2;
+ return this;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public AccettazioneBollaPickingListModel setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ return this;
+ }
+
+ public boolean isDescrizionePresente() {
+ return !UtilityString.isNullOrEmpty(descrizione);
+ }
+
+ public String getSubDescrizione1() {
+ return subDescrizione1;
+ }
+
+ public AccettazioneBollaPickingListModel setSubDescrizione1(String subDescrizione1) {
+ this.subDescrizione1 = subDescrizione1;
+ return this;
+ }
+
+ public String getSubDescrizione2() {
+ return subDescrizione2;
+ }
+
+ public AccettazioneBollaPickingListModel setSubDescrizione2(String subDescrizione2) {
+ this.subDescrizione2 = subDescrizione2;
+ return this;
+ }
+
+ public BigDecimal getQtaEvasa() {
+ return qtaEvasa;
+ }
+
+ public AccettazioneBollaPickingListModel setQtaEvasa(BigDecimal qtaEvasa) {
+ this.qtaEvasa = qtaEvasa;
+ return this;
+ }
+
+ public BigDecimal getQtaTot() {
+ return qtaTot;
+ }
+
+ public AccettazioneBollaPickingListModel setQtaTot(BigDecimal qtaTot) {
+ this.qtaTot = qtaTot;
+ return this;
+ }
+
+ public String getUntMis() {
+ return untMis;
+ }
+
+ public AccettazioneBollaPickingListModel setUntMis(String untMis) {
+ this.untMis = untMis;
+ return this;
+ }
+
+ public BigDecimal getSecQtaEvasa() {
+ return secQtaEvasa;
+ }
+
+ public AccettazioneBollaPickingListModel setSecQtaEvasa(BigDecimal secQtaEvasa) {
+ this.secQtaEvasa = secQtaEvasa;
+ return this;
+ }
+
+ public BigDecimal getSecQtaTot() {
+ return secQtaTot;
+ }
+
+ public AccettazioneBollaPickingListModel setSecQtaTot(BigDecimal secQtaTot) {
+ this.secQtaTot = secQtaTot;
+ return this;
+ }
+
+ public String getSecUntMis() {
+ return secUntMis;
+ }
+
+ public AccettazioneBollaPickingListModel setSecUntMis(String secUntMis) {
+ this.secUntMis = secUntMis;
+ return this;
+ }
+
+ public String getPosizione() {
+ return posizione;
+ }
+
+ public AccettazioneBollaPickingListModel setPosizione(String posizione) {
+ this.posizione = posizione;
+ return this;
+ }
+
+ public boolean isActive() {
+ return active;
+ }
+
+ public AccettazioneBollaPickingListModel setActive(boolean active) {
+ this.active = active;
+ return this;
+ }
+
+ public PickingObjectDTO getOriginalModel() {
+ return mOriginalModel;
+ }
+
+ public AccettazioneBollaPickingListModel setOriginalModel(PickingObjectDTO mOriginalModel) {
+ this.mOriginalModel = mOriginalModel;
+ return this;
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoComponent.java
new file mode 100644
index 00000000..e251ffde
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoComponent.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface MainAccettazioneOrdiniElencoComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+
+ MainAccettazioneOrdiniElencoComponent create();
+ }
+
+ void inject(MainAccettazioneOrdiniElencoFragment mainAccettazioneOrdiniElencoFragment);
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java
similarity index 81%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java
index 67352e9d..95ae7fdd 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoFragment.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione;
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco;
import android.content.Context;
@@ -11,7 +11,6 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatTextView;
-import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -34,47 +33,47 @@ import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
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.databinding.FragmentMainAccettazioneBinding;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
-import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
-import it.integry.integrywmsnative.gest.accettazione.ui.MainListAccettazioneAdapter;
-import it.integry.integrywmsnative.gest.accettazione.ui.MainListAccettazioneClienteListModel;
-import it.integry.integrywmsnative.gest.accettazione.ui.MainListAccettazioneListModel;
-import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingActivity;
+import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneOrdiniBinding;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.ui.MainListAccettazioneOrdiniElencoAdapter;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.ui.MainListAccettazioneOrdiniElencoClienteListModel;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.ui.MainListAccettazioneOrdiniElencoListModel;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingActivity;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
-public class MainAccettazioneFragment extends BaseFragment implements ISearchableFragment, ITitledFragment, IScrollableFragment, MainAccettazioneViewModel.Listener {
+public class MainAccettazioneOrdiniElencoFragment extends BaseFragment implements ISearchableFragment, ITitledFragment, IScrollableFragment, MainAccettazioneOrdiniElencoViewModel.Listener {
public BindableBoolean fabVisible = new BindableBoolean(false);
@Inject
- MainAccettazioneViewModel mViewModel;
+ MainAccettazioneOrdiniElencoViewModel mViewModel;
private final List mOnPreDestroyList = new ArrayList<>();
private ElevatedToolbar mToolbar;
private String mTextFilter;
- private FragmentMainAccettazioneBinding mBinding;
+ private FragmentMainAccettazioneOrdiniBinding mBinding;
- private final ObservableArrayList mOrdiniInevasiMutableData = new ObservableArrayList<>();
+ private final ObservableArrayList mOrdiniInevasiMutableData = new ObservableArrayList<>();
private AppCompatTextView mAppBarTitle;
- public MainAccettazioneFragment() {
+ public MainAccettazioneOrdiniElencoFragment() {
// Required empty public constructor
}
- public static MainAccettazioneFragment newInstance() {
- return new MainAccettazioneFragment();
+ public static MainAccettazioneOrdiniElencoFragment newInstance() {
+ return new MainAccettazioneOrdiniElencoFragment();
}
@Override
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
mAppBarTitle = titleText;
- mAppBarTitle.setText(context.getText(R.string.accettazione_title_fragment).toString());
+ mAppBarTitle.setText(context.getText(R.string.accettazione_ordine_title_fragment).toString());
}
@Override
@@ -94,10 +93,10 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
if (savedInstanceState != null && savedInstanceState.containsKey("mToolbar"))
mToolbar = DataCache.retrieveItem(savedInstanceState.getString("mToolbar"));
- mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_accettazione, container, false);
+ mBinding = FragmentMainAccettazioneOrdiniBinding.inflate(inflater, container, false);
MainApplication.appComponent
- .mainAccettazioneComponent()
+ .mainAccettazioneOrdiniComponent()
.create()
.inject(this);
@@ -139,7 +138,7 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
});
- MainListAccettazioneAdapter adapter = new MainListAccettazioneAdapter(getActivity(), mOrdiniInevasiMutableData)
+ MainListAccettazioneOrdiniElencoAdapter adapter = new MainListAccettazioneOrdiniElencoAdapter(getActivity(), mOrdiniInevasiMutableData)
.setOnGroupItemClicked(x -> {
Stream.of(mOrdiniInevasiMutableData)
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get())
@@ -186,13 +185,13 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(tmpList));
}
- private List convertDataModelToListModel(List dataList) {
+ private List convertDataModelToListModel(List dataList) {
return Stream.of(dataList)
.distinctBy(OrdineAccettazioneInevasoDTO::getBarcode)
.sortBy(x -> x.getRagSocOrd() + (x.getDataConsD() != null ? UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) : ""))
.map(x -> {
- MainListAccettazioneListModel listModel = new MainListAccettazioneListModel();
+ MainListAccettazioneOrdiniElencoListModel listModel = new MainListAccettazioneOrdiniElencoListModel();
listModel.setOriginalModel(x);
@@ -200,9 +199,9 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
listModel.setDescription(String.format(getString(R.string.ord_acq_testata), x.getNumero(), UtilityDate.formatDate(x.getDataD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
- List clienti = Stream.of(dataList)
+ List clienti = Stream.of(dataList)
.filter(y -> y.getBarcode().equals(x.getBarcode()))
- .map(y -> new MainListAccettazioneClienteListModel()
+ .map(y -> new MainListAccettazioneOrdiniElencoClienteListModel()
.setPrimaryText(y.getRifOrd())
.setRightText(UtilityDate.formatDate(y.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH)))
.toList();
@@ -217,7 +216,7 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
public void dispatchOrders() {
List selectedOrders = Stream.of(this.mOrdiniInevasiMutableData)
.filter(x -> x.getSelectedObservable().get())
- .map(MainListAccettazioneListModel::getOriginalModel)
+ .map(MainListAccettazioneOrdiniElencoListModel::getOriginalModel)
.toList();
@@ -297,7 +296,7 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearchabl
String cacheSitArtItemID = DataCache.addItem(sitArts);
String cacheOrdersItemID = DataCache.addItem(orders);
- Intent myIntent = new Intent(getActivity(), AccettazionePickingActivity.class);
+ Intent myIntent = new Intent(getActivity(), AccettazioneOrdiniPickingActivity.class);
myIntent.putExtra("keyOrders", cacheOrdersItemID);
myIntent.putExtra("keySitArts", cacheSitArtItemID);
getActivity().startActivity(myIntent);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoModule.java
new file mode 100644
index 00000000..2adf196b
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoModule.java
@@ -0,0 +1,20 @@
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco;
+
+import dagger.Module;
+import dagger.Provides;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.rest.OrdiniAccettazioneRESTConsumer;
+
+@Module(subcomponents = {MainAccettazioneOrdiniElencoComponent.class})
+public class MainAccettazioneOrdiniElencoModule {
+
+ @Provides
+ OrdiniAccettazioneRESTConsumer providesOrdiniAccettazioneRESTConsumer() {
+ return new OrdiniAccettazioneRESTConsumer();
+ }
+
+ @Provides
+ MainAccettazioneOrdiniElencoViewModel providesMainAccettazioneViewModel(OrdiniAccettazioneRESTConsumer ordiniAccettazioneRESTConsumer) {
+ return new MainAccettazioneOrdiniElencoViewModel(ordiniAccettazioneRESTConsumer);
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoViewModel.java
similarity index 79%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneViewModel.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoViewModel.java
index 65a69fc4..27b267de 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/MainAccettazioneOrdiniElencoViewModel.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione;
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco;
import androidx.lifecycle.MutableLiveData;
@@ -7,11 +7,11 @@ import java.util.List;
import javax.inject.Inject;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
-import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
-import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumer;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.rest.OrdiniAccettazioneRESTConsumer;
-public class MainAccettazioneViewModel {
+public class MainAccettazioneOrdiniElencoViewModel {
private final OrdiniAccettazioneRESTConsumer mOrdiniAccettazioneRESTConsumer;
@@ -21,7 +21,7 @@ public class MainAccettazioneViewModel {
private String codMdep;
@Inject
- public MainAccettazioneViewModel(OrdiniAccettazioneRESTConsumer ordiniAccettazioneRESTConsumer) {
+ public MainAccettazioneOrdiniElencoViewModel(OrdiniAccettazioneRESTConsumer ordiniAccettazioneRESTConsumer) {
this.mOrdiniAccettazioneRESTConsumer = ordiniAccettazioneRESTConsumer;
}
@@ -63,7 +63,7 @@ public class MainAccettazioneViewModel {
return mOrderList;
}
- public MainAccettazioneViewModel setListener(Listener listener) {
+ public MainAccettazioneOrdiniElencoViewModel setListener(Listener listener) {
this.mListener = listener;
return this;
}
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_ordini_elenco/dto/GetPickingListAccettazioneDTO.java
similarity index 90%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/GetPickingListAccettazioneDTO.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/GetPickingListAccettazioneDTO.java
index 1d4063f7..42cdefc9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/GetPickingListAccettazioneDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/GetPickingListAccettazioneDTO.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione.dto;
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto;
public class GetPickingListAccettazioneDTO {
private String data;
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_ordini_elenco/dto/OrdineAccettazioneInevasoDTO.java
similarity index 98%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneInevasoDTO.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/OrdineAccettazioneInevasoDTO.java
index 9598a5d6..c6efc5a3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneInevasoDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/OrdineAccettazioneInevasoDTO.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione.dto;
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto;
import java.util.Date;
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_ordini_elenco/dto/SitArtOrdDTO.java
similarity index 98%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/SitArtOrdDTO.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/SitArtOrdDTO.java
index a1c5ac8a..34a0fe6a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/SitArtOrdDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/SitArtOrdDTO.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione.dto;
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto;
import java.math.BigDecimal;
import java.time.LocalDate;
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_ordini_elenco/rest/OrdiniAccettazioneRESTConsumer.java
similarity index 88%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumer.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/rest/OrdiniAccettazioneRESTConsumer.java
index 990cd16c..374ad9f5 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/rest/OrdiniAccettazioneRESTConsumer.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione.rest;
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.rest;
import com.annimon.stream.Stream;
@@ -11,9 +11,9 @@ 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 it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.GetPickingListAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
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_ordini_elenco/rest/OrdiniAccettazioneRESTConsumerService.java
similarity index 67%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumerService.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/rest/OrdiniAccettazioneRESTConsumerService.java
index 4905b46e..9b9a1179 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/rest/OrdiniAccettazioneRESTConsumerService.java
@@ -1,11 +1,11 @@
-package it.integry.integrywmsnative.gest.accettazione.rest;
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.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.OrdineAccettazioneInevasoDTO;
-import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.GetPickingListAccettazioneDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/ui/MainListAccettazioneAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/ui/MainListAccettazioneOrdiniElencoAdapter.java
similarity index 80%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione/ui/MainListAccettazioneAdapter.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/ui/MainListAccettazioneOrdiniElencoAdapter.java
index 8f967bb2..90a3cc3f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/ui/MainListAccettazioneAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/ui/MainListAccettazioneOrdiniElencoAdapter.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione.ui;
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.ui;
import android.content.Context;
import android.text.Html;
@@ -19,12 +19,12 @@ import it.integry.integrywmsnative.databinding.AccettazioneMainListGroupClientiB
import it.integry.integrywmsnative.databinding.AccettazioneMainListGroupModelBinding;
import it.integry.integrywmsnative.databinding.AccettazioneMainListModelBinding;
-public class MainListAccettazioneAdapter extends ExtendedSectionedRecyclerView {
+public class MainListAccettazioneOrdiniElencoAdapter extends ExtendedSectionedRecyclerView {
private Context mContext;
private RunnableArgs mOnGroupItemClicked;
- private RunnableArgs mOnItemChecked;
+ private RunnableArgs mOnItemChecked;
static class SubheaderHolder extends RecyclerView.ViewHolder {
@@ -47,17 +47,17 @@ public class MainListAccettazioneAdapter extends ExtendedSectionedRecyclerView myDataset) {
+ public MainListAccettazioneOrdiniElencoAdapter(Context context, ObservableArrayList myDataset) {
super(myDataset);
mContext = context;
}
- public MainListAccettazioneAdapter setOnGroupItemClicked(RunnableArgs onGroupItemClicked) {
+ public MainListAccettazioneOrdiniElencoAdapter setOnGroupItemClicked(RunnableArgs onGroupItemClicked) {
this.mOnGroupItemClicked = onGroupItemClicked;
return this;
}
- public MainListAccettazioneAdapter setOnItemChecked(RunnableArgs onItemChecked) {
+ public MainListAccettazioneOrdiniElencoAdapter setOnItemChecked(RunnableArgs onItemChecked) {
this.mOnItemChecked = onItemChecked;
return this;
}
@@ -90,14 +90,14 @@ public class MainListAccettazioneAdapter extends ExtendedSectionedRecyclerView 1) {
- MainListAccettazioneListModel compare1 = this.mDataset.get(position);
- MainListAccettazioneListModel compare2 = this.mDataset.get(position + 1);
+ MainListAccettazioneOrdiniElencoListModel compare1 = this.mDataset.get(position);
+ MainListAccettazioneOrdiniElencoListModel compare2 = this.mDataset.get(position + 1);
if (UtilityString.equalsIgnoreCase(compare1.getGroupTitle(), compare2.getGroupTitle())) {
return false;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/ui/MainListAccettazioneClienteListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/ui/MainListAccettazioneOrdiniElencoClienteListModel.java
similarity index 50%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione/ui/MainListAccettazioneClienteListModel.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/ui/MainListAccettazioneOrdiniElencoClienteListModel.java
index be14e3ea..8f45ac3a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/ui/MainListAccettazioneClienteListModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/ui/MainListAccettazioneOrdiniElencoClienteListModel.java
@@ -1,6 +1,6 @@
-package it.integry.integrywmsnative.gest.accettazione.ui;
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.ui;
-public class MainListAccettazioneClienteListModel {
+public class MainListAccettazioneOrdiniElencoClienteListModel {
private String primaryText;
private String rightText;
@@ -10,7 +10,7 @@ public class MainListAccettazioneClienteListModel {
return primaryText;
}
- public MainListAccettazioneClienteListModel setPrimaryText(String primaryText) {
+ public MainListAccettazioneOrdiniElencoClienteListModel setPrimaryText(String primaryText) {
this.primaryText = primaryText;
return this;
}
@@ -19,7 +19,7 @@ public class MainListAccettazioneClienteListModel {
return rightText;
}
- public MainListAccettazioneClienteListModel setRightText(String rightText) {
+ public MainListAccettazioneOrdiniElencoClienteListModel setRightText(String rightText) {
this.rightText = rightText;
return this;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/ui/MainListAccettazioneListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/ui/MainListAccettazioneOrdiniElencoListModel.java
similarity index 53%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione/ui/MainListAccettazioneListModel.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/ui/MainListAccettazioneOrdiniElencoListModel.java
index 59a06291..1116b1a9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/ui/MainListAccettazioneListModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/ui/MainListAccettazioneOrdiniElencoListModel.java
@@ -1,11 +1,11 @@
-package it.integry.integrywmsnative.gest.accettazione.ui;
+package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.ui;
import java.util.List;
import it.integry.integrywmsnative.core.di.BindableBoolean;
-import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
-public class MainListAccettazioneListModel {
+public class MainListAccettazioneOrdiniElencoListModel {
private String groupTitle;
@@ -16,14 +16,14 @@ public class MainListAccettazioneListModel {
private OrdineAccettazioneInevasoDTO originalModel;
- private List clientiListModel;
+ private List clientiListModel;
public String getGroupTitle() {
return groupTitle;
}
- public MainListAccettazioneListModel setGroupTitle(String groupTitle) {
+ public MainListAccettazioneOrdiniElencoListModel setGroupTitle(String groupTitle) {
this.groupTitle = groupTitle;
return this;
}
@@ -32,7 +32,7 @@ public class MainListAccettazioneListModel {
return description;
}
- public MainListAccettazioneListModel setDescription(String description) {
+ public MainListAccettazioneOrdiniElencoListModel setDescription(String description) {
this.description = description;
return this;
}
@@ -41,7 +41,7 @@ public class MainListAccettazioneListModel {
return hidden;
}
- public MainListAccettazioneListModel setHidden(boolean hidden) {
+ public MainListAccettazioneOrdiniElencoListModel setHidden(boolean hidden) {
this.hidden = hidden;
return this;
}
@@ -54,16 +54,16 @@ public class MainListAccettazioneListModel {
return originalModel;
}
- public MainListAccettazioneListModel setOriginalModel(OrdineAccettazioneInevasoDTO originalModel) {
+ public MainListAccettazioneOrdiniElencoListModel setOriginalModel(OrdineAccettazioneInevasoDTO originalModel) {
this.originalModel = originalModel;
return this;
}
- public List getClientiListModel() {
+ public List getClientiListModel() {
return clientiListModel;
}
- public MainListAccettazioneListModel setClientiListModel(List clientiListModel) {
+ public MainListAccettazioneOrdiniElencoListModel setClientiListModel(List clientiListModel) {
this.clientiListModel = clientiListModel;
return this;
}
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_ordini_picking/AccettazioneOrdiniPickingActivity.java
similarity index 71%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
index b758172f..2e20aca7 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione_picking;
+package it.integry.integrywmsnative.gest.accettazione_ordini_picking;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -18,8 +18,8 @@ import com.annimon.stream.Stream;
import com.tfb.fbtoast.FBToast;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -52,17 +52,17 @@ import it.integry.integrywmsnative.core.utility.UtilityResources;
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.dto.AccettazioneOrdineInevasoOrderBy;
-import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
-import it.integry.integrywmsnative.gest.accettazione_picking.filters.AccettazionePickingFiltroOrdineViewModel;
-import it.integry.integrywmsnative.gest.accettazione_picking.filters.FilterCodArtLayoutView;
-import it.integry.integrywmsnative.gest.accettazione_picking.filters.FilterDescrLayoutView;
-import it.integry.integrywmsnative.gest.accettazione_picking.filters.FilterPosizioneLayoutView;
-import it.integry.integrywmsnative.gest.accettazione_picking.rest.RecoverMtbColt;
-import it.integry.integrywmsnative.gest.accettazione_picking.ui.AccettazioneListAdapter;
-import it.integry.integrywmsnative.gest.accettazione_picking.ui.AccettazioneListModel;
+import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.AccettazioneOrdineInevasoOrderBy;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.AccettazionePickingFiltroOrdineViewModel;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterCodArtLayoutView;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterDescrLayoutView;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterPosizioneLayoutView;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.ui.AccettazioneOrdiniPickingListAdapter;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.ui.AccettazioneOrdiniPickingListModel;
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
@@ -77,12 +77,12 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQua
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
-public class AccettazionePickingActivity extends BaseActivity implements AccettazionePickingViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
+public class AccettazioneOrdiniPickingActivity extends BaseActivity implements AccettazioneOrdiniPickingViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
private ActivityAccettazioneOrdineInevasoBinding mBindings;
@Inject
- AccettazionePickingViewModel mViewModel;
+ AccettazioneOrdiniPickingViewModel mViewModel;
@Inject
DialogInputQuantityV2View mDialogInputQuantityV2View;
@@ -91,7 +91,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel;
- private final ObservableArrayList mAccettazioneMutableData = new ObservableArrayList<>();
+ private final ObservableArrayList mAccettazioneMutableData = new ObservableArrayList<>();
public BindableBoolean noItemsToPick = new BindableBoolean(false);
@@ -117,6 +117,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
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);
@@ -141,14 +142,12 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
this.initRecyclerView();
this.initFilters();
- String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
mViewModel.setListeners(this);
mViewModel.init(
mOrders,
mSitArts,
- codMdep,
useQtaOrd);
}
@@ -165,7 +164,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(onPredicateChanged);
mAppliedFilterViewModel.getCurrentPosPredicate().addOnPropertyChangedCallback(onPredicateChanged);
- List filterList = Stream.of(AccettazionePickingBindings.AVAILABLE_FILTERS.entrySet())
+ List filterList = Stream.of(AccettazioneOrdiniPickingBindings.AVAILABLE_FILTERS.entrySet())
.map(Map.Entry::getValue)
.sortBy(FilterChipDTO::getPosizione)
.toList();
@@ -178,7 +177,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
v -> initBottomSheetDialogFilter(filterChipDTO));
switch (filterChipDTO.getID()) {
- case AccettazionePickingBindings.COD_ART_FILTER_ID -> {
+ case AccettazioneOrdiniPickingBindings.COD_ART_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentCodArtPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -200,7 +199,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentCodArtPredicate().set(null));
}
- case AccettazionePickingBindings.DESCR_FILTER_ID -> {
+ case AccettazioneOrdiniPickingBindings.DESCR_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -222,7 +221,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentDescrPredicate().set(null));
}
- case AccettazionePickingBindings.POS_FILTER_ID -> {
+ case AccettazioneOrdiniPickingBindings.POS_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentPosPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -262,7 +261,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
.getFilterLayoutView();
switch (filterChipDTO.getID()) {
- case AccettazionePickingBindings.COD_ART_FILTER_ID ->
+ case AccettazioneOrdiniPickingBindings.COD_ART_FILTER_ID ->
((FilterCodArtLayoutView) filterLayoutView)
.setAll(mAppliedFilterViewModel.getAllCodArts())
.setAvailable(mAppliedFilterViewModel.getAvailableCodArts())
@@ -273,7 +272,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
mAppliedFilterViewModel.getCurrentCodArtPredicate().get())
.map(x -> x.getSitArtOrdDTO().getCodMart())
.toList());
- case AccettazionePickingBindings.DESCR_FILTER_ID ->
+ case AccettazioneOrdiniPickingBindings.DESCR_FILTER_ID ->
((FilterDescrLayoutView) filterLayoutView)
.setAll(mAppliedFilterViewModel.getAllDescrs())
.setAvailable(mAppliedFilterViewModel.getAvailableDescrs())
@@ -284,7 +283,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
mAppliedFilterViewModel.getCurrentDescrPredicate().get())
.map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt())
.toList());
- case AccettazionePickingBindings.POS_FILTER_ID ->
+ case AccettazioneOrdiniPickingBindings.POS_FILTER_ID ->
((FilterPosizioneLayoutView) filterLayoutView)
.setAll(mAppliedFilterViewModel.getAllPos())
.setAvailable(mAppliedFilterViewModel.getAvailablePos())
@@ -353,8 +352,8 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
}
private void initRecyclerView() {
- AccettazioneListAdapter accettazioneListAdapter = new AccettazioneListAdapter(this, mAccettazioneMutableData, mShowSecondaryUntMis);
- this.mBindings.accettazionePickingList.setAdapter(accettazioneListAdapter);
+ AccettazioneOrdiniPickingListAdapter accettazioneOrdiniPickingListAdapter = new AccettazioneOrdiniPickingListAdapter(this, mAccettazioneMutableData, mShowSecondaryUntMis);
+ this.mBindings.accettazionePickingList.setAdapter(accettazioneOrdiniPickingListAdapter);
this.mBindings.accettazionePickingList.setLayoutManager(new LinearLayoutManager(this));
this.mViewModel.getPickingList().observe(this, updatedData -> {
@@ -363,7 +362,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
refreshList();
});
- accettazioneListAdapter.setOnItemClicked(clickedItem -> {
+ accettazioneOrdiniPickingListAdapter.setOnItemClicked(clickedItem -> {
this.mViewModel.dispatchOrdineRow(clickedItem);
});
}
@@ -389,7 +388,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
});
}
- private List convertDataModelToListModel(List dataList) {
+ private List convertDataModelToListModel(List dataList) {
List tmpList = Stream.of(dataList)
.filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaDaEvadere(), BigDecimal.ZERO))
.toList();
@@ -401,24 +400,24 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
};
}
- private List convertDataModelToListModel__CodArtForn(List dataList) {
- ArrayList list = new ArrayList<>();
+ private List convertDataModelToListModel__CodArtForn(List dataList) {
+ ArrayList list = new ArrayList<>();
Stream.of(dataList)
.sortBy(x -> UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) +
(UtilityString.isNullOrEmpty(x.getMtbAart().getDescrizioneEstesa()) ? "" : " - " + x.getMtbAart().getDescrizioneEstesa()))
.forEach(x -> {
- AccettazioneListModel accettazioneListModel = new AccettazioneListModel();
- accettazioneListModel.setActive(true);
+ AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
+ accettazioneOrdiniPickingListModel.setActive(true);
- accettazioneListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) +
+ accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()) +
(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()));
+ accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
+ accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
- accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
+ accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
if (x.getMtbAart() != null)
- accettazioneListModel.setPosizione(x.getMtbAart().getPosizione());
+ accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
//Calc Num CNF
BigDecimal numCnfEvasa = BigDecimal.ZERO;
@@ -440,50 +439,50 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
- accettazioneListModel.setQtaEvasa(numCnfEvasa);
- accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
- accettazioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
+ accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
+ accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
+ accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
- accettazioneListModel.setSecQtaEvasa(qtaEvasa);
- accettazioneListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
+ accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
+ accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
if (x.getMtbAart() != null)
- accettazioneListModel.setSecUntMis(x.getMtbAart().getUntMis());
+ accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
} else {
- accettazioneListModel.setQtaEvasa(qtaEvasa);
- accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
+ accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
+ accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
if (x.getMtbAart() != null)
- accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
+ accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
- accettazioneListModel.setSecQtaEvasa(numCnfEvasa);
- accettazioneListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
- accettazioneListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
+ accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
+ accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
+ accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
}
- accettazioneListModel.setOriginalModel(x);
+ accettazioneOrdiniPickingListModel.setOriginalModel(x);
- list.add(accettazioneListModel);
+ list.add(accettazioneOrdiniPickingListModel);
});
return list;
}
- private List convertDataModelToListModel__DescrArt(List dataList) {
- ArrayList list = new ArrayList<>();
+ 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);
+ AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
+ accettazioneOrdiniPickingListModel.setActive(true);
- accettazioneListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart())
+ accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart())
+ (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()));
+ accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
+ accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
- accettazioneListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
+ accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
if (x.getMtbAart() != null)
- accettazioneListModel.setPosizione(x.getMtbAart().getPosizione());
+ accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
//Calc Num CNF
BigDecimal numCnfEvasa = BigDecimal.ZERO;
@@ -505,47 +504,47 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
- accettazioneListModel.setQtaEvasa(numCnfEvasa);
- accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
- accettazioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
+ accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
+ accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
+ accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
- accettazioneListModel.setSecQtaEvasa(qtaEvasa);
- accettazioneListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
+ accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
+ accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
if (x.getMtbAart() != null)
- accettazioneListModel.setSecUntMis(x.getMtbAart().getUntMis());
+ accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
} else {
- accettazioneListModel.setQtaEvasa(qtaEvasa);
- accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
+ accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
+ accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
if (x.getMtbAart() != null)
- accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
+ accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
- accettazioneListModel.setSecQtaEvasa(numCnfEvasa);
- accettazioneListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
- accettazioneListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
+ accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
+ accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
+ accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
}
- accettazioneListModel.setOriginalModel(x);
+ accettazioneOrdiniPickingListModel.setOriginalModel(x);
- list.add(accettazioneListModel);
+ list.add(accettazioneOrdiniPickingListModel);
});
return list;
}
- private List convertDataModelToListModel__RagSocCom(List dataList) {
- ArrayList list = new ArrayList<>();
+ 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);
+ AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
+ accettazioneOrdiniPickingListModel.setActive(true);
- accettazioneListModel.setGroupTitle(x.getSitArtOrdDTO().getCodJcom() + (!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) ? " - " + x.getSitArtOrdDTO().getDescrizioneCommessa() : ""));
+ accettazioneOrdiniPickingListModel.setGroupTitle(x.getSitArtOrdDTO().getCodJcom() + (!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneCommessa()) ? " - " + x.getSitArtOrdDTO().getDescrizioneCommessa() : ""));
- accettazioneListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()));
- accettazioneListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
+ accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()));
+ accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
//Calc Num CNF
BigDecimal numCnfEvasa = BigDecimal.ZERO;
@@ -567,45 +566,45 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
- accettazioneListModel.setQtaEvasa(numCnfEvasa);
- accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
- accettazioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
+ accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
+ accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
+ accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
- accettazioneListModel.setSecQtaEvasa(qtaEvasa);
- accettazioneListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
+ accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
+ accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
if (x.getMtbAart() != null)
- accettazioneListModel.setSecUntMis(x.getMtbAart().getUntMis());
+ accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
} else {
- accettazioneListModel.setQtaEvasa(qtaEvasa);
- accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
+ accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
+ accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
if (x.getMtbAart() != null)
- accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
+ accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
- accettazioneListModel.setSecQtaEvasa(numCnfEvasa);
- accettazioneListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
- accettazioneListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
+ accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
+ accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
+ accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
}
if (x.getMtbAart() != null) {
- accettazioneListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
- accettazioneListModel.setPosizione(x.getMtbAart().getPosizione());
+ accettazioneOrdiniPickingListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
+ accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
}
- accettazioneListModel.setOriginalModel(x);
+ accettazioneOrdiniPickingListModel.setOriginalModel(x);
- list.add(accettazioneListModel);
+ list.add(accettazioneOrdiniPickingListModel);
});
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);
+ AccettazioneOrdiniPickingListModel accettazioneOrdiniPickingListModel = new AccettazioneOrdiniPickingListModel();
+ accettazioneOrdiniPickingListModel.setActive(true);
- accettazioneListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
+ accettazioneOrdiniPickingListModel.setGroupTitle(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
- accettazioneListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()));
- accettazioneListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
+ accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodArtFor(), x.getSitArtOrdDTO().getCodMart()));
+ accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
//Calc Num CNF
@@ -628,34 +627,34 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
if (SettingsManager.iDB().isFlagForceAllToColli() || (x.getMtbAart() == null || !x.getMtbAart().isFlagQtaCnfFissaBoolean())) {
- accettazioneListModel.setQtaEvasa(numCnfEvasa);
- accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
- accettazioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
+ accettazioneOrdiniPickingListModel.setQtaEvasa(numCnfEvasa);
+ accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
+ accettazioneOrdiniPickingListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
- accettazioneListModel.setSecQtaEvasa(qtaEvasa);
- accettazioneListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
+ accettazioneOrdiniPickingListModel.setSecQtaEvasa(qtaEvasa);
+ accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
if (x.getMtbAart() != null)
- accettazioneListModel.setSecUntMis(x.getMtbAart().getUntMis());
+ accettazioneOrdiniPickingListModel.setSecUntMis(x.getMtbAart().getUntMis());
} else {
- accettazioneListModel.setQtaEvasa(qtaEvasa);
- accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
+ accettazioneOrdiniPickingListModel.setQtaEvasa(qtaEvasa);
+ accettazioneOrdiniPickingListModel.setQtaTot(x.getSitArtOrdDTO().getQtaDaEvadere());
if (x.getMtbAart() != null)
- accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
+ accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
- accettazioneListModel.setSecQtaEvasa(numCnfEvasa);
- accettazioneListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
- accettazioneListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
+ accettazioneOrdiniPickingListModel.setSecQtaEvasa(numCnfEvasa);
+ accettazioneOrdiniPickingListModel.setSecQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
+ accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
}
if (x.getMtbAart() != null) {
- accettazioneListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
- accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
+ accettazioneOrdiniPickingListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
+ accettazioneOrdiniPickingListModel.setUntMis(x.getMtbAart().getUntMis());
}
- accettazioneListModel.setOriginalModel(x);
+ accettazioneOrdiniPickingListModel.setOriginalModel(x);
- list.add(accettazioneListModel);
+ list.add(accettazioneOrdiniPickingListModel);
});
return list;
@@ -674,10 +673,6 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
});
};
- public void removeListFilter() {
- this.mViewModel.resetMatchedRows();
- }
-
public void createNewLU() {
this.mBindings.accettazioneOrdineInevasoFab.close(true);
@@ -706,12 +701,21 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
dialog.show();
}
- public void startListaBancaliRegistratiActivity(ArrayList mtbColts) {
+ public void startListaBancaliRegistratiActivity(List mtbColts) {
Intent myIntent = ListaBancaliActivity.createIntent(this,
- Stream.of(mtbColts).map(x -> (MtbColt) x).toList(),
- input -> ((RecoverMtbColt) input).isFlagCanBeRecovered(),
+
+ Stream.of(mtbColts)
+ .map(AlreadyRegisteredUDCDTO::getMtbColt)
+ .toList(),
+
+ input -> Stream.of(mtbColts)
+ .filter(x -> x.getMtbColt() == input)
+ .findFirstOrElse(null)
+ .isCanBeRecovered(),
+
ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
+
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
}
@@ -784,7 +788,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
}
@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, boolean canOverflowQuantity, RunnableArgss onComplete) {
+ public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, RunnableArgss onComplete) {
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
.setMtbAart(mtbAart)
.setInitialNumCnf(initialNumCnf)
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingBindings.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingBindings.java
similarity index 73%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingBindings.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingBindings.java
index 3fdb02c2..df0fea00 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingBindings.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingBindings.java
@@ -1,13 +1,13 @@
-package it.integry.integrywmsnative.gest.accettazione_picking;
+package it.integry.integrywmsnative.gest.accettazione_ordini_picking;
import java.util.HashMap;
-import it.integry.integrywmsnative.gest.accettazione_picking.filters.FilterCodArtLayoutView;
-import it.integry.integrywmsnative.gest.accettazione_picking.filters.FilterDescrLayoutView;
-import it.integry.integrywmsnative.gest.accettazione_picking.filters.FilterPosizioneLayoutView;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterCodArtLayoutView;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterDescrLayoutView;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.filters.FilterPosizioneLayoutView;
import it.integry.integrywmsnative.ui.filter_chips.FilterChipDTO;
-public class AccettazionePickingBindings {
+public class AccettazioneOrdiniPickingBindings {
public static final int COD_ART_FILTER_ID = 0;
public static final int DESCR_FILTER_ID = 1;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingComponent.java
new file mode 100644
index 00000000..09ffed57
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingComponent.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.gest.accettazione_ordini_picking;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface AccettazioneOrdiniPickingComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+ AccettazioneOrdiniPickingComponent create();
+ }
+
+ void inject(AccettazioneOrdiniPickingActivity accettazioneOrdiniPickingActivity);
+
+}
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_ordini_picking/AccettazioneOrdiniPickingModule.java
similarity index 65%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingModule.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingModule.java
index d5472238..a83b471a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingModule.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione_picking;
+package it.integry.integrywmsnative.gest.accettazione_ordini_picking;
import dagger.Module;
import dagger.Provides;
@@ -9,15 +9,15 @@ import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsu
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
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.gest.accettazione_ordini_picking.rest.AccettazioneOrdiniPickingRESTConsumer;
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
-@Module(subcomponents = AccettazionePickingComponent.class)
-public class AccettazionePickingModule {
+@Module(subcomponents = AccettazioneOrdiniPickingComponent.class)
+public class AccettazioneOrdiniPickingModule {
@Provides
- AccettazionePickingRESTConsumer providesAccettazionePickingRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
- return new AccettazionePickingRESTConsumer(systemRESTConsumer);
+ AccettazioneOrdiniPickingRESTConsumer providesAccettazionePickingRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
+ return new AccettazioneOrdiniPickingRESTConsumer(systemRESTConsumer);
}
@Provides
@@ -26,19 +26,19 @@ public class AccettazionePickingModule {
}
@Provides
- AccettazionePickingViewModel providesAccettazioneViewModel(
+ AccettazioneOrdiniPickingViewModel providesAccettazioneViewModel(
ArticoloRESTConsumer articoloRESTConsumer,
BarcodeRESTConsumer barcodeRESTConsumer,
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
PrinterRESTConsumer printerRESTConsumer,
- AccettazionePickingRESTConsumer accettazionePickingRESTConsumer,
+ AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer,
ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer) {
- return new AccettazionePickingViewModel(articoloRESTConsumer,
+ return new AccettazioneOrdiniPickingViewModel(articoloRESTConsumer,
barcodeRESTConsumer,
colliMagazzinoRESTConsumer,
printerRESTConsumer,
- accettazionePickingRESTConsumer,
+ accettazioneOrdiniPickingRESTConsumer,
colliAccettazioneRESTConsumer,
colliLavorazioneRESTConsumer);
}
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_ordini_picking/AccettazioneOrdiniPickingViewModel.java
similarity index 86%
rename from app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingViewModel.java
rename to app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java
index e919d55c..096d0659 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.gest.accettazione_picking;
+package it.integry.integrywmsnative.gest.accettazione_ordini_picking;
import androidx.annotation.NonNull;
import androidx.databinding.ObservableArrayList;
@@ -8,10 +8,8 @@ import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
import java.util.List;
import javax.inject.Inject;
@@ -57,29 +55,29 @@ 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.HistoryMtbAartDTO;
-import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
-import it.integry.integrywmsnative.gest.accettazione_picking.rest.AccettazionePickingRESTConsumer;
-import it.integry.integrywmsnative.gest.accettazione_picking.rest.RecoverMtbColt;
+import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.HistoryMtbAartDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.PickingObjectDTO;
+import it.integry.integrywmsnative.gest.accettazione_ordini_picking.rest.AccettazioneOrdiniPickingRESTConsumer;
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 {
+public class AccettazioneOrdiniPickingViewModel {
private final ArticoloRESTConsumer mArticoloRESTConsumer;
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
private final PrinterRESTConsumer mPrinterRESTConsumer;
- private final AccettazionePickingRESTConsumer mAccettazionePickingRESTConsumer;
+ private final AccettazioneOrdiniPickingRESTConsumer mAccettazioneOrdiniPickingRESTConsumer;
private final ColliAccettazioneRESTConsumer mColliAccettazioneRESTConsumer;
private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
private ColliCaricoRESTConsumerInterface mColliCaricoRESTConsumer;
- private AccettazionePickingViewModel.Listener mListener;
+ private AccettazioneOrdiniPickingViewModel.Listener mListener;
private List mOrders;
private boolean mUseQtaOrd;
@@ -91,24 +89,24 @@ public class AccettazionePickingViewModel {
private final List mHistoryUsedAarts = new ArrayList<>();
@Inject
- public AccettazionePickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
- BarcodeRESTConsumer barcodeRESTConsumer,
- ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
- PrinterRESTConsumer printerRESTConsumer,
- AccettazionePickingRESTConsumer accettazionePickingRESTConsumer,
- ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
- ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer) {
+ public AccettazioneOrdiniPickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
+ BarcodeRESTConsumer barcodeRESTConsumer,
+ ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
+ PrinterRESTConsumer printerRESTConsumer,
+ AccettazioneOrdiniPickingRESTConsumer accettazioneOrdiniPickingRESTConsumer,
+ ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
+ ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer) {
this.mArticoloRESTConsumer = articoloRESTConsumer;
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
this.mPrinterRESTConsumer = printerRESTConsumer;
- this.mAccettazionePickingRESTConsumer = accettazionePickingRESTConsumer;
+ this.mAccettazioneOrdiniPickingRESTConsumer = accettazioneOrdiniPickingRESTConsumer;
this.mColliAccettazioneRESTConsumer = colliAccettazioneRESTConsumer;
this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
}
- public void init(List orders, List sitArts, String codMdep, boolean useQtaOrd) {
+ public void init(List orders, List sitArts, boolean useQtaOrd) {
this.mOrders = orders;
this.mUseQtaOrd = useQtaOrd;
@@ -182,10 +180,10 @@ public class AccettazionePickingViewModel {
return mPickingList;
}
- public void retrieveExistentLU(RunnableArgs> onComplete) {
+ public void retrieveExistentLU(RunnableArgs> onComplete) {
this.sendOnLoadingStarted();
- this.mAccettazionePickingRESTConsumer.getBancaliGiaRegistrati(this.mOrders, mtbColtList -> {
+ this.mAccettazioneOrdiniPickingRESTConsumer.getBancaliGiaRegistrati(this.mOrders, mtbColtList -> {
this.sendOnLoadingEnded();
onComplete.run(mtbColtList);
}, this::sendError);
@@ -325,7 +323,7 @@ public class AccettazionePickingViewModel {
}
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
- this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
+ this.mArticoloRESTConsumer.searchByBarcode(barcodeProd, mtbAartList -> {
if (mtbAartList != null && mtbAartList.size() > 0) {
this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
@@ -372,78 +370,6 @@ public class AccettazionePickingViewModel {
public void createNewLU(Integer customNumCollo, String customSerCollo, boolean disablePrint, Runnable onComplete) {
this.sendOnInfoAggiuntiveRequest((additionalNotes, tCol) -> {
-// 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(defaultGestioneOfUL)
-// .setAnnotazioni(additionalNotes)
-// .setPosizione(defaultPosAccettazione)
-// .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
-//
-// if (tCol != null) {
-// mtbColt.setCodTcol(tCol.getCodTcol());
-// mtbColt.setMtbTCol(tCol);
-// }
-//
-// 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.size() == 1) {
-// mtbColt.setCodAnag(codAnags.get(0));
-// }
-//
-// List rifOrds =
-// Stream.of(mOrders)
-// .map(OrdineAccettazioneInevasoDTO::getRifOrd)
-// .distinct()
-// .toList();
-//
-// if (rifOrds.size() == 1) {
-// mtbColt.setRifOrd(rifOrds.get(0));
-// }
-//
-// List