diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml
new file mode 100644
index 00000000..6bbe2aee
--- /dev/null
+++ b/.idea/appInsightsSettings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 00000000..0c0c3383
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/app.xml b/.idea/runConfigurations/app.xml
index 61e0e773..1cd5eae7 100644
--- a/.idea/runConfigurations/app.xml
+++ b/.idea/runConfigurations/app.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index b29e0bfa..7df9bc17 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 400
- def appVersionName = '1.36.07'
+ def appVersionCode = 403
+ def appVersionName = '1.36.10'
signingConfigs {
release {
@@ -34,7 +34,7 @@ android {
defaultConfig {
applicationId "it.integry.integrywmsnative"
minSdkVersion 21
- targetSdkVersion 33
+ targetSdkVersion 34
versionCode appVersionCode
versionName appVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -88,11 +88,11 @@ android {
abortOnError false
}
namespace 'it.integry.integrywmsnative'
- compileSdk 33
+ compileSdk 34
}
dependencies {
- coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
+ coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0', {
exclude group: 'com.android.support', module: 'support-annotations'
@@ -113,10 +113,10 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- implementation 'com.google.android.material:material:1.9.0'
+ implementation 'com.google.android.material:material:1.10.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.cardview:cardview:1.0.0'
- implementation 'androidx.recyclerview:recyclerview:1.3.1'
+ implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation('androidx.preference:preference-ktx:1.2.1') {
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel'
@@ -152,7 +152,7 @@ dependencies {
implementation 'com.github.pedromassango:doubleClick:3.0'
//SQLite ROOM
- def room_version = "2.5.2"
+ def room_version = "2.6.1"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
index 94add48e..1e5fcc52 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
@@ -104,6 +104,8 @@ 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.ask_linea_prod.DialogAskLineaProdComponent;
+import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdModule;
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesComponent;
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesModule;
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageComponent;
@@ -114,7 +116,8 @@ import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.Di
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;
+import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUComponent;
+import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUModule;
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdComponent;
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdModule;
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUComponent;
@@ -195,7 +198,9 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
DialogBindProductBarcodeWithPackageModule.class,
DialogAskUnknownBarcodeNotesModule.class,
ProdVersamentoMaterialeInBufferModule.class,
- DialogInputQuantityToReturnModule.class
+ DialogInputQuantityToReturnModule.class,
+ DialogInfoAggiuntiveLUModule.class,
+ DialogAskLineaProdModule.class
})
public interface MainApplicationComponent {
@@ -281,8 +286,6 @@ public interface MainApplicationComponent {
DocInterniEditFormComponent.Factory docInterniEditFormComponent();
- InfoAggiuntiveLUDialogComponent.Factory infoAggiuntiveLUDialogComponent();
-
DialogEditArticoloComponent.Factory dialogEditArticoloComponent();
DialogPrintOrderSSCCListComponent.Factory dialogPrintOrderSSCCListComponent();
@@ -329,6 +332,10 @@ public interface MainApplicationComponent {
DialogInputQuantityToReturnComponent.Factory dialogInputQuantityToReturnComponent();
+ DialogInfoAggiuntiveLUComponent.Factory dialogInfoAggiuntiveLUComponent();
+
+ DialogAskLineaProdComponent.Factory dialogAskLineaProdComponent();
+
void inject(MainApplication mainApplication);
void inject(AppContext mainApplication);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
index 58e09611..70526fa5 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.class_router.configs;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
+import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoFragment;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoFragment;
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
@@ -85,7 +86,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
.setTitleText(R.string.free_picking)
.setTitleIcon(R.drawable.ic_dashboard_picking_libero)
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
- .setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA)))
+ .setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA, SettingsManager.iDB().isFlagAskClienteInPickingLibero(), false)))
.addItem(new MenuItem()
.setID(R.id.nav_resi_cliente)
@@ -121,7 +122,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
.setTitleText(R.string.free_lav_picking)
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_libero)
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
- .setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
+ .setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE, SettingsManager.iDB().isFlagAskClienteInPickingLibero(), false)))
.addItem(new MenuItem()
.setID(R.id.nav_prod_posizionamento_da_ord)
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/exception/InvalidLineaProdBarcodeException.java b/app/src/main/java/it/integry/integrywmsnative/core/exception/InvalidLineaProdBarcodeException.java
new file mode 100644
index 00000000..8cf33588
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/exception/InvalidLineaProdBarcodeException.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.core.exception;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+
+public class InvalidLineaProdBarcodeException extends Exception {
+
+ public InvalidLineaProdBarcodeException() {
+ super(UtilityResources.getString(R.string.no_result_from_linea_prod_barcode));
+ }
+
+ public InvalidLineaProdBarcodeException(String barcode) {
+ super(UtilityResources.getString(R.string.no_result_from_linea_prod_barcode) + " (" + barcode + ")");
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/StatoArticoloDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/StatoArticoloDTO.java
index 31f5c577..10c142a6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/StatoArticoloDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/StatoArticoloDTO.java
@@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.model.dto;
import java.util.Date;
+import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
+
public class StatoArticoloDTO {
private String codMart;
@@ -17,7 +19,7 @@ public class StatoArticoloDTO {
private Integer ggUtili;
- private Integer statoArt;
+ private StatoPartitaMag statoArt;
public String getCodMart() {
return codMart;
@@ -82,11 +84,11 @@ public class StatoArticoloDTO {
return this;
}
- public Integer getStatoArt() {
+ public StatoPartitaMag getStatoArt() {
return statoArt;
}
- public StatoArticoloDTO setStatoArt(Integer statoArt) {
+ public StatoArticoloDTO setStatoArt(StatoPartitaMag statoArt) {
this.statoArt = statoArt;
return this;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/StatoPartitaMag.java b/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/StatoPartitaMag.java
index 4a6525e1..3d577aee 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/StatoPartitaMag.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/StatoPartitaMag.java
@@ -2,9 +2,10 @@ package it.integry.integrywmsnative.core.model.secondary;
public enum StatoPartitaMag {
- IN_SCADENZA(1),
- SCADUTO(2),
- NON_IN_SCADENZA(3);
+ SCADUTO(1),
+ IN_SCADENZA(2),
+ NON_IN_SCADENZA(3),
+ DISATTIVO(4);
private final int text;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java
index 0dad8b69..50577a84 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumer.java
@@ -78,14 +78,12 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
.setCodMarts(codMarts))
.enqueue(new Callback<>() {
@Override
- public void onResponse(Call> call, Response> response) {
- analyzeAnswer(response, "getByCodMart", (m) -> {
- onComplete.run(response.body().getEntityList());
- }, onFailed);
+ public void onResponse(Call>> call, Response>> response) {
+ analyzeAnswer(response, "getByCodMart", onComplete, onFailed);
}
@Override
- public void onFailure(Call> call, Throwable t) {
+ public void onFailure(Call>> call, Throwable t) {
onFailed.run(new Exception(t));
}
});
@@ -112,26 +110,9 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
public void getByCodMart(String codMartToFind, RunnableArgs onComplete, RunnableArgs onFailed) {
- ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class);
- articoloRESTConsumer.getByCodMart(
- new RetrieveArticoloByCodMartRequestDTO()
- .setCodMarts(Collections.singletonList(codMartToFind)))
- .enqueue(new Callback<>() {
- @Override
- public void onResponse(Call> call, Response> response) {
- analyzeAnswer(response, "getByCodMart", (m) -> {
- if (response.body().getEntityList() != null && !response.body().getEntityList().isEmpty()) {
- onComplete.run(response.body().getEntityList().get(0));
- } else onComplete.run(null);
-
- }, onFailed);
- }
-
- @Override
- public void onFailure(Call> call, Throwable t) {
- onFailed.run(new Exception(t));
- }
- });
+ getByCodMarts(Collections.singletonList(codMartToFind), artList -> {
+ onComplete.run(artList != null && !artList.isEmpty() ? artList.get(0) : null);
+ }, onFailed);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java
index f872a169..7a4754a7 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java
@@ -21,7 +21,7 @@ public interface ArticoloRESTConsumerService {
Call> searchByBarcode(@Body() SearchArticoloByBarcodeRequestDTO searchArticoloByBarcodeRequest);
@POST("wms/articolo/retrieveByCodMart")
- Call> getByCodMart(@Body RetrieveArticoloByCodMartRequestDTO retrieveArticoloByCodMartRequest);
+ Call>> getByCodMart(@Body RetrieveArticoloByCodMartRequestDTO retrieveArticoloByCodMartRequest);
@POST("wms/articolo/updateBarcodeImballo")
Call> updateBarcodeImballo(@Body UpdateBarcodeImballoRequestDTO updateBarcodeImballoRequest);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/StatoPartitaMagDeserializer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/StatoPartitaMagDeserializer.java
new file mode 100644
index 00000000..db0fd400
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/deserializer/StatoPartitaMagDeserializer.java
@@ -0,0 +1,22 @@
+package it.integry.integrywmsnative.core.rest.deserializer;
+
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParseException;
+
+import java.lang.reflect.Type;
+
+import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
+
+public class StatoPartitaMagDeserializer implements JsonDeserializer {
+ @Override
+ public StatoPartitaMag deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
+ if (json.isJsonNull()) {
+ return null;
+ }
+
+ int text = json.getAsInt();
+ return StatoPartitaMag.from(text);
+ }
+}
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
index d53a312e..f960809a 100644
--- 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
@@ -10,7 +10,11 @@ public class CreateUDSRequestDTO {
private Integer numCollo;
private String serCollo;
private int causaleCollo;
-
+ private String codJfas;
+ private String codAnag;
+ private String codVdes;
+ private String rifOrd;
+ private boolean orderRequired;
private List orders;
public String getCodMdep() {
@@ -67,6 +71,51 @@ public class CreateUDSRequestDTO {
return this;
}
+ public String getCodJfas() {
+ return codJfas;
+ }
+
+ public CreateUDSRequestDTO setCodJfas(String codJfas) {
+ this.codJfas = codJfas;
+ return this;
+ }
+
+ public String getCodAnag() {
+ return codAnag;
+ }
+
+ public CreateUDSRequestDTO setCodAnag(String codAnag) {
+ this.codAnag = codAnag;
+ return this;
+ }
+
+ public String getCodVdes() {
+ return codVdes;
+ }
+
+ public CreateUDSRequestDTO setCodVdes(String codVdes) {
+ this.codVdes = codVdes;
+ return this;
+ }
+
+ public String getRifOrd() {
+ return rifOrd;
+ }
+
+ public CreateUDSRequestDTO setRifOrd(String rifOrd) {
+ this.rifOrd = rifOrd;
+ return this;
+ }
+
+ public boolean isOrderRequired() {
+ return orderRequired;
+ }
+
+ public CreateUDSRequestDTO setOrderRequired(boolean orderRequired) {
+ this.orderRequired = orderRequired;
+ return this;
+ }
+
public List getOrders() {
return orders;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/serializer/StatoPartitaMagSerializer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/serializer/StatoPartitaMagSerializer.java
new file mode 100644
index 00000000..21e3c210
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/serializer/StatoPartitaMagSerializer.java
@@ -0,0 +1,19 @@
+package it.integry.integrywmsnative.core.rest.serializer;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonPrimitive;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+
+import java.lang.reflect.Type;
+import java.time.LocalDateTime;
+
+import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
+
+public class StatoPartitaMagSerializer implements JsonSerializer {
+ @Override
+ public JsonElement serialize(StatoPartitaMag src, Type typeOfSrc, JsonSerializationContext context) {
+ return new JsonPrimitive(src.getText());
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
index 99eb2694..c071ed44 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
@@ -55,6 +55,7 @@ public class DBSettingsModel {
private boolean notifyLotStatus = false;
private boolean groupShippingByCommodityGroup = true;
+ private boolean groupPoductionByCommodityGroup;
private boolean showCodFornSpedizione = true;
private boolean flagCanCreateInventario = true;
private boolean flagCanAddUnknownItemsInventario = true;
@@ -566,4 +567,13 @@ public class DBSettingsModel {
this.flagOverflowQuantityWarning = flagOverflowQuantityWarning;
return this;
}
+
+ public boolean isGroupPoductionByCommodityGroup() {
+ return groupPoductionByCommodityGroup;
+ }
+
+ public DBSettingsModel setGroupPoductionByCommodityGroup(boolean groupPoductionByCommodityGroup) {
+ this.groupPoductionByCommodityGroup = groupPoductionByCommodityGroup;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
index e9902c40..0974ebb6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
@@ -272,6 +272,12 @@ public class SettingsManager {
.setSection("PRODUZIONE")
.setKeySection("FILTER_FORNTIORE_PROD")
.setSetter(dbSettingsModelIstance::setFilterFornitoreProd));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
+ .setGestName("PICKING")
+ .setSection("PRODUZIONE")
+ .setKeySection("FLAG_GROUP_BY_GRP_MERC")
+ .setSetter(dbSettingsModelIstance::setGroupPoductionByCommodityGroup)
+ .setDefaultValue(false));
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("SPEDIZIONE")
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java
index 699260d8..66f5abb1 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityGson.java
@@ -7,10 +7,13 @@ import java.lang.reflect.Modifier;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateDeserializer;
import it.integry.integrywmsnative.core.rest.deserializer.LocalDateTimeDeserializer;
+import it.integry.integrywmsnative.core.rest.deserializer.StatoPartitaMagDeserializer;
import it.integry.integrywmsnative.core.rest.serializer.LocalDateSerializer;
import it.integry.integrywmsnative.core.rest.serializer.LocalDateTimeSerializer;
+import it.integry.integrywmsnative.core.rest.serializer.StatoPartitaMagSerializer;
public class UtilityGson {
@@ -22,6 +25,8 @@ public class UtilityGson {
.registerTypeAdapter(LocalDate.class, new LocalDateSerializer())
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeDeserializer())
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
+ .registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagDeserializer())
+ .registerTypeAdapter(StatoPartitaMag.class, new StatoPartitaMagSerializer())
.create();
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java
index 8505f0e9..feb85589 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/rest/dto/SitBollaAccettazioneDTO.java
@@ -16,8 +16,6 @@ public class SitBollaAccettazioneDTO {
private BigDecimal qtaDoc;
private BigDecimal qtaCnfDoc;
private BigDecimal numCnfDoc;
- private BigDecimal qtaAccettata;
- private BigDecimal numCnfAccettata;
private BigDecimal qtaDaAccettare;
private BigDecimal numCnfDaAccettare;
@@ -111,24 +109,6 @@ public class SitBollaAccettazioneDTO {
return this;
}
- public BigDecimal getQtaAccettata() {
- return qtaAccettata;
- }
-
- public SitBollaAccettazioneDTO setQtaAccettata(BigDecimal qtaAccettata) {
- this.qtaAccettata = qtaAccettata;
- return this;
- }
-
- public BigDecimal getNumCnfAccettata() {
- return numCnfAccettata;
- }
-
- public SitBollaAccettazioneDTO setNumCnfAccettata(BigDecimal numCnfAccettata) {
- this.numCnfAccettata = numCnfAccettata;
- return this;
- }
-
public BigDecimal getQtaDaAccettare() {
return qtaDaAccettare;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java
index ee30b344..77194fa8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingActivity.java
@@ -6,9 +6,11 @@ import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Bundle;
import android.text.SpannableString;
+import android.view.Gravity;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.PopupMenu;
import androidx.databinding.ObservableArrayList;
import androidx.preference.PreferenceManager;
@@ -37,6 +39,7 @@ import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbTCol;
+import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.report.ReportManager;
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
@@ -50,7 +53,6 @@ import it.integry.integrywmsnative.databinding.ActivityAccettazioneBollaPickingB
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.AccettazioneBollaPickingOrderBy;
-import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO;
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListAdapter;
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListModel;
@@ -63,7 +65,7 @@ import it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesView;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageView;
-import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
+import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
@@ -98,6 +100,10 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
private List testataBolle;
private List sitArts;
+
+ private PopupMenu fabPopupMenu;
+
+
//Pass here all external parameters
public static void startActivity(Context context, List testataBolle, List sitArts) {
Intent myIntent = new Intent(context, AccettazioneBollaPickingActivity.class);
@@ -121,7 +127,7 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
mBindings = ActivityAccettazioneBollaPickingBinding.inflate(getLayoutInflater());
mBindings.setLifecycleOwner(this);
- mBindings.setAccettazioneView(this);
+ mBindings.setView(this);
setContentView(mBindings.getRoot());
@@ -145,6 +151,7 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
this.initBarcodeReader();
this.initRecyclerView();
// this.initFilters();
+ this.initFab();
boolean useQtaBolla = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
@@ -204,6 +211,35 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
});
}
+
+
+ private void initFab() {
+ fabPopupMenu = new PopupMenu(this, this.mBindings.accettazioneOrdineInevasoFab,
+ (Gravity.END | Gravity.BOTTOM),
+ androidx.appcompat.R.attr.popupMenuStyle,
+ com.google.android.material.R.style.Widget_Material3_PopupMenu_ContextMenu);
+
+ fabPopupMenu.setForceShowIcon(true);
+ fabPopupMenu.getMenuInflater().inflate(R.menu.accettazione_ordine_inevaso_fab_menu, fabPopupMenu.getMenu());
+
+ fabPopupMenu.setOnMenuItemClickListener(item -> {
+ int itemId = item.getItemId();
+
+ if (itemId == R.id.show_created_ul) {
+ showCreatedUL();
+ } else if (itemId == R.id.create_ul) {
+ createNewLU();
+ }
+
+ return false;
+ });
+ }
+
+
+ public void showFabMenu() {
+ fabPopupMenu.show();
+ }
+
private void refreshList() {
runOnUiThread(() -> {
@@ -315,15 +351,13 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
};
public void createNewLU() {
- this.mBindings.accettazioneOrdineInevasoFab.close(true);
+ this.fabPopupMenu.dismiss();
this.onLoadingStarted();
-
this.mViewModel.createNewLU(null, null, false, this::onLoadingEnded);
}
public void showCreatedUL() {
- this.mBindings.accettazioneOrdineInevasoFab.close(true);
-
+ this.fabPopupMenu.dismiss();
this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
}
@@ -447,9 +481,8 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
@Override
public void onInfoAggiuntiveRequest(RunnableArgss onComplete) {
- runOnUiThread(() -> {
- DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
- });
+ DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
+ .show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
}
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
index 8f5d570c..c051a2b8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingActivity.java
@@ -5,10 +5,12 @@ import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Bundle;
import android.text.SpannableString;
+import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.PopupMenu;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.preference.PreferenceManager;
@@ -42,6 +44,7 @@ import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbTCol;
+import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.report.ReportManager;
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
@@ -53,7 +56,6 @@ import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
-import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.AccettazioneOrdineInevasoOrderBy;
@@ -73,7 +75,7 @@ import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFrag
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
import it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico_ul.DialogAskShouldVersamentoAutomaticoULView;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
-import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
+import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
@@ -111,6 +113,8 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
private boolean mShowSecondaryUntMis = true;
+ private PopupMenu fabPopupMenu;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -121,7 +125,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso);
mBindings.setLifecycleOwner(this);
- mBindings.setAccettazioneView(this);
+ mBindings.setView(this);
MainApplication.appComponent
.accettazionePickingComponent()
@@ -142,6 +146,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
this.initBarcodeReader();
this.initRecyclerView();
this.initFilters();
+ this.initFab();
boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
@@ -152,6 +157,28 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
useQtaOrd);
}
+ private void initFab() {
+ fabPopupMenu = new PopupMenu(this, this.mBindings.accettazioneOrdineInevasoFab,
+ (Gravity.END | Gravity.BOTTOM),
+ androidx.appcompat.R.attr.popupMenuStyle,
+ com.google.android.material.R.style.Widget_Material3_PopupMenu_ContextMenu);
+
+ fabPopupMenu.setForceShowIcon(true);
+ fabPopupMenu.getMenuInflater().inflate(R.menu.accettazione_ordine_inevaso_fab_menu, fabPopupMenu.getMenu());
+
+ fabPopupMenu.setOnMenuItemClickListener(item -> {
+ int itemId = item.getItemId();
+
+ if (itemId == R.id.show_created_ul) {
+ showCreatedUL();
+ } else if (itemId == R.id.create_ul) {
+ createNewLU();
+ }
+
+ return false;
+ });
+ }
+
private void initFilters() {
var onPredicateChanged = new OnGeneralChangedCallback() {
@@ -678,8 +705,12 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
};
+ public void showFabMenu() {
+ fabPopupMenu.show();
+ }
+
public void createNewLU() {
- this.mBindings.accettazioneOrdineInevasoFab.close(true);
+ this.fabPopupMenu.dismiss();
this.onLoadingStarted();
this.mViewModel.createNewLU(null, null, false, () -> {
@@ -688,8 +719,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
}
public void showCreatedUL() {
- this.mBindings.accettazioneOrdineInevasoFab.close(true);
-
+ this.fabPopupMenu.dismiss();
this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
}
@@ -773,9 +803,12 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
@Override
public void onInfoAggiuntiveRequest(RunnableArgss onComplete) {
- runOnUiThread(() -> {
- DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
- });
+// runOnUiThread(() -> {
+// DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
+// });
+
+ DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
+ .show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
}
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniFragment.java
index 90f98586..f47d0f26 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/DocInterniFragment.java
@@ -178,6 +178,6 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
@Override
public void onDocumentEditRequest(SqlMtbColt document, List arts) {
requireActivity()
- .startActivity(DocInterniEditFormActivity.newInstance(requireActivity(), document, arts, mViewModel.getTipoDoc()));
+ .startActivity(DocInterniEditFormActivity.newInstance(requireActivity(), document, arts, mViewModel.getTipoDoc(), mDocInterniSetupDTO));
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/CheckFornitoreDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/CheckFornitoreDTO.java
new file mode 100644
index 00000000..f636bb7c
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/CheckFornitoreDTO.java
@@ -0,0 +1,25 @@
+package it.integry.integrywmsnative.gest.contab_doc_interni.dto;
+
+public class CheckFornitoreDTO {
+
+ private String codDtip;
+ private Boolean flagCheckPartitaMag;
+
+ public String getCodDtip() {
+ return codDtip;
+ }
+
+ public CheckFornitoreDTO setCodDtip(String codDtip) {
+ this.codDtip = codDtip;
+ return this;
+ }
+
+ public Boolean getFlagCheckPartitaMag() {
+ return flagCheckPartitaMag;
+ }
+
+ public CheckFornitoreDTO setFlagCheckPartitaMag(Boolean flagCheckPartitaMag) {
+ this.flagCheckPartitaMag = flagCheckPartitaMag;
+ return this;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/FornitoreDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/FornitoreDTO.java
index 195cc353..91c6da93 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/FornitoreDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/FornitoreDTO.java
@@ -1,5 +1,7 @@
package it.integry.integrywmsnative.gest.contab_doc_interni.dto;
+import java.util.List;
+
public class FornitoreDTO {
@@ -13,6 +15,8 @@ public class FornitoreDTO {
private String gestioneAnag;
+ private List checkFornitoreDTO;
+
public String getCodAnag() {
return codAnag;
@@ -57,4 +61,13 @@ public class FornitoreDTO {
public String getLabel() {
return this.codAnag + (this.codVdes != null ? " - "+ this.codVdes : "") +" ( " + this.descrizione+" )";
}
+
+ public List getCheckFornitoreDTO() {
+ return checkFornitoreDTO;
+ }
+
+ public FornitoreDTO setCheckFornitoreDTO(List checkFornitoreDTO) {
+ this.checkFornitoreDTO = checkFornitoreDTO;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/TipoDocDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/TipoDocDTO.java
index 1dffd4ac..9bdc17a5 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/TipoDocDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/TipoDocDTO.java
@@ -6,6 +6,7 @@ public class TipoDocDTO {
private String descrizione;
private String gestione;
private String gestioneDoc;
+ private boolean flagChkTracciabilita;
private boolean requireNote = false;
public String getCodDtip() {
@@ -52,4 +53,13 @@ public class TipoDocDTO {
this.requireNote = requireNote;
return this;
}
+
+ public boolean isFlagChkTracciabilita() {
+ return flagChkTracciabilita;
+ }
+
+ public TipoDocDTO setFlagChkTracciabilita(boolean flagChkTracciabilita) {
+ this.flagChkTracciabilita = flagChkTracciabilita;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java
index 9db542cf..28c3ab7f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java
@@ -37,6 +37,7 @@ import it.integry.integrywmsnative.core.model.MtbUntMis;
import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.databinding.ActivityContabDocInterniEditBinding;
+import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsItemListModel;
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView;
@@ -55,6 +56,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
private static final String DATA_KEY_DOCUMENT = "document";
private static final String DATA_KEY_PRODUCTS_LIST = "productsList";
private static final String DATA_KEY_TIPO_DOC = "docType";
+ private static final String DATA_KEY_DOC_INTERNI = "docInterniSetup";
@Inject
MtbColrDataSource documentRowsRepository;
@@ -78,15 +80,18 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
public BindableBoolean isDocumentExportable = new BindableBoolean(false);
private final ObservableArrayList documentRowsObservableList = new ObservableArrayList<>();
- public static Intent newInstance(Context context, SqlMtbColt document, List arts, TipoDocDTO tipoDoc) {
+ public static Intent newInstance(Context context, SqlMtbColt document, List arts, TipoDocDTO tipoDoc, DocInterniSetupDTO mDocInterniSetupDTO) {
Intent myIntent = new Intent(context, DocInterniEditFormActivity.class);
String doc = DataCache.addItem(document);
String productsKey = DataCache.addItem(arts);
String docType = DataCache.addItem(tipoDoc);
+ String docInterniSetup = DataCache.addItem(mDocInterniSetupDTO);
+
myIntent.putExtra(DATA_KEY_DOCUMENT, doc);
myIntent.putExtra(DATA_KEY_PRODUCTS_LIST, productsKey);
myIntent.putExtra(DATA_KEY_TIPO_DOC, docType);
+ myIntent.putExtra(DATA_KEY_DOC_INTERNI, docInterniSetup);
return myIntent;
}
@@ -103,13 +108,14 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
SqlMtbColt document = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_DOCUMENT));
List productList = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_PRODUCTS_LIST));
TipoDocDTO docType = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_TIPO_DOC));
+ DocInterniSetupDTO docInterniSetupDTO = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_DOC_INTERNI));
this.initViewModel();
+ this.viewModel.setDocInterniSetupDTO(docInterniSetupDTO);
this.viewModel.setDocument(document);
this.viewModel.setProductsList(productList);
this.viewModel.setTipoDoc(docType);
-
this.initView();
this.initBindables();
this.initRecyclerView();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java
index 278a41d4..a98464d2 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form;
import androidx.lifecycle.MutableLiveData;
+import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import org.json.JSONException;
@@ -10,6 +11,7 @@ import org.json.JSONObject;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import javax.inject.Inject;
@@ -28,7 +30,10 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ArtDTO;
+import it.integry.integrywmsnative.gest.contab_doc_interni.dto.CheckFornitoreDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO;
+import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
+import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer;
@@ -48,6 +53,7 @@ public class DocInterniEditFormViewModel {
public MutableLiveData document = new MutableLiveData<>();
+ public MutableLiveData docInterniSetupDTO = new MutableLiveData<>();
public MutableLiveData> docRows = new MutableLiveData<>();
@Inject
@@ -236,6 +242,7 @@ public class DocInterniEditFormViewModel {
artDto.setColli(BigDecimal.valueOf(row.getNumCnf()));
artDto.setUntMis(row.getUntMis());
artDto.setCodMart(row.getCodMart());
+ artDto.setSystemNote(row.getNote());
if (row.getDataScad() != null) {
artDto.setDataScad(row.getDataScad());
}
@@ -257,35 +264,49 @@ public class DocInterniEditFormViewModel {
this.initCheckFornitore();
}
+ public void setDocInterniSetupDTO(DocInterniSetupDTO docInterniSetupDTO) {
+ this.docInterniSetupDTO.setValue(docInterniSetupDTO);
+ }
+
private void initCheckFornitore() {
SqlMtbColt doc = this.document.getValue();
+ List fornitori = Objects.requireNonNull(this.docInterniSetupDTO.getValue()).getFornitori();
+ List tipoDocDTO = Objects.requireNonNull(this.docInterniSetupDTO.getValue()).getTipiDoc();
+ this.isCheckPartitaMag = false;
- if (doc == null)
+ if (doc == null || fornitori == null || tipoDocDTO == null)
return;
- boolean isCheckPartitaMag = false;
+ List filterFornitori = Stream.of(fornitori).filter(x->x.getCodAnag().equals(doc.getCodAnag())).toList();
+ List checkFornitoreDTO;
- try {
- if (this.checkFornitoreRules != null && this.checkFornitoreRules.has("value")) {
- isCheckPartitaMag = this.checkFornitoreRules.getBoolean("value");
- } else if (this.checkFornitoreRules != null) {
- String key = doc.getCodAnag();
- if (doc.getCodVdes() != null && !doc.getCodVdes().isEmpty()) {
- key += "-" + doc.getCodVdes();
- }
- if (this.checkFornitoreRules.has(key) &&
- ((String) ((JSONObject) this.checkFornitoreRules.get(key))
- .get(doc.getCodDtipProvv()))
- .equalsIgnoreCase("check-partitaMag")) {
- isCheckPartitaMag = true;
- }
+ TipoDocDTO tipoDoc = Stream.of(tipoDocDTO).filter(x -> x.getCodDtip().equals(doc.getCodDtipProvv())).findFirst().get();
+
+ if (tipoDoc.isFlagChkTracciabilita()){
+ this.isCheckPartitaMag = tipoDoc.isFlagChkTracciabilita();
+ }else{
+ if (filterFornitori.isEmpty())
+ return;
+
+ if (doc.getCodVdes() == null) {
+ checkFornitoreDTO = Stream.of(filterFornitori)
+ .filter(x -> x.getCodVdes() == null).findFirst().get().getCheckFornitoreDTO();
+ } else{
+ checkFornitoreDTO = Stream.of(filterFornitori)
+ .filterNot(x -> x.getCodVdes() == null)
+ .filter(x -> x.getCodVdes().equals(doc.getCodVdes())).findFirst().get().getCheckFornitoreDTO();
+ }
+
+ if (checkFornitoreDTO != null){
+ CheckFornitoreDTO flagCheck = Stream.of(checkFornitoreDTO)
+ .filter(x -> x.getCodDtip().equals(doc.getCodDtipProvv())).findFirstOrElse(null);
+
+ if (flagCheck == null)
+ return;
+
+ this.isCheckPartitaMag = flagCheck.getFlagCheckPartitaMag();
}
- } catch (JSONException e) {
- this.sendError(e);
}
-
-
- this.isCheckPartitaMag = isCheckPartitaMag;
}
public SqlMtbColt getDocument() {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
index 2ffb1c47..e3fe910c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java
@@ -825,6 +825,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
int alreadyRegisteredUL = alreadyRegisteredMtbColts.size();
+ boolean divideByGrpMerc = SettingsManager.iDB().isGroupShippingByCommodityGroup();
+
DialogSimpleMessageView.makeInfoDialog(getText(R.string.orders).toString(),
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, orders.size()), orders.size())
+ "
" +
@@ -839,7 +841,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
mCurrentGestioneCol,
mCurrentSegnoCol,
MtbColr.Causale.DEFAULT,
- mDialogRowInfo)
+ mDialogRowInfo,
+ divideByGrpMerc)
).show(getActivity().getSupportFragmentManager(), "tag");
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java
index 593d0df5..51db01ad 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java
@@ -65,33 +65,31 @@ public class OrdiniUscitaElencoViewModel {
this.sendOnLoadingStarted();
- new Thread(() -> {
- Date loadingStartDate = new Date();
+ Date loadingStartDate = new Date();
- this.mOrdiniRESTConsumer.getOrdiniInevasi(this.mCurrentCodMdep, mCurrentGestioneOrd,
- ordiniLavorazione -> {
- this.mOrderList.postValue(Stream.of(ordiniLavorazione)
- .map(x -> {
- try {
- return OrdiniUscitaElencoDTO.fromParent(x);
- } catch (Exception ex) {
- return null;
- }
- })
- .toList());
+ this.mOrdiniRESTConsumer.getOrdiniInevasi(this.mCurrentCodMdep, mCurrentGestioneOrd,
+ ordiniLavorazione -> {
+ this.mOrderList.postValue(Stream.of(ordiniLavorazione)
+ .map(x -> {
+ try {
+ return OrdiniUscitaElencoDTO.fromParent(x);
+ } catch (Exception ex) {
+ return null;
+ }
+ })
+ .toList());
- long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000;
+ long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000;
- if (2 - forcedDelaySecs > 0) {
- try {
- Thread.sleep((2 - forcedDelaySecs) * 1000);
- } catch (Exception ignored) {
- }
+ if (2 - forcedDelaySecs > 0) {
+ try {
+ Thread.sleep((2 - forcedDelaySecs) * 1000);
+ } catch (Exception ignored) {
}
+ }
- this.sendOnLoadingEnded();
- }, this::sendError);
- }).start();
+ this.sendOnLoadingEnded();
+ }, this::sendError);
}
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 2f1e5ded..b9007129 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
@@ -42,7 +42,6 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.VtbDest;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
-import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
@@ -54,6 +53,7 @@ import it.integry.integrywmsnative.ui.ElevatedToolbar;
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.ask_linea_prod.DialogAskLineaProdView;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrList;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
@@ -86,16 +86,20 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
private int barcodeScannerIstanceID = -1;
private GestioneEnum mCurrentGestione;
+ private boolean mAskCliente;
+ private boolean mAskLineaProd;
public PickingLiberoFragment() {
// Required empty public constructor
}
- public static PickingLiberoFragment newInstance(GestioneEnum gestioneEnum) {
+ public static PickingLiberoFragment newInstance(GestioneEnum gestioneEnum, boolean askCliente, boolean askLineaProd) {
PickingLiberoFragment fragment = new PickingLiberoFragment();
Bundle args = new Bundle();
args.putString("gestione", gestioneEnum.getText());
+ args.putBoolean("askCliente", askCliente);
+ args.putBoolean("askLineaProd", askLineaProd);
fragment.setArguments(args);
return fragment;
@@ -113,6 +117,8 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
setRetainInstance(true);
mCurrentGestione = GestioneEnum.fromString(getArguments().getString("gestione"));
+ mAskCliente = getArguments().getBoolean("askCliente");
+ mAskLineaProd = getArguments().getBoolean("askLineaProd");
}
@@ -139,8 +145,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
this.initRecyclerView();
- boolean flagAskCliente = SettingsManager.iDB().isFlagAskClienteInPickingLibero();
- mViewModel.init(flagAskCliente, mCurrentGestione);
+ mViewModel.init(mAskCliente, mAskLineaProd, mCurrentGestione);
return mBindings.getRoot();
}
@@ -263,7 +268,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
null,
() -> onComplete.run(true),
() -> onComplete.run(false)
- ).show(requireActivity().getSupportFragmentManager(), "tag");
+ ).show(requireActivity().getSupportFragmentManager(), DialogSimpleMessageView.class.getName());
}
@Override
@@ -284,7 +289,13 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
@Override
public void onLUClienteRequired(RunnableArgss onComplete, Runnable onAbort) {
DialogAskClienteView.newInstance(onComplete, onAbort)
- .show(requireActivity().getSupportFragmentManager(), "tag");
+ .show(requireActivity().getSupportFragmentManager(), DialogAskClienteView.class.getName());
+ }
+
+ @Override
+ public void onLULineaProdRequired(RunnableArgs onComplete, Runnable onAbort) {
+ DialogAskLineaProdView.newInstance(onComplete, onAbort)
+ .show(getParentFragmentManager(), DialogAskLineaProdView.class.getName());
}
@Override
@@ -294,7 +305,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
onAbort.run();
BarcodeManager.enable();
})
- .show(requireActivity().getSupportFragmentManager(), "tag");
+ .show(requireActivity().getSupportFragmentManager(), DialogChooseArtsFromMtbColrList.class.getName());
}
@Override
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 16da74c6..ebcd498d 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
@@ -6,7 +6,9 @@ import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
@@ -21,8 +23,17 @@ public class PickingLiberoModule {
BarcodeRESTConsumer barcodeRESTConsumer,
PosizioniRESTConsumer posizioniRESTConsumer,
GiacenzaRESTConsumer giacenzaRESTConsumer,
- MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer
+ MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer,
+ ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
+ ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer
) {
- return new PickingLiberoViewModel(articoloRESTConsumer, colliMagazzinoRESTConsumer, barcodeRESTConsumer, posizioniRESTConsumer, giacenzaRESTConsumer, magazzinoAutomaticoRESTConsumer);
+ return new PickingLiberoViewModel(articoloRESTConsumer,
+ colliMagazzinoRESTConsumer,
+ barcodeRESTConsumer,
+ posizioniRESTConsumer,
+ giacenzaRESTConsumer,
+ magazzinoAutomaticoRESTConsumer,
+ colliLavorazioneRESTConsumer,
+ colliSpedizioneRESTConsumer);
}
}
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 56132e10..6d727dbb 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
@@ -32,14 +32,18 @@ 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.ColliLavorazioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
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.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.magazzino_automatico.MagazzinoAutomaticoPickItemRequestDTO;
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
+import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
@@ -63,8 +67,12 @@ public class PickingLiberoViewModel {
private final GiacenzaRESTConsumer mGiacenzaRESTConsumer;
private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer;
+ private ColliScaricoRESTConsumerInterface mColliScaricoRESTConsumer;
+ private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
+ private final ColliSpedizioneRESTConsumer mColliSpedizioneRESTConsumer;
private boolean mFlagAskCliente;
+ private boolean mFlagAskLineaProd;
private GestioneEnum mDefaultGestione;
@@ -77,19 +85,30 @@ public class PickingLiberoViewModel {
BarcodeRESTConsumer barcodeRESTConsumer,
PosizioniRESTConsumer posizioniRESTConsumer,
GiacenzaRESTConsumer giacenzaRESTConsumer,
- MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer) {
+ MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer,
+ ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
+ ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer) {
this.mArticoloRESTConsumer = articoloRESTConsumer;
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
this.mPosizioniRESTConsumer = posizioniRESTConsumer;
this.mGiacenzaRESTConsumer = giacenzaRESTConsumer;
this.mMagazzinoAutomaticoRESTConsumer = mMagazzinoAutomaticoRESTConsumer;
+ this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
+ this.mColliSpedizioneRESTConsumer = colliSpedizioneRESTConsumer;
}
- public void init(boolean flagAskCliente, GestioneEnum defaultGestione) {
+ public void init(boolean flagAskCliente, boolean flagAskLineaProd, GestioneEnum defaultGestione) {
this.mFlagAskCliente = defaultGestione == GestioneEnum.VENDITA && flagAskCliente;
+ this.mFlagAskLineaProd = defaultGestione == GestioneEnum.LAVORAZIONE && flagAskLineaProd;
this.mDefaultGestione = defaultGestione;
+
+
+ switch (mDefaultGestione) {
+ case LAVORAZIONE -> this.mColliScaricoRESTConsumer = mColliLavorazioneRESTConsumer;
+ case VENDITA -> this.mColliScaricoRESTConsumer = mColliSpedizioneRESTConsumer;
+ }
}
@@ -279,46 +298,57 @@ public class PickingLiberoViewModel {
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
if (this.mFlagAskCliente) {
this.sendLUClienteRequired((vtbDest, codJcom) -> {
- createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, codJcom, onComplete);
+ createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, onComplete);
}, () -> {
});
} else {
- createNewLU_PostClienteAsk(customNumCollo, customSerCollo, null, null, onComplete);
+ createNewLU_PostClienteAsk(customNumCollo, customSerCollo, null, onComplete);
}
}
- private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, String codJcom, Runnable onComplete) {
+ private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, Runnable onComplete) {
+ if (this.mFlagAskLineaProd) {
+ this.sendLULineaProdRequired(codJfas -> {
+ createNewLU_PostLineaProdAsk(customNumCollo, customSerCollo, vtbDest, codJfas, onComplete);
+ }, () -> {
+
+ });
+ } else {
+ createNewLU_PostLineaProdAsk(customNumCollo, customSerCollo, vtbDest, null, onComplete);
+ }
+ }
+
+ private void createNewLU_PostLineaProdAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, String codJfas, Runnable onComplete) {
+
this.sendOnLoadingStarted();
- MtbColt mtbColt = new MtbColt();
- mtbColt.initDefaultFields(mDefaultGestione)
+ var createUDSRequest = new CreateUDSRequestDTO()
.setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE ? "PICKING LIBERO" : null)
-// .setCodAnag(SettingsManager.iDB().getProduzioneDefaultCodAnag())
- .setSegno(-1)
- .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+ .setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
+ .setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO)
+ .setOrderRequired(mFlagAskLineaProd);
if (customNumCollo != null) {
- mtbColt.setNumCollo(customNumCollo);
+ createUDSRequest.setNumCollo(customNumCollo);
}
if (!UtilityString.isNullOrEmpty(customSerCollo)) {
- mtbColt.setSerCollo(customSerCollo);
+ createUDSRequest.setSerCollo(customSerCollo);
+ }
+
+ if (!UtilityString.isNullOrEmpty(codJfas)) {
+ createUDSRequest.setCodJfas(codJfas);
}
if (vtbDest != null) {
- mtbColt.setCodAnag(vtbDest.getCodAnag());
- mtbColt.setCodVdes(vtbDest.getCodVdes());
+ createUDSRequest.setCodAnag(vtbDest.getCodAnag());
+ createUDSRequest.setCodVdes(vtbDest.getCodVdes());
}
- if (!UtilityString.isNullOrEmpty(codJcom)) {
- mtbColt.setCodJcom(codJcom);
- }
- mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
+ mColliScaricoRESTConsumer.createUDS(createUDSRequest, mtbColt -> {
mtbColt
- .setNumCollo(value.getNumCollo())
- .setDataCollo(value.getDataColloS())
.setMtbColr(new ObservableArrayList<>());
this.mCurrentMtbColt = mtbColt;
@@ -328,6 +358,43 @@ public class PickingLiberoViewModel {
if (onComplete != null) onComplete.run();
this.sendLUOpened(mtbColt);
}, this::sendError);
+
+// MtbColt mtbColt = new MtbColt();
+// mtbColt.initDefaultFields(mDefaultGestione)
+// .setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE ? "PICKING LIBERO" : null)
+// .setSegno(-1)
+// .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+//
+// if (customNumCollo != null) {
+// mtbColt.setNumCollo(customNumCollo);
+// }
+//
+// if (!UtilityString.isNullOrEmpty(customSerCollo)) {
+// mtbColt.setSerCollo(customSerCollo);
+// }
+//
+// if (vtbDest != null) {
+// mtbColt.setCodAnag(vtbDest.getCodAnag());
+// mtbColt.setCodVdes(vtbDest.getCodVdes());
+// }
+//
+// if (!UtilityString.isNullOrEmpty(codJcom)) {
+// mtbColt.setCodJcom(codJcom);
+// }
+
+// mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
+// mtbColt
+// .setNumCollo(value.getNumCollo())
+// .setDataCollo(value.getDataColloS())
+// .setMtbColr(new ObservableArrayList<>());
+//
+// this.mCurrentMtbColt = mtbColt;
+//
+// this.sendOnLoadingEnded();
+//
+// if (onComplete != null) onComplete.run();
+// this.sendLUOpened(mtbColt);
+// }, this::sendError);
}
private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model) {
@@ -868,6 +935,10 @@ public class PickingLiberoViewModel {
if (this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort);
}
+ private void sendLULineaProdRequired(RunnableArgs onComplete, Runnable onAbort) {
+ if (this.mListener != null) mListener.onLULineaProdRequired(onComplete, onAbort);
+ }
+
private void sendArtSelectionRequest(List mtbColrsToPick, MtbAart mtbAart, RunnableArgs> onComplete, Runnable onAbort) {
if (this.mListener != null)
mListener.onArtSelectionRequest(mtbColrsToPick, mtbAart, onComplete, onAbort);
@@ -924,6 +995,8 @@ public class PickingLiberoViewModel {
void onLUClienteRequired(RunnableArgss onComplete, Runnable onAbort);
+ void onLULineaProdRequired(RunnableArgs onComplete, Runnable onAbort);
+
void onArtSelectionRequest(List mtbColrsToPick, MtbAart mtbAart, RunnableArgs> onComplete, Runnable onAbort);
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java
index 8e54c771..d41252ba 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java
@@ -52,7 +52,7 @@ import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFrag
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
-import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
+import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
@@ -276,7 +276,8 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
@Override
public void onInfoAggiuntiveRequired(RunnableArgss onComplete) {
- DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
+ DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
+ .show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
}
@Override
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java
index d4eb9a27..31fe9ee3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdFragment.java
@@ -125,7 +125,11 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
.setQtaOrd(x.getQtaFabbisogno())
.setNumCnfOrd(x.getNumCnfFabbisogno())
.setQtaCnfOrd(UtilityBigDecimal.divide(x.getQtaFabbisogno(), x.getNumCnfFabbisogno()))
- .setFlagEnablePickManuale(false);
+ .setFlagEnablePickManuale(false)
+ .setCodMgrp(x.getCodMgrp())
+ .setDescrizioneMgrp(x.getDescrizioneMgrp())
+ .setCodMsgr(x.getCodMsgr())
+ .setDescrizioneMsgr(x.getDescrizioneMsgr());
sitArtOrdDTO.getExtraInfo().put("dataInizio", x.getDataInizio());
sitArtOrdDTO.getExtraInfo().put("dataFine", x.getDataFine());
@@ -134,6 +138,8 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
})
.toList();
+ boolean divideByGrpMerc = SettingsManager.iDB().isGroupPoductionByCommodityGroup();
+
SpedizioneActivity.startActivity(getActivity(),
sitArtOrdDTOS,
null,
@@ -141,7 +147,8 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
GestioneEnum.LAVORAZIONE,
+1,
MtbColr.Causale.VERSAMENTO,
- DialogRowInfoProdFabbisognoLineeProdView.class);
+ DialogRowInfoProdFabbisognoLineeProdView.class,
+ divideByGrpMerc);
popMe();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeProdDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeProdDTO.java
index 4839dc88..e36bc238 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeProdDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dto/ProdFabbisognoLineeProdDTO.java
@@ -16,6 +16,10 @@ public class ProdFabbisognoLineeProdDTO {
private BigDecimal numCnfFabbisogno;
private Date dataInizio;
private Date dataFine;
+ private String codMgrp;
+ private String descrizioneMgrp;
+ private String codMsgr;
+ private String descrizioneMsgr;
public ProdFabbisognoLineeProdDTO() {
}
@@ -118,4 +122,40 @@ public class ProdFabbisognoLineeProdDTO {
this.dataFine = dataFine;
return this;
}
+
+ public String getCodMgrp() {
+ return codMgrp;
+ }
+
+ public ProdFabbisognoLineeProdDTO setCodMgrp(String codMgrp) {
+ this.codMgrp = codMgrp;
+ return this;
+ }
+
+ public String getDescrizioneMgrp() {
+ return descrizioneMgrp;
+ }
+
+ public ProdFabbisognoLineeProdDTO setDescrizioneMgrp(String descrizioneMgrp) {
+ this.descrizioneMgrp = descrizioneMgrp;
+ return this;
+ }
+
+ public String getCodMsgr() {
+ return codMsgr;
+ }
+
+ public ProdFabbisognoLineeProdDTO setCodMsgr(String codMsgr) {
+ this.codMsgr = codMsgr;
+ return this;
+ }
+
+ public String getDescrizioneMsgr() {
+ return descrizioneMsgr;
+ }
+
+ public ProdFabbisognoLineeProdDTO setDescrizioneMsgr(String descrizioneMsgr) {
+ this.descrizioneMsgr = descrizioneMsgr;
+ return this;
+ }
}
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 3c26250f..fb08e0b2 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,7 +73,7 @@ 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.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUView;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
@@ -126,7 +126,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
GestioneEnum gestioneCol,
int segnoCol,
Integer defaultCausaleUL,
- Class extends BaseDialogRowInfoView> infoDialogClassType) {
+ Class extends BaseDialogRowInfoView> infoDialogClassType,
+ boolean divideByGrpMerc) {
Intent myIntent = new Intent(context, SpedizioneActivity.class);
String keyPickingList = DataCache.addItem(ordini);
@@ -150,6 +151,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
String keyInfoDialogClassType = DataCache.addItem(infoDialogClassType);
myIntent.putExtra("keyInfoDialogClassType", keyInfoDialogClassType);
+ String keyDivideByGrpMerc = DataCache.addItem(divideByGrpMerc);
+ myIntent.putExtra("keyDivideByGrpMerc", keyDivideByGrpMerc);
+
context.startActivity(myIntent);
}
@@ -164,6 +168,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
mSegnoCol = DataCache.retrieveItem(getIntent().getStringExtra("keySegnoCol"));
mDefaultCausaleUL = DataCache.retrieveItem(getIntent().getStringExtra("keyDefaultCausaleCol"));
mInfoDialogClassType = DataCache.retrieveItem(getIntent().getStringExtra("keyInfoDialogClassType"));
+ mDivideByGrpMerc = DataCache.retrieveItem(getIntent().getStringExtra("keyDivideByGrpMerc"));
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione);
@@ -178,7 +183,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mFlagShowCodForn = SettingsManager.iDB().isShowCodFornSpedizione();
- mDivideByGrpMerc = SettingsManager.iDB().isGroupShippingByCommodityGroup();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
mEnableQuantityReset = sharedPreferences.getBoolean("picking_uscita_enable_quantity_reset", true);
@@ -1015,6 +1019,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override
public void onInfoAggiuntiveRequired(MtbColt mtbColt, RunnableArgss onComplete) {
- DialogInfoAggiuntiveLU.newInstance(mtbColt, onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
+ DialogInfoAggiuntiveLUView.newInstance(mtbColt, onComplete, this::onLoadingEnded)
+ .show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
}
}
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 c693062e..dd7ab597 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
@@ -773,6 +773,8 @@ public class SpedizioneViewModel {
MtbColt refMtbColt = matchedItem.getRefMtbColt();
if (matchedItem.getMtbColts() != null && matchedItem.getMtbColts().size() == 1) {
refMtbColt = matchedItem.getMtbColts().get(0);
+ } else if(matchedItem.getTempPickData().getSourceMtbColt() != null){
+ refMtbColt = matchedItem.getTempPickData().getSourceMtbColt();
}
MtbColr refMtbColr = refMtbColt != null ? refMtbColt.getMtbColr().get(0) : null;
this.dispatchOrdineRow(matchedItem, refMtbColt, refMtbColr, refMtbColr == null);
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentView.java b/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentView.java
index 66c50a46..ab0b3697 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentView.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentView.java
@@ -103,7 +103,8 @@ public class BottomSheetFragmentLUContentView extends BottomSheetFragmentBaseVie
List mtbColrs = mViewModel.getObservableMtbColt().get().getMtbColr();
mBinding.textviewArtCounter.setText(String.valueOf(mtbColrs.size()));
mBinding.textviewArtDescription.setText(mContext.getResources().getQuantityString(R.plurals.articles, mtbColrs.size()));
- mViewModel.calcPesi();
+
+ mViewModel.refreshPesi();
}
public BottomSheetFragmentLUContentView setListener(Listener listener) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentViewModel.java
index a772c3d1..8ff3a4c6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentViewModel.java
@@ -41,7 +41,7 @@ public class BottomSheetFragmentLUContentViewModel {
return this;
}
- public void calcPesi() {
+ public void refreshPesi() {
MtbColt collo = this.mtbColt.get();
if (collo == null) return;
@@ -52,7 +52,7 @@ public class BottomSheetFragmentLUContentViewModel {
for (MtbColr mtbColr : collo.getMtbColr()) {
MtbAart articolo = mtbColr.getMtbAart();
- if (articolo == null || articolo.getPesoKg() == null)
+ if (articolo == null || articolo.getPesoKg() == null || articolo.getTaraKg() == null)
continue;
BigDecimal pesoRiga = articolo.isFlagQtaCnfFissaBoolean() ? mtbColr.getNumCnf().multiply(articolo.getPesoKg()) : mtbColr.getQtaCol();
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdComponent.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdComponent.java
new file mode 100644
index 00000000..7eae3554
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdComponent.java
@@ -0,0 +1,14 @@
+package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface DialogAskLineaProdComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+ DialogAskLineaProdComponent create();
+ }
+
+ void inject(DialogAskLineaProdView dialogAskLineaProdView);
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdModule.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdModule.java
new file mode 100644
index 00000000..2abc462d
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdModule.java
@@ -0,0 +1,14 @@
+package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
+
+import dagger.Module;
+import dagger.Provides;
+
+@Module(subcomponents = DialogAskLineaProdComponent.class)
+public class DialogAskLineaProdModule {
+
+ @Provides
+ DialogAskLineaProdViewModel providesDialogAskLineaProdViewModel() {
+ return new DialogAskLineaProdViewModel();
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdView.java
new file mode 100644
index 00000000..fba4bf1a
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdView.java
@@ -0,0 +1,107 @@
+package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
+
+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.google.android.material.dialog.MaterialAlertDialogBuilder;
+
+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.databinding.DialogAskLineaProdBinding;
+
+public class DialogAskLineaProdView extends BaseDialogFragment implements DialogAskLineaProdViewModel.Listener {
+
+ @Inject
+ DialogAskLineaProdViewModel mViewModel;
+
+ private final RunnableArgs onComplete;
+ private final Runnable onAbort;
+
+ private DialogAskLineaProdBinding mBindings;
+ private Context mContext;
+
+
+ private int mBarcodeScannerIstanceID;
+
+ //Pass here all external parameters
+ public static DialogAskLineaProdView newInstance(RunnableArgs onComplete, Runnable onAbort) {
+ return new DialogAskLineaProdView(onComplete, onAbort);
+ }
+
+ private DialogAskLineaProdView(RunnableArgs onComplete, Runnable onAbort) {
+ super();
+ this.onComplete = onComplete;
+ this.onAbort = onAbort;
+ }
+
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ this.mContext = requireContext();
+
+ mBindings = DialogAskLineaProdBinding.inflate(LayoutInflater.from(this.mContext), null, false);
+ mBindings.setLifecycleOwner(this);
+
+ MainApplication.appComponent
+ .dialogAskLineaProdComponent()
+ .create()
+ .inject(this);
+
+ mViewModel.setListener(this);
+
+ setCancelable(true);
+
+ var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
+ .setView(mBindings.getRoot())
+ .setCancelable(isCancelable())
+ .setNegativeButton(R.string.abort, (dialogInterface, i) -> {
+ if(this.onAbort != null) this.onAbort.run();
+ })
+ .create();
+
+ alertDialog.setCanceledOnTouchOutside(isCancelable());
+ alertDialog.setOnShowListener(this);
+ return alertDialog;
+ }
+
+
+ @Override
+ public void onShow(DialogInterface dialogInterface) {
+ super.onShow(dialogInterface);
+
+ this.initBarcode();
+ }
+
+ private void initBarcode() {
+ mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
+ .setOnScanSuccessful(onScanSuccessful)
+ .setOnScanFailed(this::onError));
+
+ BarcodeManager.enable();
+ }
+
+ private final RunnableArgs onScanSuccessful = data -> {
+ BarcodeManager.disable();
+ this.mViewModel.processBarcodeDTO(data, BarcodeManager::enable);
+ };
+
+ @Override
+ public void onProductionLineSelected(String codJfas) {
+ this.onComplete.run(codJfas);
+ dismiss();
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdViewModel.java
new file mode 100644
index 00000000..d19bf5b0
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_linea_prod/DialogAskLineaProdViewModel.java
@@ -0,0 +1,60 @@
+package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
+
+import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.core.exception.InvalidLineaProdBarcodeException;
+import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
+import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
+import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
+import it.integry.integrywmsnative.core.utility.UtilityBarcode;
+import it.integry.integrywmsnative.core.utility.UtilityPosizione;
+
+public class DialogAskLineaProdViewModel {
+
+ private Listener mListener;
+
+ public void processBarcodeDTO(BarcodeScanDTO data, Runnable onComplete) {
+ if (UtilityBarcode.isEtichettaPosizione(data)) {
+
+ MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(data.getStringValue());
+
+ if (!foundPosizione.isFlagLineaProduzione()) {
+ this.sendError(new InvalidLineaProdBarcodeException(data.getStringValue()));
+ onComplete.run();
+ return;
+ }
+
+ onComplete.run();
+ this.sendOnProductionLineSelected(foundPosizione.getPosizione());
+
+ } else {
+ this.sendError(new NoResultFromBarcodeException());
+ onComplete.run();
+ }
+ }
+
+ public DialogAskLineaProdViewModel setListener(Listener listener) {
+ this.mListener = listener;
+ return this;
+ }
+
+ private void sendOnLoadingStarted() {
+ if (this.mListener != null) mListener.onLoadingStarted();
+ }
+
+ private void sendOnLoadingEnded() {
+ if (this.mListener != null) mListener.onLoadingEnded();
+ }
+
+ private void sendOnProductionLineSelected(String codJfas) {
+ if (this.mListener != null) mListener.onProductionLineSelected(codJfas);
+ }
+
+ private void sendError(Exception ex) {
+ if (this.mListener != null) mListener.onError(ex);
+ }
+
+ public interface Listener extends ILoadingListener {
+ void onError(Exception ex);
+ void onProductionLineSelected(String codJfas);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/exception/InactiveBatchLotException.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/exception/InactiveBatchLotException.java
new file mode 100644
index 00000000..d733a742
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/exception/InactiveBatchLotException.java
@@ -0,0 +1,10 @@
+package it.integry.integrywmsnative.view.dialogs.exception;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+
+public class InactiveBatchLotException extends Exception {
+ public InactiveBatchLotException(String lotto) {
+ super(String.format(UtilityResources.getString(R.string.batch_lot_not_enabled), lotto));
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLU.java
deleted file mode 100644
index fa732a2d..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLU.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
-
-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 android.view.WindowManager;
-import android.widget.AdapterView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.databinding.DataBindingUtil;
-import androidx.databinding.ObservableField;
-
-import com.annimon.stream.Optional;
-import com.annimon.stream.Stream;
-
-import org.jetbrains.annotations.NotNull;
-
-import javax.inject.Inject;
-
-import it.integry.integrywmsnative.MainApplication;
-import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
-import it.integry.integrywmsnative.core.expansion.RunnableArgss;
-import it.integry.integrywmsnative.core.model.MtbColt;
-import it.integry.integrywmsnative.core.model.MtbTCol;
-import it.integry.integrywmsnative.core.utility.UtilityDialog;
-import it.integry.integrywmsnative.core.utility.UtilityObservable;
-import it.integry.integrywmsnative.core.utility.UtilityString;
-import it.integry.integrywmsnative.databinding.DialogNoteAggiuntiveNuovaUlBinding;
-import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloAdapter;
-import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloListModel;
-
-public class DialogInfoAggiuntiveLU extends BaseDialogFragment implements InfoAggiuntiveLUDialogViewModel.Listener {
-
- @Inject
- InfoAggiuntiveLUDialogViewModel mViewModel;
-
- private DialogNoteAggiuntiveNuovaUlBinding mBindings;
- private final RunnableArgss mOnComplete;
- private MtbColt currentMtbColt;
- private DialogInputLUProdTipoColloAdapter codTcolArrayAdapter = null;
- public ObservableField additionalNotes = new ObservableField<>();
- public ObservableField selectedMtbTcol = new ObservableField<>();
- public ObservableField currentMtbTCol = new ObservableField<>();
-
- public static DialogInfoAggiuntiveLU newInstance(@NotNull RunnableArgss onComplete) {
- return new DialogInfoAggiuntiveLU(null, onComplete);
- }
-
- public static DialogInfoAggiuntiveLU newInstance(MtbColt mtbColt, @NotNull RunnableArgss onComplete) {
- return new DialogInfoAggiuntiveLU(mtbColt, onComplete);
- }
-
- private DialogInfoAggiuntiveLU(MtbColt mtbColt, @NotNull RunnableArgss onComplete) {
- super();
- this.mOnComplete = onComplete;
- this.currentMtbColt = mtbColt;
- }
-
-
- @Override
- public void onStart() {
- super.onStart();
- this.init();
-
- UtilityDialog.setTo90PercentWidth(requireActivity(), this);
- this.mViewModel.setListener(this);
- this.mViewModel.init();
- }
-
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
-
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_note_aggiuntive_nuova_ul, container, false);
- mBindings.setLifecycleOwner(this);
-
- MainApplication.appComponent
- .infoAggiuntiveLUDialogComponent()
- .create()
- .inject(this);
-
- mBindings.setView(this);
- mBindings.setViewModel(this.mViewModel);
-
- getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
- getDialog().setCanceledOnTouchOutside(false);
- getDialog().setCancelable(false);
- getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
-
-
- return mBindings.getRoot();
- }
-
- @Override
- public void onDismiss(@NonNull DialogInterface dialog) {
- if (mOnComplete != null)
- mOnComplete.run(additionalNotes.get(), mViewModel.getInternalTipoPed());
- super.onDismiss(dialog);
- }
-
-
- private void init() {
-
-
- UtilityObservable.addPropertyChanged(this.selectedMtbTcol, (value) -> {
- if (this.codTcolArrayAdapter != null && this.codTcolArrayAdapter.getDataset() != null) {
- Optional selectedItem = Stream.of(this.codTcolArrayAdapter.getDataset())
- .filter(x -> x.toString().equals(value))
- .findFirst();
-
- if (selectedItem.isPresent()) {
- currentMtbTCol.set(selectedItem.get());
- this.mViewModel.setInternalTipoPed(selectedItem.get().getOriginalModel());
- }
- }
- });
-
- this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> {
-
-
- codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, tipiCollo);
- mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
-
- if (currentMtbColt != null && !UtilityString.isNullOrEmpty(currentMtbColt.getCodTcol()) && UtilityString.isNullOrEmpty(this.selectedMtbTcol.get())) {
- MtbTCol tipoPedana = Stream.of(tipiCollo).filter(x -> x.getCodTcol().equalsIgnoreCase(currentMtbColt.getCodTcol())).findFirstOrElse(null);
- if (tipoPedana != null) {
- this.selectedMtbTcol.set(tipoPedana.getCodTcol() + " - " + tipoPedana.getDescrizione());
- }
- }
-
- });
-
- this.mBindings.filledExposedDropdownCodTcol.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView> adapterView, View view, int i, long l) {
- currentMtbTCol.set(codTcolArrayAdapter.getItem(i));
- }
-
- @Override
- public void onNothingSelected(AdapterView> adapterView) {
- currentMtbTCol.set(null);
- }
- });
-
- mBindings.buttonConfirm.setOnClickListener(v -> {
- dismiss();
- });
-
- if (this.currentMtbColt != null) {
- this.additionalNotes.set(currentMtbColt.getAnnotazioni());
- }
- }
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUComponent.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUComponent.java
new file mode 100644
index 00000000..3b8f60dc
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUComponent.java
@@ -0,0 +1,14 @@
+package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface DialogInfoAggiuntiveLUComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+ DialogInfoAggiuntiveLUComponent create();
+ }
+
+ void inject(DialogInfoAggiuntiveLUView dialogInfoAggiuntiveLUView);
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUModule.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUModule.java
new file mode 100644
index 00000000..0f4aea1d
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUModule.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
+
+import dagger.Module;
+import dagger.Provides;
+import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
+
+@Module(subcomponents = DialogInfoAggiuntiveLUComponent.class)
+public class DialogInfoAggiuntiveLUModule {
+
+ @Provides
+ DialogInfoAggiuntiveLUViewModel providesDialogInfoAggiuntiveLUViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer) {
+ return new DialogInfoAggiuntiveLUViewModel(magazzinoRESTConsumer);
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUView.java
new file mode 100644
index 00000000..ef85fd11
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUView.java
@@ -0,0 +1,163 @@
+package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
+
+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 android.widget.AdapterView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.databinding.ObservableField;
+
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
+import org.jetbrains.annotations.NotNull;
+
+import javax.inject.Inject;
+
+import it.integry.integrywmsnative.MainApplication;
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
+import it.integry.integrywmsnative.core.expansion.RunnableArgss;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.model.MtbTCol;
+import it.integry.integrywmsnative.core.utility.UtilityObservable;
+import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.databinding.DialogInfoAggiuntiveLuBinding;
+import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloAdapter;
+import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloListModel;
+
+public class DialogInfoAggiuntiveLUView extends BaseDialogFragment implements DialogInfoAggiuntiveLUViewModel.Listener {
+
+ @Inject
+ DialogInfoAggiuntiveLUViewModel mViewModel;
+
+
+ public ObservableField additionalNotes = new ObservableField<>();
+ public ObservableField selectedMtbTcol = new ObservableField<>();
+ public ObservableField currentMtbTCol = new ObservableField<>();
+
+
+ private DialogInfoAggiuntiveLuBinding mBindings;
+ private Context mContext;
+
+
+ private final RunnableArgss mOnComplete;
+ private final Runnable mOnAbort;
+ private final MtbColt currentMtbColt;
+
+
+ public static DialogInfoAggiuntiveLUView newInstance(@NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) {
+ return new DialogInfoAggiuntiveLUView(null, onComplete, onAbort);
+ }
+
+ public static DialogInfoAggiuntiveLUView newInstance(MtbColt mtbColt, @NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) {
+ return new DialogInfoAggiuntiveLUView(mtbColt, onComplete, onAbort);
+ }
+
+ private DialogInfoAggiuntiveLUView(MtbColt mtbColt, @NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) {
+ super();
+ this.mOnComplete = onComplete;
+ this.mOnAbort = onAbort;
+ this.currentMtbColt = mtbColt;
+ }
+
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ this.mContext = requireContext();
+
+ mBindings = DialogInfoAggiuntiveLuBinding.inflate(LayoutInflater.from(this.mContext), null, false);
+ mBindings.setLifecycleOwner(this);
+
+ MainApplication.appComponent
+ .dialogInfoAggiuntiveLUComponent()
+ .create()
+ .inject(this);
+
+ mBindings.setView(this);
+ mBindings.setViewModel(mViewModel);
+ mViewModel.setListener(this);
+
+ setCancelable(false);
+
+ var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
+ .setView(mBindings.getRoot())
+ .setCancelable(isCancelable())
+ .setPositiveButton(R.string.confirm, (dialogInterface, i) -> {
+ mOnComplete.run(additionalNotes.get(), currentMtbTCol.get() != null ? currentMtbTCol.get().getOriginalModel() : null);
+ })
+ .setNegativeButton(R.string.abort, (dialogInterface, i) -> {
+ this.mOnAbort.run();
+ })
+ .create();
+
+ alertDialog.setCanceledOnTouchOutside(isCancelable());
+ alertDialog.setOnShowListener(this);
+ return alertDialog;
+ }
+
+
+ @Override
+ public void onShow(DialogInterface dialogInterface) {
+ super.onShow(dialogInterface);
+
+ this.init();
+ this.mViewModel.init();
+ }
+
+
+ private void init() {
+ if (this.currentMtbColt != null)
+ this.additionalNotes.set(currentMtbColt.getAnnotazioni());
+
+ var codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(requireContext(),
+ R.layout.array_adapter_single_item,
+ this.mViewModel.getTipiCollo());
+
+ mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
+
+ this.mViewModel.getTipiCollo().observe(this, tipiCollo -> {
+
+ if (currentMtbColt != null && !UtilityString.isNullOrEmpty(currentMtbColt.getCodTcol()) && UtilityString.isNullOrEmpty(this.selectedMtbTcol.get())) {
+ tipiCollo.stream()
+ .filter(x -> x.getCodTcol().equalsIgnoreCase(currentMtbColt.getCodTcol()))
+ .findFirst()
+ .ifPresent(tipoPedana -> this.selectedMtbTcol.set(tipoPedana.getCodTcol() + " - " + tipoPedana.getDescrizione()));
+ }
+ });
+
+
+ UtilityObservable.addPropertyChanged(this.selectedMtbTcol, (value) -> {
+ if (codTcolArrayAdapter.getDataset() != null) {
+ codTcolArrayAdapter.getDataset().stream()
+ .filter(x -> x.toString().equals(value))
+ .findFirst()
+ .ifPresent(tipoPedana -> {
+ currentMtbTCol.set(tipoPedana);
+ });
+
+ }
+ });
+
+
+ this.mBindings.filledExposedDropdownCodTcol.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> adapterView, View view, int i, long l) {
+ currentMtbTCol.set(codTcolArrayAdapter.getItem(i));
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> adapterView) {
+ currentMtbTCol.set(null);
+ }
+ });
+
+
+
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialogViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUViewModel.java
similarity index 68%
rename from app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialogViewModel.java
rename to app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUViewModel.java
index 715ee8bb..267649a3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialogViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/DialogInfoAggiuntiveLUViewModel.java
@@ -10,23 +10,21 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
import it.integry.integrywmsnative.core.model.MtbTCol;
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
-public class InfoAggiuntiveLUDialogViewModel {
+public class DialogInfoAggiuntiveLUViewModel {
- public final MutableLiveData> tipiCollo = new MutableLiveData<>();
-
- private MtbTCol internalTipoPed;
+ private final MutableLiveData> tipiCollo = new MutableLiveData<>();
private Listener mListener;
-
private final MagazzinoRESTConsumer mMagazzinoRESTConsumer;
@Inject
- public InfoAggiuntiveLUDialogViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer) {
- this.mMagazzinoRESTConsumer = magazzinoRESTConsumer;
+ public DialogInfoAggiuntiveLUViewModel(MagazzinoRESTConsumer mMagazzinoRESTConsumer) {
+ this.mMagazzinoRESTConsumer = mMagazzinoRESTConsumer;
}
+
public void init() {
- new Thread(this::sendOnLoadingStarted).start();
+ this.sendOnLoadingStarted();
mMagazzinoRESTConsumer.getTipiCollo(tipiCollo -> {
this.tipiCollo.postValue(tipiCollo);
@@ -35,19 +33,14 @@ public class InfoAggiuntiveLUDialogViewModel {
}
public MutableLiveData> getTipiCollo() {
- return this.tipiCollo;
+ return tipiCollo;
}
-
- public void setInternalTipoPed(MtbTCol internalTipoPed) {
- this.internalTipoPed = internalTipoPed;
+ public void setListener(Listener listener) {
+ this.mListener = listener;
}
- public MtbTCol getInternalTipoPed() {
- return internalTipoPed;
- }
-
private void sendOnLoadingStarted() {
if (this.mListener != null) mListener.onLoadingStarted();
}
@@ -60,13 +53,9 @@ public class InfoAggiuntiveLUDialogViewModel {
if (this.mListener != null) mListener.onError(ex);
}
- public void setListener(Listener listener) {
- this.mListener = listener;
- }
-
public interface Listener extends ILoadingListener {
void onError(Exception ex);
}
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialogComponent.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialogComponent.java
deleted file mode 100644
index 276788a8..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialogComponent.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
-
-import dagger.Subcomponent;
-
-@Subcomponent
-public interface InfoAggiuntiveLUDialogComponent {
-
- @Subcomponent.Factory
- interface Factory {
- InfoAggiuntiveLUDialogComponent create();
- }
-
- void inject(DialogInfoAggiuntiveLU infoAggiuntiveLUDialog);
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialogModule.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialogModule.java
deleted file mode 100644
index 737399cc..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/info_aggiuntive_lu/InfoAggiuntiveLUDialogModule.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
-
-import dagger.Module;
-import dagger.Provides;
-import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
-
-@Module(subcomponents = InfoAggiuntiveLUDialogComponent.class)
-public class InfoAggiuntiveLUDialogModule {
-
- @Provides
- InfoAggiuntiveLUDialogViewModel providesInfoAggiuntiveLUDialogViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer) {
- return new InfoAggiuntiveLUDialogViewModel(magazzinoRESTConsumer);
- }
-
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdView.java
index 3a07cc20..a3dcd637 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdView.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/DialogInputLUProdView.java
@@ -328,10 +328,11 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
}
});
+ codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, this.mViewModel.getTipiCollo());
+ mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
+
this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> {
- codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, tipiCollo);
- mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
if (mDialogInputLUProdDTO.getCodTcol() != null) {
Optional optTCol = Stream.of(tipiCollo)
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/adapter/DialogInputLUProdTipoColloAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/adapter/DialogInputLUProdTipoColloAdapter.java
index c1034507..c5e85b6e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/adapter/DialogInputLUProdTipoColloAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/adapter/DialogInputLUProdTipoColloAdapter.java
@@ -4,6 +4,7 @@ import android.content.Context;
import android.widget.ArrayAdapter;
import androidx.annotation.NonNull;
+import androidx.lifecycle.MutableLiveData;
import com.annimon.stream.Stream;
@@ -13,15 +14,20 @@ import it.integry.integrywmsnative.core.model.MtbTCol;
public class DialogInputLUProdTipoColloAdapter extends ArrayAdapter {
- private final List mDataset;
+ private List mDataset;
- public DialogInputLUProdTipoColloAdapter(@NonNull Context context, int resource, @NonNull List objects) {
+ public DialogInputLUProdTipoColloAdapter(@NonNull Context context, int resource, @NonNull MutableLiveData> inputData) {
super(context, resource);
- this.mDataset = Stream.of(objects).map(x -> new DialogInputLUProdTipoColloListModel()
- .setOriginalModel(x))
- .toList();
- addAll(mDataset);
+ inputData.observeForever(data -> {
+ mDataset = Stream.of(data)
+ .map(x -> new DialogInputLUProdTipoColloListModel()
+ .setOriginalModel(x))
+ .toList();
+
+ clear();
+ addAll(mDataset);
+ });
}
public List getDataset() {
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
index 442e16bf..2b4a7cc9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2View.java
@@ -41,7 +41,6 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbUntMis;
-import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.core.utility.UtilityDate;
@@ -177,7 +176,8 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
.setIsNoteMandatory(mDialogInputQuantityV2DTO.isNotesMandatory())
.setSuggestPartitaMagRunnable(mDialogInputQuantityV2DTO.getSuggestPartitaMag())
.setDataScad(mDialogInputQuantityV2DTO.getDataScad())
- .setDisableTracciabilitaCheck(mDialogInputQuantityV2DTO.isDisableTracciabilitaCheck());
+ .setDisableTracciabilitaCheck(mDialogInputQuantityV2DTO.isDisableTracciabilitaCheck())
+ .setStatoArt(mDialogInputQuantityV2DTO.getStatoPartitaMag() != null ? mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt() : null);
mBindings.setView(this);
mBindings.setViewmodel(this.mViewModel);
@@ -215,24 +215,23 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
}
private void initProductLotStatusNotification() {
- StatoPartitaMag statoPartitaMag = StatoPartitaMag.from(this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt());
- if (statoPartitaMag == null)
+ if (this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt() == null)
return;
this.mBindings.inputDataScadLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM);
- switch (statoPartitaMag) {
- case SCADUTO:
+ switch (this.mDialogInputQuantityV2DTO.getStatoPartitaMag().getStatoArt()) {
+ case IN_SCADENZA -> {
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.warn_color)));
- break;
- case IN_SCADENZA:
+ }
+ case SCADUTO -> {
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.error_color)));
- break;
- default:
+ }
+ case NON_IN_SCADENZA -> {
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_check_white_24dp);
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.success_color)));
-
+ }
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java
index 19827b97..d5087e7f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java
@@ -13,12 +13,14 @@ import it.integry.integrywmsnative.core.di.BindableString;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn;
import it.integry.integrywmsnative.core.model.MtbAart;
+import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.view.dialogs.exception.InactiveBatchLotException;
import it.integry.integrywmsnative.view.dialogs.exception.InvalidBatchLotException;
import it.integry.integrywmsnative.view.dialogs.exception.InvalidExpireDateException;
import it.integry.integrywmsnative.view.dialogs.exception.InvalidNotesException;
@@ -88,6 +90,8 @@ public class DialogInputQuantityV2ViewModel {
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
+ private StatoPartitaMag statoArt;
+
@Inject
public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
@@ -336,6 +340,11 @@ public class DialogInputQuantityV2ViewModel {
return this;
}
+ public DialogInputQuantityV2ViewModel setStatoArt(StatoPartitaMag statoArt) {
+ this.statoArt = statoArt;
+ return this;
+ }
+
public DialogInputQuantityV2ViewModel setWarnOnQuantityOverflow(boolean warnOnQuantityOverflow) {
this.warnOnQuantityOverflow = warnOnQuantityOverflow;
return this;
@@ -488,6 +497,12 @@ public class DialogInputQuantityV2ViewModel {
}
}
+ if(this.statoArt == StatoPartitaMag.DISATTIVO){
+ this.mListener.onError(new InactiveBatchLotException(internalPartitaMag));
+ onValidated.run(false);
+ return;
+ }
+
if (this.shouldAskDataScad && UtilityString.isNullOrEmpty(internalPartitaMag)) {
this.mListener.onError(new InvalidBatchLotException());
diff --git a/app/src/main/res/drawable/ic_add_material3.xml b/app/src/main/res/drawable/ic_add_material3.xml
new file mode 100644
index 00000000..d6fd3d37
--- /dev/null
+++ b/app/src/main/res/drawable/ic_add_material3.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_inventory_2_material3.xml b/app/src/main/res/drawable/ic_inventory_2_material3.xml
new file mode 100644
index 00000000..9d904e58
--- /dev/null
+++ b/app/src/main/res/drawable/ic_inventory_2_material3.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_accettazione_bolla_picking.xml b/app/src/main/res/layout/activity_accettazione_bolla_picking.xml
index ac62ef94..e28c7928 100644
--- a/app/src/main/res/layout/activity_accettazione_bolla_picking.xml
+++ b/app/src/main/res/layout/activity_accettazione_bolla_picking.xml
@@ -10,7 +10,7 @@
@@ -84,7 +84,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.3"
- app:visibility="@{accettazioneView.noItemsToPick}">
+ app:visibility="@{view.noItemsToPick}">
-
-
-
-
-
-
-
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|end"
+ android:layout_margin="16dp"
+ android:onClick="@{() -> view.showFabMenu()}"
+ app:srcCompat="@drawable/ic_add_24dp"
+ app:visibility="@{view.noLUPresent}"
+ style="?attr/floatingActionButtonPrimaryStyle" />
@@ -214,7 +164,7 @@
app:behavior_hideable="false"
app:behavior_peekHeight="66dp"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
- app:visibility="@{accettazioneView.bottomSheetEnabled}"
+ app:visibility="@{view.bottomSheetEnabled}"
app:parentView="@id/bottom_sheet_lu_content" />
diff --git a/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml b/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
index 907e9aaf..4967d2d2 100644
--- a/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
+++ b/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
@@ -5,7 +5,7 @@
@@ -80,7 +80,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.3"
- app:visibility="@{accettazioneView.noItemsToPick}">
+ app:visibility="@{view.noItemsToPick}">
-
-
-
-
-
-
-
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|end"
+ android:layout_margin="16dp"
+ android:onClick="@{() -> view.showFabMenu()}"
+ app:srcCompat="@drawable/ic_add_24dp"
+ app:visibility="@{view.noLUPresent}"
+ style="?attr/floatingActionButtonPrimaryStyle" />
@@ -210,7 +162,7 @@
app:behavior_hideable="false"
app:behavior_peekHeight="66dp"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
- app:visibility="@{accettazioneView.bottomSheetEnabled}"
+ app:visibility="@{view.bottomSheetEnabled}"
app:parentView="@id/bottom_sheet_lu_content" />
diff --git a/app/src/main/res/layout/dialog_ask_linea_prod.xml b/app/src/main/res/layout/dialog_ask_linea_prod.xml
new file mode 100644
index 00000000..395ddf90
--- /dev/null
+++ b/app/src/main/res/layout/dialog_ask_linea_prod.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_info_aggiuntive_lu.xml b/app/src/main/res/layout/dialog_info_aggiuntive_lu.xml
new file mode 100644
index 00000000..52185c8f
--- /dev/null
+++ b/app/src/main/res/layout/dialog_info_aggiuntive_lu.xml
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_note_aggiuntive_nuova_ul.xml b/app/src/main/res/layout/dialog_note_aggiuntive_nuova_ul.xml
deleted file mode 100644
index a457a835..00000000
--- a/app/src/main/res/layout/dialog_note_aggiuntive_nuova_ul.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/menu/accettazione_ordine_inevaso_fab_menu.xml b/app/src/main/res/menu/accettazione_ordine_inevaso_fab_menu.xml
new file mode 100644
index 00000000..4cdf80f4
--- /dev/null
+++ b/app/src/main/res/menu/accettazione_ordine_inevaso_fab_menu.xml
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 69115f1e..78b4ac21 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -222,6 +222,7 @@
Il barcode scansionato non ha fornito alcun risultato
+ Il barcode scansionato non riguarda una linea di produzione
Il codice articolo non ha fornito alcun risultato
Il barcode scansionato ha fornito molteplici risultati
Nessun tipo documento selezionato
@@ -343,7 +344,7 @@
Consegnato il %s
Personalizzazioni Frudis
- Il lotto %s non è attivo. Continuare?
+ %s non è attivo.]]>
Punto Vendita
SaporiVeri PV
Genera ordini di acquisto
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9a964e09..5454bb93 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -227,7 +227,8 @@
No document type selected
The scanned label has already been used
- The scanned barcode did not produce any results
+ The scanned barcode does not produce any results
+ The scanned barcode does not represent any production line
The item code did not produce any results
Before continuing open new LU
The scanned barcode produced multiple results
@@ -350,7 +351,7 @@
Delivered on %s
Frudis customizations
- Batch lot %s is inactive. Continue?
+ %s is inactive.]]>
Other
Home
Logout
diff --git a/build.gradle b/build.gradle
index 248cf6da..d900b182 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@
buildscript {
ext {
kotlin_version = '1.9.0'
- agp_version = '8.1.4'
+ agp_version = '8.2.0'
}
repositories {
@@ -13,7 +13,7 @@ buildscript {
dependencies {
classpath "com.android.tools.build:gradle:$agp_version"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- classpath 'com.google.gms:google-services:4.3.15'
+ classpath 'com.google.gms:google-services:4.4.0'
classpath 'com.google.firebase:perf-plugin:1.4.2'
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 4c8dc7c7..8363ee5b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Mon Feb 13 15:14:43 CET 2023
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME