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 80d18a58..72c17371 100644
--- a/.idea/runConfigurations/app.xml
+++ b/.idea/runConfigurations/app.xml
@@ -1,6 +1,6 @@
-
+
@@ -9,7 +9,7 @@
-
+
@@ -25,6 +25,8 @@
+
+
@@ -32,14 +34,21 @@
+
+
-
+
+
+
+
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 488fc0a9..d0e22bad 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 395
- def appVersionName = '1.36.02'
+ def appVersionCode = 405
+ def appVersionName = '1.36.12'
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/exception/NoOrdersScheduledException.java b/app/src/main/java/it/integry/integrywmsnative/core/exception/NoOrdersScheduledException.java
new file mode 100644
index 00000000..8bbfabbb
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/exception/NoOrdersScheduledException.java
@@ -0,0 +1,11 @@
+package it.integry.integrywmsnative.core.exception;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+
+public class NoOrdersScheduledException extends Exception {
+
+ public NoOrdersScheduledException() {
+ super(UtilityResources.getString(R.string.no_orders_scheduled));
+ }
+}
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/consumers/CommessaRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/CommessaRESTConsumer.java
index 8b70a29e..91bf0da0 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/CommessaRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/CommessaRESTConsumer.java
@@ -13,6 +13,7 @@ import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.JtbComt;
import it.integry.integrywmsnative.core.utility.UtilityQuery;
+import it.integry.integrywmsnative.core.utility.UtilityString;
@Singleton
public class CommessaRESTConsumer extends _BaseRESTConsumer {
@@ -26,6 +27,8 @@ public class CommessaRESTConsumer extends _BaseRESTConsumer {
public void getJtbComts(List itemsToFind, RunnableArgs> onComplete, RunnableArgs onFailed) {
var whereCondMap = Stream.of(itemsToFind)
+ .withoutNulls()
+ .filter(x -> !UtilityString.isNullOrEmpty(x))
.map(x -> {
HashMap vars = new HashMap<>();
vars.put("cod_jcom", x);
@@ -33,6 +36,11 @@ public class CommessaRESTConsumer extends _BaseRESTConsumer {
})
.toList();
+ if(whereCondMap.isEmpty()) {
+ onComplete.run(new ArrayList<>());
+ return;
+ }
+
var whereCond = " WHERE " + UtilityQuery.concatFieldListInWhereCond(whereCondMap);
Type typeOfObjectsList = new TypeToken>() {}.getType();
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 6d52bd65..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;
@@ -69,6 +70,7 @@ public class DBSettingsModel {
private boolean flagCanAddUnknownBarcodesAccettazioneBolla = false;
private boolean flagEnableFastPickAccettazioneBolla = false;
private boolean flagDisableMandatoryTracciabilitaAccettazioneBolla = false;
+ private boolean flagOverflowQuantityWarning = false;
public boolean isFlagSpedizioneEnableFakeGiacenza() {
return flagSpedizioneEnableFakeGiacenza;
@@ -556,4 +558,22 @@ public class DBSettingsModel {
this.flagDisableMandatoryTracciabilitaAccettazioneBolla = flagDisableMandatoryTracciabilitaAccettazioneBolla;
return this;
}
+
+ public boolean isFlagOverflowQuantityWarning() {
+ return flagOverflowQuantityWarning;
+ }
+
+ public DBSettingsModel setFlagOverflowQuantityWarning(boolean flagOverflowQuantityWarning) {
+ 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 503a85d1..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")
@@ -470,6 +476,12 @@ public class SettingsManager {
.setKeySection("FLAG_DISABLE_MANDATORY_TRACCIABILITA")
.setSetter(dbSettingsModelIstance::setFlagDisableMandatoryTracciabilitaAccettazioneBolla)
.setDefaultValue(false));
+ stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
+ .setGestName("PICKING")
+ .setSection("SPEDIZIONE")
+ .setKeySection("FLAG_OVERFLOW_QUANTITY_WARNING")
+ .setSetter(dbSettingsModelIstance::setFlagOverflowQuantityWarning)
+ .setDefaultValue(false));
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
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_bolla_picking/AccettazioneBollaPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java
index e9bd6875..31fb8720 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java
@@ -333,13 +333,13 @@ public class AccettazioneBollaPickingViewModel {
pickingObjectDTO.setTempPickData(pickData);
}
- this.loadMatchedRows(matchPickingObject, mtbAart);
+ this.loadMatchedRows(matchPickingObject, mtbAart, pickData);
onComplete.run();
}
- private void loadMatchedRows(List matchedRows, MtbAart mtbAart) {
+ private void loadMatchedRows(List matchedRows, MtbAart mtbAart, PickDataDTO pickDataDTO) {
if (matchedRows == null || matchedRows.size() == 0) {
- manageNoArtFound(mtbAart);
+ manageNoArtFound(mtbAart, pickDataDTO);
} else if (matchedRows.size() == 1) {
this.manageDispatchBollaRow(matchedRows.get(0));
} else {
@@ -375,11 +375,12 @@ public class AccettazioneBollaPickingViewModel {
}
- private void manageNoArtFound(MtbAart mtbAart) {
+ private void manageNoArtFound(MtbAart mtbAart, PickDataDTO pickDataDTO) {
if (SettingsManager.iDB().isFlagCanAddUnknownItemsAccettazioneBolla()) {
this.manageDispatchBollaRow(new PickingObjectDTO()
- .setMtbAart(mtbAart));
+ .setMtbAart(mtbAart)
+ .setTempPickData(pickDataDTO));
} else
this.sendError(new NoArtsFoundException());
}
@@ -418,12 +419,21 @@ public class AccettazioneBollaPickingViewModel {
}
public void manageDispatchBollaRow(final PickingObjectDTO pickingObjectDTO) {
+ String partitaMag = null;
+ if(pickingObjectDTO.getTempPickData() != null){
+ if(pickingObjectDTO.getTempPickData().getManualPickDTO() != null){
+ if(pickingObjectDTO.getTempPickData().getManualPickDTO().getMtbPartitaMag() != null){
+ partitaMag = pickingObjectDTO.getTempPickData().getManualPickDTO().getMtbPartitaMag().getPartitaMag();
+ }
+ }
+ }
+
if (SettingsManager.iDB().isFlagEnableFastPickAccettazioneBolla()) {
this.saveNewRow(pickingObjectDTO,
BigDecimal.ONE,
pickingObjectDTO.getMtbAart().getQtaCnf(),
pickingObjectDTO.getMtbAart().getQtaCnf(),
- null,
+ partitaMag,
null,
false);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/SitArtOrdDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/SitArtOrdDTO.java
index 34a0fe6a..c748f6bc 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/SitArtOrdDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_elenco/dto/SitArtOrdDTO.java
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto;
import java.math.BigDecimal;
import java.time.LocalDate;
+import java.util.Date;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
@@ -33,6 +34,17 @@ public class SitArtOrdDTO {
private String descrizioneCommessa;
private String termCons;
private String descrizioneEstesaArt;
+ private String descrizioneEstesaOrd;
+ private Date dataCons;
+
+ public String getDescrizioneEstesaOrd() {
+ return descrizioneEstesaOrd;
+ }
+
+ public SitArtOrdDTO setDescrizioneEstesaOrd(String descrizioneEstesaOrd) {
+ this.descrizioneEstesaOrd = descrizioneEstesaOrd;
+ return this;
+ }
public String getCodJcom() {
return codJcom;
@@ -280,4 +292,13 @@ public class SitArtOrdDTO {
this.descrizioneEstesaArt = descrizioneEstesaArt;
return this;
}
+
+ public Date getDataCons() {
+ return dataCons;
+ }
+
+ public SitArtOrdDTO setDataCons(Date dataCons) {
+ this.dataCons = dataCons;
+ return this;
+ }
}
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 2e20aca7..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,17 +44,18 @@ 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;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.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;
@@ -72,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;
@@ -110,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);
@@ -120,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()
@@ -141,6 +146,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
this.initBarcodeReader();
this.initRecyclerView();
this.initFilters();
+ this.initFab();
boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
@@ -151,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() {
@@ -415,6 +443,8 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
accettazioneOrdiniPickingListModel.setBadge1(UtilityString.isNull(x.getSitArtOrdDTO().getCodJcom(), CommonConst.Config.COMMESSA_MAG));
accettazioneOrdiniPickingListModel.setBadge2(String.valueOf(x.getSitArtOrdDTO().getNumOrd()));
+ accettazioneOrdiniPickingListModel.setSubDescrizione1("Consegna: " + UtilityDate.formatDate(x.getSitArtOrdDTO().getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
+
accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneCommessa());
if (x.getMtbAart() != null)
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
@@ -585,8 +615,9 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
accettazioneOrdiniPickingListModel.setSecUntMis(UtilityResources.getString(R.string.unt_mis_col));
}
+ accettazioneOrdiniPickingListModel.setDescrizione(x.getSitArtOrdDTO().getDescrizioneEstesaOrd());
+
if (x.getMtbAart() != null) {
- accettazioneOrdiniPickingListModel.setDescrizione(x.getMtbAart().getDescrizioneEstesa());
accettazioneOrdiniPickingListModel.setPosizione(x.getMtbAart().getPosizione());
}
@@ -674,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, () -> {
@@ -684,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);
}
@@ -769,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
@@ -788,7 +825,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
}
@Override
- public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, RunnableArgss onComplete) {
+ public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canPartitaMagBeChanged, boolean canOverflowQuantity, String customArtDescription, RunnableArgss onComplete) {
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
.setMtbAart(mtbAart)
.setInitialNumCnf(initialNumCnf)
@@ -807,7 +844,8 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
.setDataScad(dataScad)
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
.setCanLUBeClosed(true)
- .setCanOverflowOrderQuantity(canOverflowQuantity);
+ .setCanOverflowOrderQuantity(canOverflowQuantity)
+ .setCustomArtDescription(customArtDescription);
if (!mDialogInputQuantityV2View.isVisible())
mDialogInputQuantityV2View
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java
index ffb9747b..85095aec 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/AccettazioneOrdiniPickingViewModel.java
@@ -371,11 +371,23 @@ public class AccettazioneOrdiniPickingViewModel {
this.sendOnInfoAggiuntiveRequest((additionalNotes, tCol) -> {
final List orders = Stream.of(this.mOrders)
- .map(x -> new CreateUDCRequestOrderDTO()
- .setDataCons(x.getDataConsD() != null ? UtilityDate.toLocalDate(x.getDataConsD()) : null)
- .setDataOrd(UtilityDate.toLocalDate(x.getDataD()))
- .setGestione(x.getGestioneEnum() == GestioneEnum.PRODUZIONE ? GestioneEnum.LAVORAZIONE.getText() : x.getGestione())
- .setNumOrd(x.getNumero()))
+ .map(x -> {
+ final CreateUDCRequestOrderDTO createUDCRequestOrderDTO = new CreateUDCRequestOrderDTO()
+ .setDataCons(x.getDataConsD() != null ? UtilityDate.toLocalDate(x.getDataConsD()) : null)
+ .setDataOrd(UtilityDate.toLocalDate(x.getDataD()))
+ .setNumOrd(x.getNumero());
+
+ if(x.getGestioneEnum() == GestioneEnum.PRODUZIONE) {
+ if(x.isOrdTrasf())
+ createUDCRequestOrderDTO.setGestione(GestioneEnum.ACQUISTO.getText());
+ else
+ createUDCRequestOrderDTO.setGestione(GestioneEnum.LAVORAZIONE.getText());
+ } else {
+ createUDCRequestOrderDTO.setGestione(x.getGestione());
+ }
+
+ return createUDCRequestOrderDTO;
+ })
.toList();
final CreateUDCRequestDTO createUDCRequestDTO = new CreateUDCRequestDTO()
@@ -527,6 +539,7 @@ public class AccettazioneOrdiniPickingViewModel {
partitaMag,
dataScad,
true,
+ pickingObjectDTO.getSitArtOrdDTO().getDescrizioneEstesaOrd(),
(pickedQuantityDTO, shouldCloseLU) -> {
this.saveNewRow(pickingObjectDTO,
pickedQuantityDTO.getNumCnf(),
@@ -613,6 +626,7 @@ public class AccettazioneOrdiniPickingViewModel {
mtbColrToEdit.getPartitaMag(),
mtbColrToEdit.getDataScadPartita(),
true,
+ null,
(pickedQuantityDTO, shouldCloseLU) -> {
this.saveEditedRow(mtbColrToEdit,
@@ -871,6 +885,7 @@ public class AccettazioneOrdiniPickingViewModel {
String partitaMag,
LocalDate dataScad,
boolean canPartitaMagBeChanged,
+ String customArtDescription,
RunnableArgss onComplete) {
if (this.mListener != null) mListener.onItemDispatched(pickingObjectDTO,
mtbAart,
@@ -890,6 +905,7 @@ public class AccettazioneOrdiniPickingViewModel {
dataScad,
canPartitaMagBeChanged,
true,
+ customArtDescription,
onComplete);
}
@@ -946,6 +962,7 @@ public class AccettazioneOrdiniPickingViewModel {
LocalDate dataScad,
boolean canPartitaMagBeChanged,
boolean canOverflowQuantity,
+ String customArtDescription,
RunnableArgss onComplete);
void onFilterCodMartApplied(String codMartToFilter);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java
index 14eb404f..be2a0554 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListAdapter.java
@@ -21,6 +21,7 @@ import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.AccettazioneOrdineInevasoMainListGroupHeaderBinding;
@@ -119,7 +120,10 @@ public class AccettazioneOrdiniPickingListAdapter extends SectionedRecyclerViewA
holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione());
holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY);
+ holder.mBinding.descrizione.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getDescrizione()) ? View.GONE : View.VISIBLE);
+ holder.mBinding.descrizioneSub1.setText(pickingObjectDTO.getSubDescrizione1());
+ holder.mBinding.descrizioneSub1.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getSubDescrizione1()) ? View.GONE : View.VISIBLE);
holder.mBinding.badge1.setText(pickingObjectDTO.getBadge1());
holder.mBinding.badge2.setText(pickingObjectDTO.getBadge2());
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListModel.java
index 0d1aacc7..1209eef2 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordini_picking/ui/AccettazioneOrdiniPickingListModel.java
@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordini_picking.ui;
import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal;
+import java.util.Date;
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.PickingObjectDTO;
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 7d60127d..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();
@@ -266,7 +272,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
var dataScad = data.getDataScad();
String partitaMag = null;
- if (dataScad != null) partitaMag = UtilityDate.formatDate(dataScad, "yyyymmdd");
+ if (dataScad != null) partitaMag = UtilityDate.formatDate(dataScad, "yyyyMMdd");
return partitaMag;
});
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..b4c2e7f5 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,8 @@ public class DocInterniEditFormViewModel {
artDto.setColli(BigDecimal.valueOf(row.getNumCnf()));
artDto.setUntMis(row.getUntMis());
artDto.setCodMart(row.getCodMart());
+ artDto.setSystemNote(row.getNote());
+ artDto.setPartitaMag(row.getPartitaMag());
if (row.getDataScad() != null) {
artDto.setDataScad(row.getDataScad());
}
@@ -257,35 +265,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() {
@@ -330,6 +352,7 @@ public class DocInterniEditFormViewModel {
row.setQtaCol(resultDTO.getQtaTot().floatValue());
row.setNote(resultDTO.getNote());
row.setDataScad(resultDTO.getDataScad());
+ row.setPartitaMag(resultDTO.getPartitaMag());
if (row.getId() > 0) {
this.mtbColrRepository.update(row, id -> {
this.fetchDocumentRows();
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 b334be87..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
@@ -93,6 +93,8 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
//Load fabbisogno
this.mViewModel.loadFabbisogno(startDate, endDate, codMdep, this::startPickingActivity);
// }
+ }, () -> {
+ popMe();
})
.show(getActivity().getSupportFragmentManager(), "tag");
}
@@ -123,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());
@@ -132,6 +138,8 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
})
.toList();
+ boolean divideByGrpMerc = SettingsManager.iDB().isGroupPoductionByCommodityGroup();
+
SpedizioneActivity.startActivity(getActivity(),
sitArtOrdDTOS,
null,
@@ -139,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/ProdFabbisognoLineeProdViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java
index 7bcfd3ec..19d76b92 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java
@@ -5,6 +5,7 @@ import com.annimon.stream.Stream;
import java.util.Date;
import java.util.List;
+import it.integry.integrywmsnative.core.exception.NoOrdersScheduledException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
@@ -29,13 +30,17 @@ public class ProdFabbisognoLineeProdViewModel {
this.sendOnLoadingStarted();
this.mProdFabbisognoLineeProdRESTConsumer.loadFabbisogno(startDate, endDate, codMdep, jtbFasi -> {
- if (jtbFasi != null) Stream.of(jtbFasi)
- .forEach(x -> x
- .setDataInizio(startDate)
- .setDataFine(endDate));
+ if (jtbFasi != null){
+ Stream.of(jtbFasi)
+ .forEach(x -> x
+ .setDataInizio(startDate)
+ .setDataFine(endDate));
- this.sendOnLoadingEnded();
- onComplete.run(jtbFasi);
+ this.sendOnLoadingEnded();
+ onComplete.run(jtbFasi);
+ }else{
+ this.mListener.onError(new NoOrdersScheduledException());
+ }
}, this::sendError);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java
index 62b8d83b..2c5bfda7 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java
@@ -36,20 +36,22 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
DialogAskMagazzinoProssimitaViewModel mViewModel;
private final RunnableArgsss mOnItemSelected;
+ private final Runnable mOnAbort;
private Context mContext;
private DialogAskMagazzinoProssimitaBinding mBindings;
// private JtbFasi mSelectedItem;
- public static DialogAskMagazzinoProssimitaView newInstance(RunnableArgsss onItemSelected) {
- return new DialogAskMagazzinoProssimitaView(onItemSelected);
+ public static DialogAskMagazzinoProssimitaView newInstance(RunnableArgsss onItemSelected, Runnable onAbort) {
+ return new DialogAskMagazzinoProssimitaView(onItemSelected, onAbort);
}
- private DialogAskMagazzinoProssimitaView(RunnableArgsss onItemSelected) {
+ private DialogAskMagazzinoProssimitaView(RunnableArgsss onItemSelected, Runnable onAbort) {
super();
this.mOnItemSelected = onItemSelected;
+ this.mOnAbort = onAbort;
}
@Nullable
@@ -79,6 +81,7 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
// } else {
// FBToast.warningToast(mContext, getResources().getString(R.string.please_select_an_item), Toast.LENGTH_LONG);
// }
+ mOnItemSelected.run(null, mViewModel.startDate, mViewModel.endDate);
}
});
@@ -86,6 +89,7 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
@Override
public void onSingleClick(View v) {
getDialog().dismiss();
+ mOnAbort.run();
}
});
@@ -111,7 +115,6 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
@Override
public void onDismiss(@NonNull DialogInterface dialog) {
super.onDismiss(dialog);
- mOnItemSelected.run(null, mViewModel.startDate, mViewModel.endDate);
}
private final View.OnClickListener onStartDateClickListener = new OnSingleClickListener() {
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/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumer.java
index 7cf13d5e..5c5cbdeb 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumer.java
@@ -10,10 +10,17 @@ import java.util.List;
import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.rest.RESTBuilder;
+import it.integry.integrywmsnative.core.rest.consumers.MagazzinoBufferRESTConsumerService;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.utility.UtilityDB;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
@Singleton
public class ProdFabbisognoLineeProdRESTConsumer extends _BaseRESTConsumer {
@@ -26,254 +33,20 @@ public class ProdFabbisognoLineeProdRESTConsumer extends _BaseRESTConsumer {
public void loadFabbisogno(Date startDate, Date endDate, String codMdep, RunnableArgs> onComplete, RunnableArgs onFailed) {
- String sql = "WITH input_values AS ( " +
- " SELECT " + UtilityDB.valueToString(startDate) + " AS data_inizio, " +
- " " + UtilityDB.valueToString(endDate) + " AS data_fine, " +
-// " " + UtilityDB.valueToString(lineaProd) + " AS linea_prod, " +
- " " + UtilityDB.valueToString(codMdep) + " AS cod_mdep)," +
- " withdraw_mtb_colr AS ( " +
- " SELECT cod_mart, " +
- " SUM(ISNULL(qta_col, 0)) as qta_col, " +
- " SUM(ISNULL(num_cnf, 0)) as num_cnf, " +
- " mtb_colr.data_ord, " +
- " mtb_colr.num_ord, " +
- " mtb_colr.gestione " +
- " FROM mtb_colr " +
- " INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and " +
- " mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo " +
- " WHERE segno = -1 " +
- " AND cod_dtip IS NULL " +
- " GROUP BY cod_mart, " +
- " mtb_colr.data_ord, " +
- " mtb_colr.num_ord, " +
- " mtb_colr.gestione " +
- " ), " +
- " custom_mtb_colr AS (SELECT cod_mart, " +
- " SUM(qta_col) AS qta_col, " +
- " SUM(num_cnf) AS num_cnf, " +
- " posizione " +
- " FROM mvw_sitart_udc_det_inventario " +
- " GROUP BY cod_mart, posizione), " +
- " grouped_ord AS ( " +
- " SELECT dtb_ordr.cod_mart, " +
- " dtb_ordt.cod_jfas, " +
- " dtb_ordt.cod_mdep, " +
- " dtb_ordt.gestione, " +
- " CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) - " +
- " SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord, " +
- " SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord, " +
- " SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata, " +
- " SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata " +
- " FROM dtb_ordr " +
- " INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND " +
- " dtb_ordr.data_ord = dtb_ordt.data_ord AND " +
- " dtb_ordr.num_ord = dtb_ordt.num_ord " +
- " LEFT OUTER JOIN withdraw_mtb_colr " +
- " ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND " +
- " withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND " +
- " withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND " +
- " withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart " +
- " CROSS APPLY input_values " +
- " WHERE dtb_ordt.gestione = 'L' " +
- " AND flag_evaso = 'I' " +
- " AND flag_evaso_prod = 'I' " +
- " AND dtb_ordr.flag_evaso_forzato = 'N' " +
- " AND flag_annulla = 'N' " +
- " AND dtb_ordt.cod_mdep = input_values.cod_mdep " +
- " AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine " +
- " GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione " +
- " ), " +
- " tmp_ord AS (SELECT grouped_ord.cod_mart, " +
- " mtb_aart.unt_mis, " +
- " grouped_ord.cod_jfas, " +
- " SUM(qta_ord) - SUM(qta_col_scaricata) AS qta_ord, " +
- " SUM(num_cnf_ord) - SUM(num_cnf_scaricata) AS num_cnf_ord " +
- " FROM grouped_ord " +
- " INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart " +
- " CROSS APPLY input_values " +
- " GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis, grouped_ord.cod_jfas " +
- " ), " +
- " ord_without_positioned_mtb_colt AS ( " +
- " SELECT tmp_ord.cod_mart, " +
- " tmp_ord.cod_jfas, " +
- " ISNULL(custom_mtb_colr_on_linea.posizione, tmp_ord.cod_jfas) AS posizione, " +
- " unt_mis, " +
- " qta_ord AS qta_ord_calc, " +
- " num_cnf_ord AS num_cnf_ord_calc, " +
- " ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " +
- " ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " +
- " qta_ord - ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_fabbisogno, " +
- " num_cnf_ord - ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_fabbisogno " +
- " FROM tmp_ord " +
- " INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " +
- " AND tmp_ord.cod_jfas = jrl_fase_posizioni.posizione " +
- " LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " +
- " ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " +
- " tmp_ord.cod_jfas = custom_mtb_colr_on_linea.posizione " +
- " " +
- " UNION ALL " +
- " " +
- " SELECT DISTINCT tmp_ord.cod_mart, " +
- " null AS cod_jfas, " +
- " jrl_fase_posizioni.posizione, " +
- " unt_mis, " +
- " 0 AS qta_ord_calc, " +
- " 0 AS num_cnf_ord_calc, " +
- " ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " +
- " ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " +
- " 0 AS qta_fabbisogno, " +
- " 0 AS num_cnf_fabbisogno " +
- " FROM tmp_ord " +
- " INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " +
- " AND tmp_ord.cod_jfas <> jrl_fase_posizioni.posizione " +
- " " +
- " " +
- " LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " +
- " ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " +
- " jrl_fase_posizioni.posizione = custom_mtb_colr_on_linea.posizione " +
- " ) " +
- "SELECT cod_mart, " +
- " unt_mis, " +
- " input_values.data_inizio, " +
- " input_values.data_fine, " +
- " SUM(qta_ord_calc) AS qta_ord, " +
- " SUM(num_cnf_ord_calc) AS num_cnf_ord, " +
- " SUM(qta_gia_posizionata) AS qta_col_versata, " +
- " SUM(num_cnf_gia_posizionata) AS num_cnf_versata, " +
- " SUM(qta_ord_calc - qta_gia_posizionata) AS qta_fabbisogno, " +
- " SUM(num_cnf_ord_calc - num_cnf_gia_posizionata) AS num_cnf_fabbisogno " +
- "FROM ord_without_positioned_mtb_colt " +
- "CROSS APPLY input_values " +
- "GROUP BY cod_mart, unt_mis, input_values.data_inizio, input_values.data_fine " +
- "HAVING SUM(qta_ord_calc - qta_gia_posizionata) > 0 AND SUM(num_cnf_ord_calc - num_cnf_gia_posizionata) > 0 " +
- "ORDER BY cod_mart";
+ ProdFabbisognoLineeProdRESTConsumerService prodFabbisognoLineeProdRESTConsumerService = RESTBuilder.getService(ProdFabbisognoLineeProdRESTConsumerService.class);
+ prodFabbisognoLineeProdRESTConsumerService.loadFabbisogno(UtilityDate.formatDate(startDate, "yyyy-MM-dd"), UtilityDate.formatDate(endDate, "yyyy-MM-dd"), codMdep)
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call>> call,
+ Response>> response) {
+ analyzeAnswer(response, "retrieveFabbisogno", onComplete, onFailed);
+ }
-
-
- /*
- * Query splittata per cod_jfas (più pesante)
- WITH input_values AS (SELECT '2021-02-15' AS data_inizio,
- '2021-02-28' AS data_fine,
- --'SC06' AS linea_prod,
- '34' AS cod_mdep),
- withdraw_mtb_colr AS (
- SELECT cod_mart,
- SUM(ISNULL(qta_col, 0)) as qta_col,
- SUM(ISNULL(num_cnf, 0)) as num_cnf,
- mtb_colr.data_ord,
- mtb_colr.num_ord,
- mtb_colr.gestione
- FROM mtb_colr
- INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and
- mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo
- WHERE segno = -1
- and cod_dtip IS NULL
- GROUP BY cod_mart,
- mtb_colr.data_ord,
- mtb_colr.num_ord,
- mtb_colr.gestione
- ),
- custom_mtb_colr AS (SELECT cod_mart,
- SUM(qta_col) AS qta_col,
- SUM(num_cnf) AS num_cnf,
- posizione
- FROM mvw_sitart_udc_det_inventario
- GROUP BY cod_mart, posizione),
- grouped_ord AS (
- SELECT dtb_ordr.cod_mart,
- dtb_ordt.cod_jfas,
- dtb_ordt.cod_mdep,
- dtb_ordt.gestione,
- CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) -
- SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord,
- SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord,
- SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata,
- SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata
- FROM dtb_ordr
- INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND
- dtb_ordr.data_ord = dtb_ordt.data_ord AND
- dtb_ordr.num_ord = dtb_ordt.num_ord
- LEFT OUTER JOIN withdraw_mtb_colr
- ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND
- withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND
- withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND
- withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart
- CROSS APPLY input_values
- WHERE dtb_ordt.gestione = 'L'
- AND flag_evaso = 'I'
- AND dtb_ordr.flag_evaso_forzato = 'N'
- AND flag_annulla = 'N'
- AND dtb_ordt.cod_mdep = input_values.cod_mdep
- AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine
- GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione
- ),
- tmp_ord AS (SELECT grouped_ord.cod_mart,
- mtb_aart.unt_mis,
- grouped_ord.cod_jfas,
- SUM(qta_ord) - SUM(qta_col_scaricata) AS qta_ord,
- SUM(num_cnf_ord) - SUM(num_cnf_scaricata) AS num_cnf_ord
- FROM grouped_ord
- INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart
- CROSS APPLY input_values
- GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis, grouped_ord.cod_jfas
- ),
- ord_without_positioned_mtb_colt AS (
- SELECT tmp_ord.cod_mart,
- tmp_ord.cod_jfas,
- ISNULL(custom_mtb_colr_on_linea.posizione, tmp_ord.cod_jfas) AS posizione,
- unt_mis,
- qta_ord AS qta_ord_calc,
- num_cnf_ord AS num_cnf_ord_calc,
- ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata,
- ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata,
- qta_ord - ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_fabbisogno,
- num_cnf_ord - ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_fabbisogno
- FROM tmp_ord
- INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas
- AND tmp_ord.cod_jfas = jrl_fase_posizioni.posizione
- LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea
- ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND
- tmp_ord.cod_jfas = custom_mtb_colr_on_linea.posizione
-
- UNION ALL
-
- SELECT DISTINCT tmp_ord.cod_mart,
- null AS cod_jfas,
- jrl_fase_posizioni.posizione,
- unt_mis,
- 0 AS qta_ord_calc,
- 0 AS num_cnf_ord_calc,
- ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata,
- ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata,
- 0 AS qta_fabbisogno,
- 0 AS num_cnf_fabbisogno
- FROM tmp_ord
- INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas
- AND tmp_ord.cod_jfas <> jrl_fase_posizioni.posizione
-
-
- LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea
- ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND
- jrl_fase_posizioni.posizione = custom_mtb_colr_on_linea.posizione
- )
-SELECT cod_mart,
- cod_jfas,
- posizione,
- unt_mis,
- qta_ord_calc AS qta_ord,
- num_cnf_ord_calc AS num_cnf_ord,
- qta_gia_posizionata AS qta_col_versata,
- num_cnf_gia_posizionata AS num_cnf_versata,
- qta_ord_calc - qta_gia_posizionata AS qta_fabbisogno,
- num_cnf_ord_calc - num_cnf_gia_posizionata AS num_cnf_fabbisogno
-FROM ord_without_positioned_mtb_colt
-
-ORDER BY cod_mart, posizione
- * */
-
-
- Type typeOfObjectsList = new TypeToken>() {}.getType();
- this.mSystemRESTConsumer.processSql(sql, typeOfObjectsList, onComplete, onFailed);
+ @Override
+ public void onFailure(Call>> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumerService.java
new file mode 100644
index 00000000..90006097
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/rest/ProdFabbisognoLineeProdRESTConsumerService.java
@@ -0,0 +1,19 @@
+package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest;
+
+import java.util.Date;
+import java.util.List;
+
+import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
+import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
+import retrofit2.Call;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+
+public interface ProdFabbisognoLineeProdRESTConsumerService
+{
+ @GET("wms/approvvigionamento/retrieveFabbisogno")
+ Call>> loadFabbisogno(@Query("startDate") String startDate,
+ @Query("endDate") String endDate,
+ @Query("codMdep") String codMdep);
+}
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 646d3761..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);
@@ -849,6 +853,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
.setPartitaMag(partitaMag)
.setDataScad(dataScad)
.setCanOverflowOrderQuantity(canOverflowOrderQuantity)
+ .setWarnOnQuantityOverflow(SettingsManager.iDB().isFlagOverflowQuantityWarning())
.setCanLUBeClosed(true)
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
.setStatoPartitaMag(pickingObjectDTO != null ? pickingObjectDTO.getStatoArticoloDTO() : null)
@@ -1014,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/ui/DeactivatableViewPager.java b/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java
index d4d25345..6c0e3347 100644
--- a/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java
@@ -1,8 +1,6 @@
package it.integry.integrywmsnative.ui;
-import android.animation.LayoutTransition;
import android.content.Context;
-import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
@@ -10,6 +8,8 @@ import android.view.animation.Animation;
import android.view.animation.Interpolator;
import android.view.animation.Transformation;
+import androidx.viewpager.widget.ViewPager;
+
public class DeactivatableViewPager extends ViewPager implements Animation.AnimationListener {
private View mCurrentView;
@@ -57,7 +57,7 @@ public class DeactivatableViewPager extends ViewPager implements Animation.Anima
height = getMinimumHeight();
}
- int displayHeight = (int)(getResources().getDisplayMetrics().heightPixels*0.77);
+ int displayHeight = (int)(getResources().getDisplayMetrics().heightPixels*0.5);
if(height > displayHeight) height = displayHeight;
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/DialogInputQuantityV2DTO.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java
index 1c515e8c..bc2df22e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2DTO.java
@@ -44,6 +44,7 @@ public class DialogInputQuantityV2DTO {
private boolean saveOnImeDone = false;
private boolean notifyProductLotStatus = false;
private boolean disableTracciabilitaCheck = false;
+ private boolean warnOnQuantityOverflow = false;
private StatoArticoloDTO statoPartitaMag;
@@ -54,6 +55,8 @@ public class DialogInputQuantityV2DTO {
private boolean canOverflowOrderQuantity;
+ private String customArtDescription;
+
public MtbAart getMtbAart() {
return mtbAart;
}
@@ -359,4 +362,22 @@ public class DialogInputQuantityV2DTO {
this.disableTracciabilitaCheck = disableTracciabilitaCheck;
return this;
}
+
+ public String getCustomArtDescription() {
+ return customArtDescription;
+ }
+
+ public DialogInputQuantityV2DTO setCustomArtDescription(String customArtDescription) {
+ this.customArtDescription = customArtDescription;
+ return this;
+ }
+
+ public boolean isWarnOnQuantityOverflow() {
+ return warnOnQuantityOverflow;
+ }
+
+ public DialogInputQuantityV2DTO setWarnOnQuantityOverflow(boolean warnOnQuantityOverflow) {
+ this.warnOnQuantityOverflow = warnOnQuantityOverflow;
+ return this;
+ }
}
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 ba5dc825..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,13 +41,13 @@ 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;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityFocus;
import it.integry.integrywmsnative.core.utility.UtilityObservable;
+import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
@@ -151,6 +151,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
this.mViewModel
.setMtbAart(mDialogInputQuantityV2DTO.getMtbAart())
+ .setArtDescription(UtilityString.isNull(mDialogInputQuantityV2DTO.getCustomArtDescription(), mDialogInputQuantityV2DTO.getMtbAart().getDescrizioneEstesa()))
.setInitialNumCnf(mDialogInputQuantityV2DTO.getInitialNumCnf())
.setInitialQtaCnf(mDialogInputQuantityV2DTO.getInitialQtaCnf())
.setInitialQtaTot(mDialogInputQuantityV2DTO.getInitialQtaTot())
@@ -168,13 +169,15 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
.setTotalQtaAvailable(mDialogInputQuantityV2DTO.getTotalQtaAvailable())
.setCanInputZeroQuantity(mDialogInputQuantityV2DTO.isCanInputZeroQuantity())
.setCanOverflowOrderQuantity(mDialogInputQuantityV2DTO.isCanOverflowOrderQuantity())
+ .setWarnOnQuantityOverflow(mDialogInputQuantityV2DTO.isWarnOnQuantityOverflow())
.setQtaCnfAvailable(mDialogInputQuantityV2DTO.getQtaCnfAvailable())
.setPartitaMag(mDialogInputQuantityV2DTO.getPartitaMag())
.setNote(mDialogInputQuantityV2DTO.getNote())
.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);
@@ -212,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)));
-
+ }
}
}
@@ -254,19 +256,23 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
};
public void save() {
- if (this.mViewModel.validate()) {
- this.mAbort = false;
- dismiss();
- this.mOnComplete.run(this.mViewModel.getResult(), false);
- }
+ this.mViewModel.validate(validated -> {
+ if (validated) {
+ this.mAbort = false;
+ dismiss();
+ this.mOnComplete.run(this.mViewModel.getResult(), false);
+ }
+ });
}
public void saveAndCloseLU() {
- if (this.mViewModel.validate()) {
- this.mAbort = false;
- dismiss();
- this.mOnComplete.run(this.mViewModel.getResult(), true);
- }
+ this.mViewModel.validate(validated -> {
+ if (validated) {
+ this.mAbort = false;
+ dismiss();
+ this.mOnComplete.run(this.mViewModel.getResult(), true);
+ }
+ });
}
// @Override
@@ -530,4 +536,13 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
.makeErrorDialog(new SpannableString(Html.fromHtml(ex.getMessage())), null, null)
.show(requireActivity().getSupportFragmentManager(), "tag");
}
+
+ @Override
+ public void onWarning(String text, RunnableArgs result) {
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(text)),
+ null,
+ () -> result.run(true),
+ () -> result.run(false)
+ ).show(requireActivity().getSupportFragmentManager(), "tag");
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2ViewModel.java
index cd3a5154..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
@@ -3,19 +3,24 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
import androidx.databinding.ObservableField;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.time.LocalDate;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+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;
@@ -32,6 +37,7 @@ public class DialogInputQuantityV2ViewModel {
private final int UPDATE_QTA_TOT = 2;
public ObservableField mtbAart = new ObservableField<>();
+ public BindableString artDescription = new BindableString();
public ObservableField blockedNumCnf = new ObservableField<>();
public ObservableField blockedQtaCnf = new ObservableField<>();
@@ -78,11 +84,14 @@ public class DialogInputQuantityV2ViewModel {
private int onNumCnfInputChanged;
private int onQtaTotInputChanged;
private boolean disableTracciabilitaCheck;
+ private boolean warnOnQuantityOverflow;
private Listener mListener;
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
+ private StatoPartitaMag statoArt;
+
@Inject
public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
@@ -236,6 +245,11 @@ public class DialogInputQuantityV2ViewModel {
return this;
}
+ public DialogInputQuantityV2ViewModel setArtDescription(String artDescription) {
+ this.artDescription.set(artDescription);
+ return this;
+ }
+
public DialogInputQuantityV2ViewModel setInitialNumCnf(BigDecimal initialNumCnf) {
this.initialNumCnf = initialNumCnf;
return this;
@@ -326,6 +340,16 @@ 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;
+ }
+
public DialogInputQuantityV2ViewModel setCanPartitaMagBeChanged(boolean canPartitaMagBeChanged) {
this.canPartitaMagBeChanged = canPartitaMagBeChanged;
return this;
@@ -450,11 +474,12 @@ public class DialogInputQuantityV2ViewModel {
this.blockedQtaTot.set(false);
}
- public boolean validate() {
+ public void validate(RunnableArgs onValidated) {
if (this.internalQtaCnf == null || UtilityBigDecimal.equalsTo(this.internalQtaCnf, BigDecimal.ZERO)) {
this.mListener.onError(new InvalidQtaCnfQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (!disableTracciabilitaCheck && mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) {
@@ -462,51 +487,65 @@ public class DialogInputQuantityV2ViewModel {
internalPartitaMag = suggestPartitaMagRunnable.run(this);
if (internalPartitaMag == null) {
this.mListener.onError(new InvalidBatchLotException());
- return false;
+ onValidated.run(false);
+ return;
}
} else {
this.mListener.onError(new InvalidBatchLotException());
- return false;
+ onValidated.run(false);
+ return;
}
}
+ 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());
- return false;
+ onValidated.run(false);
+ return;
}
if (this.shouldAskDataScad && this.internalDataScad == null) {
this.mListener.onError(new InvalidExpireDateException());
- return false;
+ onValidated.run(false);
+ return;
}
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
this.mListener.onError(new OverflowQtaTotOrderedQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
this.mListener.onError(new OverflowNumCnfOrderedQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaAvailable)) {
this.mListener.onError(new OverflowQtaTotAvailableQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfAvailable) &&
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
this.mListener.onError(new OverflowNumCnfAvailableQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (!this.canInputZeroQuantity && (this.internalNumCnf == null || this.internalQtaCnf == null || this.internalQtaTot == null ||
@@ -515,17 +554,36 @@ public class DialogInputQuantityV2ViewModel {
UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO))) {
this.mListener.onError(new InvalidQuantityException());
- return false;
+ onValidated.run(false);
+ return;
}
if (this.isNoteMandatory() && (this.internalNote == null || this.internalNote.length() <= 0)) {
this.mListener.onError(new InvalidNotesException());
- return false;
+ onValidated.run(false);
+ return;
}
if (!UtilityString.isNullOrEmpty(this.internalPartitaMag))
this.internalPartitaMag = this.internalPartitaMag.toUpperCase();
- return true;
+
+ //Gli ultimi due controlli sono in coda a causa della callBack di onWarning, non eseguirebbe i controlli messi dopo
+
+ if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
+ this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
+
+ this.mListener.onWarning("Hai inserito una quantità superiore rispetto a quella presente nell'ordine.
Continuare?", onValidated);
+ return;
+ }
+
+ if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
+ !this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
+
+ this.mListener.onWarning("Hai inserito una quantità superiore rispetto a quella presente nell'ordine.
Continuare?", onValidated);
+ return;
+ }
+
+ onValidated.run(true);
}
public DialogInputQuantityV2ResultDTO getResult() {
@@ -536,7 +594,6 @@ public class DialogInputQuantityV2ViewModel {
.setQtaCnf(this.internalQtaCnf)
.setNote(this.internalNote)
.setQtaTot(this.internalQtaTot);
-
}
public void setListener(Listener listener) {
@@ -570,5 +627,6 @@ public class DialogInputQuantityV2ViewModel {
void onDataChanged();
void onError(Exception ex);
+ void onWarning(String text, RunnableArgs result);
}
}
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/accettazione_ordine_inevaso_main_list__group_item.xml b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml
index 8da22590..efca9ac0 100644
--- a/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml
+++ b/app/src/main/res/layout/accettazione_ordine_inevaso_main_list__group_item.xml
@@ -147,6 +147,18 @@
android:textSize="16sp"
tools:text="DESCRIZIONE" />
+
@@ -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_basket_lu.xml b/app/src/main/res/layout/dialog_basket_lu.xml
index fca3a951..108e420c 100644
--- a/app/src/main/res/layout/dialog_basket_lu.xml
+++ b/app/src/main/res/layout/dialog_basket_lu.xml
@@ -23,7 +23,7 @@
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_input_quantity_v2.xml b/app/src/main/res/layout/dialog_input_quantity_v2.xml
index 6b67d8f5..48d41497 100644
--- a/app/src/main/res/layout/dialog_input_quantity_v2.xml
+++ b/app/src/main/res/layout/dialog_input_quantity_v2.xml
@@ -108,7 +108,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:singleLine="false"
- android:text="@{viewmodel.mtbAart.descrizioneEstesa}"
+ android:text="@{viewmodel.artDescription}"
tools:text="RAD 25 D H/L 200 - 10 EL B BIANCO" />
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..1dc4d0ef 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -215,6 +215,7 @@
Nessun articolo da prelevare
Nessun documento da mostrare
Nessun ordine da evadere
+ Nessun ordine programmato sulla linea per il periodo selezionato
Nessun ordine compatibile
Nessun articolo
Nessuna UL versata in produzione
@@ -222,6 +223,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 +345,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..cb147c39 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -219,6 +219,7 @@
No items to pick
No documents to show
No orders to dispatch
+ No orders scheduled on the line for the selected period:
No inventory available
no compatible orders found
@@ -227,7 +228,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 +352,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 7d74229b..d900b182 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@
buildscript {
ext {
kotlin_version = '1.9.0'
- agp_version = '8.1.2'
+ 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