diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml
new file mode 100644
index 00000000..02b915b8
--- /dev/null
+++ b/.idea/git_toolbox_prj.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 00000000..5fa2b9a9
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 1593df0a..de5da59a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 325
- def appVersionName = '1.30.07'
+ def appVersionCode = 327
+ def appVersionName = '1.30.09'
signingConfigs {
release {
@@ -31,12 +31,12 @@ android {
}
}
- compileSdkVersion 32
+ compileSdkVersion 33
defaultConfig {
applicationId "it.integry.integrywmsnative"
minSdkVersion 21
- targetSdkVersion 32
+ targetSdkVersion 33
versionCode appVersionCode
versionName appVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -66,7 +66,7 @@ android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
- coreLibraryDesugaringEnabled true
+ //coreLibraryDesugaringEnabled true
}
productFlavors {
@@ -115,9 +115,9 @@ dependencies {
implementation 'com.google.android.gms:play-services-basement:18.1.0'
- implementation 'androidx.appcompat:appcompat:1.5.1'
+ implementation 'androidx.appcompat:appcompat:1.6.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- implementation 'com.google.android.material:material:1.6.1'
+ implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
@@ -156,12 +156,12 @@ dependencies {
implementation 'com.github.pedromassango:doubleClick:3.0'
//SQLite ROOM
- def room_version = "2.4.3"
+ def room_version = "2.5.0"
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.4.3"
+ androidTestImplementation "androidx.room:room-testing:2.5.0"
//AppUpdate
implementation 'com.github.javiersantos:AppUpdater:2.7'
@@ -189,8 +189,6 @@ dependencies {
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
- coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.0'
-
}
repositories {
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
index 79c5b00a..b96c0bc9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
@@ -92,8 +92,10 @@ import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetM
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalModule;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteComponent;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteModule;
-import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArtsComponent;
-import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArtsModule;
+import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListComponent;
+import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListModule;
+import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListComponent;
+import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListModule;
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotComponent;
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotModule;
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.InfoAggiuntiveLUDialogComponent;
@@ -148,7 +150,7 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
ProdOrdineProduzioneElencoModule.class,
ProdRecuperoMaterialeModule.class,
ProdVersamentoMaterialeModule.class,
- DialogChooseArtsFromListaArtsModule.class,
+ DialogChooseArtsFromMtbColrListModule.class,
DocInterniModule.class,
DialogSelectDocInfoModule.class,
DocInterniEditFormModule.class,
@@ -166,6 +168,8 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
BottomSheetInventarioActionsModule.class,
BottomSheetInventarioRowActionsModule.class,
BottomSheetMtbColrEditModalModule.class,
+ DialogChooseArtsFromMtbAartListModule.class,
+
})
public interface MainApplicationComponent {
@@ -243,7 +247,7 @@ public interface MainApplicationComponent {
ProdVersamentoMaterialeComponent.Factory prodVersamentoMaterialeComponent();
- DialogChooseArtsFromListaArtsComponent.Factory dialogChooseArtsFromListaArtsComponent();
+ DialogChooseArtsFromMtbColrListComponent.Factory dialogChooseArtsFromListaArtsComponent();
DocInterniComponent.Factory docInterniComponent();
@@ -279,6 +283,8 @@ public interface MainApplicationComponent {
BottomSheetMtbColrEditModalComponent.Factory bottomSheetMtbColrEditModalComponent();
+ DialogChooseArtsFromMtbAartListComponent.Factory dialogDialogDialogChooseArtsFromMtbAartListViewComponent();
+
void inject(MainApplication mainApplication);
void inject(AppContext mainApplication);
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
index e46802cd..5d903053 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
@@ -22,13 +22,16 @@ import it.integry.integrywmsnative.core.menu.MenuService;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.AziendaRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.CommessaRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.DocumentiRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.EntityRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
@@ -254,4 +257,22 @@ public class MainApplicationModule {
return new DocumentiRESTConsumer();
}
+ @Provides
+ @Singleton
+ ColliSpedizioneRESTConsumer provideColliSpedizioneRESTConsumer() {
+ return new ColliSpedizioneRESTConsumer();
+ }
+
+ @Provides
+ @Singleton
+ ColliLavorazioneRESTConsumer provideColliLavorazioneRESTConsumer() {
+ return new ColliLavorazioneRESTConsumer();
+ }
+
+ @Provides
+ @Singleton
+ MagazzinoAutomaticoRESTConsumer provideMagazzinoAutomaticoRESTConsumer() {
+ return new MagazzinoAutomaticoRESTConsumer();
+ }
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IOrdiniVendita.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IOrdiniVendita.java
deleted file mode 100644
index a25ccc38..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/IOrdiniVendita.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package it.integry.integrywmsnative.core.class_router.interfaces;
-
-import java.util.List;
-
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-import it.integry.integrywmsnative.core.model.MtbColt;
-import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
-
-public interface IOrdiniVendita {
-
- void distribuisciCollo(MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed);
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/OrdiniVenditaInterface.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/OrdiniVenditaInterface.java
new file mode 100644
index 00000000..00a7c5f9
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/interfaces/OrdiniVenditaInterface.java
@@ -0,0 +1,11 @@
+package it.integry.integrywmsnative.core.class_router.interfaces;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
+
+public interface OrdiniVenditaInterface {
+
+ boolean isTrasfOrder(List testateOrdini);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java
index bb0f8709..decb423e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java
@@ -255,7 +255,7 @@ public class ArticoloOrdine {
public int checkQtaProposta() {
int check = 0;
- if (!qtaProposta.equals(BigDecimal.ZERO)) {
+ if (qtaProposta != null && !qtaProposta.equals(BigDecimal.ZERO)) {
check = BigDecimal.valueOf(qtaOrd).compareTo(qtaProposta);
}
return check;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/BindableBoolean.java b/app/src/main/java/it/integry/integrywmsnative/core/di/BindableBoolean.java
index 7bc7649f..3fc1c52f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/di/BindableBoolean.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/di/BindableBoolean.java
@@ -18,7 +18,6 @@ public class BindableBoolean implements Observable {
this.mValue = startValue;
}
-
@Override
public void addOnPropertyChangedCallback(@NonNull OnPropertyChangedCallback callback) {
synchronized (this) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java
index 85e6c7cd..994992b2 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java
@@ -37,14 +37,12 @@ public class BaseActivity extends AppCompatActivity {
public void onLoadingEnded() {
this.closeProgress();
- BarcodeManager.enable();
}
public void onError(Exception ex) {
this.runOnUiThread(() -> {
this.closeProgress();
UtilityExceptions.defaultException(this, ex);
- BarcodeManager.enable();
});
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/CheckableMtbColr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/CheckableMtbColr.java
index 591ccd46..17eb56e8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/CheckableMtbColr.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/CheckableMtbColr.java
@@ -2,16 +2,16 @@ package it.integry.integrywmsnative.core.model;
import androidx.databinding.Observable;
import it.integry.integrywmsnative.core.di.BindableBoolean;
-import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArtsItemModel;
+import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListItemModel;
public class CheckableMtbColr {
- private DialogChooseArtsFromListaArtsItemModel item;
+ private DialogChooseArtsFromMtbColrListItemModel item;
private BindableBoolean checked = new BindableBoolean(false);
private BindableBoolean hidden = new BindableBoolean(false);
- public CheckableMtbColr(DialogChooseArtsFromListaArtsItemModel item) {
+ public CheckableMtbColr(DialogChooseArtsFromMtbColrListItemModel item) {
this.item = item;
this.item.getHidden().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@@ -22,11 +22,11 @@ public class CheckableMtbColr {
});
}
- public DialogChooseArtsFromListaArtsItemModel getItem() {
+ public DialogChooseArtsFromMtbColrListItemModel getItem() {
return item;
}
- public CheckableMtbColr setItem(DialogChooseArtsFromListaArtsItemModel item) {
+ public CheckableMtbColr setItem(DialogChooseArtsFromMtbColrListItemModel item) {
this.item = item;
this.item.getHidden().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
@@ -60,8 +60,4 @@ public class CheckableMtbColr {
this.hidden = hidden;
return this;
}
-
- public void toggleCheck() {
- this.checked.set(!this.checked.get());
- }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
index e06b7a5c..ded07f62 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
@@ -600,33 +600,6 @@ public class MtbColt extends EntityBase {
}
}
- /*if (filtroOrdineDtos != null && filtroOrdineDtos.size() > 0) {
-
- for (int i = 0; i < filtroOrdineDtos.size(); i++) {
- FiltroOrdineDTO x = filtroOrdineDtos.get(i);
-
- try {
- whereCond.append("(");
- whereCond.append(String.format("d.g = %s AND d.d = %s and d.n = %s",
- UtilityDB.valueToString(x.getGestioneOrd()),
- UtilityDB.valueToString(UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)),
- UtilityDB.valueToString(x.getNumOrd())));
-
- if (!UtilityString.isNullOrEmpty(x.getDataConsS())) {
- whereCond.append(String.format(" AND dr.dc = %s",
- UtilityDB.valueToString(UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))));
- }
-
- whereCond.append(")");
- if (i < filtroOrdineDtos.size() - 1) {
- whereCond.append(" OR ");
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- }*/
whereCond = TextUtils.join(" OR ", conditions);
this.filtroOrdini = xmlPrefix + whereCond + xmlSuffix;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbDepoPosizione.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbDepoPosizione.java
index 8b06a471..2f315ca7 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbDepoPosizione.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbDepoPosizione.java
@@ -1,6 +1,7 @@
package it.integry.integrywmsnative.core.model;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
+import it.integry.integrywmsnative.core.utility.UtilityString;
public class MtbDepoPosizione {
@@ -11,6 +12,8 @@ public class MtbDepoPosizione {
private String flagLineaProduzione;
private Integer priorita;
+ private String tipoMagazAutomatico;
+
public MtbDepoPosizione clone() {
@@ -85,4 +88,17 @@ public class MtbDepoPosizione {
this.priorita = priorita;
return this;
}
+
+ public String getTipoMagazAutomatico() {
+ return tipoMagazAutomatico;
+ }
+
+ public MtbDepoPosizione setTipoMagazAutomatico(String tipoMagazAutomatico) {
+ this.tipoMagazAutomatico = tipoMagazAutomatico;
+ return this;
+ }
+
+ public boolean isMagazzinoAutomatico() {
+ return !UtilityString.isNullOrEmpty(getTipoMagazAutomatico());
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java
index 25262c8d..1a49d7c4 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java
@@ -270,4 +270,23 @@ public class MvwSitArtUdcDetInventario {
this.mtbAart = mtbAart;
return this;
}
+
+
+ public MtbColr toMtbColr() {
+ return new MtbColr()
+ .setCodJcom(getCodJcom())
+ .setCodMart(getCodMart())
+ .setDataCollo(getDataCollo())
+ .setNumCollo(getNumCollo())
+ .setSerCollo(getSerCollo())
+ .setGestione(getGestione())
+ .setMtbAart(getMtbAart())
+ .setNumCnf(getNumCnf())
+ .setQtaCnf(getQtaCnf())
+ .setQtaCol(getQtaCol())
+ .setPartitaMag(getPartitaMag())
+ .setPesoNettoKg(getPesoNettoKg())
+ .setPesoLordoKg(getPesoLordoKg())
+ .setUntMis(getUntMis());
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java
new file mode 100644
index 00000000..fe0669c8
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java
@@ -0,0 +1,158 @@
+package it.integry.integrywmsnative.core.rest.consumers;
+
+import javax.inject.Singleton;
+
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.rest.RESTBuilder;
+import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliScaricoRESTConsumerInterface;
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.rest.model.uds.CanUDSBeDeletedRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.PrintUDSRequestDTO;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+@Singleton
+public class ColliLavorazioneRESTConsumer extends _BaseRESTConsumer implements ColliScaricoRESTConsumerInterface {
+
+
+ public void createUDS(CreateUDSRequestDTO createUDSRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) {
+ ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = RESTBuilder.getService(ColliLavorazioneRESTConsumerService.class);
+
+ colliLavorazioneRESTConsumerService.createUDS(createUDSRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "lavorazione/createUDS", data -> onComplete.run(data.getMtbColt()), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+ @Override
+ public void closeUDS(CloseUDSRequestDTO closeUDSRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) {
+ ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = RESTBuilder.getService(ColliLavorazioneRESTConsumerService.class);
+
+ colliLavorazioneRESTConsumerService.closeUDS(closeUDSRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "lavorazione/closeUDS", onComplete, onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+ }
+
+ @Override
+ public void canUDSBeDeleted(CanUDSBeDeletedRequestDTO canUDSBeDeletedRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) {
+ ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = RESTBuilder.getService(ColliLavorazioneRESTConsumerService.class);
+
+ colliLavorazioneRESTConsumerService.canUDSBeDeleted(canUDSBeDeletedRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "lavorazione/canUDSBeDeleted", onComplete, onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+ @Override
+ public void deleteUDS(DeleteUDSRequestDTO deleteUDSRequestDTO, Runnable onComplete, RunnableArgs onFailed) {
+ ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = RESTBuilder.getService(ColliLavorazioneRESTConsumerService.class);
+
+ colliLavorazioneRESTConsumerService.deleteUDS(deleteUDSRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "lavorazione/deleteUDS", Void -> onComplete.run(), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+ @Override
+ public void printUDS(PrintUDSRequestDTO printUDSRequestDTO, Runnable onComplete, RunnableArgs onFailed) {
+ ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = RESTBuilder.getService(ColliLavorazioneRESTConsumerService.class);
+
+ colliLavorazioneRESTConsumerService.printUDS(printUDSRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "lavorazione/printUDS", Void -> onComplete.run(), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+ @Override
+ public void insertUDSRow(InsertUDSRowRequestDTO insertUDSRowRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) {
+ ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = RESTBuilder.getService(ColliLavorazioneRESTConsumerService.class);
+
+ colliLavorazioneRESTConsumerService.insertUDSRow(insertUDSRowRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "lavorazione/insertUDSRow", data -> onComplete.run(data.getSavedMtbColr()), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+ }
+
+ @Override
+ public void deleteUDSRow(DeleteUDSRowRequestDTO deleteUDSRowRequestDTO, Runnable onComplete, RunnableArgs onFailed) {
+ ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = RESTBuilder.getService(ColliLavorazioneRESTConsumerService.class);
+
+ colliLavorazioneRESTConsumerService.deleteUDSRow(deleteUDSRowRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "lavorazione/deleteUDSRow", data -> 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/ColliLavorazioneRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumerService.java
new file mode 100644
index 00000000..da8e7908
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumerService.java
@@ -0,0 +1,41 @@
+package it.integry.integrywmsnative.core.rest.consumers;
+
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.rest.model.uds.CanUDSBeDeletedRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.PrintUDSRequestDTO;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.POST;
+
+public interface ColliLavorazioneRESTConsumerService {
+
+ @POST("wms/lavorazione/createUDS")
+ Call> createUDS(@Body CreateUDSRequestDTO createUDSRequestDTO);
+
+ @POST("wms/lavorazione/closeUDS")
+ Call> closeUDS(@Body CloseUDSRequestDTO createUDSRequestDTO);
+
+ @POST("wms/lavorazione/canUDSBeDeleted")
+ Call> canUDSBeDeleted(@Body CanUDSBeDeletedRequestDTO canUDSBeDeletedRequestDTO);
+
+ @POST("wms/lavorazione/deleteUDS")
+ Call> deleteUDS(@Body DeleteUDSRequestDTO deleteUDSRequestDTO);
+
+ @POST("wms/lavorazione/printUDS")
+ Call> printUDS(@Body PrintUDSRequestDTO printUDSRequestDTO);
+
+ @POST("wms/lavorazione/insertUDSRow")
+ Call> insertUDSRow(@Body InsertUDSRowRequestDTO insertUDSRowRequestDTO);
+
+ @POST("wms/lavorazione/deleteUDSRow")
+ Call> deleteUDSRow(@Body DeleteUDSRowRequestDTO deleteUDSRowRequestDTO);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
index 58421651..aaf83cdf 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
@@ -4,8 +4,6 @@ import androidx.databinding.ObservableArrayList;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
-import com.google.gson.Gson;
-import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import org.jetbrains.annotations.NotNull;
@@ -29,7 +27,6 @@ import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
-import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
import it.integry.integrywmsnative.core.rest.model.RettificaULDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.SpostaArtsTraULRequestDTO;
@@ -280,48 +277,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
if (onComplete != null) onComplete.run();
}, onFailed);
}
-
- public static void distribuisciCollo(MtbColt mtbColtToDistribute, DistribuzioneColloDTO.CriterioDistribuzione criterioDistribuzione, RunnableArgs> onComplete, RunnableArgs onFailed) {
-
- DistribuzioneColloDTO distribuzioneColloDTO = new DistribuzioneColloDTO()
- .setCriterioDistribuzione(criterioDistribuzione)
- .setDataCollo(mtbColtToDistribute.getDataColloS())
- .setNumCollo(mtbColtToDistribute.getNumCollo())
- .setGestione(mtbColtToDistribute.getGestione())
- .setSerCollo(mtbColtToDistribute.getSerCollo());
-
- ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class);
- colliMagazzinoRESTConsumerService.distribuisciCollo(distribuzioneColloDTO)
- .enqueue(new Callback>() {
- @Override
- public void onResponse(Call> call, Response> response) {
- analyzeAnswerList(response, "DistribuzioneCollo", obj -> {
-
- Gson gson = new Gson();
- List jsons = response.body().getEntityList();
-
- List newList = new ArrayList<>();
-
- if (jsons != null) {
- for (int i = 0; i < jsons.size(); i++) {
- JsonObject jsonTmp = jsons.get(i);
-
- newList.add(gson.fromJson(jsonTmp, MtbColt.class));
- }
- }
-
- onComplete.run(newList);
- }, onFailed);
- }
-
- @Override
- public void onFailure(Call> call, Throwable t) {
- onFailed.run(new Exception(t));
- }
- });
-
- }
-
public void getBySSCC(String ssccString, boolean onlyResiduo, boolean throwExcIfNull, RunnableArgs onComplete, RunnableArgs onFailed) {
ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class);
colliMagazzinoRESTConsumerService.getColloByBarcode(ssccString, onlyResiduo, throwExcIfNull).enqueue(new Callback<>() {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumer.java
new file mode 100644
index 00000000..06408a31
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumer.java
@@ -0,0 +1,154 @@
+package it.integry.integrywmsnative.core.rest.consumers;
+
+import javax.inject.Singleton;
+
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.rest.RESTBuilder;
+import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliScaricoRESTConsumerInterface;
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.rest.model.uds.CanUDSBeDeletedRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.PrintUDSRequestDTO;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+@Singleton
+public class ColliSpedizioneRESTConsumer extends _BaseRESTConsumer implements ColliScaricoRESTConsumerInterface {
+
+
+ public void createUDS(CreateUDSRequestDTO createUDSRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) {
+ ColliSpedizioneRESTConsumerService colliSpedizioneRESTConsumerService = RESTBuilder.getService(ColliSpedizioneRESTConsumerService.class);
+
+ colliSpedizioneRESTConsumerService.createUDS(createUDSRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "spedizione/createUDS", data -> onComplete.run(data.getMtbColt()), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+ public void closeUDS(CloseUDSRequestDTO closeUDSRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) {
+ ColliSpedizioneRESTConsumerService colliSpedizioneRESTConsumerService = RESTBuilder.getService(ColliSpedizioneRESTConsumerService.class);
+
+ colliSpedizioneRESTConsumerService.closeUDS(closeUDSRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "spedizione/closeUDS", onComplete, onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+ public void canUDSBeDeleted(CanUDSBeDeletedRequestDTO canUDSBeDeletedRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) {
+ ColliSpedizioneRESTConsumerService colliSpedizioneRESTConsumerService = RESTBuilder.getService(ColliSpedizioneRESTConsumerService.class);
+
+ colliSpedizioneRESTConsumerService.canUDSBeDeleted(canUDSBeDeletedRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "spedizione/canUDSBeDeleted", onComplete, onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+ public void deleteUDS(DeleteUDSRequestDTO deleteUDSRequestDTO, Runnable onComplete, RunnableArgs onFailed) {
+ ColliSpedizioneRESTConsumerService colliSpedizioneRESTConsumerService = RESTBuilder.getService(ColliSpedizioneRESTConsumerService.class);
+
+ colliSpedizioneRESTConsumerService.deleteUDS(deleteUDSRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "spedizione/deleteUDS", Void -> onComplete.run(), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+ public void printUDS(PrintUDSRequestDTO printUDSRequestDTO, Runnable onComplete, RunnableArgs onFailed) {
+ ColliSpedizioneRESTConsumerService colliSpedizioneRESTConsumerService = RESTBuilder.getService(ColliSpedizioneRESTConsumerService.class);
+
+ colliSpedizioneRESTConsumerService.printUDS(printUDSRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "spedizione/printUDS", Void -> onComplete.run(), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+ public void insertUDSRow(InsertUDSRowRequestDTO insertUDSRowRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) {
+ ColliSpedizioneRESTConsumerService colliSpedizioneRESTConsumerService = RESTBuilder.getService(ColliSpedizioneRESTConsumerService.class);
+
+ colliSpedizioneRESTConsumerService.insertUDSRow(insertUDSRowRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "spedizione/insertUDSRow", data -> onComplete.run(data.getSavedMtbColr()), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+ }
+
+ public void deleteUDSRow(DeleteUDSRowRequestDTO deleteUDSRowRequestDTO, Runnable onComplete, RunnableArgs onFailed) {
+ ColliSpedizioneRESTConsumerService colliSpedizioneRESTConsumerService = RESTBuilder.getService(ColliSpedizioneRESTConsumerService.class);
+
+ colliSpedizioneRESTConsumerService.deleteUDSRow(deleteUDSRowRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "spedizione/deleteUDSRow", data -> 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/ColliSpedizioneRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumerService.java
new file mode 100644
index 00000000..b324a596
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliSpedizioneRESTConsumerService.java
@@ -0,0 +1,41 @@
+package it.integry.integrywmsnative.core.rest.consumers;
+
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.rest.model.uds.CanUDSBeDeletedRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.PrintUDSRequestDTO;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.POST;
+
+public interface ColliSpedizioneRESTConsumerService {
+
+ @POST("wms/spedizione/createUDS")
+ Call> createUDS(@Body CreateUDSRequestDTO createUDSRequestDTO);
+
+ @POST("wms/spedizione/closeUDS")
+ Call> closeUDS(@Body CloseUDSRequestDTO createUDSRequestDTO);
+
+ @POST("wms/spedizione/canUDSBeDeleted")
+ Call> canUDSBeDeleted(@Body CanUDSBeDeletedRequestDTO canUDSBeDeletedRequestDTO);
+
+ @POST("wms/spedizione/deleteUDS")
+ Call> deleteUDS(@Body DeleteUDSRequestDTO deleteUDSRequestDTO);
+
+ @POST("wms/spedizione/printUDS")
+ Call> printUDS(@Body PrintUDSRequestDTO printUDSRequestDTO);
+
+ @POST("wms/spedizione/insertUDSRow")
+ Call> insertUDSRow(@Body InsertUDSRowRequestDTO insertUDSRowRequestDTO);
+
+ @POST("wms/spedizione/deleteUDSRow")
+ Call> deleteUDSRow(@Body DeleteUDSRowRequestDTO deleteUDSRowRequestDTO);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java
index d784d61c..a7f7ad85 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumer.java
@@ -2,11 +2,7 @@ package it.integry.integrywmsnative.core.rest.consumers;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
-import com.google.gson.reflect.TypeToken;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import javax.inject.Singleton;
@@ -15,7 +11,11 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
-import it.integry.integrywmsnative.core.utility.UtilityQuery;
+import it.integry.integrywmsnative.core.rest.RESTBuilder;
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
@Singleton
public class GiacenzaRESTConsumer extends _BaseRESTConsumer {
@@ -30,39 +30,41 @@ public class GiacenzaRESTConsumer extends _BaseRESTConsumer {
}
public void getGiacenzeInPosizione(MtbDepoPosizione posizione, RunnableArgs> onComplete, RunnableArgs onFailed) {
+ GiacenzaRESTConsumerService giacenzaRESTConsumerService = RESTBuilder.getService(GiacenzaRESTConsumerService.class);
+ giacenzaRESTConsumerService.retrieveAvailableItems(posizione.getPosizione()).enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call>> call, Response>> response) {
+ analyzeAnswer(response, "getGiacenzeInPosizione", inventarioList -> {
- HashMap params = new HashMap<>();
- params.put("posizione", posizione.getPosizione());
- String whereCond = UtilityQuery.concatFieldsInWhereCond(params);
- String query = "SELECT * from mvw_sitart_udc_det_inventario" +
- " WHERE " + whereCond;
+ List codMarts = Stream.of(inventarioList)
+ .map(x -> x.getCodMart().trim())
+ .toList();
+ mArticoloRESTConsumer.getByCodMarts(codMarts, mtbAarts -> {
+ for (var row : inventarioList) {
- Type typeOfObjectsList = new TypeToken>() {
- }.getType();
- this.mSystemRESTConsumer.>processSql(query, typeOfObjectsList, inventarioList -> {
- List codMarts = Stream.of(inventarioList)
- .map(x -> x.getCodMart().trim())
- .toList();
+ MtbAart foundMtbAart = null;
+ Optional mtbAartOpt = Stream.of(mtbAarts)
+ .filter(x -> x.getCodMart().equalsIgnoreCase(row.getCodMart()))
+ .findFirst();
- mArticoloRESTConsumer.getByCodMarts(codMarts, mtbAarts -> {
- for (var row : inventarioList) {
+ if (mtbAartOpt.isPresent()) {
+ foundMtbAart = mtbAartOpt.get();
+ }
- MtbAart foundMtbAart = null;
- Optional mtbAartOpt = Stream.of(mtbAarts)
- .filter(x -> x.getCodMart().equalsIgnoreCase(row.getCodMart()))
- .findFirst();
+ row.setMtbAart(foundMtbAart);
+ }
- if (mtbAartOpt.isPresent()) {
- foundMtbAart = mtbAartOpt.get();
- }
+ onComplete.run(inventarioList);
+ }, onFailed);
+ }, onFailed);
+ }
- row.setMtbAart(foundMtbAart);
- }
-
- onComplete.run(inventarioList);
- }, onFailed);
- }, 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/GiacenzaRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumerService.java
index 17d3460c..e0097132 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/GiacenzaRESTConsumerService.java
@@ -1,4 +1,17 @@
package it.integry.integrywmsnative.core.rest.consumers;
+import java.util.List;
+
+import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import retrofit2.Call;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+
public interface GiacenzaRESTConsumerService {
+
+ @GET("wms/giacenza/availableItems")
+ Call>> retrieveAvailableItems(
+ @Query("posizione") String posizione);
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoAutomaticoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoAutomaticoRESTConsumer.java
new file mode 100644
index 00000000..27807571
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoAutomaticoRESTConsumer.java
@@ -0,0 +1,52 @@
+package it.integry.integrywmsnative.core.rest.consumers;
+
+import javax.inject.Singleton;
+
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
+import it.integry.integrywmsnative.core.rest.RESTBuilder;
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPutItemsRequestDTO;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+@Singleton
+public class MagazzinoAutomaticoRESTConsumer extends _BaseRESTConsumer {
+
+ public void pickItems(MtbDepoPosizione posizione, MagazzinoAutomaticoPickItemsRequestDTO magazzinoAutomaticoPickItemsRequestDTO, Runnable onComplete, RunnableArgs onFailed) {
+ MagazzinoAutomaticoRESTConsumerService magazzinoAutomaticoRESTConsumerService = RESTBuilder.getService(MagazzinoAutomaticoRESTConsumerService.class);
+ magazzinoAutomaticoRESTConsumerService.pickItems(posizione.getPosizione(), magazzinoAutomaticoPickItemsRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "magazzino-automatico/pickItems", data -> onComplete.run(), onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
+
+ }
+
+
+ public void putItems(MtbDepoPosizione posizione, MagazzinoAutomaticoPutItemsRequestDTO magazzinoAutomaticoPutItemsRequestDTO, Runnable onComplete, RunnableArgs onFailed) {
+ MagazzinoAutomaticoRESTConsumerService magazzinoAutomaticoRESTConsumerService = RESTBuilder.getService(MagazzinoAutomaticoRESTConsumerService.class);
+ magazzinoAutomaticoRESTConsumerService.putItems(posizione.getPosizione(), magazzinoAutomaticoPutItemsRequestDTO)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "magazzino-automatico/putItems", data -> 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/MagazzinoAutomaticoRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoAutomaticoRESTConsumerService.java
new file mode 100644
index 00000000..2c15a10c
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoAutomaticoRESTConsumerService.java
@@ -0,0 +1,22 @@
+package it.integry.integrywmsnative.core.rest.consumers;
+
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPutItemsRequestDTO;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.POST;
+import retrofit2.http.Path;
+
+public interface MagazzinoAutomaticoRESTConsumerService {
+
+ @POST("wms/magazzino-automatico/{posizione}/pickItems")
+ Call> pickItems(
+ @Path("posizione") String posizione,
+ @Body MagazzinoAutomaticoPickItemsRequestDTO magazzinoAutomaticoPickItemsRequestDTO);
+
+ @POST("wms/magazzino-automatico/{posizione}/putItems")
+ Call> putItems(
+ @Path("posizione") String posizione,
+ @Body MagazzinoAutomaticoPutItemsRequestDTO magazzinoAutomaticoPutItemsRequestDTO);
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java
index 5b5801aa..c51a9368 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java
@@ -47,7 +47,7 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer {
public void saveOrdine(SaveDTO saveDTO, RunnableArgs onComplete, RunnableArgs onFailed) {
- MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class);
+ MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class, 240);
service.saveOrdine(saveDTO)
.enqueue(new Callback<>() {
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/OrdiniRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/OrdiniRESTConsumer.java
index 1e620a2d..4ccc6c0d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/OrdiniRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/OrdiniRESTConsumer.java
@@ -46,9 +46,7 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
}
public void getSuggestedPickingList(String codMdep, List sitArtOrdList, RunnableArgs> onComplete, RunnableArgs onFailed) {
-
OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class, 90);
-
service
.getSuggestedPickingList(codMdep, sitArtOrdList)
.enqueue(new Callback<>() {
@@ -109,7 +107,6 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
@Override
public void onFailure(Call>> call, Throwable t) {
- UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t));
}
});
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumer.java
index 6207acb6..dcb88f14 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PrinterRESTConsumer.java
@@ -66,24 +66,23 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
}
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
- Call> callable = null;
- callable = printerService.printCollo(testataColloToPrint);
+ printerService
+ .printCollo(testataColloToPrint)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "printCollo", data -> {
+ onComplete.run();
+ }, onFailed);
+ }
- callable.enqueue(new Callback<>() {
- @Override
- public void onResponse(Call> call, Response> response) {
- analyzeAnswer(response, "printCollo", data -> {
- onComplete.run();
- }, onFailed);
- }
-
- @Override
- public void onFailure(Call> call, Throwable t) {
- if (t.getMessage().contains("Printer not found")) {
- onFailed.run(new NoPrintersFoundException());
- } else onFailed.run(new Exception(t));
- }
- });
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ if (t.getMessage().contains("Printer not found")) {
+ onFailed.run(new NoPrintersFoundException());
+ } else onFailed.run(new Exception(t));
+ }
+ });
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java
index 6dda06d8..eace9e55 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/_BaseRESTConsumer.java
@@ -30,8 +30,9 @@ public abstract class _BaseRESTConsumer {
onComplete.run(dataObj);
}
} else {
- Log.e(logTitle, response.body().getErrorMessage());
- onFailed.run(CommonRESTException.tryRecognizeException(response.body().getErrorMessage()));
+ String errorMessage = UtilityString.isNull(response.body().getErrorMessage(), "Empty message");
+ Log.e(logTitle, errorMessage);
+ onFailed.run(CommonRESTException.tryRecognizeException(errorMessage));
}
} else {
Log.e(logTitle, response.message());
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliScaricoRESTConsumerInterface.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliScaricoRESTConsumerInterface.java
new file mode 100644
index 00000000..c9be7035
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliScaricoRESTConsumerInterface.java
@@ -0,0 +1,30 @@
+package it.integry.integrywmsnative.core.rest.consumers.interfaces;
+
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.rest.model.uds.CanUDSBeDeletedRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.PrintUDSRequestDTO;
+
+public interface ColliScaricoRESTConsumerInterface {
+
+ void createUDS(CreateUDSRequestDTO createUDSRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed);
+
+ void closeUDS(CloseUDSRequestDTO closeUDSRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed);
+
+ void canUDSBeDeleted(CanUDSBeDeletedRequestDTO canUDSBeDeletedRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed);
+
+ void deleteUDS(DeleteUDSRequestDTO deleteUDSRequestDTO, Runnable onComplete, RunnableArgs onFailed);
+
+ void printUDS(PrintUDSRequestDTO printUDSRequestDTO, Runnable onComplete, RunnableArgs onFailed);
+
+ void insertUDSRow(InsertUDSRowRequestDTO insertUDSRowRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed);
+
+ void deleteUDSRow(DeleteUDSRowRequestDTO deleteUDSRequestDTO, Runnable onComplete, RunnableArgs onFailed);
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPickItemRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPickItemRequestDTO.java
new file mode 100644
index 00000000..6eb4335f
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPickItemRequestDTO.java
@@ -0,0 +1,71 @@
+package it.integry.integrywmsnative.core.rest.model.magazzino_automatico;
+
+import java.math.BigDecimal;
+
+public class MagazzinoAutomaticoPickItemRequestDTO {
+
+ private String codMart;
+ private String partitaMag;
+ private String untMis;
+ private BigDecimal qtaTot;
+ private BigDecimal qtaCnf;
+ private BigDecimal numCnf;
+
+ public MagazzinoAutomaticoPickItemRequestDTO(String codMart) {
+ this.codMart = codMart;
+ }
+
+ public String getCodMart() {
+ return codMart;
+ }
+
+ public MagazzinoAutomaticoPickItemRequestDTO setCodMart(String codMart) {
+ this.codMart = codMart;
+ return this;
+ }
+
+ public String getPartitaMag() {
+ return partitaMag;
+ }
+
+ public MagazzinoAutomaticoPickItemRequestDTO setPartitaMag(String partitaMag) {
+ this.partitaMag = partitaMag;
+ return this;
+ }
+
+ public String getUntMis() {
+ return untMis;
+ }
+
+ public MagazzinoAutomaticoPickItemRequestDTO setUntMis(String untMis) {
+ this.untMis = untMis;
+ return this;
+ }
+
+ public BigDecimal getQtaTot() {
+ return qtaTot;
+ }
+
+ public MagazzinoAutomaticoPickItemRequestDTO setQtaTot(BigDecimal qtaTot) {
+ this.qtaTot = qtaTot;
+ return this;
+ }
+
+ public BigDecimal getQtaCnf() {
+ return qtaCnf;
+ }
+
+ public MagazzinoAutomaticoPickItemRequestDTO setQtaCnf(BigDecimal qtaCnf) {
+ this.qtaCnf = qtaCnf;
+ return this;
+ }
+
+ public BigDecimal getNumCnf() {
+ return numCnf;
+ }
+
+ public MagazzinoAutomaticoPickItemRequestDTO setNumCnf(BigDecimal numCnf) {
+ this.numCnf = numCnf;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPickItemsRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPickItemsRequestDTO.java
new file mode 100644
index 00000000..78a78e06
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPickItemsRequestDTO.java
@@ -0,0 +1,59 @@
+package it.integry.integrywmsnative.core.rest.model.magazzino_automatico;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public class MagazzinoAutomaticoPickItemsRequestDTO {
+
+ private boolean shouldCreateUDS;
+ private String defaultGestioneOfNewUDS;
+ private List ordersOfNewUDS;
+ private MtbColt inputMtbColt;
+ private List itemsToPick;
+
+ public boolean isShouldCreateUDS() {
+ return shouldCreateUDS;
+ }
+
+ public MagazzinoAutomaticoPickItemsRequestDTO setShouldCreateUDS(boolean shouldCreateUDS) {
+ this.shouldCreateUDS = shouldCreateUDS;
+ return this;
+ }
+
+ public String getDefaultGestioneOfNewUDS() {
+ return defaultGestioneOfNewUDS;
+ }
+
+ public MagazzinoAutomaticoPickItemsRequestDTO setDefaultGestioneOfNewUDS(String defaultGestioneOfNewUDS) {
+ this.defaultGestioneOfNewUDS = defaultGestioneOfNewUDS;
+ return this;
+ }
+
+ public List getOrdersOfNewUDS() {
+ return ordersOfNewUDS;
+ }
+
+ public MagazzinoAutomaticoPickItemsRequestDTO setOrdersOfNewUDS(List ordersOfNewUDS) {
+ this.ordersOfNewUDS = ordersOfNewUDS;
+ return this;
+ }
+
+ public MtbColt getInputMtbColt() {
+ return inputMtbColt;
+ }
+
+ public MagazzinoAutomaticoPickItemsRequestDTO setInputMtbColt(MtbColt inputMtbColt) {
+ this.inputMtbColt = inputMtbColt;
+ return this;
+ }
+
+ public List getItemsToPick() {
+ return itemsToPick;
+ }
+
+ public MagazzinoAutomaticoPickItemsRequestDTO setItemsToPick(List itemsToPick) {
+ this.itemsToPick = itemsToPick;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPickOrderRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPickOrderRequestDTO.java
new file mode 100644
index 00000000..18b1c4cb
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPickOrderRequestDTO.java
@@ -0,0 +1,43 @@
+package it.integry.integrywmsnative.core.rest.model.magazzino_automatico;
+
+import java.time.LocalDate;
+
+public class MagazzinoAutomaticoPickOrderRequestDTO {
+
+ private final String type = "dtb_ordr";
+ private LocalDate dataCons;
+ private LocalDate dataOrd;
+ private String gestione;
+ private int numOrd;
+
+ public MagazzinoAutomaticoPickOrderRequestDTO(LocalDate dataOrd, String gestione, int numOrd) {
+ this.dataOrd = dataOrd;
+ this.gestione = gestione;
+ this.numOrd = numOrd;
+ }
+
+ public LocalDate getDataOrd() {
+ return dataOrd;
+ }
+
+ public String getGestione() {
+ return gestione;
+ }
+
+ public int getNumOrd() {
+ return numOrd;
+ }
+
+ public LocalDate getDataCons() {
+ return dataCons;
+ }
+
+ public MagazzinoAutomaticoPickOrderRequestDTO setDataCons(LocalDate dataCons) {
+ this.dataCons = dataCons;
+ return this;
+ }
+
+ public String getType() {
+ return type;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPutItemsRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPutItemsRequestDTO.java
new file mode 100644
index 00000000..d2a47f23
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/magazzino_automatico/MagazzinoAutomaticoPutItemsRequestDTO.java
@@ -0,0 +1,18 @@
+package it.integry.integrywmsnative.core.rest.model.magazzino_automatico;
+
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public class MagazzinoAutomaticoPutItemsRequestDTO {
+
+ private MtbColt inputMtbColt;
+
+
+ public MtbColt getInputMtbColt() {
+ return inputMtbColt;
+ }
+
+ public MagazzinoAutomaticoPutItemsRequestDTO setInputMtbColt(MtbColt inputMtbColt) {
+ this.inputMtbColt = inputMtbColt;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CanUDSBeDeletedRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CanUDSBeDeletedRequestDTO.java
new file mode 100644
index 00000000..46df1d51
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CanUDSBeDeletedRequestDTO.java
@@ -0,0 +1,18 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public class CanUDSBeDeletedRequestDTO {
+
+
+ private MtbColt mtbColt;
+
+ public MtbColt getMtbColt() {
+ return mtbColt;
+ }
+
+ public CanUDSBeDeletedRequestDTO setMtbColt(MtbColt mtbColt) {
+ this.mtbColt = mtbColt;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CloseUDSRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CloseUDSRequestDTO.java
new file mode 100644
index 00000000..e88cbc5e
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CloseUDSRequestDTO.java
@@ -0,0 +1,47 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public class CloseUDSRequestDTO {
+
+ private boolean printSSCC;
+ private boolean enableTransferLogic;
+ private String orderCodMdep;
+ private MtbColt mtbColt;
+
+ public boolean isPrintSSCC() {
+ return printSSCC;
+ }
+
+ public CloseUDSRequestDTO setPrintSSCC(boolean printSSCC) {
+ this.printSSCC = printSSCC;
+ return this;
+ }
+
+ public boolean isEnableTransferLogic() {
+ return enableTransferLogic;
+ }
+
+ public CloseUDSRequestDTO setEnableTransferLogic(boolean enableTransferLogic) {
+ this.enableTransferLogic = enableTransferLogic;
+ return this;
+ }
+
+ public String getOrderCodMdep() {
+ return orderCodMdep;
+ }
+
+ public CloseUDSRequestDTO setOrderCodMdep(String orderCodMdep) {
+ this.orderCodMdep = orderCodMdep;
+ return this;
+ }
+
+ public MtbColt getMtbColt() {
+ return mtbColt;
+ }
+
+ public CloseUDSRequestDTO setMtbColt(MtbColt mtbColt) {
+ this.mtbColt = mtbColt;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CloseUDSResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CloseUDSResponseDTO.java
new file mode 100644
index 00000000..d24f43f7
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CloseUDSResponseDTO.java
@@ -0,0 +1,24 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public class CloseUDSResponseDTO {
+ private boolean saved;
+ private boolean deleted;
+
+ private List generatedMtbColts;
+
+ public boolean isSaved() {
+ return saved;
+ }
+
+ public boolean isDeleted() {
+ return deleted;
+ }
+
+ public List getGeneratedMtbColts() {
+ return generatedMtbColts;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSRequestDTO.java
new file mode 100644
index 00000000..d53a312e
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSRequestDTO.java
@@ -0,0 +1,85 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import java.util.List;
+
+public class CreateUDSRequestDTO {
+
+ private String codMdep;
+ private int segno;
+ private String ragSoc;
+ private Integer numCollo;
+ private String serCollo;
+ private int causaleCollo;
+
+ private List orders;
+
+ public String getCodMdep() {
+ return codMdep;
+ }
+
+ public CreateUDSRequestDTO setCodMdep(String codMdep) {
+ this.codMdep = codMdep;
+ return this;
+ }
+
+ public int getSegno() {
+ return segno;
+ }
+
+ public CreateUDSRequestDTO setSegno(int segno) {
+ this.segno = segno;
+ return this;
+ }
+
+ public String getRagSoc() {
+ return ragSoc;
+ }
+
+ public CreateUDSRequestDTO setRagSoc(String ragSoc) {
+ this.ragSoc = ragSoc;
+ return this;
+ }
+
+ public Integer getNumCollo() {
+ return numCollo;
+ }
+
+ public CreateUDSRequestDTO setNumCollo(Integer numCollo) {
+ this.numCollo = numCollo;
+ return this;
+ }
+
+ public String getSerCollo() {
+ return serCollo;
+ }
+
+ public CreateUDSRequestDTO setSerCollo(String serCollo) {
+ this.serCollo = serCollo;
+ return this;
+ }
+
+ public int getCausaleCollo() {
+ return causaleCollo;
+ }
+
+ public CreateUDSRequestDTO setCausaleCollo(int causaleCollo) {
+ this.causaleCollo = causaleCollo;
+ return this;
+ }
+
+ public List getOrders() {
+ return orders;
+ }
+
+ public CreateUDSRequestDTO setOrders(List orders) {
+ this.orders = orders;
+ return this;
+ }
+
+
+
+ public static class Causale {
+ public static final int SCARICO = 0;
+ public static final int POSIZIONAMENTO = 1;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSRequestOrderDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSRequestOrderDTO.java
new file mode 100644
index 00000000..ba3dd5de
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSRequestOrderDTO.java
@@ -0,0 +1,49 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import java.time.LocalDate;
+
+public class CreateUDSRequestOrderDTO {
+
+
+ private String gestione;
+ private LocalDate dataOrd;
+ private LocalDate dataCons;
+ private int numOrd;
+
+
+ public String getGestione() {
+ return gestione;
+ }
+
+ public CreateUDSRequestOrderDTO setGestione(String gestione) {
+ this.gestione = gestione;
+ return this;
+ }
+
+ public LocalDate getDataOrd() {
+ return dataOrd;
+ }
+
+ public CreateUDSRequestOrderDTO setDataOrd(LocalDate dataOrd) {
+ this.dataOrd = dataOrd;
+ return this;
+ }
+
+ public LocalDate getDataCons() {
+ return dataCons;
+ }
+
+ public CreateUDSRequestOrderDTO setDataCons(LocalDate dataCons) {
+ this.dataCons = dataCons;
+ return this;
+ }
+
+ public int getNumOrd() {
+ return numOrd;
+ }
+
+ public CreateUDSRequestOrderDTO setNumOrd(int numOrd) {
+ this.numOrd = numOrd;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSResponseDTO.java
new file mode 100644
index 00000000..f0d59cbf
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSResponseDTO.java
@@ -0,0 +1,12 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public class CreateUDSResponseDTO {
+
+ private MtbColt mtbColt;
+
+ public MtbColt getMtbColt() {
+ return mtbColt;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DeleteUDSRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DeleteUDSRequestDTO.java
new file mode 100644
index 00000000..b82ddbe3
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DeleteUDSRequestDTO.java
@@ -0,0 +1,17 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public class DeleteUDSRequestDTO {
+
+ private MtbColt mtbColt;
+
+ public MtbColt getMtbColt() {
+ return mtbColt;
+ }
+
+ public DeleteUDSRequestDTO setMtbColt(MtbColt mtbColt) {
+ this.mtbColt = mtbColt;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DeleteUDSRowRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DeleteUDSRowRequestDTO.java
new file mode 100644
index 00000000..e9a4d5e4
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/DeleteUDSRowRequestDTO.java
@@ -0,0 +1,17 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import it.integry.integrywmsnative.core.model.MtbColr;
+
+public class DeleteUDSRowRequestDTO {
+
+ private MtbColr mtbColrToDelete;
+
+ public MtbColr getMtbColrToDelete() {
+ return mtbColrToDelete;
+ }
+
+ public DeleteUDSRowRequestDTO setMtbColrToDelete(MtbColr mtbColrToDelete) {
+ this.mtbColrToDelete = mtbColrToDelete;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDSRowRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDSRowRequestDTO.java
new file mode 100644
index 00000000..4e704c4d
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDSRowRequestDTO.java
@@ -0,0 +1,92 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public class InsertUDSRowRequestDTO {
+
+ private MtbColr sourceMtbColr;
+ private MtbColt targetMtbColt;
+
+ private String codMart;
+ private BigDecimal qtaTot;
+ private BigDecimal qtaCnf;
+ private BigDecimal numCnf;
+ private String partitaMag;
+ private LocalDate dataScad;
+
+ public MtbColr getSourceMtbColr() {
+ return sourceMtbColr;
+ }
+
+ public InsertUDSRowRequestDTO setSourceMtbColr(MtbColr sourceMtbColr) {
+ this.sourceMtbColr = sourceMtbColr;
+ return this;
+ }
+
+ public MtbColt getTargetMtbColt() {
+ return targetMtbColt;
+ }
+
+ public InsertUDSRowRequestDTO setTargetMtbColt(MtbColt targetMtbColt) {
+ this.targetMtbColt = targetMtbColt;
+ return this;
+ }
+
+ public String getCodMart() {
+ return codMart;
+ }
+
+ public InsertUDSRowRequestDTO setCodMart(String codMart) {
+ this.codMart = codMart;
+ return this;
+ }
+
+ public BigDecimal getQtaTot() {
+ return qtaTot;
+ }
+
+ public InsertUDSRowRequestDTO setQtaTot(BigDecimal qtaTot) {
+ this.qtaTot = qtaTot;
+ return this;
+ }
+
+ public BigDecimal getQtaCnf() {
+ return qtaCnf;
+ }
+
+ public InsertUDSRowRequestDTO setQtaCnf(BigDecimal qtaCnf) {
+ this.qtaCnf = qtaCnf;
+ return this;
+ }
+
+ public BigDecimal getNumCnf() {
+ return numCnf;
+ }
+
+ public InsertUDSRowRequestDTO setNumCnf(BigDecimal numCnf) {
+ this.numCnf = numCnf;
+ return this;
+ }
+
+ public String getPartitaMag() {
+ return partitaMag;
+ }
+
+ public InsertUDSRowRequestDTO setPartitaMag(String partitaMag) {
+ this.partitaMag = partitaMag;
+ return this;
+ }
+
+ public LocalDate getDataScad() {
+ return dataScad;
+ }
+
+ public InsertUDSRowRequestDTO setDataScad(LocalDate dataScad) {
+ this.dataScad = dataScad;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDSRowResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDSRowResponseDTO.java
new file mode 100644
index 00000000..891759f6
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDSRowResponseDTO.java
@@ -0,0 +1,12 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import it.integry.integrywmsnative.core.model.MtbColr;
+
+public class InsertUDSRowResponseDTO {
+
+ private MtbColr savedMtbColr;
+
+ public MtbColr getSavedMtbColr() {
+ return savedMtbColr;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/PrintUDSRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/PrintUDSRequestDTO.java
new file mode 100644
index 00000000..c541259c
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/PrintUDSRequestDTO.java
@@ -0,0 +1,19 @@
+package it.integry.integrywmsnative.core.rest.model.uds;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.core.model.MtbColt;
+
+public class PrintUDSRequestDTO {
+
+ private List mtbColts;
+
+ public List getMtbColts() {
+ return mtbColts;
+ }
+
+ public PrintUDSRequestDTO setMtbColts(List mtbColts) {
+ this.mtbColts = mtbColts;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/watcher/ServerStatusChecker.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/watcher/ServerStatusChecker.java
index 3d0e2921..aa7a5e85 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/watcher/ServerStatusChecker.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/watcher/ServerStatusChecker.java
@@ -12,12 +12,12 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
public class ServerStatusChecker {
- private static ServerStatusChecker instance = new ServerStatusChecker();
+ private static final ServerStatusChecker instance = new ServerStatusChecker();
- private List> mCallback = new ArrayList<>();
+ private final List> mCallback = new ArrayList<>();
- private RunnableArgs mInternalCallback = value -> {
- for (RunnableArgs callback : mCallback) {
+ private final RunnableArgs mInternalCallback = value -> {
+ for (RunnableArgs callback : mCallback) {
callback.run(value);
}
};
@@ -26,8 +26,8 @@ public class ServerStatusChecker {
private final long MILLIS_DELAY = 5 * 1000;
- private Handler handler = new Handler();
- private Runnable runnableCode = new Runnable() {
+ private final Handler handler = new Handler();
+ private final Runnable runnableCode = new Runnable() {
@Override
public void run() {
if (shouldExecute && !UtilityString.isNullOrEmpty(SettingsManager.i().getServer().getHost())) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java
index a661959a..3ffe676b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java
@@ -43,7 +43,7 @@ public class UtilityServer {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
- .url(String.format("http://%s:%d/ems-api/retail/status", serverAddress, serverTCPport))
+ .url(String.format("http://%s:%d/ems-api/system/ok", serverAddress, serverTCPport))
.build();
try {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
index eefe275b..78674f6b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
@@ -30,7 +30,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
-import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
+import it.integry.integrywmsnative.core.class_router.interfaces.OrdiniVenditaInterface;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverDTO;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@@ -40,13 +40,16 @@ import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.menu.MenuService;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
+import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO;
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDimension;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityResources;
-import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentMainBinding;
import it.integry.integrywmsnative.databinding.FragmentMainMenuGroupLayoutBinding;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
@@ -61,6 +64,13 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
@Inject
ColliDataRecoverService colliDataRecoverService;
+ @Inject
+ ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer;
+
+ @Inject
+ ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer;
+
+
@Inject
MenuService menuService;
@@ -189,36 +199,50 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
cyclicRecover(sessionsIterator, onComplete, onFailed);
};
- if (sessionsIterator.hasNext()) {
- Integer recoveredMtbColtID = sessionsIterator.next();
- ColliDataRecoverDTO recoveredMtbColtDto = colliDataRecoverService.getSession(recoveredMtbColtID);
- MtbColt recoveredMtbColt = recoveredMtbColtDto.getMtbColt();
+ if (!sessionsIterator.hasNext()) {
+ onComplete.run();
+ return;
+ }
- if (recoveredMtbColt != null && (recoveredMtbColt.getGestioneEnum() == GestioneEnum.VENDITA || recoveredMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && !UtilityString.isNullOrEmpty(recoveredMtbColt.getFiltroOrdini())) {
+ Integer recoveredMtbColtID = sessionsIterator.next();
+ ColliDataRecoverDTO recoveredMtbColtDto = colliDataRecoverService.getSession(recoveredMtbColtID);
+ MtbColt recoveredMtbColt = recoveredMtbColtDto.getMtbColt();
- IOrdiniVendita ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
+ if (recoveredMtbColt != null &&
+ (recoveredMtbColt.getGestioneEnum() == GestioneEnum.VENDITA ||
+ recoveredMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE)) {
- this.colliMagazzinoRESTConsumer.updateDataFine(recoveredMtbColt, () -> {
- ordiniVendita.distribuisciCollo(recoveredMtbColt, recoveredMtbColtDto.getTestateOrdini(),
- mtbColts -> {
- colliDataRecoverService.closeSession(recoveredMtbColtID);
+ OrdiniVenditaInterface ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
+ boolean isTransferLogicEnabled = ordiniVendita != null && ordiniVendita.isTrasfOrder(recoveredMtbColtDto.getTestateOrdini());
- cyclicRecover(sessionsIterator, onComplete, onFailed);
- }, ex -> {
- tmpOnFailed.run(ex, recoveredMtbColtID);
- }
- );
- }, ex -> {
- tmpOnFailed.run(ex, recoveredMtbColtID);
- });
- } else {
+ var closeUDSRequestDto = new CloseUDSRequestDTO()
+ .setMtbColt(recoveredMtbColt)
+ //.setPrintSSCC(shouldPrint)
+ .setOrderCodMdep(recoveredMtbColtDto.getTestateOrdini().get(0).getCodMdep())
+ .setEnableTransferLogic(isTransferLogicEnabled);
+
+ RunnableArgs onRequestComplete = closeUDSResponseDto -> {
colliDataRecoverService.closeSession(recoveredMtbColtID);
cyclicRecover(sessionsIterator, onComplete, onFailed);
- }
+ };
+ switch (recoveredMtbColt.getGestioneEnum()) {
+ case LAVORAZIONE:
+ colliLavorazioneRESTConsumer.closeUDS(closeUDSRequestDto, onRequestComplete, ex -> {
+ tmpOnFailed.run(ex, recoveredMtbColtID);
+ });
+ break;
+ case VENDITA:
+ colliSpedizioneRESTConsumer.closeUDS(closeUDSRequestDto, onRequestComplete, ex -> {
+ tmpOnFailed.run(ex, recoveredMtbColtID);
+ });
+ break;
+ }
} else {
- onComplete.run();
+ colliDataRecoverService.closeSession(recoveredMtbColtID);
+ cyclicRecover(sessionsIterator, onComplete, onFailed);
}
+
}
private void collapseNoConnectionLayout() {
@@ -314,7 +338,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
public void toggleEasterEggMode() {
- easterEggToggle =! easterEggToggle;
+ easterEggToggle = !easterEggToggle;
int rootBgStart, rootBgEnd;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
index 65f5c567..f052ea47 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
@@ -55,7 +55,7 @@ import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteView;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
-import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
+import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrList;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
@@ -288,7 +288,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
@Override
public void onArtSelectionRequest(List mtbColrsToPick, MtbAart mtbAart, RunnableArgs> onComplete, Runnable onAbort) {
- DialogChooseArtsFromListaArts
+ DialogChooseArtsFromMtbColrList
.newInstance(mtbColrsToPick, mtbAart, onComplete, () -> {
onAbort.run();
BarcodeManager.enable();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java
index 5e57fc58..16da74c6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java
@@ -7,6 +7,8 @@ import dagger.Provides;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
@Module(subcomponents = {PickingLiberoComponent.class})
@@ -17,8 +19,10 @@ public class PickingLiberoModule {
PickingLiberoViewModel providesPickingLiberoViewModel(ArticoloRESTConsumer articoloRESTConsumer,
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
BarcodeRESTConsumer barcodeRESTConsumer,
- PosizioniRESTConsumer posizioniRESTConsumer
+ PosizioniRESTConsumer posizioniRESTConsumer,
+ GiacenzaRESTConsumer giacenzaRESTConsumer,
+ MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer
) {
- return new PickingLiberoViewModel(articoloRESTConsumer, colliMagazzinoRESTConsumer, barcodeRESTConsumer, posizioniRESTConsumer);
+ return new PickingLiberoViewModel(articoloRESTConsumer, colliMagazzinoRESTConsumer, barcodeRESTConsumer, posizioniRESTConsumer, giacenzaRESTConsumer, magazzinoAutomaticoRESTConsumer);
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java
index 7b02c7c9..d4b5a67c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java
@@ -15,6 +15,7 @@ import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
+import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
import it.integry.integrywmsnative.core.exception.TooManyLUFoundInMonoLUPositionException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
@@ -25,15 +26,20 @@ 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.MtbDepoPosizione;
+import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
import it.integry.integrywmsnative.core.model.VtbDest;
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
+import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
@@ -53,6 +59,8 @@ public class PickingLiberoViewModel {
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
private final PosizioniRESTConsumer mPosizioniRESTConsumer;
+ private final GiacenzaRESTConsumer mGiacenzaRESTConsumer;
+ private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer;
private boolean mFlagAskCliente;
@@ -66,12 +74,15 @@ public class PickingLiberoViewModel {
public PickingLiberoViewModel(ArticoloRESTConsumer articoloRESTConsumer,
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
BarcodeRESTConsumer barcodeRESTConsumer,
- PosizioniRESTConsumer posizioniRESTConsumer
- ) {
+ PosizioniRESTConsumer posizioniRESTConsumer,
+ GiacenzaRESTConsumer giacenzaRESTConsumer,
+ MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer) {
this.mArticoloRESTConsumer = articoloRESTConsumer;
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
this.mPosizioniRESTConsumer = posizioniRESTConsumer;
+ this.mGiacenzaRESTConsumer = giacenzaRESTConsumer;
+ this.mMagazzinoAutomaticoRESTConsumer = mMagazzinoAutomaticoRESTConsumer;
}
@@ -120,7 +131,52 @@ public class PickingLiberoViewModel {
MtbDepoPosizione foundPosizione = Stream.of(SettingsManager.iDB().getAvailablePosizioni())
.filter(x -> x.getPosizione().equalsIgnoreCase(barcodeScanDTO.getStringValue()))
.single();
- this.executePosizione(foundPosizione, null, onComplete);
+
+ if (foundPosizione == null) {
+ //Nessuna posizione trovata con questo barcode
+ this.sendError(new ScannedPositionNotExistException());
+ return;
+ }
+
+ if (foundPosizione.isMagazzinoAutomatico()) {
+ //Eseguo picking da magazzino automatico
+ this.executeMagazzinoAutomatico(foundPosizione, onComplete);
+ } else {
+ this.executePosizione(foundPosizione, null, onComplete);
+ }
+
+ }
+
+ private void executeMagazzinoAutomatico(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
+ mGiacenzaRESTConsumer.getGiacenzeInPosizione(mtbDepoPosizione, availableItems -> {
+
+ var mtbColrs = Stream.of(availableItems)
+ .map(MvwSitArtUdcDetInventario::toMtbColr)
+ .toList();
+
+ this.sendArtSelectionRequest(mtbColrs, null, selectedMtbColrs -> {
+
+ final List magazzinoAutomaticoPickItemRequestDTOList = new ArrayList<>();
+ for (MtbColr selectedArt : selectedMtbColrs) {
+ MagazzinoAutomaticoPickItemRequestDTO itemDto = new MagazzinoAutomaticoPickItemRequestDTO(selectedArt.getCodMart())
+ .setQtaTot(selectedArt.getQtaCol())
+ .setNumCnf(selectedArt.getNumCnf())
+ .setUntMis(selectedArt.getUntMis());
+
+ magazzinoAutomaticoPickItemRequestDTOList.add(itemDto);
+ }
+
+ var magazzinoAutomaticoPickRequest = new MagazzinoAutomaticoPickItemsRequestDTO()
+ .setShouldCreateUDS(true)
+ .setDefaultGestioneOfNewUDS(mDefaultGestione.getText())
+ .setItemsToPick(magazzinoAutomaticoPickItemRequestDTOList);
+
+ mMagazzinoAutomaticoRESTConsumer.pickItems(mtbDepoPosizione,
+ magazzinoAutomaticoPickRequest, onComplete, this::sendError);
+ }, this::sendOnLoadingEnded);
+
+ }, this::sendError);
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
index 434e8db0..c2b93767 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
@@ -187,12 +187,10 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
public void onItemDispatched(ArticoloOrdine articoloOrdine, Runnable onSuccess) {
DialogEditArticoloView
.newInstance(articoloOrdine, articolo -> {
- runOnUiThread(() -> {
- if (articolo != null) {
- Toast.makeText(this, "Articolo aggiunto all'ordine!", Toast.LENGTH_SHORT).show();
- }
- this.mViewModel.refreshListArticoli(onSuccess);
- });
+ if (articolo != null) {
+ Toast.makeText(this, "Articolo aggiunto all'ordine!", Toast.LENGTH_SHORT).show();
+ }
+ this.mViewModel.refreshListArticoli(onSuccess);
}, null).show(this.getSupportFragmentManager(), "DialogEditArticoloView");
}
@@ -203,10 +201,8 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
public void exportOrdine() {
this.mViewModel.exportOrdine(() -> {
- runOnUiThread(() -> {
- Toast.makeText(this, "Ordine salvato con successo", Toast.LENGTH_SHORT).show();
- close();
- });
+ Toast.makeText(this, "Ordine salvato con successo", Toast.LENGTH_SHORT).show();
+ close();
});
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java
index 1252a41d..f83182fa 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java
@@ -9,6 +9,7 @@ import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
import javax.inject.Inject;
@@ -123,23 +124,21 @@ public class PVOrdineAcquistoEditViewModel {
public void processBarcode(String barcode) {
try {
- BarcodeManager.disable();
this.sendOnLoadingStarted();
+
ArticoloDTO articoloDTO = getArticoloFromBarcode(barcode);
if (articoloDTO == null) {
throw new NoResultFromBarcodeException(barcode);
}
this.addArticoloToOrdine(
articoloDTO,
- BarcodeManager::enable,
- e -> {
- this.sendError(e);
- BarcodeManager.enable();
- }
+ this::sendOnLoadingEnded,
+ this::sendError
);
} catch (Exception e) {
this.sendError(e);
BarcodeManager.enable();
+ } finally {
}
}
@@ -154,26 +153,18 @@ public class PVOrdineAcquistoEditViewModel {
public void addArticoloToOrdine(ArticoloDTO art, Runnable onSuccess, RunnableArgs onFail) {
try {
- mArticoliOrdineRepository.findArticoloByScanAndOrdine(mCurrentOrdine, art.codMart, (articolo) -> {
- this.sendOnLoadingEnded();
- if (articolo != null) {
- if (isAutoOrderOnScan()) {
- articolo.setQtaOrd(articolo.getQtaOrd() + articolo.getQtaCnf());
- mArticoliOrdineRepository.saveArticoloToOrdine(articolo, () -> this.refreshListArticoli(onSuccess), onFail);
- } else {
- this.sendOnItemDispatched(articolo, onSuccess);
- }
+ mArticoliOrdineRepository.findArticoloByScanAndOrdine(mCurrentOrdine, art.codMart, foundArt -> {
+ var articolo = foundArt != null ? foundArt : art.convertToArticoloOrdine(mCurrentOrdine);
+ if (isAutoOrderOnScan()) {
+ articolo.setQtaOrd(articolo.getQtaOrd() + articolo.getQtaCnf());
+ mArticoliOrdineRepository.saveArticoloToOrdine(articolo, () -> this.refreshListArticoli(onSuccess), onFail);
} else {
- articolo = art.convertToArticoloOrdine(mCurrentOrdine);
- if (isAutoOrderOnScan()) {
- articolo.setQtaOrd(articolo.getQtaCnf());
- mArticoliOrdineRepository.saveArticoloToOrdine(articolo, () -> this.refreshListArticoli(onSuccess), onFail);
- } else {
- this.sendOnItemDispatched(articolo, onSuccess);
- }
+ this.sendOnItemDispatched(articolo, onSuccess);
}
+
+
}, onFail);
@@ -200,7 +191,9 @@ public class PVOrdineAcquistoEditViewModel {
}
private List getNewArticoli() {
- return Stream.of(mArticoliGriglia).filter(x -> x.getQtaOrd() > 0f).toList();
+ return mArticoliGriglia.stream()
+ .filter(x -> x.getQtaOrd() > 0f)
+ .collect(Collectors.toList());
}
public void orderNewProducts() {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
index 61868227..ee067f9b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
@@ -73,6 +73,7 @@ import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShould
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
+import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListView;
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView;
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUView;
@@ -248,7 +249,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
} else if (!noLUPresent.get()) {
this.mShouldCloseActivity = true;
BarcodeManager.removeCallback(barcodeScannerIstanceID);
- this.mViewmodel.closeLU(true);
+ this.mViewmodel.requestCloseLU(true);
} else {
BarcodeManager.removeCallback(barcodeScannerIstanceID);
super.onBackPressed();
@@ -409,7 +410,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
y.getRefMtbColr().getGestioneEnum().equals(mtbColrToDispatch.getGestioneEnum()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodMart(), mtbColrToDispatch.getCodMart()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodTagl(), mtbColrToDispatch.getCodTagl()) &&
- UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol())*/ y.getRefMtbColr().equals(mtbColrToDispatch))
+ UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol())*/
+ y.getRefMtbColr().equals(mtbColrToDispatch))
.map(MtbColr::getNumCnf)
.reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -925,7 +927,16 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override
public void onCreateDocsRequest() {
DialogYesNoView.newInstance("Chiusura ordine", "Vuoi creare i documenti per gli ordini selezionati?", result -> {
- this.mViewmodel.onCreateDocsAnswered(result);
+
+ switch (result) {
+ case YES:
+ this.mViewmodel.createDocs();
+ break;
+ case NO:
+ this.onOrderClosed();
+ break;
+ }
+
}).show(this.getSupportFragmentManager(), "tag");
}
@@ -935,6 +946,12 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
.show(getSupportFragmentManager(), "tag");
}
+ @Override
+ public void onChooseArtsRequest(List artsList, RunnableArgs> onComplete) {
+ DialogChooseArtsFromMtbAartListView.newInstance(artsList, onComplete, this::onLoadingEnded)
+ .show(getSupportFragmentManager(), "tag");
+ }
+
@Override
public void onOrderClosed() {
this.onLoadingEnded();
@@ -948,7 +965,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override
public void onBottomSheetLUClose() {
- this.mViewmodel.closeLU(true);
+ this.mViewmodel.requestCloseLU(true);
}
@Override
@@ -958,7 +975,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override
public void onMtbColrDelete(MtbColr mtbColr) {
- this.mViewmodel.deleteRow(mtbColr);
+ this.mViewmodel.requestDeleteRow(mtbColr);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneModule.java
index 307a815c..19a6802d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneModule.java
@@ -5,8 +5,11 @@ import dagger.Provides;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.DocumentiRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
@@ -21,8 +24,28 @@ public class SpedizioneModule {
}
@Provides
- SpedizioneViewModel providesSpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer, ColliDataRecoverService colliDataRecoverService, OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, DocumentiRESTConsumer documentiRESTConsumer) {
- return new SpedizioneViewModel(articoloRESTConsumer, barcodeRESTConsumer, colliDataRecoverService, ordiniRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, posizioniRESTConsumer, documentiRESTConsumer);
+ SpedizioneViewModel providesSpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer,
+ ColliDataRecoverService colliDataRecoverService,
+ OrdiniRESTConsumer ordiniRESTConsumer,
+ ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
+ PrinterRESTConsumer printerRESTConsumer,
+ BarcodeRESTConsumer barcodeRESTConsumer,
+ PosizioniRESTConsumer posizioniRESTConsumer,
+ DocumentiRESTConsumer documentiRESTConsumer,
+ ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer,
+ ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
+ MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer) {
+ return new SpedizioneViewModel(articoloRESTConsumer,
+ barcodeRESTConsumer,
+ colliDataRecoverService,
+ ordiniRESTConsumer,
+ colliMagazzinoRESTConsumer,
+ printerRESTConsumer,
+ posizioniRESTConsumer,
+ documentiRESTConsumer,
+ colliSpedizioneRESTConsumer,
+ colliLavorazioneRESTConsumer,
+ magazzinoAutomaticoRESTConsumer);
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
index 912b8e41..3851cfb5 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
@@ -6,22 +6,21 @@ import androidx.lifecycle.MutableLiveData;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
-import org.jetbrains.annotations.NotNull;
+import org.apache.commons.lang3.NotImplementedException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Objects;
+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.class_router.ClassRouter;
-import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
+import it.integry.integrywmsnative.core.class_router.interfaces.OrdiniVenditaInterface;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.exception.EmptyLUException;
import it.integry.integrywmsnative.core.exception.InvalidLUException;
@@ -48,19 +47,33 @@ import it.integry.integrywmsnative.core.model.MtbTCol;
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
-import it.integry.integrywmsnative.core.report.ReportType;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.DocumentiRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliScaricoRESTConsumerInterface;
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
import it.integry.integrywmsnative.core.rest.model.LoadColliDTO;
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
+import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickOrderRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CanUDSBeDeletedRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestOrderDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.PrintUDSRequestDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
@@ -68,13 +81,13 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.spedizione.exceptions.CurrentMonoLUPositionIsNotCorrectException;
+import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidMagazzinoAutomaticoMovementException;
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
-import it.integry.integrywmsnative.view.dialogs.DialogConsts;
public class SpedizioneViewModel {
@@ -88,12 +101,6 @@ public class SpedizioneViewModel {
private int mDefaultSegnoCol = -1;
private String mDefaultCodMdep = null;
private final List mDefaultFiltroOrdine = new ArrayList<>();
- private String mDefaultCodAnagOfUL = null;
- private String mDefaultRagSocOfUL = null;
- private String mDefaultRifOrdOfUL = null;
- private Integer mDefaultNumOrdOfUL = null;
- private Date mDefaultDataOrdOfUL = null;
- private String mDefaultCodJFasOfUL = null;
private Integer mDefaultCausaleOfUL = null;
private boolean mEnableGiacenza;
@@ -116,9 +123,15 @@ public class SpedizioneViewModel {
private final PrinterRESTConsumer mPrinterRESTConsumer;
private final PosizioniRESTConsumer mPosizioneRESTConsumer;
private final DocumentiRESTConsumer mDocumentiRESTConsumer;
+ private final ColliSpedizioneRESTConsumer mColliSpedizioneRESTConsumer;
+ private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
+
+ private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer;
+
+ private ColliScaricoRESTConsumerInterface mColliScaricoRESTConsumer;
@Inject
- public SpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliDataRecoverService colliDataRecoverService, OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, DocumentiRESTConsumer documentiRESTConsumer) {
+ public SpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliDataRecoverService colliDataRecoverService, OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, DocumentiRESTConsumer documentiRESTConsumer, ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer, ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer, MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer) {
this.mArticoloRESTConsumer = articoloRESTConsumer;
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
this.mColliDataRecoverService = colliDataRecoverService;
@@ -127,6 +140,9 @@ public class SpedizioneViewModel {
this.mPrinterRESTConsumer = printerRESTConsumer;
this.mPosizioneRESTConsumer = posizioniRESTConsumer;
this.mDocumentiRESTConsumer = documentiRESTConsumer;
+ this.mColliSpedizioneRESTConsumer = colliSpedizioneRESTConsumer;
+ this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
+ this.mMagazzinoAutomaticoRESTConsumer = mMagazzinoAutomaticoRESTConsumer;
}
@@ -143,6 +159,7 @@ public class SpedizioneViewModel {
this.mDefaultCausaleOfUL = defaultCausaleUL;
this.mEnableQuantityReset = enableQuantityReset;
this.mUseQtaOrd = useQtaOrd;
+
if (testateOrdini != null) {
this.mIsOrdTrasf = Stream.of(testateOrdini).map(OrdineUscitaInevasoDTO::isOrdTrasf).withoutNulls().distinctBy(x -> x).findFirst().get();
}
@@ -203,59 +220,31 @@ public class SpedizioneViewModel {
}
}
+
//Definizione del filtro ordine da applicare a tutti i colli generati
- Stream.of(mTestateOrdini).forEach(x -> {
- FiltroOrdineDTO filtro = new FiltroOrdineDTO().setDataOrd(x.getDataOrdD()).setNumOrd(x.getNumOrd()).setGestioneOrd(x.getGestione()).setDataCons(x.getDataConsD());
+ mTestateOrdini
+ .forEach(x -> {
+ var filtro = new FiltroOrdineDTO()
+ .setDataOrd(x.getDataOrdD())
+ .setNumOrd(x.getNumOrd())
+ .setGestioneOrd(x.getGestione())
+ .setDataCons(x.getDataConsD());
- if (!mDefaultFiltroOrdine.contains(filtro)) mDefaultFiltroOrdine.add(filtro);
- });
+ if (!mDefaultFiltroOrdine.contains(filtro))
+ mDefaultFiltroOrdine.add(filtro);
+ });
- //Definizione del codAnag
- List foundCodAnag = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getCodAnagOrd).distinctBy(x -> x).toList();
+ if (mDefaultGestioneOfUL == GestioneEnum.VENDITA) {
+ mColliScaricoRESTConsumer = mColliSpedizioneRESTConsumer;
- if (foundCodAnag != null && foundCodAnag.size() == 1) {
- mDefaultCodAnagOfUL = foundCodAnag.get(0);
- }
+ } else if (mDefaultGestioneOfUL == GestioneEnum.LAVORAZIONE && mDefaultSegnoCol == -1) {
+ mColliScaricoRESTConsumer = mColliLavorazioneRESTConsumer;
-
- //Definizione del codAnag
- List foundRagSoc = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getRagSocOrd).distinctBy(x -> x).toList();
-
- if (foundRagSoc != null && foundRagSoc.size() == 1) {
- mDefaultRagSocOfUL = foundRagSoc.get(0);
- }
-
-
- //Definizione del rifOrd
- List foundRifOrd = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getRifOrd).distinctBy(x -> x).toList();
-
- if (foundRifOrd != null && foundRifOrd.size() == 1) {
- mDefaultRifOrdOfUL = foundRifOrd.get(0);
- }
-
-
- //Definizione del numOrd
- List foundNumOrd = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getNumOrd).withoutNulls().distinctBy(x -> x).toList();
-
- if (foundNumOrd != null && foundNumOrd.size() == 1) {
- mDefaultNumOrdOfUL = foundNumOrd.get(0);
- }
-
-
- //Definizione del dataOrd
- List foundDataOrd = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getDataOrdD).withoutNulls().distinctBy(x -> x).toList();
-
- if (foundDataOrd != null && foundDataOrd.size() == 1) {
- mDefaultDataOrdOfUL = foundDataOrd.get(0);
- }
-
-
- //Definizione del codJfas
- List foundCodJfas = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getCodJfas).distinctBy(x -> x).toList();
-
- if (foundCodJfas != null && foundCodJfas.size() == 1) {
- mDefaultCodJFasOfUL = foundCodJfas.get(0);
+ } else if (mDefaultGestioneOfUL == GestioneEnum.LAVORAZIONE && mDefaultSegnoCol == +1) {
+ mColliScaricoRESTConsumer = mColliLavorazioneRESTConsumer;
+ } else {
+ this.sendError(new NotImplementedException(String.format("Gestione %s e segno %d non gestito", mDefaultGestioneOfUL.getText(), mDefaultSegnoCol)));
}
}
@@ -282,6 +271,13 @@ public class SpedizioneViewModel {
if (this.mListener != null) mListener.onCreateDocsRequest();
}
+ private void sendChooseArtRequest(List mtbAarts, RunnableArgs onComplete) {
+ if (this.mListener != null) mListener.onChooseArtRequest(mtbAarts, onComplete);
+ }
+
+ private void sendChooseArtsRequest(List mtbAarts, RunnableArgs> onComplete) {
+ if (this.mListener != null) mListener.onChooseArtsRequest(mtbAarts, onComplete);
+ }
private void sendOnOrderClosed() {
if (this.mListener != null) mListener.onOrderClosed();
@@ -379,45 +375,53 @@ public class SpedizioneViewModel {
private void processBarcodePosizioneNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(barcodeScanDTO.getStringValue());
- if (foundPosizione != null) {
- if (foundPosizione.isFlagMonoCollo()) {
-
- this.mPosizioneRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
- if (mtbColtList == null || mtbColtList.size() != 1) {
- //Nessuna UL trovata oppure più UL nella stessa posizione
- this.sendError(new NoLUFoundException());
- } else {
- mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
-
- if (mtbColt.getSegno() != mDefaultSegnoCol) {
- this.sendError(new InvalidLUException());
- onComplete.run();
- } else {
- //Reset of existant mtbColrs
- mtbColt.setMtbColr(new ObservableArrayList<>());
-
- this.mCurrentMtbColt = mtbColt;
- mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
- this.mIsNewLU = false;
-
- this.sendLUOpened(mtbColt);
-
- onComplete.run();
- }
-
- }, this::sendError);
- }
- }, this::sendError);
-
- } else {
- //La posizione non è Mono-UL
- this.sendError(new CurrentMonoLUPositionIsNotCorrectException());
- }
-
- } else {
+ if (foundPosizione == null) {
//Nessuna posizione trovata con questo barcode
this.sendError(new ScannedPositionNotExistException());
+ return;
}
+
+ if (!foundPosizione.isFlagMonoCollo()) {
+ //La posizione non è Mono-UL
+ this.sendError(new CurrentMonoLUPositionIsNotCorrectException());
+ return;
+ }
+
+ if (foundPosizione.isMagazzinoAutomatico()) {
+ //La posizione è di un magazzino automatico
+ this.sendError(new InvalidMagazzinoAutomaticoMovementException(foundPosizione));
+ return;
+ }
+
+ this.mPosizioneRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
+ if (mtbColtList == null || mtbColtList.size() != 1) {
+ //Nessuna UL trovata oppure più UL nella stessa posizione
+ this.sendError(new NoLUFoundException());
+ return;
+ }
+
+ mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
+
+ if (mtbColt.getSegno() != mDefaultSegnoCol) {
+ this.sendError(new InvalidLUException());
+ onComplete.run();
+ return;
+ }
+
+ //Reset of existant mtbColrs
+ mtbColt.setMtbColr(new ObservableArrayList<>());
+
+ this.mCurrentMtbColt = mtbColt;
+ this.mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
+ this.mIsNewLU = false;
+
+ this.sendLUOpened(mtbColt);
+
+ onComplete.run();
+
+ }, this::sendError);
+ }, this::sendError);
+
}
private void processBarcodeNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
@@ -475,38 +479,44 @@ public class SpedizioneViewModel {
private void executeEtichettaPosizione(String posizione, Runnable onComplete) {
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(posizione);
- if (foundPosizione != null) {
- if (foundPosizione.isFlagMonoCollo()) {
-
- this.mPosizioneRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
-
- if (mtbColtList == null || mtbColtList.size() != 1) {
- //Nessuna UL trovata oppure più UL nella stessa posizione
- this.sendError(new NoLUFoundException());
-
- } else {
- mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
- if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
- searchArtFromUL(mtbColt, onComplete);
- } else {
- this.sendError(new EmptyLUException());
- }
-
- }, this::sendError);
- }
-
- }, this::sendError);
-
- } else {
- //La posizione non è Mono-UL
- this.sendError(new CurrentMonoLUPositionIsNotCorrectException());
- }
-
- } else {
+ if (foundPosizione == null) {
//Nessuna posizione trovata con questo barcode
this.sendError(new ScannedPositionNotExistException());
-
+ return;
}
+
+ if (!foundPosizione.isFlagMonoCollo()) {
+ //La posizione non è Mono-UL
+ this.sendError(new CurrentMonoLUPositionIsNotCorrectException());
+ return;
+ }
+
+ if (foundPosizione.isMagazzinoAutomatico()) {
+ //Eseguo picking da magazzino automatico
+ executeMagazzinoAutomatico(foundPosizione, onComplete);
+ return;
+ }
+
+
+ this.mPosizioneRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
+
+ if (mtbColtList == null || mtbColtList.size() != 1) {
+ //Nessuna UL trovata oppure più UL nella stessa posizione
+ this.sendError(new NoLUFoundException());
+ return;
+ }
+
+ mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
+ if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
+ this.searchArtFromUL(mtbColt, onComplete);
+ } else {
+ this.sendError(new EmptyLUException());
+ }
+
+ }, this::sendError);
+
+ }, this::sendError);
+
}
private void executeEtichettaLU(String SSCC, Runnable onComplete) {
@@ -569,7 +579,7 @@ public class SpedizioneViewModel {
if (mtbAartList.size() == 1) {
this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
} else {
- mListener.onChooseArtRequest(mtbAartList, art -> this.searchArtFromAnag(art, pickData, onComplete));
+ this.sendChooseArtRequest(mtbAartList, art -> this.searchArtFromAnag(art, pickData, onComplete));
}
} else {
this.sendError(new NoResultFromBarcodeException(barcodeProd));
@@ -578,6 +588,55 @@ public class SpedizioneViewModel {
}, this::sendError);
}
+ private void executeMagazzinoAutomatico(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
+ var magazzinoAutomaticoPickableArts = Stream.of(Objects.requireNonNull(this.mPickingList.getValue()))
+ .filter(x -> Stream.of(x.getMtbColts()).anyMatch(y -> y.getPosizione().equalsIgnoreCase(mtbDepoPosizione.getPosizione())))
+ .toList();
+
+ var mtbAarts = Stream.of(magazzinoAutomaticoPickableArts)
+ .map(PickingObjectDTO::getMtbAart)
+ .toList();
+
+ this.sendChooseArtsRequest(mtbAarts, selectedArts -> {
+
+ final List orders = Stream.of(this.mTestateOrdini)
+ .map(x -> new MagazzinoAutomaticoPickOrderRequestDTO(UtilityDate.toLocalDate(x.getDataOrdD()), x.getGestione(), x.getNumOrd())
+ .setDataCons(UtilityDate.toLocalDate(x.getDataConsD())))
+ .toList();
+
+ final List magazzinoAutomaticoPickItemRequestDTOList = new ArrayList<>();
+ for (MtbAart selectedArt : selectedArts) {
+ final PickingObjectDTO pickingObjectDTO = Stream.of(magazzinoAutomaticoPickableArts)
+ .filter(x -> x.getMtbAart().getCodMart().equalsIgnoreCase(selectedArt.getCodMart()))
+ .findFirst()
+ .orElse(null);
+
+ final List mtbColrs = Stream.of(pickingObjectDTO.getMtbColts())
+ .filter(x -> x.getPosizione().equalsIgnoreCase(mtbDepoPosizione.getPosizione()))
+ .flatMap(x -> Stream.of(x.getMtbColr()))
+ .filter(x -> x.getCodMart().equalsIgnoreCase(selectedArt.getCodMart()))
+ .toList();
+
+ MagazzinoAutomaticoPickItemRequestDTO itemDto = new MagazzinoAutomaticoPickItemRequestDTO(selectedArt.getCodMart())
+ .setQtaTot(Stream.of(mtbColrs).map(MtbColr::getQtaCol).reduce(BigDecimal.ZERO, BigDecimal::add))
+ .setNumCnf(Stream.of(mtbColrs).map(MtbColr::getNumCnf).reduce(BigDecimal.ZERO, BigDecimal::add))
+ .setUntMis(selectedArt.getUntMis());
+
+ magazzinoAutomaticoPickItemRequestDTOList.add(itemDto);
+ }
+
+
+ var magazzinoAutomaticoPickRequest = new MagazzinoAutomaticoPickItemsRequestDTO()
+ .setShouldCreateUDS(true)
+ .setDefaultGestioneOfNewUDS(mDefaultGestioneOfUL.getText())
+ .setOrdersOfNewUDS(orders)
+ .setItemsToPick(magazzinoAutomaticoPickItemRequestDTOList);
+
+ mMagazzinoAutomaticoRESTConsumer.pickItems(mtbDepoPosizione,
+ magazzinoAutomaticoPickRequest, onComplete, this::sendError);
+ });
+ }
+
private void searchArtFromUL(MtbColt scannedUL, Runnable onComplete) {
final List pickingList = mPickingList.getValue();
@@ -1126,98 +1185,127 @@ public class SpedizioneViewModel {
}
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
- MtbColt mtbColt = new MtbColt();
- mtbColt.initDefaultFields(mDefaultGestioneOfUL).setSegno(mDefaultSegnoCol).setRifOrd(mDefaultRifOrdOfUL).setNumOrd(mDefaultNumOrdOfUL).setDataOrdD(mDefaultDataOrdOfUL).setCodAnag(mDefaultCodAnagOfUL).setCodMdep(mDefaultCodMdep).setRagSocCliente(mDefaultRagSocOfUL).setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+ final List orders = this.mTestateOrdini.stream()
+ .map(x -> new CreateUDSRequestOrderDTO()
+ .setDataCons(UtilityDate.toLocalDate(x.getDataConsD()))
+ .setDataOrd(UtilityDate.toLocalDate(x.getDataOrdD()))
+ .setGestione(x.getGestione())
+ .setNumOrd(x.getNumOrd()))
+ .collect(Collectors.toList());
- if (mDefaultGestioneOfUL == GestioneEnum.LAVORAZIONE && mDefaultSegnoCol == -1)
- mtbColt.setPosizione(mDefaultCodJFasOfUL);
- if (customNumCollo != null) mtbColt.setNumCollo(customNumCollo);
- if (!UtilityString.isNullOrEmpty(customSerCollo)) mtbColt.setSerCollo(customSerCollo);
+ final CreateUDSRequestDTO createUDSRequestDTO = new CreateUDSRequestDTO()
+ .setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
+ .setSegno(mDefaultSegnoCol)
+ .setNumCollo(customNumCollo)
+ .setSerCollo(customSerCollo)
+ .setOrders(orders);
- mtbColt.generaFiltroOrdineFromDTO(mDefaultFiltroOrdine);
-
- mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
- mtbColt.setNumCollo(value.getNumCollo()).setDataCollo(value.getDataColloS()).setMtbColr(new ObservableArrayList<>());
-
- this.mCurrentMtbColt = mtbColt;
- mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
+ this.mColliScaricoRESTConsumer.createUDS(createUDSRequestDTO, createdUDS -> {
+ this.mCurrentMtbColt = createdUDS;
+ mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(createdUDS, mTestateOrdini);
this.mIsNewLU = true;
if (onComplete != null) onComplete.run();
- this.sendLUOpened(mtbColt);
+ this.sendLUOpened(createdUDS);
}, this::sendError);
-
}
public void saveNewRow(PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
this.sendOnLoadingStarted();
- final MtbColr mtbColr = new MtbColr().setCausale(mDefaultCausaleOfUL).setCodMart(pickingObjectDTO.getMtbAart().getCodMart()).setPartitaMag(partitaMag).setDataScadPartita(dataScad).setQtaCol(qtaTot).setQtaCnf(qtaCnf).setNumCnf(numCnf).setDescrizione(pickingObjectDTO.getMtbAart().getDescrizioneEstesa()).setDatetimeRow(UtilityDate.getDateInstance());
+
+// final MtbColr mtbColr = new MtbColr()
+// .setCausale(mDefaultCausaleOfUL)
+// .setCodMart(pickingObjectDTO.getMtbAart().getCodMart())
+// .setPartitaMag(partitaMag)
+// .setDataScadPartita(dataScad)
+// .setQtaCol(qtaTot)
+// .setQtaCnf(qtaCnf)
+// .setNumCnf(numCnf)
+// .setDescrizione(pickingObjectDTO.getMtbAart().getDescrizioneEstesa())
+// .setDatetimeRow(UtilityDate.getDateInstance());
//TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'è ne una che corrisponde con la partita richiesta
- final MtbColr mtbColrToDispatch = pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getSourceMtbColt() != null && pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null && pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ? pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null;
-
- if (mtbColrToDispatch != null) {
- if (UtilityString.isNullOrEmpty(mCurrentMtbColt.getCodTcol()))
- mCurrentMtbColt.setCodTcol(UtilityString.empty2null(pickingObjectDTO.getTempPickData().getSourceMtbColt().getCodTcol()));
-
- mtbColr.setCodJcom(UtilityString.empty2null(mtbColrToDispatch.getCodJcom())).setSerColloRif(UtilityString.empty2null(mtbColrToDispatch.getSerCollo())).setNumColloRif(mtbColrToDispatch.getNumCollo()).setGestioneRif(UtilityString.empty2null(mtbColrToDispatch.getGestione())).setDataColloRif(UtilityString.empty2null(mtbColrToDispatch.getDataColloS()));
+ final MtbColr mtbColrToDispatch = pickingObjectDTO.getTempPickData() != null &&
+ pickingObjectDTO.getTempPickData().getSourceMtbColt() != null &&
+ pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null &&
+ pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ?
+ pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().get(0) : null;
- if (mtbColrToDispatch.getPesoNettoKg() != null) {
- //Proporzione
- BigDecimal pesoNettoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoNettoKg()), mtbColrToDispatch.getQtaCol());
- mtbColr.setPesoNettoKg(pesoNettoKg);
- }
-
- if (mtbColrToDispatch.getPesoLordoKg() != null) {
- //Proporzione
- BigDecimal pesoLordoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoLordoKg()), mtbColrToDispatch.getQtaCol());
- mtbColr.setPesoLordoKg(pesoLordoKg);
- }
+// if (mtbColrToDispatch != null) {
+// if (UtilityString.isNullOrEmpty(mCurrentMtbColt.getCodTcol()))
+// mCurrentMtbColt.setCodTcol(UtilityString.empty2null(pickingObjectDTO.getTempPickData().getSourceMtbColt().getCodTcol()));
+//
+// mtbColr.setCodJcom(UtilityString.empty2null(mtbColrToDispatch.getCodJcom()))
+// .setSerColloRif(UtilityString.empty2null(mtbColrToDispatch.getSerCollo()))
+// .setNumColloRif(mtbColrToDispatch.getNumCollo())
+// .setGestioneRif(UtilityString.empty2null(mtbColrToDispatch.getGestione()))
+// .setDataColloRif(UtilityString.empty2null(mtbColrToDispatch.getDataColloS()));
+//
+//
+// if (mtbColrToDispatch.getPesoNettoKg() != null) {
+// //Proporzione
+// BigDecimal pesoNettoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoNettoKg()), mtbColrToDispatch.getQtaCol());
+// mtbColr.setPesoNettoKg(pesoNettoKg);
+// }
+//
+// if (mtbColrToDispatch.getPesoLordoKg() != null) {
+// //Proporzione
+// BigDecimal pesoLordoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoLordoKg()), mtbColrToDispatch.getQtaCol());
+// mtbColr.setPesoLordoKg(pesoLordoKg);
+// }
+// }
+//
+// mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+//
+// MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
+// cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
+//
+// cloneMtbColt.setMtbColr(new ObservableArrayList<>());
+// cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone());
- } else if (mEnableGiacenza && pickingObjectDTO.getMtbColts() != null && pickingObjectDTO.getMtbColts().size() > 0) {
- // Vecchia logica di aggancio UL (se non ho sparato una etichetta UL comunque ti aggangio la prima UL suggerita)
-// mtbColr
-// .setCodJcom(UtilityString.empty2null(item.getCodJcom()))
-// .setSerColloRif(UtilityString.empty2null(item.getSerCollo()))
-// .setNumColloRif(item.getNumCollo())
-// .setGestioneRif(UtilityString.empty2null(item.getGestione()))
-// .setDataColloRif(UtilityString.empty2null(item.getDataColloS()));
- }
-
- mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
-
- MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
- cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
-
- cloneMtbColt.setMtbColr(new ObservableArrayList<>());
- cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone());
-
- boolean shouldPrint = true;
+ boolean shouldPrint = !shouldCloseLU || mCurrentMtbColt.getMtbColr().size() != 0;
//Se è l'unico articolo del collo (controllo se è uguale a 0 perché ancora non è stato aggiunto nella lista delle righe)
- if (shouldCloseLU && mCurrentMtbColt.getMtbColr().size() == 0) {
- shouldPrint = false;
- }
-
if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
resetMatchedRows();
this.sendOnLoadingEnded();
- if (shouldCloseLU) closeLU(shouldPrint);
+ if (shouldCloseLU) requestCloseLU(shouldPrint);
return;
}
- boolean finalShouldPrint = shouldPrint;
- mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
- mtbColr.setDataCollo(value.getDataColloS()).setNumCollo(value.getNumCollo()).setGestione(value.getGestione()).setSerCollo(value.getSerCollo()).setRiga(value.getMtbColr().get(value.getMtbColr().size() - 1).getRiga()).setUntMis(pickingObjectDTO.getMtbAart().getUntMis()).setMtbAart(pickingObjectDTO.getMtbAart());
+ var insertUDSRowRequestDto = new InsertUDSRowRequestDTO()
+ .setSourceMtbColr(mtbColrToDispatch)
+ .setCodMart(pickingObjectDTO.getMtbAart().getCodMart())
+ .setQtaTot(qtaTot)
+ .setQtaCnf(qtaCnf)
+ .setNumCnf(numCnf)
+ .setPartitaMag(partitaMag)
+ .setTargetMtbColt(mCurrentMtbColt);
+
+ if (dataScad != null)
+ insertUDSRowRequestDto
+ .setDataScad(UtilityDate.toLocalDate(dataScad));
+
+ this.mColliScaricoRESTConsumer.insertUDSRow(insertUDSRowRequestDto, createdMtbColr -> {
+ pickingObjectDTO.getWithdrawMtbColrs().add(createdMtbColr);
+ this.mCurrentMtbColt.getMtbColr().add(createdMtbColr);
+
+ createdMtbColr
+ .setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
+ .setMtbAart(pickingObjectDTO.getMtbAart());
if (mEnableGiacenza) {
- MtbColr refMtbColr = new MtbColr().setCodMart(mtbColr.getCodMart()).setPartitaMag(mtbColr.getPartitaMag()).setCodTagl(mtbColr.getCodTagl()).setCodCol(mtbColr.getCodCol());
+ MtbColr refMtbColr = new MtbColr()
+ .setCodMart(createdMtbColr.getCodMart())
+ .setPartitaMag(createdMtbColr.getPartitaMag())
+ .setCodTagl(createdMtbColr.getCodTagl())
+ .setCodCol(createdMtbColr.getCodCol());
if (refMtbColt != null) {
@@ -1227,23 +1315,73 @@ public class SpedizioneViewModel {
refMtbColr.setId(originalRefMtbColr.getId());
}
- refMtbColr.setNumCollo(refMtbColt.getNumCollo()).setDataCollo(refMtbColt.getDataColloS()).setSerCollo(refMtbColt.getSerCollo()).setGestione(refMtbColt.getGestione());
+ refMtbColr.setNumCollo(refMtbColt.getNumCollo())
+ .setDataCollo(refMtbColt.getDataColloS())
+ .setSerCollo(refMtbColt.getSerCollo())
+ .setGestione(refMtbColt.getGestione());
}
- mtbColr.setRefMtbColr(refMtbColr);
+ createdMtbColr.setRefMtbColr(refMtbColr);
}
- pickingObjectDTO.getWithdrawMtbColrs().add(mtbColr);
- mCurrentMtbColt.getMtbColr().add(mtbColr);
-
//Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei
resetMatchedRows();
this.sendOnRowSaved();
this.sendOnLoadingEnded();
- if (shouldCloseLU) closeLU(finalShouldPrint);
+ if (shouldCloseLU) requestCloseLU(shouldPrint);
+
}, this::sendError);
+
+// boolean finalShouldPrint = shouldPrint;
+// mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
+//
+// mtbColr
+// .setDataCollo(value.getDataColloS())
+// .setNumCollo(value.getNumCollo())
+// .setGestione(value.getGestione())
+// .setSerCollo(value.getSerCollo())
+// .setRiga(value.getMtbColr().get(value.getMtbColr().size() - 1).getRiga())
+// .setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
+// .setMtbAart(pickingObjectDTO.getMtbAart());
+//
+//
+// if (mEnableGiacenza) {
+// MtbColr refMtbColr = new MtbColr()
+// .setCodMart(mtbColr.getCodMart())
+// .setPartitaMag(mtbColr.getPartitaMag())
+// .setCodTagl(mtbColr.getCodTagl())
+// .setCodCol(mtbColr.getCodCol());
+//
+// if (refMtbColt != null) {
+//
+// MtbColr originalRefMtbColr = refMtbColt.getMtbColr() != null && refMtbColt.getMtbColr().size() > 0 ? refMtbColt.getMtbColr().get(0) : null;
+//
+// if (originalRefMtbColr != null) {
+// refMtbColr.setId(originalRefMtbColr.getId());
+// }
+//
+// refMtbColr.setNumCollo(refMtbColt.getNumCollo())
+// .setDataCollo(refMtbColt.getDataColloS())
+// .setSerCollo(refMtbColt.getSerCollo())
+// .setGestione(refMtbColt.getGestione());
+// }
+// mtbColr.setRefMtbColr(refMtbColr);
+// }
+//
+// pickingObjectDTO.getWithdrawMtbColrs().add(mtbColr);
+// mCurrentMtbColt.getMtbColr().add(mtbColr);
+//
+// //Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei
+// resetMatchedRows();
+//
+// this.sendOnRowSaved();
+// this.sendOnLoadingEnded();
+//
+// if (shouldCloseLU) requestCloseLU(finalShouldPrint);
+// }, this::sendError);
+
}
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
@@ -1281,159 +1419,254 @@ public class SpedizioneViewModel {
}
- public void deleteRow(MtbColr mtbColrToDelete) {
+ public void requestDeleteRow(MtbColr mtbColrToDelete) {
this.sendMtbColrDeleteRequest(canDelete -> {
+ if (!canDelete)
+ return;
- if (canDelete) {
- this.sendOnLoadingStarted();
+ this.sendOnLoadingStarted();
- MtbColt mtbColt = new MtbColt().setNumCollo(mtbColrToDelete.getNumCollo()).setDataCollo(mtbColrToDelete.getDataColloS()).setSerCollo(mtbColrToDelete.getSerCollo()).setGestione(mtbColrToDelete.getGestione()).setMtbColr(new ObservableArrayList<>());
- mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
+ var deleteUDSRowRequestoDTO = new DeleteUDSRowRequestDTO()
+ .setMtbColrToDelete(mtbColrToDelete);
- MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
+ this.mColliScaricoRESTConsumer.deleteUDSRow(deleteUDSRowRequestoDTO, () -> {
+ Optional pickingObjectDTO = Stream.of(this.mPickingList.getValue())
+ .filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToDelete))
+ .findSingle();
- if (mCurrentMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) {
- mtbColr.setOperation(CommonModelConsts.OPERATION.DELETE);
- } else {
- mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT);
- mtbColr.setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1))).setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1))).setRiga(null).setPesoLordoKg(null).setPesoNettoKg(null);
+ if (pickingObjectDTO.isPresent()) {
+ pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToDelete);
}
- mtbColt.getMtbColr().add(mtbColr);
+ this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
- this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
-
- Optional pickingObjectDTO = Stream.of(this.mPickingList.getValue()).filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToDelete)).findSingle();
-
- if (pickingObjectDTO.isPresent()) {
- pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToDelete);
- }
-
- this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
-
- this.resetMatchedRows();
- this.sendOnRowSaved();
- this.sendOnLoadingEnded();
-
- }, this::sendError);
- }
+ this.resetMatchedRows();
+ this.sendOnRowSaved();
+ this.sendOnLoadingEnded();
+ }, this::sendError);
});
}
- public void closeLU(boolean shouldPrint) {
+ public void requestCloseLU(boolean shouldPrint) {
if (mCurrentMtbColt == null) return;
this.sendOnLoadingStarted();
- mColliMagazzinoRESTConsumer.canLUBeDeleted(mCurrentMtbColt, canBeDeleted -> {
+ this.checkIfShouldBeDeleted(() -> {
+ deleteLU(() -> {
+ this.mCurrentMtbColt = null;
- if (canBeDeleted) {
- deleteLU(() -> {
- this.mIsNewLU = false;
- this.sendLUClosed();
- this.sendOnLoadingEnded();
- });
- } else {
- if (mDefaultSegnoCol == -1) {
- Runnable saveAction = () -> {
- if (SettingsManager.iDB().isFlagAskInfoAggiuntiveSpedizione()) {
- this.mListener.onInfoAggiuntiveRequired(mCurrentMtbColt, (note, mtbTcol) -> {
- mCurrentMtbColt.setAnnotazioni(note);
- if (mtbTcol != null) {
- mCurrentMtbColt.setMtbTCol(mtbTcol);
- mCurrentMtbColt.setCodTcol(mtbTcol.getCodTcol());
- } else {
- mCurrentMtbColt.setMtbTCol(null);
- mCurrentMtbColt.setCodTcol(null);
- }
- mColliMagazzinoRESTConsumer.updateDataFine(mCurrentMtbColt, () -> distribuisciLU((generatedMtbColts) -> {
- if (shouldPrint)
- printCollo(generatedMtbColts, () -> this.postCloseOperations(generatedMtbColts));
- else {
- postCloseOperations(generatedMtbColts);
- }
- }), this::sendError);
- });
- } else {
+ if (mMtbColtSessionID != null)
+ this.mColliDataRecoverService.closeSession(mMtbColtSessionID);
- mColliMagazzinoRESTConsumer.updateDataFine(mCurrentMtbColt, () -> distribuisciLU((generatedMtbColts) -> {
- if (shouldPrint)
- printCollo(generatedMtbColts, () -> this.postCloseOperations(generatedMtbColts));
- else {
- postCloseOperations(generatedMtbColts);
- }
- }), this::sendError);
- }
- };
+ this.mIsNewLU = false;
+ this.sendLUClosed();
+ this.sendOnLoadingEnded();
+ });
- if (mShouldAskPesoLU) {
- this.sendLUPesoRequired(mCurrentMtbColt.getCodTcol(), mCurrentMtbColt.getPesoNettoKg(), mCurrentMtbColt.getPesoKg(), (newCodTcol, newNetWeight, newGrossWeight) -> {
+ }, () -> {
+ this.askPeso(() -> {
- mCurrentMtbColt.setCodTcol(newCodTcol);
- mCurrentMtbColt.setPesoNettoKg(newNetWeight);
- mCurrentMtbColt.setPesoKg(newGrossWeight);
+ this.askInfoAggiuntive(() -> {
- saveAction.run();
- });
- } else {
- saveAction.run();
- }
- } else {
+ this.closeLU(generatedMtbColts -> {
- distribuisciLU(mtbColts -> {
- if (this.mIsNewLU) {
- this.sendLUPositionChangeRequest((shouldChangePosition, mtbDepoPosizione) -> {
+ this.mColliMagazzinoRESTConsumer.fillMtbAartsOfMtbColts(generatedMtbColts, filledMtbColts -> {
- if (shouldChangePosition) {
+ this.askPositionChange(
+ filledMtbColts,
+ positionedMtbColts -> {
- if (mtbDepoPosizione != null) {
- if (mtbDepoPosizione.isFlagMonoCollo()) {
- this.mPosizioneRESTConsumer.getBancaliInPosizione(mtbDepoPosizione, destMtbColtList -> {
- if (destMtbColtList == null || destMtbColtList.size() != 1) {
- //Nessuna UL trovata oppure più UL nella stessa posizione
- this.sendError(new NoLUFoundException());
- } else {
- if (destMtbColtList.get(0).getSegno() != mDefaultSegnoCol) {
- this.sendError(new InvalidLUException());
- } else {
- moveLUtoLU(mtbColts, destMtbColtList.get(0), savedMtbColt -> {
- ArrayList savedMtbColtList = new ArrayList<>();
- savedMtbColtList.add(savedMtbColt);
- postCloseOperations(savedMtbColtList);
- });
- }
+ this.askPrint(shouldPrint, positionedMtbColts, () -> {
+ positionedMtbColts.stream()
+ .filter(x -> !this.mColliRegistrati.contains(x))
+ .forEach(x -> this.mColliRegistrati.add(x));
- }
- }, this::sendError);
- } else {
- //La posizione non è Mono-UL
- this.sendError(new CurrentMonoLUPositionIsNotCorrectException());
- }
- } else {
- //Nessuna posizione trovata con questo barcode
- this.sendError(new ScannedPositionNotExistException());
- }
- } else {
- postCloseOperations(mtbColts);
- }
- });
- } else {
- postCloseOperations(mtbColts);
- }
+ postCloseOperations(positionedMtbColts);
+
+ this.mIsNewLU = false;
+
+ this.resetMatchedRows();
+ this.sendLUClosed();
+ this.sendOnLoadingEnded();
+ });
+
+ });
+
+ }, this::sendError);
});
- }
- }
- }, this::sendError);
+
+ });
+ });
+ });
}
- private void distribuisciLU(RunnableArgs> onComplete) {
- MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
- IOrdiniVendita ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
- ordiniVendita.distribuisciCollo(cloneMtbColt, mTestateOrdini, mtbColts -> {
- mColliMagazzinoRESTConsumer.fillMtbAartsOfMtbColts(mtbColts, onComplete, this::sendError);
-// mColliMagazzinoRESTConsumer.getMultipleByTestate(mtbColts, false, onComplete, this::sendError);
+ private void closeLU(RunnableArgs> onComplete) {
+ var closeUDSRequestDto = new CloseUDSRequestDTO()
+ .setMtbColt(this.mCurrentMtbColt)
+ //.setPrintSSCC(shouldPrint)
+ .setOrderCodMdep(mTestateOrdini.get(0).getCodMdep())
+ .setEnableTransferLogic(isTrasfOrderLogicEnabled());
+
+
+ this.mColliSpedizioneRESTConsumer.closeUDS(closeUDSRequestDto, closeResponse -> {
+ onComplete.run(closeResponse.getGeneratedMtbColts());
}, this::sendError);
+
+
+ }
+
+ private void checkIfShouldBeDeleted(Runnable onDeleted, Runnable onContinue) {
+ var requestDto =
+ new CanUDSBeDeletedRequestDTO()
+ .setMtbColt(this.mCurrentMtbColt);
+
+ this.mColliSpedizioneRESTConsumer.canUDSBeDeleted(requestDto,
+ canBeDeleted -> {
+ if (canBeDeleted == null || !canBeDeleted)
+ onContinue.run();
+
+ else onDeleted.run();
+
+ }, this::sendError);
+ }
+
+
+ private void deleteLU(Runnable onComplete) {
+ this.mColliSpedizioneRESTConsumer.deleteUDS(
+ new DeleteUDSRequestDTO()
+ .setMtbColt(this.mCurrentMtbColt),
+ onComplete, this::sendError);
+ }
+
+ private boolean isTrasfOrderLogicEnabled() {
+ OrdiniVenditaInterface ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
+ return ordiniVendita != null && ordiniVendita.isTrasfOrder(mTestateOrdini);
+ }
+
+ private void askPeso(Runnable onComplete) {
+
+ if (mDefaultSegnoCol != -1 || !mShouldAskPesoLU) {
+ onComplete.run();
+ return;
+ }
+
+ this.sendLUPesoRequired(mCurrentMtbColt.getCodTcol(), mCurrentMtbColt.getPesoNettoKg(), mCurrentMtbColt.getPesoKg(), (newCodTcol, newNetWeight, newGrossWeight) -> {
+
+ mCurrentMtbColt.setCodTcol(newCodTcol);
+ mCurrentMtbColt.setPesoNettoKg(newNetWeight);
+ mCurrentMtbColt.setPesoKg(newGrossWeight);
+
+ onComplete.run();
+ });
+
+ }
+
+ private void askInfoAggiuntive(Runnable onComplete) {
+ if (mDefaultSegnoCol != -1 || !SettingsManager.iDB().isFlagAskInfoAggiuntiveSpedizione()) {
+ onComplete.run();
+ return;
+ }
+
+ this.mListener.onInfoAggiuntiveRequired(mCurrentMtbColt, (note, mtbTcol) -> {
+ mCurrentMtbColt.setAnnotazioni(note);
+
+ if (mtbTcol != null) {
+ mCurrentMtbColt.setMtbTCol(mtbTcol);
+ mCurrentMtbColt.setCodTcol(mtbTcol.getCodTcol());
+ } else {
+ mCurrentMtbColt.setMtbTCol(null);
+ mCurrentMtbColt.setCodTcol(null);
+ }
+
+ onComplete.run();
+ });
+ }
+
+ private void askPositionChange(List mtbColtsToMove, RunnableArgs> onComplete) {
+ if (mDefaultGestioneOfUL != GestioneEnum.LAVORAZIONE || mDefaultSegnoCol != 1 || !this.mIsNewLU) {
+ onComplete.run(mtbColtsToMove);
+ return;
+ }
+
+ this.sendLUPositionChangeRequest((shouldChangePosition, mtbDepoPosizione) -> {
+
+ if (!shouldChangePosition) {
+ onComplete.run(mtbColtsToMove);
+ return;
+ }
+
+ if (mtbDepoPosizione == null) {
+ //Nessuna posizione trovata con questo barcode
+ this.sendError(new ScannedPositionNotExistException());
+ return;
+ }
+
+ if (!mtbDepoPosizione.isFlagMonoCollo()) {
+ //La posizione non è Mono-UL
+ this.sendError(new CurrentMonoLUPositionIsNotCorrectException());
+ return;
+ }
+
+
+ this.mPosizioneRESTConsumer.getBancaliInPosizione(mtbDepoPosizione, destMtbColtList -> {
+
+ if (destMtbColtList == null || destMtbColtList.size() != 1) {
+ //Nessuna UL trovata oppure più UL nella stessa posizione
+ this.sendError(new NoLUFoundException());
+ return;
+
+ }
+
+ if (destMtbColtList.get(0).getSegno() != mDefaultSegnoCol) {
+ this.sendError(new InvalidLUException());
+ return;
+
+ }
+
+ moveLUtoLU(mtbColtsToMove, destMtbColtList.get(0), savedMtbColt -> {
+ ArrayList savedMtbColtList = new ArrayList<>();
+ savedMtbColtList.add(savedMtbColt);
+ onComplete.run(savedMtbColtList);
+ });
+
+
+ }, this::sendError);
+
+
+ });
+
+ }
+
+
+ private void askPrint(boolean canPrint, List mtbColtsToPrint, Runnable onComplete) {
+
+ if (mDefaultGestioneOfUL != GestioneEnum.VENDITA ||
+ mDefaultSegnoCol != -1 ||
+ mtbColtsToPrint == null ||
+ mtbColtsToPrint.isEmpty() ||
+ !canPrint) {
+
+ onComplete.run();
+ return;
+ }
+
+
+ this.sendLUPrintRequest(shouldPrint -> {
+ if (!shouldPrint) {
+ onComplete.run();
+ return;
+ }
+
+ var printUDSRequestDto = new PrintUDSRequestDTO()
+ .setMtbColts(mtbColtsToPrint);
+
+ this.mColliSpedizioneRESTConsumer.printUDS(printUDSRequestDto, onComplete,
+ ex -> this.sendLUPrintError(ex, onComplete));
+
+ });
+
}
@@ -1462,33 +1695,6 @@ public class SpedizioneViewModel {
}, this::sendError);
}
- private void printCollo(List mtbColtsToPrint, Runnable onComplete) {
- this.sendLUPrintRequest(shouldPrint -> {
-
- if (!shouldPrint) {
- onComplete.run();
- } else {
- cyclicPrint(mtbColtsToPrint.iterator(), onComplete, ex -> this.sendLUPrintError(ex, onComplete));
-
- }
-
- });
- }
-
- private void cyclicPrint(@NotNull Iterator sourceMtbColts, Runnable onComplete, RunnableArgs onAbort) {
- if (sourceMtbColts.hasNext()) {
- singlePrint(sourceMtbColts.next(), () -> {
- cyclicPrint(sourceMtbColts, onComplete, onAbort);
- }, onAbort);
- } else {
- onComplete.run();
- }
- }
-
- private void singlePrint(MtbColt mtbColtToPrint, Runnable onComplete, RunnableArgs onFailed) {
- this.mPrinterRESTConsumer.printCollo(mtbColtToPrint, onComplete, onFailed);
- }
-
public void recoverLU(MtbColt mtbColt) {
this.sendOnLoadingStarted();
@@ -1505,18 +1711,14 @@ public class SpedizioneViewModel {
}
private void postCloseOperations(List mtbColtList) {
- Stream.of(mtbColtList).filter(x -> !this.mColliRegistrati.contains(x)).forEach(x -> this.mColliRegistrati.add(x));
-
if (mTestateOrdini != null) {
for (MtbColt mtbColt : mtbColtList) {
- Stream.of(mTestateOrdini).filter(x -> x.getNumOrd().equals(mtbColt.getNumOrd()) && x.getDataOrdD().equals(mtbColt.getDataOrdD()) && x.getGestioneEnum() == mtbColt.getGestioneEnum()).forEach(x -> x.setExistColloBoolean(true));
+ mTestateOrdini.stream()
+ .filter(x -> x.getNumOrd().equals(mtbColt.getNumOrd()) && x.getDataOrdD().equals(mtbColt.getDataOrdD()) && x.getGestioneEnum() == mtbColt.getGestioneEnum())
+ .forEach(x -> x.setExistColloBoolean(true));
}
}
- if (mMtbColtSessionID != null)
- this.mColliDataRecoverService.closeSession(mMtbColtSessionID);
- this.mCurrentMtbColt = null;
-
if (mEnableQuantityReset) {
for (PickingObjectDTO pickingObjectDTO : mPickingList.getValue()) {
@@ -1547,21 +1749,6 @@ public class SpedizioneViewModel {
pickingObjectDTO.setWithdrawMtbColrs(new ArrayList<>());
}
}
-
- this.mIsNewLU = false;
-
- this.resetMatchedRows();
- this.sendLUClosed();
- this.sendOnLoadingEnded();
- }
-
- private void deleteLU(Runnable onComplete) {
- mColliMagazzinoRESTConsumer.deleteCollo(mCurrentMtbColt, () -> {
- this.mColliDataRecoverService.closeSession(mMtbColtSessionID);
- this.mCurrentMtbColt = null;
-
- if (onComplete != null) onComplete.run();
- }, this::sendError);
}
public void resetMatchedRows() {
@@ -1601,45 +1788,6 @@ public class SpedizioneViewModel {
this.mPrinterRESTConsumer.printClosedOrders(dto, SettingsManager.i().getUserSession().getDepo().getCodMdep(), onSuccess, onAbort);
}
- private void cyclicPrintPackingList(@NotNull Iterator sourceTestateOrdineVenditaIterator, Runnable onComplete, RunnableArgs onAbort) {
- if (sourceTestateOrdineVenditaIterator.hasNext()) {
- singlePrintPackingList(sourceTestateOrdineVenditaIterator.next(), () -> {
- cyclicPrintPackingList(sourceTestateOrdineVenditaIterator, onComplete, onAbort);
- }, onAbort);
- } else {
- onComplete.run();
- }
- }
-
- private void cyclicPrintListEtichette(@NotNull Iterator sourceTestateOrdineVenditaIterator, Runnable onComplete, RunnableArgs onAbort) {
- if (sourceTestateOrdineVenditaIterator.hasNext()) {
- singlePrintListEtichette(sourceTestateOrdineVenditaIterator.next(), () -> {
- cyclicPrintListEtichette(sourceTestateOrdineVenditaIterator, onComplete, onAbort);
- }, onAbort);
- } else {
- onComplete.run();
- }
- }
-
- private void singlePrintPackingList(OrdineUscitaInevasoDTO ordineUscitaInevasoDTO, Runnable onComplete, RunnableArgs onFailed) {
- HashMap params = new HashMap<>();
- params.put("gestione", ordineUscitaInevasoDTO.getGestione());
- params.put("num_ord", ordineUscitaInevasoDTO.getNumOrd());
- params.put("data_ord", UtilityDate.formatDate(ordineUscitaInevasoDTO.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
-
- this.mPrinterRESTConsumer.printReportType(ReportType.WMS_SPEDIZIONE_PACKING_LIST_ORD, SettingsManager.i().getUserSession().getDepo().getCodMdep(), ordineUscitaInevasoDTO.getCodAnagOrd(), params, onComplete, onFailed);
-
- }
-
- private void singlePrintListEtichette(OrdineUscitaInevasoDTO ordineUscitaInevasoDTO, Runnable onComplete, RunnableArgs onFailed) {
- HashMap params = new HashMap<>();
- params.put("gestione", ordineUscitaInevasoDTO.getGestione());
- params.put("num_ord", ordineUscitaInevasoDTO.getNumOrd());
- params.put("data_ord", UtilityDate.formatDate(ordineUscitaInevasoDTO.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
-
- this.mPrinterRESTConsumer.printReportType(ReportType.WMS_SPEDIZIONE_ETICHETTE_SSCC_ORD, SettingsManager.i().getUserSession().getDepo().getCodMdep(), ordineUscitaInevasoDTO.getCodAnagOrd(), params, onComplete, onFailed);
-
- }
public MutableLiveData> getPickingList() {
return mPickingList;
@@ -1649,23 +1797,7 @@ public class SpedizioneViewModel {
return (ArrayList) this.mColliRegistrati;
}
- public SpedizioneViewModel setListeners(Listener listener) {
- this.mListener = listener;
- return this;
- }
-
- public void onCreateDocsAnswered(DialogConsts.Results result) {
- switch (result) {
- case YES:
- this.createDocs();
- break;
- case NO:
- this.sendOnOrderClosed();
- break;
- }
- }
-
- private void createDocs() {
+ void createDocs() {
var loadCollidto = new LoadColliDTO();
var codAnag = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getCodAnagOrd).withoutNulls().distinctBy(x -> x).findFirst().get();
@@ -1682,6 +1814,11 @@ public class SpedizioneViewModel {
this.mDocumentiRESTConsumer.createDocFromColli(loadCollidto, doc -> this.sendOnOrderClosed(), this::sendError);
}
+ public SpedizioneViewModel setListeners(Listener listener) {
+ this.mListener = listener;
+ return this;
+ }
+
public interface Listener extends ILUPrintListener, ILoadingListener, ILUBaseOperationsListener {
void onLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss onComplete);
@@ -1706,6 +1843,8 @@ public class SpedizioneViewModel {
void onChooseArtRequest(List artsList, RunnableArgs onComplete);
+ void onChooseArtsRequest(List artsList, RunnableArgs> onComplete);
+
void onOrderClosed();
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/exceptions/InvalidMagazzinoAutomaticoMovementException.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/exceptions/InvalidMagazzinoAutomaticoMovementException.java
new file mode 100644
index 00000000..808c3f64
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/exceptions/InvalidMagazzinoAutomaticoMovementException.java
@@ -0,0 +1,9 @@
+package it.integry.integrywmsnative.gest.spedizione.exceptions;
+
+import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
+
+public class InvalidMagazzinoAutomaticoMovementException extends Exception {
+ public InvalidMagazzinoAutomaticoMovementException(MtbDepoPosizione mtbDepoPosizione) {
+ super(String.format("Non è possibile movimentare una posizione legata ad un magazzino automatico (%s)", mtbDepoPosizione.getPosizione()));
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java
index f89d6af5..e6c578be 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java
@@ -44,7 +44,7 @@ import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity;
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.ui.UltimiArriviFornitoreListAdapter;
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.dialog.DialogUltimiArriviFornitoreFiltroAvanzato;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
-import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
+import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrList;
/**
* A simple {@link BaseFragment} subclass.
@@ -255,7 +255,7 @@ public class UltimiArriviFornitoreFragment extends BaseFragment implements ITitl
@Override
public void onMtbColtScanned(MtbColt scannedMtbColt) {
- DialogChooseArtsFromListaArts
+ DialogChooseArtsFromMtbColrList
.newInstance(scannedMtbColt.getMtbColr(), items -> {
List mtbAarts = Stream.of(items)
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java
index 8010faef..31ccbca6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceFragment.java
@@ -37,7 +37,7 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione;
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
-import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
+import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrList;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUView;
@@ -170,7 +170,7 @@ public class VersamentoMerceFragment extends BaseFragment implements ITitledFrag
@Override
public void onArtsChooseRequired(List mtbColrList, RunnableArgs> onComplete, Runnable onAbort) {
this.requireActivity().runOnUiThread(() -> {
- DialogChooseArtsFromListaArts
+ DialogChooseArtsFromMtbColrList
.newInstance(mtbColrList, onComplete, onAbort)
.show(requireActivity().getSupportFragmentManager(), "tag");
});
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceModule.java
index 6972d739..2829ca84 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceModule.java
@@ -4,14 +4,18 @@ import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
@Module(subcomponents = VersamentoMerceComponent.class)
public class VersamentoMerceModule {
@Provides
- VersamentoMerceViewModel providesVersamentoMerceViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer) {
- return new VersamentoMerceViewModel(colliMagazzinoRESTConsumer, barcodeRESTConsumer, posizioniRESTConsumer);
+ VersamentoMerceViewModel providesVersamentoMerceViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
+ BarcodeRESTConsumer barcodeRESTConsumer,
+ PosizioniRESTConsumer posizioniRESTConsumer,
+ MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer) {
+ return new VersamentoMerceViewModel(colliMagazzinoRESTConsumer, barcodeRESTConsumer, posizioniRESTConsumer, magazzinoAutomaticoRESTConsumer);
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java
index 22dabfba..4b587a6c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/VersamentoMerceViewModel.java
@@ -17,6 +17,7 @@ import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.core.exception.InvalidLUGestioneException;
import it.integry.integrywmsnative.core.exception.NoArtsInLUException;
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
+import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
import it.integry.integrywmsnative.core.exception.TooManyLUFoundInMonoLUPositionException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
@@ -27,7 +28,9 @@ import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPutItemsRequestDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityDate;
@@ -44,12 +47,14 @@ public class VersamentoMerceViewModel {
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
private final PosizioniRESTConsumer mPosizioniRESTConsumer;
+ private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer;
@Inject
- public VersamentoMerceViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer) {
+ public VersamentoMerceViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer) {
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
this.mPosizioniRESTConsumer = posizioniRESTConsumer;
+ this.mMagazzinoAutomaticoRESTConsumer = mMagazzinoAutomaticoRESTConsumer;
}
@@ -71,22 +76,19 @@ public class VersamentoMerceViewModel {
.filter(x -> x.getPosizione().equalsIgnoreCase(barcodeScanDTO.getStringValue()))
.single();
- if (foundPosizione.isFlagMonoCollo()) {
- this.mPosizioniRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
- if (mtbColtList == null || mtbColtList.size() == 0) {
- this.sendError(new NoLUFoundException());
- } else if (mtbColtList.size() == 1) {
- mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
+ if (foundPosizione == null) {
+ //Nessuna posizione trovata con questo barcode
+ this.sendError(new ScannedPositionNotExistException());
+ return;
+ }
- //TAKE HERE
- pickMerceULtoUL(mtbColt, onComplete);
+ if (foundPosizione.isMagazzinoAutomatico()) {
+ //La posizione è di un magazzino automatico
+ this.executePosizioneMagazzinoAutomatico(foundPosizione, onComplete);
- }, this::sendError);
- } else {
- this.sendError(new TooManyLUFoundInMonoLUPositionException());
- }
- }, this::sendError);
+ } else if (foundPosizione.isFlagMonoCollo()) {
+ this.executePosizioneMonocollo(onComplete, foundPosizione);
} else {
if (!UtilityString.equalsIgnoreCase(mCurrentMtbColt.getValue().getCodMdep(), foundPosizione.getCodMdep())) {
@@ -113,6 +115,36 @@ public class VersamentoMerceViewModel {
}
+ private void executePosizioneMagazzinoAutomatico(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
+ var magazzinoAutomaticoPickRequest = new MagazzinoAutomaticoPutItemsRequestDTO()
+ .setInputMtbColt(this.mCurrentMtbColt.getValue());
+
+ mMagazzinoAutomaticoRESTConsumer.putItems(mtbDepoPosizione,
+ magazzinoAutomaticoPickRequest, () -> {
+ onComplete.run();
+ this.sendOnDataSaved();
+ }, this::sendError);
+ }
+
+ private void executePosizioneMonocollo(Runnable onComplete, MtbDepoPosizione foundPosizione) {
+ this.mPosizioniRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
+
+ if (mtbColtList == null || mtbColtList.size() == 0) {
+ this.sendError(new NoLUFoundException());
+ } else if (mtbColtList.size() == 1) {
+ mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
+
+ //TAKE HERE
+ pickMerceULtoUL(mtbColt, onComplete);
+
+ }, this::sendError);
+ } else {
+ this.sendError(new TooManyLUFoundInMonoLUPositionException());
+ }
+ }, this::sendError);
+ }
+
+
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Runnable onBarcodeScanComplete) {
this.mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java
deleted file mode 100644
index 660c3a81..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java
+++ /dev/null
@@ -1,368 +0,0 @@
-package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
-
-import android.content.Context;
-import android.content.DialogInterface;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.widget.SearchView;
-import androidx.databinding.DataBindingUtil;
-import androidx.recyclerview.widget.LinearLayoutManager;
-
-import com.annimon.stream.Stream;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
-import it.integry.integrywmsnative.MainApplication;
-import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
-import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
-import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
-import it.integry.integrywmsnative.core.expansion.RunnableArgs;
-import it.integry.integrywmsnative.core.model.MtbAart;
-import it.integry.integrywmsnative.core.model.MtbColr;
-import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
-import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
-import it.integry.integrywmsnative.core.rest.model.Ean128Model;
-import it.integry.integrywmsnative.core.utility.UtilityBarcode;
-import it.integry.integrywmsnative.core.utility.UtilityDialog;
-import it.integry.integrywmsnative.core.utility.UtilityExceptions;
-import it.integry.integrywmsnative.core.utility.UtilityString;
-import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsLayoutBinding;
-import it.integry.integrywmsnative.view.dialogs.DialogCommon;
-
-public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
-
- @Inject
- BarcodeRESTConsumer barcodeRESTConsumer;
-
- @Inject
- ArticoloRESTConsumer articoloRESTConsumer;
-
- private Context context;
-
- private DialogChooseArtsFromListaArtsLayoutBinding mBindings;
- private DialogChooseArtsFromListaArtsAdapter currentAdapter;
-
- private final RunnableArgs> mOnItemsChoosed;
- private final Runnable mOnAbort;
-
- private final List mDataset;
-
- private int mBarcodeScannerIstanceID;
- private MtbAart selectedArt;
-
- public static DialogChooseArtsFromListaArts newInstance(List listaMtbColr, RunnableArgs> onItemsChoosed, Runnable onAbort) {
- return new DialogChooseArtsFromListaArts(listaMtbColr, onItemsChoosed, onAbort);
- }
-
- public static DialogChooseArtsFromListaArts newInstance(List listaMtbColr, MtbAart mtbAart, RunnableArgs> onItemsChoosed, Runnable onAbort) {
- DialogChooseArtsFromListaArts dialog = newInstance(listaMtbColr, onItemsChoosed, onAbort);
- dialog.setSelectedArt(mtbAart);
- return dialog;
- }
-
- public void setSelectedArt(MtbAart mtbAart) {
- this.selectedArt = mtbAart;
- }
-
- private DialogChooseArtsFromListaArts(List listaMtbColr, RunnableArgs> onItemsChoosed, Runnable onAbort) {
- super();
-
- mOnItemsChoosed = onItemsChoosed;
- mOnAbort = onAbort;
-
- mDataset = new ArrayList<>();
-
- if (listaMtbColr != null) {
- for (MtbColr mtbColr : listaMtbColr) {
- if (UtilityString.isNullOrEmpty(mtbColr.getUntMis()) && mtbColr.getMtbAart() != null) {
- mtbColr.setUntMis(mtbColr.getMtbAart().getUntMis());
- }
-
- mDataset.add(new DialogChooseArtsFromListaArtsItemModel().setMtbColr(mtbColr));
- }
- }
- }
-
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- super.onCreateView(inflater, container, savedInstanceState);
-
- this.context = getActivity();
- mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_choose_arts_from_lista_arts_layout, null, false);
- mBindings.setLifecycleOwner(getViewLifecycleOwner());
-
- MainApplication.appComponent
- .dialogChooseArtsFromListaArtsComponent()
- .create()
- .inject(this);
-
- UtilityDialog.setTo90PercentWidth(context, this);
-
- mBindings.emptyView.setVisibility(mDataset != null && mDataset.size() > 0 ? View.GONE : View.VISIBLE);
-
-
- initRecyclerView();
- initFilter();
- setupBarcode();
-
- mBindings.positiveButton.setOnClickListener(v -> {
- dismiss();
- onPositiveClick();
- });
-
- mBindings.negativeButton.setOnClickListener(v -> {
- dismiss();
- onNegativeClick();
- });
-
- getDialog().setCanceledOnTouchOutside(false);
- getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
-
- return mBindings.getRoot();
- }
-
- @Override
- public void onStart() {
- super.onStart();
-
- if (selectedArt != null) {
- this.loadArticolo(selectedArt.getBarCode(), null);
- }
- }
-
- private void initRecyclerView() {
- mBindings.listaArts.setNestedScrollingEnabled(false);
- mBindings.listaArts.setHasFixedSize(true);
- mBindings.listaArts.setLayoutManager(new LinearLayoutManager(context));
-
- currentAdapter = new DialogChooseArtsFromListaArtsAdapter(context, mDataset);
- mBindings.listaArts.setAdapter(currentAdapter);
- }
-
-
- private void initFilter() {
- mBindings.mainSearch.setOnCloseListener(() -> {
- this.removeListFilter();
- return true;
- });
-
- mBindings.mainSearch.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
- @Override
- public boolean onQueryTextSubmit(String query) {
-// removeListFilter();
-//
-// if (!UtilityString.isNullOrEmpty(query) && query.trim().length() > 3) {
-// List foundRowsList = Stream.of(mDataset)
-// .filter(x -> {
-// String codMart = x.getMtbColr().getMtbAart().getCodMart();
-// String descrizioneArt = x.getMtbColr().getMtbAart().getDescrizioneEstesa();
-// String diacod = x.getMtbColr().getMtbAart().getDiacod();
-//
-// return ((codMart.startsWith(query) ||
-// codMart.endsWith(query) ||
-// codMart.contains(query) ||
-// codMart.equalsIgnoreCase(query)) ||
-// (descrizioneArt.startsWith(query) ||
-// descrizioneArt.endsWith(query) ||
-// descrizioneArt.contains(query) ||
-// descrizioneArt.equalsIgnoreCase(query)) ||
-// (diacod.startsWith(query) ||
-// diacod.endsWith(query) ||
-// diacod.contains(query) ||
-// diacod.equalsIgnoreCase(query))) &&
-// !x.isHidden();
-// })
-// .toList();
-//
-// for (int i = 0; i < mDataset.size(); i++) {
-// mDataset.get(i).setHidden(!foundRowsList.contains(mDataset.get(i)));
-// }
-// }
-
- return true;
- }
-
- @Override
- public boolean onQueryTextChange(String newText) {
- removeListFilter();
-
- newText = newText.toLowerCase();
-
- if (!UtilityString.isNullOrEmpty(newText) && newText.trim().length() > 2) {
- String finalNewText = newText;
- List foundRowsList = Stream.of(mDataset)
- .filter(x -> {
- String codMart = x.getMtbColr().getMtbAart().getCodMart().toLowerCase();
- String descrizioneArt = x.getMtbColr().getMtbAart().getDescrizioneEstesa().toLowerCase();
- String diacod = x.getMtbColr().getMtbAart().getDiacod();
- if (!UtilityString.isNullOrEmpty(diacod)) {
- diacod = diacod.toLowerCase();
- }
-
- return ((codMart.startsWith(finalNewText) ||
- codMart.endsWith(finalNewText) ||
- codMart.contains(finalNewText) ||
- codMart.equalsIgnoreCase(finalNewText)) ||
- (descrizioneArt.startsWith(finalNewText) ||
- descrizioneArt.endsWith(finalNewText) ||
- descrizioneArt.contains(finalNewText) ||
- descrizioneArt.equalsIgnoreCase(finalNewText)) ||
- (!UtilityString.isNullOrEmpty(diacod) && (diacod.startsWith(finalNewText) ||
- diacod.endsWith(finalNewText) ||
- diacod.contains(finalNewText) ||
- diacod.equalsIgnoreCase(finalNewText)))) &&
- !x.isHidden();
- })
- .toList();
-
- for (int i = 0; i < mDataset.size(); i++) {
- mDataset.get(i).setHidden(!foundRowsList.contains(mDataset.get(i)));
- }
- }
-
- return true;
- }
- });
- }
-
- private void setupBarcode() {
- BarcodeManager.enable();
-
- mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
- .setOnScanSuccessful(onScanSuccessfull)
- .setOnScanFailed(ex -> UtilityExceptions.defaultException(context, ex, false)));
-
-
- }
-
-
- @Override
- public void onDismiss(@NonNull DialogInterface dialog) {
- BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
- this.mOnAbort.run();
- super.onDismiss(dialog);
- }
-
-
- private final RunnableArgs onScanSuccessfull = data -> {
- onLoadingStarted();
-
-
- if (UtilityBarcode.isEan13(data)) {
- this.loadArticolo(data.getStringValue(), null);
- } else if (UtilityBarcode.isEtichetta128(data)) {
- this.executeEtichettaEan128(data);
- } else {
- onLoadingEnded();
- }
-
-
- };
-
-
- private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO) {
- this.barcodeRESTConsumer.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.Gtin) || !UtilityString.isNullOrEmpty(ean128Model.Content)) {
- this.loadArticolo(barcodeProd, ean128Model);
- } else {
- DialogCommon.showNoArtFoundDialog(context, () -> {
- onLoadingEnded();
- });
-
- }
-
-
- } else {
- //EAN 128 non completo o comunque mancano i riferimenti al prodotto
- DialogCommon.showNoArtFoundDialog(context, () -> {
- onLoadingEnded();
- });
-
- }
- }, this::onError);
- }
-
-
- private void loadArticolo(String barcodeProd, Ean128Model ean128Model) {
- this.articoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
-
- if (mtbAartList != null && mtbAartList.size() > 0) {
- this.mBindings.mainSearch.setQuery(barcodeProd, false);
-
- this.searchArtInList(mtbAartList.get(0), ean128Model);
-
- onLoadingEnded();
-
- } else {
-
- DialogCommon.showNoArtFoundDialog(context, () -> {
- onLoadingEnded();
- });
- }
-
- }, this::onError);
- }
-
-
- private void searchArtInList(MtbAart mtbAart, Ean128Model ean128Model) {
- removeListFilter();
-
- List foundRowsList = Stream.of(mDataset)
- .filter(x -> x.getMtbColr().getMtbAart().getCodMart().equalsIgnoreCase(mtbAart.getCodMart()) &&
- !x.isHidden())
- .toList();
-
- if (foundRowsList.size() == 0) {
- DialogCommon.showNoArtFoundDialog(context, null);
- } else {
-
- for (int i = 0; i < mDataset.size(); i++) {
- mDataset.get(i).setHidden(!foundRowsList.contains(mDataset.get(i)));
- }
- }
- }
-
-
- private void removeListFilter() {
- for (DialogChooseArtsFromListaArtsItemModel itemModel : mDataset) {
- itemModel.setHidden(false);
- }
- }
-
-
- private void onPositiveClick() {
- if (mOnItemsChoosed != null) {
- mOnItemsChoosed.run(currentAdapter.getSelectedItems());
- }
- }
-
-
- private void onNegativeClick() {
- this.dismiss();
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java
deleted file mode 100644
index 2645115d..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
-
-import android.content.Context;
-import androidx.databinding.DataBindingUtil;
-import androidx.databinding.Observable;
-import androidx.recyclerview.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.ViewGroup;
-
-import com.annimon.stream.Stream;
-
-import java.util.HashMap;
-import java.util.List;
-
-import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.model.CheckableMtbColr;
-import it.integry.integrywmsnative.core.model.MtbColr;
-import it.integry.integrywmsnative.core.settings.SettingsManager;
-import it.integry.integrywmsnative.core.utility.UtilityNumber;
-import it.integry.integrywmsnative.core.utility.UtilityResources;
-import it.integry.integrywmsnative.core.utility.UtilityString;
-import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsItemModelBinding;
-
-public class DialogChooseArtsFromListaArtsAdapter extends RecyclerView.Adapter {
-
- protected Context mContext;
-
- private List mDataset;
- private HashMap mDatasetPositions = new HashMap<>();
-
-
- public DialogChooseArtsFromListaArtsAdapter(Context context, List myDataset) {
- mContext = context;
-
- if(myDataset != null) {
- mDataset = Stream.of(myDataset)
- .withoutNulls()
- .map(CheckableMtbColr::new).toList();
-
- for(int i = 0; i < mDataset.size(); i++) {
- final CheckableMtbColr itemModel = mDataset.get(i);
-
- mDatasetPositions.put(itemModel, i);
-
- itemModel.getHidden().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
- @Override
- public void onPropertyChanged(Observable sender, int propertyId) {
- onItemHidden(itemModel);
- }
- });
- }
- }
- }
-
- private void onItemHidden(CheckableMtbColr itemModel) {
- if(itemModel.isHidden()) {
- mDataset.remove(itemModel);
- } else {
- mDataset.add(mDatasetPositions.get(itemModel) , itemModel);
- }
- notifyDataSetChanged();
- }
-
-
- public class ViewHolder extends RecyclerView.ViewHolder {
- private DialogChooseArtsFromListaArtsItemModelBinding mViewDataBinding;
-
-
- public ViewHolder(DialogChooseArtsFromListaArtsItemModelBinding v) {
- super(v.getRoot());
- mViewDataBinding = v;
- }
-
- public void bind(CheckableMtbColr checkableMtbColr) {
- mViewDataBinding.setCheckableMtbColr(checkableMtbColr);
-
- MtbColr mtbColr = checkableMtbColr.getItem().getMtbColr();
-
- //Setting qty with unt_mis
- if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
- String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
-
-
- if(mtbColr.getMtbAart() != null) {
- text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "";
- }
-
- mViewDataBinding.qtaTextview.setText(text);
-
-
- } else {
- mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
- }
-
- mViewDataBinding.executePendingBindings();
- }
- }
-
- @Override
- public DialogChooseArtsFromListaArtsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- // create a new view
- DialogChooseArtsFromListaArtsItemModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.dialog_choose_arts_from_lista_arts__item_model, parent, false);
-
- return new ViewHolder(viewDataBinding);
- }
-
- @Override
- public void onBindViewHolder(DialogChooseArtsFromListaArtsAdapter.ViewHolder holder, int position) {
- CheckableMtbColr item = mDataset.get(position);
- holder.bind(item);
-
- }
-
- @Override
- public void onViewRecycled(DialogChooseArtsFromListaArtsAdapter.ViewHolder holder) {
- super.onViewRecycled(holder);
- }
-
- @Override
- public int getItemCount() {
- return mDataset.size();
- }
-
- public List getSelectedItems() {
- return Stream.of(mDataset)
- .filter(y -> y.getChecked().get())
- .map(x -> x.getItem().getMtbColr()).toList();
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsComponent.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsComponent.java
deleted file mode 100644
index e99add7f..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsComponent.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
-
-import dagger.Subcomponent;
-
-@Subcomponent
-public interface DialogChooseArtsFromListaArtsComponent {
-
- @Subcomponent.Factory
- interface Factory {
- DialogChooseArtsFromListaArtsComponent create();
- }
-
- void inject(DialogChooseArtsFromListaArts dialogChooseArtsFromListaArts);
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsModule.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsModule.java
deleted file mode 100644
index fd6c526b..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsModule.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
-
-import dagger.Module;
-
-@Module(subcomponents = DialogChooseArtsFromListaArtsComponent.class)
-public class DialogChooseArtsFromListaArtsModule {
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListComponent.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListComponent.java
new file mode 100644
index 00000000..bb8ff761
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListComponent.java
@@ -0,0 +1,14 @@
+package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface DialogChooseArtsFromMtbAartListComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+ DialogChooseArtsFromMtbAartListComponent create();
+ }
+
+ void inject(DialogChooseArtsFromMtbAartListView dialogChooseArtsFromMtbAartListView);
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListItemModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListItemModel.java
new file mode 100644
index 00000000..048a3591
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListItemModel.java
@@ -0,0 +1,103 @@
+package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
+
+import java.math.BigDecimal;
+
+import it.integry.integrywmsnative.core.di.BindableBoolean;
+import it.integry.integrywmsnative.core.model.MtbAart;
+
+public class DialogChooseArtsFromMtbAartListItemModel {
+
+ private BindableBoolean selected = new BindableBoolean(false);
+ private String codMart;
+ private String diacod;
+ private String descrizione;
+ private BigDecimal peso;
+ private String pesoUntMis;
+ private BigDecimal qta;
+ private String qtaUntMis;
+
+ private MtbAart originalModel;
+
+
+
+ public BindableBoolean getSelected() {
+ return selected;
+ }
+
+ public DialogChooseArtsFromMtbAartListItemModel setSelected(BindableBoolean selected) {
+ this.selected = selected;
+ return this;
+ }
+
+ public String getCodMart() {
+ return codMart;
+ }
+
+ public DialogChooseArtsFromMtbAartListItemModel setCodMart(String codMart) {
+ this.codMart = codMart;
+ return this;
+ }
+
+ public String getDiacod() {
+ return diacod;
+ }
+
+ public DialogChooseArtsFromMtbAartListItemModel setDiacod(String diacod) {
+ this.diacod = diacod;
+ return this;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public DialogChooseArtsFromMtbAartListItemModel setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ return this;
+ }
+
+ public BigDecimal getPeso() {
+ return peso;
+ }
+
+ public DialogChooseArtsFromMtbAartListItemModel setPeso(BigDecimal peso) {
+ this.peso = peso;
+ return this;
+ }
+
+ public String getPesoUntMis() {
+ return pesoUntMis;
+ }
+
+ public DialogChooseArtsFromMtbAartListItemModel setPesoUntMis(String pesoUntMis) {
+ this.pesoUntMis = pesoUntMis;
+ return this;
+ }
+
+ public BigDecimal getQta() {
+ return qta;
+ }
+
+ public DialogChooseArtsFromMtbAartListItemModel setQta(BigDecimal qta) {
+ this.qta = qta;
+ return this;
+ }
+
+ public String getQtaUntMis() {
+ return qtaUntMis;
+ }
+
+ public DialogChooseArtsFromMtbAartListItemModel setQtaUntMis(String qtaUntMis) {
+ this.qtaUntMis = qtaUntMis;
+ return this;
+ }
+
+ public MtbAart getOriginalModel() {
+ return originalModel;
+ }
+
+ public DialogChooseArtsFromMtbAartListItemModel setOriginalModel(MtbAart originalModel) {
+ this.originalModel = originalModel;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListModule.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListModule.java
new file mode 100644
index 00000000..53ba8768
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListModule.java
@@ -0,0 +1,14 @@
+package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
+
+import dagger.Module;
+import dagger.Provides;
+
+@Module(subcomponents = DialogChooseArtsFromMtbAartListComponent.class)
+public class DialogChooseArtsFromMtbAartListModule {
+
+ @Provides
+ DialogChooseArtsFromMtbAartListViewModel providesDialogDialogDialogChooseArtsFromMtbAartListViewViewModel() {
+ return new DialogChooseArtsFromMtbAartListViewModel();
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListView.java
new file mode 100644
index 00000000..ca1d490e
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListView.java
@@ -0,0 +1,121 @@
+package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.annimon.stream.Stream;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import com.ravikoradiya.liveadapter.LiveAdapter;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.BR;
+import it.integry.integrywmsnative.MainApplication;
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.MtbAart;
+import it.integry.integrywmsnative.databinding.DialogChooseArtsFromMtbAartListLayoutBinding;
+
+public class DialogChooseArtsFromMtbAartListView extends BaseDialogFragment implements DialogInterface.OnShowListener {
+
+
+ @Inject
+ DialogChooseArtsFromMtbAartListViewModel mViewModel;
+
+ private DialogChooseArtsFromMtbAartListLayoutBinding mBindings;
+
+ private Context mContext;
+
+ private final List mtbAarts;
+ private List artsItemModels = null;
+ private final RunnableArgs> onConfirmed;
+ private final Runnable onAbort;
+
+ //Pass here all external parameters
+ public static DialogChooseArtsFromMtbAartListView newInstance(List mtbAarts, RunnableArgs> onConfirmed, Runnable onAbort) {
+ return new DialogChooseArtsFromMtbAartListView(mtbAarts, onConfirmed, onAbort);
+ }
+
+ private DialogChooseArtsFromMtbAartListView(List mtbAarts, RunnableArgs> onConfirmed, Runnable onAbort) {
+ super();
+
+ this.mtbAarts = mtbAarts;
+ this.onConfirmed = onConfirmed;
+ this.onAbort = onAbort;
+ }
+
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ this.mContext = requireContext();
+
+ mBindings = DialogChooseArtsFromMtbAartListLayoutBinding.inflate(LayoutInflater.from(this.mContext), null, false);
+ mBindings.setLifecycleOwner(this);
+
+ MainApplication.appComponent
+ .dialogDialogDialogChooseArtsFromMtbAartListViewComponent()
+ .create()
+ .inject(this);
+
+
+ var cancelable = false;
+
+ var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
+ .setView(mBindings.getRoot())
+ .setCancelable(cancelable)
+ .setPositiveButton(R.string.ok, (dialog, which) -> {
+ var selectedArts = Stream.of(this.artsItemModels)
+ .filter(x -> x.getSelected().get())
+ .map(DialogChooseArtsFromMtbAartListItemModel::getOriginalModel)
+ .toList();
+
+ if(selectedArts.isEmpty()) {
+ if (this.onAbort != null) this.onAbort.run();
+ return;
+ }
+
+ if (this.onConfirmed != null)
+ this.onConfirmed.run(selectedArts);
+ })
+ .setNegativeButton(R.string.abort, (dialog, which) -> {
+ if (this.onAbort != null) this.onAbort.run();
+ })
+ .create();
+
+
+
+
+ alertDialog.setOnShowListener(this);
+ alertDialog.setCanceledOnTouchOutside(cancelable);
+ return alertDialog;
+ }
+
+ @Override
+ public void onShow(DialogInterface dialogInterface) {
+ this.initList();
+ }
+
+ private void initList() {
+ this.artsItemModels = Stream.of(this.mtbAarts)
+ .map(x -> new DialogChooseArtsFromMtbAartListItemModel()
+ .setCodMart(x.getCodMart())
+ .setDescrizione(x.getDescrizioneEstesa())
+ .setDiacod(x.getDiacod())
+ .setOriginalModel(x))
+ .toList();
+
+ new LiveAdapter(this.artsItemModels, BR.item)
+ .map(DialogChooseArtsFromMtbAartListItemModel.class, R.layout.dialog_choose_arts_from_mtb_aart_list__item_model)
+ .into(this.mBindings.listaArts);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListViewModel.java
new file mode 100644
index 00000000..4783700b
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromMtbAartListViewModel.java
@@ -0,0 +1,5 @@
+package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
+
+public class DialogChooseArtsFromMtbAartListViewModel {
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrList.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrList.java
new file mode 100644
index 00000000..3b42d43e
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrList.java
@@ -0,0 +1,330 @@
+package it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.SearchView;
+import androidx.lifecycle.MutableLiveData;
+
+import com.annimon.stream.Stream;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import com.ravikoradiya.liveadapter.LiveAdapter;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.BR;
+import it.integry.integrywmsnative.MainApplication;
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
+import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
+import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.MtbAart;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.Ean128Model;
+import it.integry.integrywmsnative.core.utility.UtilityBarcode;
+import it.integry.integrywmsnative.core.utility.UtilityExceptions;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.databinding.DialogChooseArtsFromMtbColrListLayoutBinding;
+import it.integry.integrywmsnative.view.dialogs.DialogCommon;
+import kotlin.Unit;
+
+public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment implements DialogInterface.OnShowListener {
+
+ @Inject
+ DialogChooseArtsFromMtbColrListViewModel mViewModel;
+ @Inject
+ BarcodeRESTConsumer barcodeRESTConsumer;
+ @Inject
+ ArticoloRESTConsumer articoloRESTConsumer;
+
+
+ private int mBarcodeScannerIstanceID;
+ private final List inputMtbColrList;
+ private MtbAart selectedArt;
+ private final RunnableArgs> onConfirmed;
+ private final Runnable onAbort;
+
+
+ private DialogChooseArtsFromMtbColrListLayoutBinding mBindings;
+
+ private List mtbColrItemModels;
+ private final MutableLiveData> hiddenMtbColrItemModels = new MutableLiveData<>();
+ private Context mContext;
+
+ public static DialogChooseArtsFromMtbColrList newInstance(List listaMtbColr, RunnableArgs> onItemsChoosed, Runnable onAbort) {
+ return new DialogChooseArtsFromMtbColrList(listaMtbColr, onItemsChoosed, onAbort);
+ }
+
+ public static DialogChooseArtsFromMtbColrList newInstance(List listaMtbColr, MtbAart mtbAart, RunnableArgs> onItemsChoosed, Runnable onAbort) {
+ DialogChooseArtsFromMtbColrList dialog = newInstance(listaMtbColr, onItemsChoosed, onAbort);
+ dialog.setSelectedArt(mtbAart);
+ return dialog;
+ }
+
+ public void setSelectedArt(MtbAart mtbAart) {
+ this.selectedArt = mtbAart;
+ }
+
+ private DialogChooseArtsFromMtbColrList(List listaMtbColr, RunnableArgs> onConfirmed, Runnable onAbort) {
+ super();
+
+ this.inputMtbColrList = listaMtbColr;
+
+ this.onConfirmed = onConfirmed;
+ this.onAbort = onAbort;
+
+// mDataset = new ArrayList<>();
+
+// if (listaMtbColr != null) {
+// for (MtbColr mtbColr : listaMtbColr) {
+// if (UtilityString.isNullOrEmpty(mtbColr.getUntMis()) && mtbColr.getMtbAart() != null) {
+// mtbColr.setUntMis(mtbColr.getMtbAart().getUntMis());
+// }
+//
+// mDataset.add(new DialogChooseArtsFromMtbColrListItemModel().setMtbColr(mtbColr));
+// }
+// }
+ }
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ this.mContext = requireContext();
+
+ mBindings = DialogChooseArtsFromMtbColrListLayoutBinding.inflate(LayoutInflater.from(this.mContext), null, false);
+ mBindings.setLifecycleOwner(this);
+
+ MainApplication.appComponent
+ .dialogChooseArtsFromListaArtsComponent()
+ .create()
+ .inject(this);
+
+ var cancelable = false;
+
+ var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
+ .setView(mBindings.getRoot())
+ .setCancelable(cancelable)
+ .setPositiveButton(R.string.ok, (dialog, which) -> {
+ var selectedArts = Stream.of(this.mtbColrItemModels)
+ .filter(x -> x.getChecked().get())
+ .map(DialogChooseArtsFromMtbColrListItemModel::getMtbColr)
+ .toList();
+
+ if (selectedArts.isEmpty()) {
+ if (this.onAbort != null) this.onAbort.run();
+ return;
+ }
+
+ if (this.onConfirmed != null)
+ this.onConfirmed.run(selectedArts);
+ })
+ .setNegativeButton(R.string.abort, (dialog, which) -> {
+ if (this.onAbort != null) this.onAbort.run();
+ })
+ .create();
+
+
+ alertDialog.setOnShowListener(this);
+ alertDialog.setCanceledOnTouchOutside(cancelable);
+ return alertDialog;
+ }
+
+
+ @Override
+ public void onShow(DialogInterface dialogInterface) {
+ this.initList();
+ this.initFilter();
+ this.setupBarcode();
+
+ if (selectedArt != null) {
+ this.loadArticolo(selectedArt.getBarCode(), null);
+ }
+ }
+
+ private void initList() {
+ mBindings.listaArts.setHasFixedSize(true);
+
+ this.mtbColrItemModels = Stream.of(this.inputMtbColrList)
+ .map(x -> new DialogChooseArtsFromMtbColrListItemModel()
+ .setMtbColr(x))
+ .toList();
+
+ this.hiddenMtbColrItemModels.setValue(this.mtbColrItemModels);
+
+ new LiveAdapter(this.hiddenMtbColrItemModels, this, BR.item)
+ .map(DialogChooseArtsFromMtbColrListItemModel.class, R.layout.dialog_choose_arts_from_mtb_colr_list__item_model)
+ .onNoData(noData -> {
+ mBindings.emptyView.setVisibility(noData ? View.VISIBLE : View.GONE);
+ return Unit.INSTANCE;
+ })
+ .into(this.mBindings.listaArts);
+ }
+
+
+ private void initFilter() {
+ mBindings.mainSearch.setOnCloseListener(() -> {
+ this.removeListFilter();
+ return true;
+ });
+
+ mBindings.mainSearch.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
+ @Override
+ public boolean onQueryTextSubmit(String query) {
+ return true;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String newText) {
+ newText = newText.toLowerCase();
+
+ String finalNewText = newText;
+ final List filtered = Stream.of(mtbColrItemModels)
+ .filter(x -> {
+ String codMart = x.getMtbColr().getMtbAart().getCodMart().toLowerCase();
+ String descrizioneArt = x.getMtbColr().getMtbAart().getDescrizioneEstesa().toLowerCase();
+ String diacod = x.getMtbColr().getMtbAart().getDiacod();
+ if (!UtilityString.isNullOrEmpty(diacod)) {
+ diacod = diacod.toLowerCase();
+ }
+
+ return ((codMart.startsWith(finalNewText) ||
+ codMart.endsWith(finalNewText) ||
+ codMart.contains(finalNewText) ||
+ codMart.equalsIgnoreCase(finalNewText)) ||
+ (descrizioneArt.startsWith(finalNewText) ||
+ descrizioneArt.endsWith(finalNewText) ||
+ descrizioneArt.contains(finalNewText) ||
+ descrizioneArt.equalsIgnoreCase(finalNewText)) ||
+ (!UtilityString.isNullOrEmpty(diacod) && (diacod.startsWith(finalNewText) ||
+ diacod.endsWith(finalNewText) ||
+ diacod.contains(finalNewText) ||
+ diacod.equalsIgnoreCase(finalNewText))));
+ })
+ .toList();
+
+ hiddenMtbColrItemModels.postValue(filtered);
+ return true;
+ }
+ });
+ }
+
+ private void removeListFilter() {
+ for (DialogChooseArtsFromMtbColrListItemModel itemModel : mtbColrItemModels) {
+ itemModel.setHidden(false);
+ }
+ }
+
+ private void setupBarcode() {
+ BarcodeManager.enable();
+
+ mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
+ .setOnScanSuccessful(onScanSuccessfull)
+ .setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false)));
+ }
+
+
+ @Override
+ public void onDismiss(@NonNull DialogInterface dialog) {
+ BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
+ this.onAbort.run();
+ super.onDismiss(dialog);
+ }
+
+
+ private final RunnableArgs onScanSuccessfull = data -> {
+ onLoadingStarted();
+
+
+ if (UtilityBarcode.isEan13(data)) {
+ this.loadArticolo(data.getStringValue(), null);
+ } else if (UtilityBarcode.isEtichetta128(data)) {
+ this.executeEtichettaEan128(data);
+ } else {
+ onLoadingEnded();
+ }
+
+
+ };
+
+
+ private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO) {
+ this.barcodeRESTConsumer.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.Gtin) || !UtilityString.isNullOrEmpty(ean128Model.Content)) {
+ this.loadArticolo(barcodeProd, ean128Model);
+ } else {
+ DialogCommon.showNoArtFoundDialog(mContext, this::onLoadingEnded);
+
+ }
+
+
+ } else {
+ //EAN 128 non completo o comunque mancano i riferimenti al prodotto
+ DialogCommon.showNoArtFoundDialog(mContext, this::onLoadingEnded);
+
+ }
+ }, this::onError);
+ }
+
+
+ private void loadArticolo(String barcodeProd, Ean128Model ean128Model) {
+ this.articoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
+
+ if (mtbAartList != null && mtbAartList.size() > 0) {
+ this.mBindings.mainSearch.setQuery(barcodeProd, false);
+
+ this.searchArtInList(mtbAartList.get(0), ean128Model);
+
+ onLoadingEnded();
+
+ } else {
+
+ DialogCommon.showNoArtFoundDialog(mContext, this::onLoadingEnded);
+ }
+
+ }, this::onError);
+ }
+
+
+ private void searchArtInList(MtbAart mtbAart, Ean128Model ean128Model) {
+ removeListFilter();
+
+ List foundRowsList = Stream.of(mtbColrItemModels)
+ .filter(x -> x.getMtbColr().getMtbAart().getCodMart().equalsIgnoreCase(mtbAart.getCodMart()) &&
+ !x.isHidden())
+ .toList();
+
+ if (foundRowsList.size() == 0) {
+ DialogCommon.showNoArtFoundDialog(mContext, null);
+ } else {
+
+ for (int i = 0; i < mtbColrItemModels.size(); i++) {
+ mtbColrItemModels.get(i).setHidden(!foundRowsList.contains(mtbColrItemModels.get(i)));
+ }
+ }
+ }
+
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListComponent.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListComponent.java
new file mode 100644
index 00000000..762c389f
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListComponent.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface DialogChooseArtsFromMtbColrListComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+ DialogChooseArtsFromMtbColrListComponent create();
+ }
+
+ void inject(DialogChooseArtsFromMtbColrList dialogChooseArtsFromMtbColrList);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsItemModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListItemModel.java
similarity index 54%
rename from app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsItemModel.java
rename to app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListItemModel.java
index 30666776..1f957bf9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsItemModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListItemModel.java
@@ -1,27 +1,32 @@
-package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
+package it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.model.MtbColr;
-public class DialogChooseArtsFromListaArtsItemModel {
+public class DialogChooseArtsFromMtbColrListItemModel {
private MtbColr mtbColr;
- private BindableBoolean hidden = new BindableBoolean(false);
+ private final BindableBoolean checked = new BindableBoolean(false);
+ private final BindableBoolean hidden = new BindableBoolean(false);
public MtbColr getMtbColr() {
return mtbColr;
}
- public DialogChooseArtsFromListaArtsItemModel setMtbColr(MtbColr mtbColr) {
+ public DialogChooseArtsFromMtbColrListItemModel setMtbColr(MtbColr mtbColr) {
this.mtbColr = mtbColr;
return this;
}
+ public BindableBoolean getChecked() {
+ return checked;
+ }
+
public boolean isHidden() {
return hidden.get();
}
- public DialogChooseArtsFromListaArtsItemModel setHidden(boolean hidden) {
+ public DialogChooseArtsFromMtbColrListItemModel setHidden(boolean hidden) {
this.hidden.set(hidden);
return this;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListModule.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListModule.java
new file mode 100644
index 00000000..7ced095b
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListModule.java
@@ -0,0 +1,12 @@
+package it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list;
+
+import dagger.Module;
+import dagger.Provides;
+
+@Module(subcomponents = DialogChooseArtsFromMtbColrListComponent.class)
+public class DialogChooseArtsFromMtbColrListModule {
+ @Provides
+ DialogChooseArtsFromMtbColrListViewModel providesDialogChooseArtsFromMtbColrListViewModel() {
+ return new DialogChooseArtsFromMtbColrListViewModel();
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListViewModel.java
new file mode 100644
index 00000000..19b3097f
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_mtbcolr_list/DialogChooseArtsFromMtbColrListViewModel.java
@@ -0,0 +1,4 @@
+package it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list;
+
+public class DialogChooseArtsFromMtbColrListViewModel {
+}
diff --git a/app/src/main/res/drawable/bg_checked_layout.xml b/app/src/main/res/drawable/bg_checked_layout.xml
index bcfcf8c5..ee8af6f3 100644
--- a/app/src/main/res/drawable/bg_checked_layout.xml
+++ b/app/src/main/res/drawable/bg_checked_layout.xml
@@ -9,8 +9,5 @@
android:top="4dp" />
+ android:radius="12dp" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/bottom_sheet__inventario_actions_view.xml b/app/src/main/res/layout/bottom_sheet__inventario_actions_view.xml
index 4d3b4f88..4bfa501c 100644
--- a/app/src/main/res/layout/bottom_sheet__inventario_actions_view.xml
+++ b/app/src/main/res/layout/bottom_sheet__inventario_actions_view.xml
@@ -42,7 +42,7 @@
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:orientation="vertical"
- app:layout_constraintEnd_toStartOf="@id/qta_layout"
+ app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
diff --git a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml
deleted file mode 100644
index 7fba3597..00000000
--- a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-