diff --git a/.idea/runConfigurations/app_base.xml b/.idea/runConfigurations/app_base.xml
index e87f440c..f55876a3 100644
--- a/.idea/runConfigurations/app_base.xml
+++ b/.idea/runConfigurations/app_base.xml
@@ -15,6 +15,7 @@
+
@@ -45,7 +46,7 @@
-
+
diff --git a/.idea/runConfigurations/app_vglimenti.xml b/.idea/runConfigurations/app_vglimenti.xml
index 51ad9b27..9ed66857 100644
--- a/.idea/runConfigurations/app_vglimenti.xml
+++ b/.idea/runConfigurations/app_vglimenti.xml
@@ -15,6 +15,7 @@
+
@@ -45,7 +46,7 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 45e84b2f..3b7d1b08 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -85,6 +85,7 @@ android {
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti"]
+
}
dependencies {
@@ -138,7 +139,6 @@ dependencies {
implementation 'com.github.cachapa:ExpandableLayout:2.9.2'
implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'
implementation 'com.github.fede87:StatusBarAlert:1.0.1'
- testImplementation 'junit:junit:4.13.2'
implementation 'com.github.zhukic:sectioned-recyclerview:1.2.3'
implementation 'com.github.pedromassango:doubleClick:3.0'
@@ -157,11 +157,14 @@ dependencies {
implementation project(':barcode_base_android_library')
implementation project(':honeywellscannerlibrary')
implementation project(':keyobardemulatorscannerlibrary')
- androidTestImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.1'
- androidTestImplementation 'org.testng:testng:7.4.0'
implementation 'com.github.RaviKoradiya:LiveAdapter:1.3.4'
+
+ // Required -- JUnit 4 framework
+// testImplementation "org.junit.jupiter:junit-jupiter-api:5.8.1"
+// androidTestImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
+// androidTestImplementation 'org.testng:testng:7.4.0'
}
repositories {
diff --git a/app/src/androidTest/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModelTest.java b/app/src/androidTest/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModelTest.java
deleted file mode 100644
index 4d85daa1..00000000
--- a/app/src/androidTest/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModelTest.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package it.integry.integrywmsnative.gest.spedizione;
-
-class SpedizioneViewModelTest {
-
- @org.junit.jupiter.api.Test
- void createNewLU() {
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java
index cb8364da..4706f3f5 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloOrdine.java
@@ -87,7 +87,7 @@ public class ArticoloOrdine {
return articoloOrdineId;
}
- public void setArticoloOrdineId(int articoloOrdineId) {
+ public void setArticoloOrdineId(Integer articoloOrdineId) {
this.articoloOrdineId = articoloOrdineId;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java
index 247c71d6..1a3aad17 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PosizioniRESTConsumer.java
@@ -53,7 +53,7 @@ public class PosizioniRESTConsumer extends _BaseRESTConsumer{
String codMdep = null;
PosizioniRESTConsumerService posizioniRESTConsumerService = RESTBuilder.getService(PosizioniRESTConsumerService.class);
- posizioniRESTConsumerService.getAvailablePosizioni(codMdep).enqueue(new Callback>>() {
+ posizioniRESTConsumerService.getAvailablePosizioni(codMdep).enqueue(new Callback<>() {
@Override
public void onResponse(Call>> call, Response>> response) {
analyzeAnswer(response, "getAvailablePosizioni", (m) -> {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/ui/SpedizioneListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/ui/SpedizioneListAdapter.java
index 2fc84245..82847442 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/ui/SpedizioneListAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/ui/SpedizioneListAdapter.java
@@ -125,6 +125,7 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter {
- if(mtbColrList != null && mtbColrList.size() > 0) {
- DialogChooseArtFromListaMtbColrView.make(getActivity(), mtbColrList, mtbColrChose -> {
+
+ var filteredMtbColrList = mtbColrList;
+
+ if (mtbAart != null) {
+ filteredMtbColrList = Stream.of(filteredMtbColrList)
+ .filter(x -> x.getCodMart().equalsIgnoreCase(mtbAart.getCodMart()))
+ .toList();
+ }
+
+ if (filteredMtbColrList != null && filteredMtbColrList.size() > 1) {
+ DialogChooseArtFromListaMtbColrView.make(getActivity(), filteredMtbColrList, mtbColrChose -> {
mOnItemChoosed.run(status, mtbAart, ean128Model, mtbColrChose);
}).show();
+
+ } else if (filteredMtbColrList != null && filteredMtbColrList.size() == 1) {
+ mOnItemChoosed.run(status, mtbAart, ean128Model, filteredMtbColrList.get(0));
+
} else {
mOnItemChoosed.run(status, mtbAart, ean128Model, null);
}
+
BarcodeManager.enable();
this.closeProgress();
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtViewModel.java
index 3a8752a6..22331a50 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtViewModel.java
@@ -7,16 +7,21 @@ import java.util.List;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.core.exception.InvalidLUException;
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
+import it.integry.integrywmsnative.core.exception.NoLUFoundException;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
+import it.integry.integrywmsnative.core.exception.TooManyLUFoundInMonoLUPositionException;
import it.integry.integrywmsnative.core.expansion.RunnableArgssss;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
+import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
+import it.integry.integrywmsnative.core.utility.UtilityPosizione;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
@@ -25,15 +30,20 @@ public class DialogScanArtViewModel {
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
private final ArticoloRESTConsumer mArticoloRESTConsumer;
+ private final PosizioniRESTConsumer mPosizioniRESTConsumer;
private boolean mForceOnlyUL;
private Listener mListener;
- public DialogScanArtViewModel(BarcodeRESTConsumer barcodeRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) {
+ public DialogScanArtViewModel(BarcodeRESTConsumer barcodeRESTConsumer,
+ ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
+ ArticoloRESTConsumer articoloRESTConsumer,
+ PosizioniRESTConsumer posizioniRESTConsumer) {
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
this.mArticoloRESTConsumer = articoloRESTConsumer;
+ this.mPosizioniRESTConsumer = posizioniRESTConsumer;
}
public DialogScanArtViewModel setForceOnlyUL(boolean forceOnlyUL) {
@@ -50,15 +60,19 @@ public class DialogScanArtViewModel {
//Cerco l'UL presente all'interno della posizione
// this.executeEtichettaPosizione(barcodeScanDTO.getStringValue(), onComplete);
- } else if(UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
+ } else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
this.executeEtichettaEan128(barcodeScanDTO, onComplete);
- } else if(UtilityBarcode.isEanPeso(barcodeScanDTO) && !mForceOnlyUL){
+
+ } else if (UtilityBarcode.isEanPeso(barcodeScanDTO) && !mForceOnlyUL) {
this.executeEtichettaEanPeso(barcodeScanDTO, onComplete);
- } else if (!mForceOnlyUL){
- this.loadArticolo(barcodeScanDTO.getStringValue(), null, onComplete);
+
} else {
- this.sendError(new Exception("Barcode non valido"));
+ this.loadArticolo(barcodeScanDTO.getStringValue(), null, onComplete);
+
}
+// else {
+// this.sendError(new Exception("Barcode non valido"));
+// }
}
@@ -67,15 +81,15 @@ public class DialogScanArtViewModel {
String barcodeProd = null;
- if(ean128Model.Sscc != null) barcodeProd = ean128Model.Sscc;
- if(ean128Model.Gtin != null) barcodeProd = ean128Model.Gtin;
- if(ean128Model.Content != null) barcodeProd = ean128Model.Content;
+ if (ean128Model.Sscc != null) barcodeProd = ean128Model.Sscc;
+ if (ean128Model.Gtin != null) barcodeProd = ean128Model.Gtin;
+ if (ean128Model.Content != null) barcodeProd = ean128Model.Content;
- if(!UtilityString.isNullOrEmpty(barcodeProd)) {
+ if (!UtilityString.isNullOrEmpty(barcodeProd)) {
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
this.executeEtichettaLU(ean128Model.Sscc, onComplete);
- } else if(!mForceOnlyUL) {
+ } else if (!mForceOnlyUL) {
if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
barcodeProd = barcodeProd.substring(1);
}
@@ -117,17 +131,43 @@ public class DialogScanArtViewModel {
}, this::sendError);
}
+ private void executePosizione(MtbDepoPosizione posizione, MtbAart articolo, RunnableArgssss> onComplete) {
+ this.mPosizioniRESTConsumer.getBancaliInPosizione(posizione, mtbColtList -> {
+
+ if (mtbColtList == null || mtbColtList.size() == 0) {
+ this.sendError(new NoLUFoundException());
+ } else if (mtbColtList.size() == 1) {
+ this.mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
+ onComplete.run(DialogConsts.Results.YES, articolo, null, mtbColt.getMtbColr());
+ }, this::sendError);
+ } else {
+ this.sendError(new TooManyLUFoundInMonoLUPositionException());
+ }
+
+ }, this::sendError);
+ }
+
private void loadArticolo(@NotNull String barcodeProd, Ean128Model ean128Model, RunnableArgssss> onComplete) {
- if(barcodeProd.length() == 14) {
-// barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd);
+ if (barcodeProd.length() == 14) {
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
}
String finalBarcodeProd = barcodeProd;
this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
- if(mtbAartList != null && mtbAartList.size() > 0) {
- onComplete.run(DialogConsts.Results.YES, mtbAartList.get(0), ean128Model, null);
+ if (mtbAartList != null && mtbAartList.size() > 0) {
+
+ MtbAart firstArt = mtbAartList.get(0);
+ MtbDepoPosizione firstArtPosition = UtilityPosizione.getFromCache(firstArt.getPosizione());
+
+ if (firstArtPosition != null && firstArtPosition.isFlagMonoCollo() && mForceOnlyUL) {
+ this.executePosizione(firstArtPosition, firstArt, onComplete);
+ } else if (!mForceOnlyUL) {
+ onComplete.run(DialogConsts.Results.YES, mtbAartList.get(0), ean128Model, null);
+ } else {
+ this.sendError(new NoResultFromBarcodeException(finalBarcodeProd));
+ }
+
} else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd));
}
@@ -135,8 +175,6 @@ public class DialogScanArtViewModel {
}
-
-
private void sendError(Exception ex) {
if (this.mListener != null) mListener.onError(ex);
}
diff --git a/app/src/main/res/layout/dialog_scan_art.xml b/app/src/main/res/layout/dialog_scan_art.xml
index 10577e4a..936a9a7c 100644
--- a/app/src/main/res/layout/dialog_scan_art.xml
+++ b/app/src/main/res/layout/dialog_scan_art.xml
@@ -4,9 +4,10 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
@@ -21,17 +22,17 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingStart="24dp"
- android:paddingEnd="24dp"
android:paddingTop="24dp"
+ android:paddingEnd="24dp"
android:paddingBottom="12dp">
-
+ android:gravity="center_horizontal"
+ android:text="@string/extra_item" />
+ android:layout_height="wrap_content" />
+ android:text="@string/scan_item"
+ android:textSize="16sp" />
-
+ android:layout_marginTop="16dp"
+ android:text="@string/abort"
+ app:layout_constraintTop_toTopOf="parent"
+ app:strokeColor="@color/red_400" />
@@ -78,5 +78,4 @@
-
\ No newline at end of file
diff --git a/barcode_base_library/.gitignore b/barcode_base_library/.gitignore
deleted file mode 100644
index 796b96d1..00000000
--- a/barcode_base_library/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/barcode_base_library/build.gradle b/barcode_base_library/build.gradle
deleted file mode 100644
index f623c57a..00000000
--- a/barcode_base_library/build.gradle
+++ /dev/null
@@ -1,5 +0,0 @@
-apply plugin: 'java-library'
-
-dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
-}
diff --git a/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/exception/BarcodeAdapterNotFoundException.java b/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/exception/BarcodeAdapterNotFoundException.java
deleted file mode 100644
index 78def51d..00000000
--- a/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/exception/BarcodeAdapterNotFoundException.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package it.integry.barcode_base_android_library.exception;
-
-public class BarcodeAdapterNotFoundException extends Exception {
-
- public BarcodeAdapterNotFoundException(String adapterName) {
- super("L'adapter " + adapterName + " non รจ stato rilevato sul dispositivo corrente");
- }
-
-}
diff --git a/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/extension/RunnableArgs.java b/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/extension/RunnableArgs.java
deleted file mode 100644
index 303dabb3..00000000
--- a/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/extension/RunnableArgs.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package it.integry.barcode_base_android_library.extension;
-
-public interface RunnableArgs {
-
- void run(T data);
-
-}
\ No newline at end of file
diff --git a/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/interfaces/BarcodeReaderInterface.java b/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/interfaces/BarcodeReaderInterface.java
deleted file mode 100644
index 41863b49..00000000
--- a/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/interfaces/BarcodeReaderInterface.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package it.integry.barcode_base_android_library.interfaces;
-
-
-import it.integry.barcode_base_android_library.extension.RunnableArgs;
-import it.integry.barcode_base_android_library.exception.BarcodeAdapterNotFoundException;
-import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
-
-public interface BarcodeReaderInterface {
-
- boolean isRightAdapter();
-
- void init(Runnable onDeviceReady) throws BarcodeAdapterNotFoundException;
-
- void deinit();
-
- void register(RunnableArgs onScanSuccessfull, RunnableArgs onScanFailed);
-
- String getAdapterName();
-
- //void onKeyEvent(KeyEvent keyEvent);
-
-}
diff --git a/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/model/BarcodeScanDTO.java b/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/model/BarcodeScanDTO.java
deleted file mode 100644
index ddde65c3..00000000
--- a/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/model/BarcodeScanDTO.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package it.integry.barcode_base_android_library.model;
-
-public class BarcodeScanDTO {
-
- private BarcodeType type;
- private String stringValue;
- private byte[] byteValue;
- private String name;
- private int decodingTime;
-
- public BarcodeType getType() {
- return type;
- }
-
- public BarcodeScanDTO setType(BarcodeType type) {
- this.type = type;
- return this;
- }
-
- public String getStringValue() {
- return stringValue;
- }
-
- public BarcodeScanDTO setStringValue(String stringValue) {
- this.stringValue = stringValue;
- return this;
- }
-
- public byte[] getByteValue() {
- return byteValue;
- }
-
- public BarcodeScanDTO setByteValue(byte[] byteValue) {
- this.byteValue = byteValue;
- return this;
- }
-
- public String getName() {
- return name;
- }
-
- public BarcodeScanDTO setName(String name) {
- this.name = name;
- return this;
- }
-
- public int getDecodingTime() {
- return decodingTime;
- }
-
- public BarcodeScanDTO setDecodingTime(int decodingTime) {
- this.decodingTime = decodingTime;
- return this;
- }
-}
diff --git a/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/model/BarcodeType.java b/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/model/BarcodeType.java
deleted file mode 100644
index 566fe580..00000000
--- a/barcode_base_library/src/main/java/it/integry/plugins/barcode_base_library/model/BarcodeType.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package it.integry.barcode_base_android_library.model;
-
-public enum BarcodeType {
-
- NIL(0),
- AIRLINE_2OF5_13_DIGIT(1),
- AIRLINE_2OF5_15_DIGIT(2),
- AZTEC(3),
- AUSTRALIAN_POSTAL(4),
- BOOKLAND_EAN(5),
- BPO(6),
- CANPOST(7),
- CHINAPOST(8),
- CHINESE_2OF5(9),
- CODABAR(10),
- CODABLOCK(11),
- CODE11(12),
- CODE128(13),
- CODE16K(14),
- CODE32(15),
- CODE39(16),
- CODE49(17),
- CODE93(18),
- COMPOSITE(19),
- COUPON_CODE(20),
- DATAMATRIX(21),
- DISCRETE_2OF5(22),
- DUTCH_POSTAL(23),
- EAN128(24),
- EAN13(25),
- EAN8(26),
- GS1_DATABAR_14(27),
- GS1_DATABAR_EXPANDED(28),
- GS1_DATABAR_LIMITED(29),
- HONGKONG_2OF5(30),
- IATA_2OF5(31),
- IDTAG(32),
- INTERLEAVED_2OF5(33),
- ISBT128(34),
- JAPANESE_POSTAL(35),
- KOREAN_POSTAL(36),
- MATRIX_2OF5(37),
- MAXICODE(38),
- MESA(39),
- MICRO_PDF417(40),
- MICRO_QR(41),
- MSI(42),
- NEC_2OF5(43),
- OCR(44),
- PDF417(45),
- PLESSEY(46),
- POSICODE(47),
- POST_US4(48),
- QR(49),
- STRAIGHT_2OF5(50),
- STANDARD_2OF5(51),
- TELEPEN(52),
- TLCODE39(53),
- TRIOPTIC(54),
- UK_POSTAL(55),
- UPCA(56),
- UPCE(57),
- UPCE1(58),
- US_PLANET(59),
- US_POSTNET(60),
- USPS_4CB(61),
- RSS(62),
- LABEL(63),
- HANXIN(64),
- GRIDMATRIX(65),
- INFO_MAIL(66),
- INTELLIGENT_MAIL(67),
- SWEDENPOST(68),
- LAST(69);
-
- private Integer text;
- BarcodeType(Integer text) {
- this.text = text;
- }
- public Integer getValue() {
- return this.text;
- }
-
- public static BarcodeType fromInt(Integer text) {
- for (BarcodeType b : BarcodeType.values()) {
- if (b.text.equals(text)) return b;
- }
- return null;
- }
-
-}