diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index d410090e..6eebe752 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/build.gradle b/app/build.gradle index cdc5ae94..8a575a2c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 58 - def appVersionName = '1.4.0' + def appVersionCode = 59 + def appVersionName = '1.4.1' signingConfigs { release { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java index 3bf0288c..06ebee8d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java @@ -296,6 +296,11 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)){ this.executeEtichettaLU(ean128Model.Sscc, progressDialog); + } else if(!UtilityString.isNullOrEmpty(barcodeProd)) { + if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) { + barcodeProd = barcodeProd.substring(1, barcodeProd.length()); + } + this.loadArticolo(barcodeProd, ean128Model, progressDialog); } else { showNoULFound(() -> { BarcodeManager.enable(); @@ -328,7 +333,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { ArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { if(mtbAartList != null && mtbAartList.size() > 0) { - + progressDialog.dismiss(); this.dispatchArt(mtbAartList.get(0), ean128Model); } else { @@ -397,13 +402,15 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { } - qtaDto.setShouldAskDataScad(true); + // qtaDto.setShouldAskDataScad(true); } DialogInputQuantity.makeBase(mContext, qtaDto, true, (quantityDTO) -> { onPostDispatch(mtbAart, quantityDTO); - }, null).show(); + }, () -> { + BarcodeManager.enable(); + }).show(); } @@ -414,7 +421,8 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { .setPartitaMag(quantityDTO.batchLot.get()) .setDataScadPartita(quantityDTO.expireDate) .setQtaCol(quantityDTO.qtaTot.getBigDecimal()) - .setDescrizione(mtbAart.getDescrizioneEstesa()); + .setDescrizione(mtbAart.getDescrizioneEstesa()) + .setMtbAart(mtbAart); mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); @@ -701,7 +709,8 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { mBinding.bottomSheetActionsDeleteBtn.setOnClickListener(v -> onItemDelete(item)); - mBinding.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + " " + clickedItem.getMtbAart().getUntMis()); + String untMis = !UtilityString.isNullOrEmpty(clickedItem.getMtbAart().getUntMis()) ? clickedItem.getMtbAart().getUntMis() : "-"; + mBinding.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + " " + untMis); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java index 7216625c..eaacf823 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/dto/PickingObjectDTO.java @@ -44,6 +44,7 @@ public class PickingObjectDTO implements Parcelable { private MtbAart mtbAart; private Boolean hidden = null; + private Boolean deactivated = null; private Boolean tempHidden = null; private PickData tempPickData = null; @@ -74,6 +75,7 @@ public class PickingObjectDTO implements Parcelable { partitaMag = in.readString(); codAlis = in.readString(); hidden = in.readByte() == 0x00 ? null : in.readByte() != 0x00; + deactivated = in.readByte() == 0x00 ? null : in.readByte() != 0x00; if (in.readByte() == 0) { qtaCollo = null; @@ -133,6 +135,12 @@ public class PickingObjectDTO implements Parcelable { dest.writeByte((byte) (0x01)); dest.writeByte((byte) (hidden ? 0x01 : 0x00)); } + if (deactivated == null) { + dest.writeByte((byte) (0x00)); + } else { + dest.writeByte((byte) (0x01)); + dest.writeByte((byte) (deactivated ? 0x01 : 0x00)); + } if (qtaCollo == null) { dest.writeByte((byte) (0x00)); @@ -405,6 +413,15 @@ public class PickingObjectDTO implements Parcelable { return this; } + public Boolean isDeactivated() { + return deactivated; + } + + public PickingObjectDTO setDeactivated(boolean deactivated) { + this.deactivated = deactivated; + return this; + } + public Boolean isTempHidden() { return tempHidden; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java index f28d2dc8..252b0009 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java @@ -152,6 +152,7 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter= 0 ) { groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha)); } else if (rowItem.getQtaRiservata().floatValue() > 0) { @@ -200,8 +201,18 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter { - if (mOrdineRowDispatch != null) { + if (mOrdineRowDispatch != null && !rowItem.getOriginalModel().isDeactivated()) { // rowItem.getOriginalModel().setTempEan128Model(null); mOrdineRowDispatch.onOrdineRowDispatch(rowItem.getOriginalModel()); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java index 9275cb06..ac90af2c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java @@ -42,6 +42,8 @@ public class VenditaOrdineInevasoHelper { public List> getPickingListRaggruppataPerPosizione(List mPickingList, boolean forceHiddenCheck){ + + List listOfKnownPositions = Stream.of(mPickingList) .map(PickingObjectDTO::getPosizione) .distinctBy(x -> x) @@ -49,8 +51,16 @@ public class VenditaOrdineInevasoHelper { .sortBy(x -> x) .toList(); + listOfKnownPositions.add(null); + String posizione = "Non disponibili al PICKING"; + for(int i = 0; i < mPickingList.size(); i++) { + mPickingList.get(i).setDeactivated(mPickingList.get(i).getQtaCollo().floatValue() == 0); + if(mPickingList.get(i).isDeactivated()) mPickingList.get(i).setPosizione(posizione); + } + listOfKnownPositions.add(posizione); + List> groupedRighe = new ArrayList<>(); for (String position : listOfKnownPositions) { @@ -62,10 +72,7 @@ public class VenditaOrdineInevasoHelper { if(tmpList.get(i).isHidden() == null || forceHiddenCheck) { PickingObjectDTO tmpItem = tmpList.get(i); - if (tmpItem.getQtaCollo().floatValue() <= 0) { - tmpItem.setHidden(true); - } else tmpItem.setHidden(false); - + tmpItem.setHidden(tmpItem.getQtaCollo().floatValue() < 0); tmpItem.setTempHidden(false); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java index 76e59770..3bf4db4c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java @@ -1077,10 +1077,10 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO AtomicBigDecimal qtaTest = new AtomicBigDecimal(); Stream.of(item.getWithdrawRows()) - .filter(x -> Objects.equals(x.getNumColloRif(), item.getNumCollo()) && - x.getDataColloRifS().equalsIgnoreCase(item.getDataColloS()) && - x.getSerColloRif().equalsIgnoreCase(item.getSerCollo()) && - x.getGestioneRif().equalsIgnoreCase(item.getGestione())) + .filter(x -> ((x.getNumColloRif() == null) || Objects.equals(x.getNumColloRif(), item.getNumCollo()) && + ((x.getDataColloRifS() == null) || Objects.equals(x.getDataColloRifS(), item.getDataColloS())) && + ((x.getSerColloRif() == null) || Objects.equals(x.getSerColloRif(), item.getSerCollo()))) && + ((x.getGestioneRif() == null) || Objects.equals(x.getGestioneRif(), item.getGestione()))) .forEach(x -> { qtaTest.addAndGet(x.getQtaCol()); }); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java index a6e3c50e..b288d59a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java @@ -384,6 +384,8 @@ public class DialogInputQuantity { BarcodeManager.removeCallback(barcodeIstanceID); }); + BarcodeManager.enable(); + } diff --git a/app/src/main/res/drawable/badge1_round_corner.xml b/app/src/main/res/drawable/badge1_round_corner.xml index c4d39927..31ae84b3 100644 --- a/app/src/main/res/drawable/badge1_round_corner.xml +++ b/app/src/main/res/drawable/badge1_round_corner.xml @@ -4,8 +4,8 @@ diff --git a/app/src/main/res/drawable/badge_gray_round_corner.xml b/app/src/main/res/drawable/badge_gray_round_corner.xml new file mode 100644 index 00000000..18455ca2 --- /dev/null +++ b/app/src/main/res/drawable/badge_gray_round_corner.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml b/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml index 1f5e360c..9d43e141 100644 --- a/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml +++ b/app/src/main/res/layout/vendita_ordine_inevaso_main_list_child_group_model.xml @@ -3,13 +3,14 @@ android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:tools="http://schemas.android.com/tools" - android:background="@color/full_white" - android:padding="8dp"> + android:background="@color/full_white"> + android:orientation="vertical" + android:padding="8dp"> + + \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 69dd6cc4..4f4a0725 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,15 +9,31 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx1536m +# org.gradle.jvmargs=-Xmx1536m android.databinding.enableV2=true android.useAndroidX=true android.enableJetifier=true +android.enableSeparateAnnotationProcessing = true # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true + + + +# Enable Gradle Daemon +org.gradle.daemon=true +# Enable Configure on demand +org.gradle.configureondemand=true +# Enable parallel builds +org.gradle.parallel=true +# Enable Build Cache +android.enableBuildCache=true +# Enable simple gradle caching +org.gradle.caching=true +# Increase memory allotted to JVM +org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 \ No newline at end of file