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/migrations.xml b/.idea/migrations.xml
new file mode 100644
index 00000000..f8051a6f
--- /dev/null
+++ b/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 5bc5bdfb..1075de5e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 382
- def appVersionName = '1.33.11'
+ def appVersionCode = 389
+ def appVersionName = '1.34.05'
signingConfigs {
release {
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
index 51cf6110..7e65efd1 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
@@ -2,7 +2,6 @@ package it.integry.integrywmsnative;
import android.app.Application;
import android.os.Handler;
-import android.os.Looper;
import androidx.core.os.HandlerCompat;
@@ -72,7 +71,7 @@ public class MainApplicationModule {
@Provides
@Singleton
public Handler providesMainThreadHandler() {
- return HandlerCompat.createAsync(Looper.getMainLooper());
+ return HandlerCompat.createAsync(mApplication.getApplicationContext().getMainLooper());
}
@Provides
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java
index a29c470e..cc005c21 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/InventarioRepository.java
@@ -21,6 +21,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.mapper.InventarioMapper;
import it.integry.integrywmsnative.core.model.MtbInvent;
import it.integry.integrywmsnative.core.rest.consumers.InventarioRESTConsumer;
+import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityLiveData;
public class InventarioRepository extends _BaseRepository {
@@ -66,12 +67,16 @@ public class InventarioRepository extends _BaseRepository();
- resolveFetch(remoteData, internalLiveData.getValue(),
+ List finalRemoteData = remoteData;
+
+ resolveFetch(finalRemoteData, internalLiveData.getValue(),
(remoteItem, localItem) -> Objects.equals(remoteItem.getIdInventario(), localItem.getIdInventario()),
(remoteItem, localItem) -> {
remoteItem.setRemoteSyncDate(localItem.getRemoteSyncDate());
remoteItem.setNew(false);
- }, onComplete, onError);
+ }, () -> handler.post(onComplete), ex -> handler.post(() -> onError.run(ex)),
+ SettingsManager.iDB().isFlagIsInventarioCacheEnabled());
+
} catch (Exception e) {
onError.run(e);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java
index f5d52879..c320476a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/respository_new/_BaseRepository.java
@@ -35,7 +35,8 @@ public abstract class _BaseRepository<
RunnableArgssWithReturn keyComparator,
RunnableArgss dataCopy,
Runnable onComplete,
- RunnableArgs onError) {
+ RunnableArgs onError,
+ boolean isCacheEnabled) {
List finalRemoteData = dataMapper.mapRestsToRooms(remoteData);
if (localData == null) localData = new ArrayList<>();
@@ -53,12 +54,14 @@ public abstract class _BaseRepository<
}
+
+
var dataToUpdate = finalRemoteData.stream()
.filter(x -> x.getId() != null && finalLocalData.stream().noneMatch(x::equals))
.collect(Collectors.toList());
var dataToDelete = finalLocalData.stream()
- .filter(x -> x.isSyncronized() && finalRemoteData.stream().noneMatch(y -> keyComparator.run(y, x)))
+ .filter(x -> (!isCacheEnabled || x.isSyncronized()) && finalRemoteData.stream().noneMatch(y -> keyComparator.run(y, x)))
.collect(Collectors.toList());
var dataToInsert = finalRemoteData.stream()
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java
index 994992b2..e37e2ab1 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java
@@ -49,7 +49,7 @@ public class BaseActivity extends AppCompatActivity {
private void openProgress() {
BarcodeManager.disable();
- if (!progressOpened && !this.mCurrentProgress.isAdded()) {
+ if (!progressOpened && !this.mCurrentProgress.isAdded() && !this.mCurrentProgress.isInLayout()) {
this.progressOpened = true;
runOnUiThread(() -> {
this.mCurrentProgress.show(getSupportFragmentManager(), "tag");
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java
index 00396013..80f9adfd 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialogFragment.java
@@ -70,7 +70,7 @@ public class BaseDialogFragment extends DialogFragment implements DialogInterfac
}
private void openProgress() {
- if (!progressOpened && !this.mCurrentProgress.isAdded()) {
+ if (!progressOpened && !this.mCurrentProgress.isAdded() && !this.mCurrentProgress.isInLayout()) {
this.progressOpened = true;
requireActivity().runOnUiThread(() -> {
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java
index aa44347b..5423d71e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java
@@ -67,7 +67,7 @@ public abstract class BaseFragment extends Fragment {
private void openProgress() {
BarcodeManager.disable();
- if (!progressOpened && !this.mCurrentProgress.isAdded()) {
+ if (!progressOpened && !this.mCurrentProgress.isAdded() && !this.mCurrentProgress.isInLayout()) {
this.progressOpened = true;
executorService.execute(() -> {
this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java
index d9989c47..f575dcf9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java
@@ -865,4 +865,262 @@ public class MtbAart extends EntityBase {
public MtbUntMis getFirstUntMis() {
return getMtbUntMis() != null && !getMtbUntMis().isEmpty() ? getMtbUntMis().get(0) : null;
}
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ MtbAart mtbAart = (MtbAart) o;
+
+ if (!getCodMart().equals(mtbAart.getCodMart())) return false;
+ if (getDescrizione() != null ? !getDescrizione().equals(mtbAart.getDescrizione()) : mtbAart.getDescrizione() != null)
+ return false;
+ if (getUntMis() != null ? !getUntMis().equals(mtbAart.getUntMis()) : mtbAart.getUntMis() != null)
+ return false;
+ if (getBarCode() != null ? !getBarCode().equals(mtbAart.getBarCode()) : mtbAart.getBarCode() != null)
+ return false;
+ if (getPesoKg() != null ? !getPesoKg().equals(mtbAart.getPesoKg()) : mtbAart.getPesoKg() != null)
+ return false;
+ if (getQtaCnf() != null ? !getQtaCnf().equals(mtbAart.getQtaCnf()) : mtbAart.getQtaCnf() != null)
+ return false;
+ if (getCodAliq() != null ? !getCodAliq().equals(mtbAart.getCodAliq()) : mtbAart.getCodAliq() != null)
+ return false;
+ if (getCodScoArt() != null ? !getCodScoArt().equals(mtbAart.getCodScoArt()) : mtbAart.getCodScoArt() != null)
+ return false;
+ if (getCodTcolUi() != null ? !getCodTcolUi().equals(mtbAart.getCodTcolUi()) : mtbAart.getCodTcolUi() != null)
+ return false;
+ if (getCodTcolUl() != null ? !getCodTcolUl().equals(mtbAart.getCodTcolUl()) : mtbAart.getCodTcolUl() != null)
+ return false;
+ if (getArticoloComposto() != null ? !getArticoloComposto().equals(mtbAart.getArticoloComposto()) : mtbAart.getArticoloComposto() != null)
+ return false;
+ if (getEsposizioneComp() != null ? !getEsposizioneComp().equals(mtbAart.getEsposizioneComp()) : mtbAart.getEsposizioneComp() != null)
+ return false;
+ if (getDescrizioneEstesa() != null ? !getDescrizioneEstesa().equals(mtbAart.getDescrizioneEstesa()) : mtbAart.getDescrizioneEstesa() != null)
+ return false;
+ if (getCodUltForn() != null ? !getCodUltForn().equals(mtbAart.getCodUltForn()) : mtbAart.getCodUltForn() != null)
+ return false;
+ if (getDataUltCar() != null ? !getDataUltCar().equals(mtbAart.getDataUltCar()) : mtbAart.getDataUltCar() != null)
+ return false;
+ if (getValUltCar() != null ? !getValUltCar().equals(mtbAart.getValUltCar()) : mtbAart.getValUltCar() != null)
+ return false;
+ if (getCodUltClie() != null ? !getCodUltClie().equals(mtbAart.getCodUltClie()) : mtbAart.getCodUltClie() != null)
+ return false;
+ if (getDataUltScar() != null ? !getDataUltScar().equals(mtbAart.getDataUltScar()) : mtbAart.getDataUltScar() != null)
+ return false;
+ if (getValUltScar() != null ? !getValUltScar().equals(mtbAart.getValUltScar()) : mtbAart.getValUltScar() != null)
+ return false;
+ if (getTipoCodice() != null ? !getTipoCodice().equals(mtbAart.getTipoCodice()) : mtbAart.getTipoCodice() != null)
+ return false;
+ if (getNote() != null ? !getNote().equals(mtbAart.getNote()) : mtbAart.getNote() != null)
+ return false;
+ if (getPosizione() != null ? !getPosizione().equals(mtbAart.getPosizione()) : mtbAart.getPosizione() != null)
+ return false;
+ if (getColliPedana() != null ? !getColliPedana().equals(mtbAart.getColliPedana()) : mtbAart.getColliPedana() != null)
+ return false;
+ if (getUntMis2() != null ? !getUntMis2().equals(mtbAart.getUntMis2()) : mtbAart.getUntMis2() != null)
+ return false;
+ if (getRapConv2() != null ? !getRapConv2().equals(mtbAart.getRapConv2()) : mtbAart.getRapConv2() != null)
+ return false;
+ if (getFlagInclListino() != null ? !getFlagInclListino().equals(mtbAart.getFlagInclListino()) : mtbAart.getFlagInclListino() != null)
+ return false;
+ if (getUntMis3() != null ? !getUntMis3().equals(mtbAart.getUntMis3()) : mtbAart.getUntMis3() != null)
+ return false;
+ if (getRapConv3() != null ? !getRapConv3().equals(mtbAart.getRapConv3()) : mtbAart.getRapConv3() != null)
+ return false;
+ if (getCodMartStat() != null ? !getCodMartStat().equals(mtbAart.getCodMartStat()) : mtbAart.getCodMartStat() != null)
+ return false;
+ if (getCodMcon() != null ? !getCodMcon().equals(mtbAart.getCodMcon()) : mtbAart.getCodMcon() != null)
+ return false;
+ if (getCodMgrp() != null ? !getCodMgrp().equals(mtbAart.getCodMgrp()) : mtbAart.getCodMgrp() != null)
+ return false;
+ if (getCodMsfa() != null ? !getCodMsfa().equals(mtbAart.getCodMsfa()) : mtbAart.getCodMsfa() != null)
+ return false;
+ if (getCodMsgr() != null ? !getCodMsgr().equals(mtbAart.getCodMsgr()) : mtbAart.getCodMsgr() != null)
+ return false;
+ if (getCodMstp() != null ? !getCodMstp().equals(mtbAart.getCodMstp()) : mtbAart.getCodMstp() != null)
+ return false;
+ if (getCodMtip() != null ? !getCodMtip().equals(mtbAart.getCodMtip()) : mtbAart.getCodMtip() != null)
+ return false;
+ if (getDescrizioneStat() != null ? !getDescrizioneStat().equals(mtbAart.getDescrizioneStat()) : mtbAart.getDescrizioneStat() != null)
+ return false;
+ if (getFlagStato() != null ? !getFlagStato().equals(mtbAart.getFlagStato()) : mtbAart.getFlagStato() != null)
+ return false;
+ if (getCambioDiviCar() != null ? !getCambioDiviCar().equals(mtbAart.getCambioDiviCar()) : mtbAart.getCambioDiviCar() != null)
+ return false;
+ if (getCambioDiviScar() != null ? !getCambioDiviScar().equals(mtbAart.getCambioDiviScar()) : mtbAart.getCambioDiviScar() != null)
+ return false;
+ if (getGgScadPartita() != null ? !getGgScadPartita().equals(mtbAart.getGgScadPartita()) : mtbAart.getGgScadPartita() != null)
+ return false;
+ if (getVolumeMc() != null ? !getVolumeMc().equals(mtbAart.getVolumeMc()) : mtbAart.getVolumeMc() != null)
+ return false;
+ if (getFlagEsponiPrz() != null ? !getFlagEsponiPrz().equals(mtbAart.getFlagEsponiPrz()) : mtbAart.getFlagEsponiPrz() != null)
+ return false;
+ if (getDataUltVar() != null ? !getDataUltVar().equals(mtbAart.getDataUltVar()) : mtbAart.getDataUltVar() != null)
+ return false;
+ if (getPercSfrido() != null ? !getPercSfrido().equals(mtbAart.getPercSfrido()) : mtbAart.getPercSfrido() != null)
+ return false;
+ if (getCodBarreImb() != null ? !getCodBarreImb().equals(mtbAart.getCodBarreImb()) : mtbAart.getCodBarreImb() != null)
+ return false;
+ if (getFlagCalcPrz() != null ? !getFlagCalcPrz().equals(mtbAart.getFlagCalcPrz()) : mtbAart.getFlagCalcPrz() != null)
+ return false;
+ if (getEsposizioneCompAcq() != null ? !getEsposizioneCompAcq().equals(mtbAart.getEsposizioneCompAcq()) : mtbAart.getEsposizioneCompAcq() != null)
+ return false;
+ if (getFlagCalcPrzAcq() != null ? !getFlagCalcPrzAcq().equals(mtbAart.getFlagCalcPrzAcq()) : mtbAart.getFlagCalcPrzAcq() != null)
+ return false;
+ if (getDiacod() != null ? !getDiacod().equals(mtbAart.getDiacod()) : mtbAart.getDiacod() != null)
+ return false;
+ if (getPlu() != null ? !getPlu().equals(mtbAart.getPlu()) : mtbAart.getPlu() != null)
+ return false;
+ if (getPartIvaProd() != null ? !getPartIvaProd().equals(mtbAart.getPartIvaProd()) : mtbAart.getPartIvaProd() != null)
+ return false;
+ if (getRagSocProd() != null ? !getRagSocProd().equals(mtbAart.getRagSocProd()) : mtbAart.getRagSocProd() != null)
+ return false;
+ if (getFlagRapConvVariabile() != null ? !getFlagRapConvVariabile().equals(mtbAart.getFlagRapConvVariabile()) : mtbAart.getFlagRapConvVariabile() != null)
+ return false;
+ if (getFlagMovArtMag() != null ? !getFlagMovArtMag().equals(mtbAart.getFlagMovArtMag()) : mtbAart.getFlagMovArtMag() != null)
+ return false;
+ if (getFlagTracciabilita() != null ? !getFlagTracciabilita().equals(mtbAart.getFlagTracciabilita()) : mtbAart.getFlagTracciabilita() != null)
+ return false;
+ if (getTaraKg() != null ? !getTaraKg().equals(mtbAart.getTaraKg()) : mtbAart.getTaraKg() != null)
+ return false;
+ if (getColliStrato() != null ? !getColliStrato().equals(mtbAart.getColliStrato()) : mtbAart.getColliStrato() != null)
+ return false;
+ if (getFlagQtaCnfFissa() != null ? !getFlagQtaCnfFissa().equals(mtbAart.getFlagQtaCnfFissa()) : mtbAart.getFlagQtaCnfFissa() != null)
+ return false;
+ if (getFlagColliPedanaFisso() != null ? !getFlagColliPedanaFisso().equals(mtbAart.getFlagColliPedanaFisso()) : mtbAart.getFlagColliPedanaFisso() != null)
+ return false;
+ if (getCodCconCosti() != null ? !getCodCconCosti().equals(mtbAart.getCodCconCosti()) : mtbAart.getCodCconCosti() != null)
+ return false;
+ if (getCodCconRicavi() != null ? !getCodCconRicavi().equals(mtbAart.getCodCconRicavi()) : mtbAart.getCodCconRicavi() != null)
+ return false;
+ if (getCodDgrpArt() != null ? !getCodDgrpArt().equals(mtbAart.getCodDgrpArt()) : mtbAart.getCodDgrpArt() != null)
+ return false;
+ if (getCodDiviCar() != null ? !getCodDiviCar().equals(mtbAart.getCodDiviCar()) : mtbAart.getCodDiviCar() != null)
+ return false;
+ if (getCodDiviScar() != null ? !getCodDiviScar().equals(mtbAart.getCodDiviScar()) : mtbAart.getCodDiviScar() != null)
+ return false;
+ if (getCodEcrCat() != null ? !getCodEcrCat().equals(mtbAart.getCodEcrCat()) : mtbAart.getCodEcrCat() != null)
+ return false;
+ if (getCodEcrMcat() != null ? !getCodEcrMcat().equals(mtbAart.getCodEcrMcat()) : mtbAart.getCodEcrMcat() != null)
+ return false;
+ if (getCodEcrRep() != null ? !getCodEcrRep().equals(mtbAart.getCodEcrRep()) : mtbAart.getCodEcrRep() != null)
+ return false;
+ if (getCodEcrStipo() != null ? !getCodEcrStipo().equals(mtbAart.getCodEcrStipo()) : mtbAart.getCodEcrStipo() != null)
+ return false;
+ if (getCodEcrTipo() != null ? !getCodEcrTipo().equals(mtbAart.getCodEcrTipo()) : mtbAart.getCodEcrTipo() != null)
+ return false;
+ if (getCodGrpBolla() != null ? !getCodGrpBolla().equals(mtbAart.getCodGrpBolla()) : mtbAart.getCodGrpBolla() != null)
+ return false;
+ if (getIngredienti() != null ? !getIngredienti().equals(mtbAart.getIngredienti()) : mtbAart.getIngredienti() != null)
+ return false;
+ if (getIdArtEqui() != null ? !getIdArtEqui().equals(mtbAart.getIdArtEqui()) : mtbAart.getIdArtEqui() != null)
+ return false;
+ if (getDescrCassa() != null ? !getDescrCassa().equals(mtbAart.getDescrCassa()) : mtbAart.getDescrCassa() != null)
+ return false;
+ if (getCodNcIntracee() != null ? !getCodNcIntracee().equals(mtbAart.getCodNcIntracee()) : mtbAart.getCodNcIntracee() != null)
+ return false;
+ if (getMarchio() != null ? !getMarchio().equals(mtbAart.getMarchio()) : mtbAart.getMarchio() != null)
+ return false;
+ if (getSezione() != null ? !getSezione().equals(mtbAart.getSezione()) : mtbAart.getSezione() != null)
+ return false;
+ if (getUntMisRifPeso() != mtbAart.getUntMisRifPeso()) return false;
+ if (getQtaEsistente() != null ? !getQtaEsistente().equals(mtbAart.getQtaEsistente()) : mtbAart.getQtaEsistente() != null)
+ return false;
+ if (getQtaImpegnata() != null ? !getQtaImpegnata().equals(mtbAart.getQtaImpegnata()) : mtbAart.getQtaImpegnata() != null)
+ return false;
+ if (getNumCnfEsistente() != null ? !getNumCnfEsistente().equals(mtbAart.getNumCnfEsistente()) : mtbAart.getNumCnfEsistente() != null)
+ return false;
+ if (getNumCnfImpegnata() != null ? !getNumCnfImpegnata().equals(mtbAart.getNumCnfImpegnata()) : mtbAart.getNumCnfImpegnata() != null)
+ return false;
+ return getMtbUntMis() != null ? getMtbUntMis().equals(mtbAart.getMtbUntMis()) : mtbAart.getMtbUntMis() == null;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = getCodMart().hashCode();
+ result = 31 * result + (getDescrizione() != null ? getDescrizione().hashCode() : 0);
+ result = 31 * result + (getUntMis() != null ? getUntMis().hashCode() : 0);
+ result = 31 * result + (getBarCode() != null ? getBarCode().hashCode() : 0);
+ result = 31 * result + (getPesoKg() != null ? getPesoKg().hashCode() : 0);
+ result = 31 * result + (getQtaCnf() != null ? getQtaCnf().hashCode() : 0);
+ result = 31 * result + (getCodAliq() != null ? getCodAliq().hashCode() : 0);
+ result = 31 * result + (getCodScoArt() != null ? getCodScoArt().hashCode() : 0);
+ result = 31 * result + (getCodTcolUi() != null ? getCodTcolUi().hashCode() : 0);
+ result = 31 * result + (getCodTcolUl() != null ? getCodTcolUl().hashCode() : 0);
+ result = 31 * result + (getArticoloComposto() != null ? getArticoloComposto().hashCode() : 0);
+ result = 31 * result + (getEsposizioneComp() != null ? getEsposizioneComp().hashCode() : 0);
+ result = 31 * result + (getDescrizioneEstesa() != null ? getDescrizioneEstesa().hashCode() : 0);
+ result = 31 * result + (getCodUltForn() != null ? getCodUltForn().hashCode() : 0);
+ result = 31 * result + (getDataUltCar() != null ? getDataUltCar().hashCode() : 0);
+ result = 31 * result + (getValUltCar() != null ? getValUltCar().hashCode() : 0);
+ result = 31 * result + (getCodUltClie() != null ? getCodUltClie().hashCode() : 0);
+ result = 31 * result + (getDataUltScar() != null ? getDataUltScar().hashCode() : 0);
+ result = 31 * result + (getValUltScar() != null ? getValUltScar().hashCode() : 0);
+ result = 31 * result + (getTipoCodice() != null ? getTipoCodice().hashCode() : 0);
+ result = 31 * result + (getNote() != null ? getNote().hashCode() : 0);
+ result = 31 * result + (getPosizione() != null ? getPosizione().hashCode() : 0);
+ result = 31 * result + (getColliPedana() != null ? getColliPedana().hashCode() : 0);
+ result = 31 * result + (getUntMis2() != null ? getUntMis2().hashCode() : 0);
+ result = 31 * result + (getRapConv2() != null ? getRapConv2().hashCode() : 0);
+ result = 31 * result + (getFlagInclListino() != null ? getFlagInclListino().hashCode() : 0);
+ result = 31 * result + (getUntMis3() != null ? getUntMis3().hashCode() : 0);
+ result = 31 * result + (getRapConv3() != null ? getRapConv3().hashCode() : 0);
+ result = 31 * result + (getCodMartStat() != null ? getCodMartStat().hashCode() : 0);
+ result = 31 * result + (getCodMcon() != null ? getCodMcon().hashCode() : 0);
+ result = 31 * result + (getCodMgrp() != null ? getCodMgrp().hashCode() : 0);
+ result = 31 * result + (getCodMsfa() != null ? getCodMsfa().hashCode() : 0);
+ result = 31 * result + (getCodMsgr() != null ? getCodMsgr().hashCode() : 0);
+ result = 31 * result + (getCodMstp() != null ? getCodMstp().hashCode() : 0);
+ result = 31 * result + (getCodMtip() != null ? getCodMtip().hashCode() : 0);
+ result = 31 * result + (getDescrizioneStat() != null ? getDescrizioneStat().hashCode() : 0);
+ result = 31 * result + (getFlagStato() != null ? getFlagStato().hashCode() : 0);
+ result = 31 * result + (getCambioDiviCar() != null ? getCambioDiviCar().hashCode() : 0);
+ result = 31 * result + (getCambioDiviScar() != null ? getCambioDiviScar().hashCode() : 0);
+ result = 31 * result + (getGgScadPartita() != null ? getGgScadPartita().hashCode() : 0);
+ result = 31 * result + (getVolumeMc() != null ? getVolumeMc().hashCode() : 0);
+ result = 31 * result + (getFlagEsponiPrz() != null ? getFlagEsponiPrz().hashCode() : 0);
+ result = 31 * result + (getDataUltVar() != null ? getDataUltVar().hashCode() : 0);
+ result = 31 * result + (getPercSfrido() != null ? getPercSfrido().hashCode() : 0);
+ result = 31 * result + (getCodBarreImb() != null ? getCodBarreImb().hashCode() : 0);
+ result = 31 * result + (getFlagCalcPrz() != null ? getFlagCalcPrz().hashCode() : 0);
+ result = 31 * result + (getEsposizioneCompAcq() != null ? getEsposizioneCompAcq().hashCode() : 0);
+ result = 31 * result + (getFlagCalcPrzAcq() != null ? getFlagCalcPrzAcq().hashCode() : 0);
+ result = 31 * result + (getDiacod() != null ? getDiacod().hashCode() : 0);
+ result = 31 * result + (getPlu() != null ? getPlu().hashCode() : 0);
+ result = 31 * result + (getPartIvaProd() != null ? getPartIvaProd().hashCode() : 0);
+ result = 31 * result + (getRagSocProd() != null ? getRagSocProd().hashCode() : 0);
+ result = 31 * result + (getFlagRapConvVariabile() != null ? getFlagRapConvVariabile().hashCode() : 0);
+ result = 31 * result + (getFlagMovArtMag() != null ? getFlagMovArtMag().hashCode() : 0);
+ result = 31 * result + (getFlagTracciabilita() != null ? getFlagTracciabilita().hashCode() : 0);
+ result = 31 * result + (getTaraKg() != null ? getTaraKg().hashCode() : 0);
+ result = 31 * result + (getColliStrato() != null ? getColliStrato().hashCode() : 0);
+ result = 31 * result + (getFlagQtaCnfFissa() != null ? getFlagQtaCnfFissa().hashCode() : 0);
+ result = 31 * result + (getFlagColliPedanaFisso() != null ? getFlagColliPedanaFisso().hashCode() : 0);
+ result = 31 * result + (getCodCconCosti() != null ? getCodCconCosti().hashCode() : 0);
+ result = 31 * result + (getCodCconRicavi() != null ? getCodCconRicavi().hashCode() : 0);
+ result = 31 * result + (getCodDgrpArt() != null ? getCodDgrpArt().hashCode() : 0);
+ result = 31 * result + (getCodDiviCar() != null ? getCodDiviCar().hashCode() : 0);
+ result = 31 * result + (getCodDiviScar() != null ? getCodDiviScar().hashCode() : 0);
+ result = 31 * result + (getCodEcrCat() != null ? getCodEcrCat().hashCode() : 0);
+ result = 31 * result + (getCodEcrMcat() != null ? getCodEcrMcat().hashCode() : 0);
+ result = 31 * result + (getCodEcrRep() != null ? getCodEcrRep().hashCode() : 0);
+ result = 31 * result + (getCodEcrStipo() != null ? getCodEcrStipo().hashCode() : 0);
+ result = 31 * result + (getCodEcrTipo() != null ? getCodEcrTipo().hashCode() : 0);
+ result = 31 * result + (getCodGrpBolla() != null ? getCodGrpBolla().hashCode() : 0);
+ result = 31 * result + (getIngredienti() != null ? getIngredienti().hashCode() : 0);
+ result = 31 * result + (getIdArtEqui() != null ? getIdArtEqui().hashCode() : 0);
+ result = 31 * result + (getDescrCassa() != null ? getDescrCassa().hashCode() : 0);
+ result = 31 * result + (getCodNcIntracee() != null ? getCodNcIntracee().hashCode() : 0);
+ result = 31 * result + (getMarchio() != null ? getMarchio().hashCode() : 0);
+ result = 31 * result + (getSezione() != null ? getSezione().hashCode() : 0);
+ result = 31 * result + (getUntMisRifPeso() != null ? getUntMisRifPeso().hashCode() : 0);
+ result = 31 * result + (getQtaEsistente() != null ? getQtaEsistente().hashCode() : 0);
+ result = 31 * result + (getQtaImpegnata() != null ? getQtaImpegnata().hashCode() : 0);
+ result = 31 * result + (getNumCnfEsistente() != null ? getNumCnfEsistente().hashCode() : 0);
+ result = 31 * result + (getNumCnfImpegnata() != null ? getNumCnfImpegnata().hashCode() : 0);
+ result = 31 * result + (getMtbUntMis() != null ? getMtbUntMis().hashCode() : 0);
+ return result;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartWithFornitore.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartWithFornitore.java
deleted file mode 100644
index e6b06b50..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartWithFornitore.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package it.integry.integrywmsnative.core.model;
-
-public class MtbAartWithFornitore extends MtbAart {
-
- private String codArtFor;
-
- public String getCodArtFor() {
- return codArtFor;
- }
-
- public MtbAartWithFornitore setCodArtFor(String codArtFor) {
- this.codArtFor = codArtFor;
- return this;
- }
-}
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 040b0f2d..26a6e35c 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
@@ -1,6 +1,5 @@
package it.integry.integrywmsnative.core.rest.consumers;
-import com.annimon.stream.Collectors;
import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken;
@@ -19,6 +18,7 @@ import it.integry.integrywmsnative.core.model.MtbUntMis;
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.rest.model.articolo.RetrieveArticoloByCodMartRequestDTO;
import it.integry.integrywmsnative.core.utility.UtilityQuery;
import retrofit2.Call;
import retrofit2.Callback;
@@ -59,26 +59,28 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
public static void getByCodMartsStatic(List codMartToFind, RunnableArgs> onComplete, RunnableArgs onFailed) {
- String joinedCods = Stream.of(codMartToFind)
+ var codMarts = Stream.of(codMartToFind)
.withoutNulls()
- .distinct()
- .collect(Collectors.joining(","));
+ .distinct().toList();
ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class);
- articoloRESTConsumer.getByCodMart(joinedCods).enqueue(new Callback<>() {
- @Override
- public void onResponse(Call> call, Response> response) {
- analyzeAnswer(response, "getByCodMart", (m) -> {
- onComplete.run(response.body().getEntityList());
- }, onFailed);
- }
+ articoloRESTConsumer
+ .getByCodMart(new RetrieveArticoloByCodMartRequestDTO()
+ .setCodMarts(codMarts))
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "getByCodMart", (m) -> {
+ onComplete.run(response.body().getEntityList());
+ }, onFailed);
+ }
- @Override
- public void onFailure(Call> call, Throwable t) {
- onFailed.run(new Exception(t));
- }
- });
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
}
@@ -103,22 +105,25 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
public void getByCodMart(String codMartToFind, RunnableArgs onComplete, RunnableArgs onFailed) {
ArticoloRESTConsumerService articoloRESTConsumer = RESTBuilder.getService(ArticoloRESTConsumerService.class);
- articoloRESTConsumer.getByCodMart(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);
+ 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);
- }
+ }, onFailed);
+ }
- @Override
- public void onFailure(Call> call, Throwable t) {
- onFailed.run(new Exception(t));
- }
- });
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onFailed.run(new Exception(t));
+ }
+ });
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ArticoloRESTConsumerService.java
index 687dbdf7..61cca9b4 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
@@ -5,7 +5,9 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.rest.model.articolo.RetrieveArticoloByCodMartRequestDTO;
import retrofit2.Call;
+import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
@@ -16,8 +18,8 @@ public interface ArticoloRESTConsumerService {
@POST("SM2getArticoloByBarcode")
Call> getByBarcodeProd(@Query("barcode") String barcodeProd);
- @GET("SM2getArticoloByCodMart")
- Call> getByCodMart(@Query("codMart") String barcodeProd);
+ @POST("wms/articolo/retrieveByCodMart")
+ Call> getByCodMart(@Body RetrieveArticoloByCodMartRequestDTO retrieveArticoloByCodMartRequest);
@GET("getProductLotStatus")
Call>> getStatoPartita(@Query("codMart") String codMart, @Query("partitaMag") String partitaMag);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
index aaf83cdf..de65aede 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
@@ -58,7 +58,9 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
public void saveCollo(MtbColt mtbColtToSave, RunnableArgs onComplete, RunnableArgs onFailed) {
MtbColt mtbColtToSaveClone = (MtbColt) mtbColtToSave.clone();
- mtbColtToSave.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+ mtbColtToSaveClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+ mtbColtToSaveClone.setOnlyPkMaster(false);
+
mtbColtToSaveClone.setMtbColr(new ObservableArrayList<>());
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java
index 796f1d6f..10fb6f71 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/InventarioRESTConsumer.java
@@ -70,7 +70,7 @@ public class InventarioRESTConsumer extends _BaseRESTConsumer {
var request = new InsertInventarioRequestDTO()
.setMtbInvent(inventarioToInsert);
- var inventarioRESTConsumerService = RESTBuilder.getService(InventarioRESTConsumerService.class, 120);
+ var inventarioRESTConsumerService = RESTBuilder.getService(InventarioRESTConsumerService.class, 300);
inventarioRESTConsumerService
.insert(inventarioToInsert.getIdInventario(), request)
.enqueue(new Callback<>() {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/Ean128Model.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/Ean128Model.java
index 6ada378c..e7d9e757 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/Ean128Model.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/Ean128Model.java
@@ -313,7 +313,7 @@ public class Ean128Model {
public String InternalPart;
///Informazioni interne
- public String Internal1;
+ public String Internal1; //USED FOR COD_MART
///Informazioni interne
public String Internal2;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/RetrieveArticoloByCodMartRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/RetrieveArticoloByCodMartRequestDTO.java
new file mode 100644
index 00000000..8a7f93c2
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/articolo/RetrieveArticoloByCodMartRequestDTO.java
@@ -0,0 +1,17 @@
+package it.integry.integrywmsnative.core.rest.model.articolo;
+
+import java.util.List;
+
+public class RetrieveArticoloByCodMartRequestDTO {
+
+ private List codMarts;
+
+ public List getCodMarts() {
+ return codMarts;
+ }
+
+ public RetrieveArticoloByCodMartRequestDTO setCodMarts(List codMarts) {
+ this.codMarts = codMarts;
+ return this;
+ }
+}
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 5a052dd5..461226c8 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
@@ -61,6 +61,7 @@ public class DBSettingsModel {
private boolean flagShouldAskToCreateOrUpdateRowInventario = false;
private String commessaMagazzino;
private boolean flagGeneraDocumentoSpedizione = false;
+ private boolean flagIsInventarioCacheEnabled = false;
public boolean isFlagSpedizioneEnableFakeGiacenza() {
return flagSpedizioneEnableFakeGiacenza;
@@ -476,4 +477,13 @@ public class DBSettingsModel {
this.flagGeneraDocumentoSpedizione = flagGeneraDocumentoSpedizione;
return this;
}
+
+ public boolean isFlagIsInventarioCacheEnabled() {
+ return flagIsInventarioCacheEnabled;
+ }
+
+ public DBSettingsModel setFlagIsInventarioCacheEnabled(boolean flagIsInventarioCacheEnabled) {
+ this.flagIsInventarioCacheEnabled = flagIsInventarioCacheEnabled;
+ 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 6d1625ca..31916bd5 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
@@ -376,6 +376,10 @@ public class SettingsManager {
.setGestName("PICKING")
.setSection("INVENTARIO")
.setKeySection("FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW"));
+ stbGestSetupList.add(new StbGestSetup()
+ .setGestName("PICKING")
+ .setSection("INVENTARIO")
+ .setKeySection("ENABLE_OFFLINE_CACHE"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SETUP")
@@ -424,6 +428,7 @@ public class SettingsManager {
dbSettingsModelIstance.setFlagShouldAskToCreateOrUpdateRowInventario(getValueFromList(list, "INVENTARIO", "FLAG_SHOULD_ASK_TO_CREATE_OR_UPDATE_ROW", Boolean.class, Boolean.FALSE));
dbSettingsModelIstance.setCommessaMagazzino(getValueFromList(list, "SETUP", "COMMESSA_MAGAZZINO", String.class, CommonConst.Config.COMMESSA_MAG));
dbSettingsModelIstance.setFlagGeneraDocumentoSpedizione(getValueFromList(list, "SPEDIZIONE", "GENERA_DOC", Boolean.class, Boolean.FALSE));
+ dbSettingsModelIstance.setFlagIsInventarioCacheEnabled(getValueFromList(list, "INVENTARIO", "ENABLE_OFFLINE_CACHE", Boolean.class, Boolean.FALSE));
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
if (notePerdita != null)
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
index 6c8cca76..9ee6fbbc 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
@@ -31,9 +31,9 @@ public class UtilityExceptions {
public static void defaultException(Context context, Exception ex, boolean sendEmail) {
if (ex.getMessage() != null) {
- Logger.e(ex, Html.fromHtml(ex.getMessage()).toString());
+ Logger.e(ex, Html.fromHtml(ex.getMessage()).toString(), ex.getStackTrace());
} else {
- Logger.e(ex, "Errore");
+ Logger.e(ex, "Errore", ex.getStackTrace());
}
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
index b7509dec..b758172f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_picking/AccettazionePickingActivity.java
@@ -178,7 +178,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
v -> initBottomSheetDialogFilter(filterChipDTO));
switch (filterChipDTO.getID()) {
- case AccettazionePickingBindings.COD_ART_FILTER_ID:
+ case AccettazionePickingBindings.COD_ART_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentCodArtPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -199,8 +199,8 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentCodArtPredicate().set(null));
- break;
- case AccettazionePickingBindings.DESCR_FILTER_ID:
+ }
+ case AccettazionePickingBindings.DESCR_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentDescrPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -221,8 +221,8 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentDescrPredicate().set(null));
- break;
- case AccettazionePickingBindings.POS_FILTER_ID:
+ }
+ case AccettazionePickingBindings.POS_FILTER_ID -> {
mAppliedFilterViewModel.getCurrentPosPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
@Override
public void run() {
@@ -243,7 +243,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
}
});
filterChipView.setOnResetClicked(() -> mAppliedFilterViewModel.getCurrentPosPredicate().set(null));
- break;
+ }
}
this.mBindings.filterChipsGroup.addView(filterChipView);
@@ -262,43 +262,39 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
.getFilterLayoutView();
switch (filterChipDTO.getID()) {
- case AccettazionePickingBindings.COD_ART_FILTER_ID:
- ((FilterCodArtLayoutView) filterLayoutView)
- .setAll(mAppliedFilterViewModel.getAllCodArts())
- .setAvailable(mAppliedFilterViewModel.getAvailableCodArts())
- .setOnFilterApplied(mAppliedFilterViewModel::setCodArtFilter)
- .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentCodArtPredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentCodArtPredicate().get())
- .map(x -> x.getSitArtOrdDTO().getCodMart())
- .toList());
- break;
- case AccettazionePickingBindings.DESCR_FILTER_ID:
- ((FilterDescrLayoutView) filterLayoutView)
- .setAll(mAppliedFilterViewModel.getAllDescrs())
- .setAvailable(mAppliedFilterViewModel.getAvailableDescrs())
- .setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter)
- .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentDescrPredicate().get())
- .map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt())
- .toList());
- break;
- case AccettazionePickingBindings.POS_FILTER_ID:
- ((FilterPosizioneLayoutView) filterLayoutView)
- .setAll(mAppliedFilterViewModel.getAllPos())
- .setAvailable(mAppliedFilterViewModel.getAvailablePos())
- .setOnFilterApplied(mAppliedFilterViewModel::setPosFilter)
- .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
- .filter(mAppliedFilterViewModel.getCurrentPosPredicate().get() == null ?
- x -> false :
- mAppliedFilterViewModel.getCurrentPosPredicate().get())
- .map(x -> x.getMtbAart().getPosizione())
- .toList());
- break;
-
+ case AccettazionePickingBindings.COD_ART_FILTER_ID ->
+ ((FilterCodArtLayoutView) filterLayoutView)
+ .setAll(mAppliedFilterViewModel.getAllCodArts())
+ .setAvailable(mAppliedFilterViewModel.getAvailableCodArts())
+ .setOnFilterApplied(mAppliedFilterViewModel::setCodArtFilter)
+ .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentCodArtPredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentCodArtPredicate().get())
+ .map(x -> x.getSitArtOrdDTO().getCodMart())
+ .toList());
+ case AccettazionePickingBindings.DESCR_FILTER_ID ->
+ ((FilterDescrLayoutView) filterLayoutView)
+ .setAll(mAppliedFilterViewModel.getAllDescrs())
+ .setAvailable(mAppliedFilterViewModel.getAvailableDescrs())
+ .setOnFilterApplied(mAppliedFilterViewModel::setDescrFilter)
+ .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentDescrPredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentDescrPredicate().get())
+ .map(x -> x.getSitArtOrdDTO().getDescrizioneEstesaArt())
+ .toList());
+ case AccettazionePickingBindings.POS_FILTER_ID ->
+ ((FilterPosizioneLayoutView) filterLayoutView)
+ .setAll(mAppliedFilterViewModel.getAllPos())
+ .setAvailable(mAppliedFilterViewModel.getAvailablePos())
+ .setOnFilterApplied(mAppliedFilterViewModel::setPosFilter)
+ .setPreselected(Stream.of(Objects.requireNonNull(mViewModel.getPickingList().getValue()))
+ .filter(mAppliedFilterViewModel.getCurrentPosPredicate().get() == null ?
+ x -> false :
+ mAppliedFilterViewModel.getCurrentPosPredicate().get())
+ .map(x -> x.getMtbAart().getPosizione())
+ .toList());
}
if (!filterLayoutView.isAdded())
@@ -373,9 +369,6 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
}
private void refreshList() {
- //this.onLoadingStarted();
-
- //new Thread(() -> {
runOnUiThread(() -> {
List tmpList;
@@ -393,7 +386,6 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
this.mAccettazioneMutableData.addAll(list);
this.noItemsToPick.set(!isThereAnyItemToPick(tmpList));
- //this.onLoadingEnded();
});
}
@@ -402,21 +394,11 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
.filter(x -> !x.isHidden() && UtilityBigDecimal.greaterThan(x.getSitArtOrdDTO().getQtaDaEvadere(), BigDecimal.ZERO))
.toList();
- List sortedList = null;
-
- switch (mCurrentOrderBy) {
- case COD_ART_FOR:
- sortedList = convertDataModelToListModel__CodArtForn(tmpList);
- break;
- case DESCR_ART:
- sortedList = convertDataModelToListModel__DescrArt(tmpList);
- break;
- case RAG_SOC_COM:
- sortedList = convertDataModelToListModel__RagSocCom(tmpList);
- break;
- }
-
- return sortedList;
+ return switch (mCurrentOrderBy) {
+ case COD_ART_FOR -> convertDataModelToListModel__CodArtForn(tmpList);
+ case DESCR_ART -> convertDataModelToListModel__DescrArt(tmpList);
+ case RAG_SOC_COM -> convertDataModelToListModel__RagSocCom(tmpList);
+ };
}
private List convertDataModelToListModel__CodArtForn(List dataList) {
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 46d2d6be..0b1c0cae 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
@@ -383,7 +383,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
}
- new DialogAvailableItemsView(listaMtbAart)
+ new DialogAvailableItemsView(listaMtbAart, null)
.show(getSupportFragmentManager(), "DialogAvailableInventarioItemsView");
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java
index 91b5ed74..7f65b7a4 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java
@@ -44,6 +44,7 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.available_items.DialogAvailableItemListModel;
import it.integry.integrywmsnative.view.dialogs.available_items.DialogAvailableItemsView;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
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.yes_no.DialogYesNoView;
@@ -135,6 +136,9 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn
if (menuItem.getItemId() == R.id.export) {
requestExportConfirm();
return true;
+ } else if (menuItem.getItemId() == R.id.search_art) {
+ manualSearch();
+ return true;
}
return false;
@@ -204,6 +208,18 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn
.show(getSupportFragmentManager(), "tag");
}
+ public void manualSearch() {
+ BarcodeManager.disable();
+ DialogSimpleInputHelper.makeInputDialog(this,
+ "Ricerca articolo",
+ null,
+ "Cod articolo / Barcode",
+ barcodeProd ->
+ this.mViewModel.loadArticoloByCodMartOrBarcode(barcodeProd, BarcodeManager::enable),
+ BarcodeManager::enable)
+ .show();
+ }
+
@Override
public void onItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, boolean canOverflowOrderQuantity, boolean canPartitaMagBeChanged, boolean canLUBeClosed, RunnableArgss onComplete) {
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
@@ -283,7 +299,7 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn
}
- new DialogAvailableItemsView(listaMtbAart)
+ new DialogAvailableItemsView(listaMtbAart, mtbAartClicked -> this.mViewModel.loadArticoloByMtbAart(mtbAartClicked, null))
.show(getSupportFragmentManager(), "DialogAvailableInventarioItemsView");
}
}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioModule.java
index b7f6cafa..fb14085b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioModule.java
@@ -4,13 +4,16 @@ import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.core.data_store.db.respository_new.InventarioRepository;
import it.integry.integrywmsnative.core.data_store.db.respository_new.InventarioRowRepository;
+import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
@Module(subcomponents = PickingInventarioComponent.class)
public class PickingInventarioModule {
@Provides
- PickingInventarioViewModel providesPickingInventarioViewModel(InventarioRepository inventarioRepository, InventarioRowRepository inventarioRowRepository) {
- return new PickingInventarioViewModel(inventarioRepository, inventarioRowRepository);
+ PickingInventarioViewModel providesPickingInventarioViewModel(InventarioRepository inventarioRepository,
+ InventarioRowRepository inventarioRowRepository,
+ BarcodeRESTConsumer barcodeRESTConsumer) {
+ return new PickingInventarioViewModel(inventarioRepository, inventarioRowRepository, barcodeRESTConsumer);
}
}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java
index 524ceb33..fb01f61a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java
@@ -17,10 +17,12 @@ import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRowRoomDT
import it.integry.integrywmsnative.core.data_store.db.respository_new.InventarioRepository;
import it.integry.integrywmsnative.core.data_store.db.respository_new.InventarioRowRepository;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
+import it.integry.integrywmsnative.core.exception.NoResultFromCodMartException;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
+import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
import it.integry.integrywmsnative.core.rest.model.inventario.InventarioArtDTO;
@@ -28,6 +30,7 @@ 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.UtilityLiveData;
+import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
@@ -35,21 +38,22 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
public class PickingInventarioViewModel extends ViewModel {
+ private final BarcodeRESTConsumer barcodeRESTConsumer;
private final InventarioRepository inventarioRepository;
private final InventarioRowRepository inventarioRowRepository;
-
- private boolean canAddUnknownItems;
- private boolean flagShouldAskToCreateOrUpdateRowInventario;
-
public MutableLiveData currentInventario = new MutableLiveData<>();
public LiveData> currentInventarioRows = new MutableLiveData<>();
-
+ private boolean canAddUnknownItems;
+ private boolean flagShouldAskToCreateOrUpdateRowInventario;
private List availableInventarioArts;
private Listener mListener;
- public PickingInventarioViewModel(InventarioRepository inventarioRepository, InventarioRowRepository inventarioRowRepository) {
+ public PickingInventarioViewModel(InventarioRepository inventarioRepository,
+ InventarioRowRepository inventarioRowRepository,
+ BarcodeRESTConsumer barcodeRESTConsumer) {
this.inventarioRepository = inventarioRepository;
this.inventarioRowRepository = inventarioRowRepository;
+ this.barcodeRESTConsumer = barcodeRESTConsumer;
}
public void init(InventarioRoomDTO inventarioRoomDTO, List inventarioArts, boolean canAddUnknownItems, boolean flagShouldAskToCreateOrUpdateRowInventario) {
@@ -87,47 +91,34 @@ public class PickingInventarioViewModel extends ViewModel {
//Cerco tramite etichetta ean peso
this.executeEtichettaEanPeso(barcodeScanDTO, onComplete);
+ } else if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
+ //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
+ this.executeEtichettaEan128(barcodeScanDTO, onComplete);
+
} else {
this.loadArticolo(barcodeScanDTO.getStringValue(), null, onComplete);
}
}
- public void updateRow(InventarioRowRoomDTO itemToUpdate) {
- var barcodeList = new ArrayList();
- barcodeList.add(itemToUpdate.getScanCodBarre());
-
- var matchedArt = availableInventarioArts.stream().filter(x -> itemToUpdate.getCodMart() != null && x.getCodMart().contains(itemToUpdate.getCodMart())).findFirst().orElse(null);
-
- MtbAart articolo;
-
- if (canAddUnknownItems && matchedArt == null) {
- matchedArt = new InventarioArtDTO().setBarcode(barcodeList).setFlagQtaCnfFissa(true).setPlu(false).setUntMis(itemToUpdate.getUntMis()).setQtaCnf(itemToUpdate.getQtaConf());
- }
- if (matchedArt != null) {
- articolo = matchedArt.toMtbAart().setFlagTracciabilita("N");
- dispatchRowEdit(articolo, itemToUpdate);
- } else this.sendError(new NoResultFromBarcodeException(itemToUpdate.getScanCodBarre()));
- }
-
- public void deleteRow(InventarioRowRoomDTO itemToDelete) {
- this.inventarioRowRepository.delete(itemToDelete, () -> {
- }, this::sendError);
- }
+ public void loadArticoloByCodMartOrBarcode(String codMart, Runnable onComplete) {
+ var matchedArt = Stream.of(this.availableInventarioArts)
+ .filter(x -> x.getCodMart().equalsIgnoreCase(codMart) ||
+ x.getBarcode().contains(codMart))
+ .findFirst()
+ .orElse(null);
- public void exportAll(Runnable onComplete) {
- if (this.currentInventarioRows.getValue().isEmpty()) {
- this.sendError(new Exception("Impossibile esportare un inventario senza righe"));
+ if (matchedArt == null) {
+ this.sendError(new NoResultFromCodMartException(codMart));
return;
}
- this.sendOnLoadingStarted();
- currentInventario.getValue().setInventarioRowList(this.currentInventarioRows.getValue());
- this.inventarioRepository.export(currentInventario.getValue(), () -> {
- this.sendOnLoadingEnded();
- onComplete.run();
- }, this::sendError);
+ loadArticolo(matchedArt.getBarcode().get(0), null, onComplete);
+ }
+
+ public void loadArticoloByMtbAart(MtbAart mtbAart, Runnable onComplete) {
+ loadArticolo(mtbAart.getBarCode(), null, onComplete);
}
@@ -140,16 +131,49 @@ public class PickingInventarioViewModel extends ViewModel {
}
}
+ private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
+ barcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
+
+ String barcodeProd = null;
+ String codMart = null;
+
+ if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
+ if (!UtilityString.isNullOrEmpty(ean128Model.Content))
+ barcodeProd = ean128Model.Content;
+
+ if (!UtilityString.isNullOrEmpty(ean128Model.Internal1))
+ codMart = ean128Model.Internal1;
+
+
+ if (!UtilityString.isNullOrEmpty(barcodeProd)) {
+ this.loadArticolo(barcodeProd, ean128Model, onComplete);
+
+ } else if (!UtilityString.isNullOrEmpty(codMart)) {
+ this.loadArticoloByCodMartOrBarcode(codMart, onComplete);
+
+ } else {
+ //EAN 128 non completo o comunque mancano i riferimenti al prodotto
+ onComplete.run();
+ }
+ }, this::sendError);
+ }
+
private void loadArticolo(String barcodeProd, Ean128Model ean128Model, Runnable onComplete) {
var barcodeList = new ArrayList();
barcodeList.add(barcodeProd);
- var matchedArt = availableInventarioArts.stream().filter(x -> x.getBarcode().contains(barcodeProd)).findFirst().orElse(null);
+ var matchedArt = availableInventarioArts.stream().filter(x -> x.getBarcode().contains(barcodeProd))
+ .findFirst()
+ .orElse(null);
if (canAddUnknownItems && matchedArt == null) {
- matchedArt = new InventarioArtDTO().setBarcode(barcodeList).setFlagQtaCnfFissa(true).setPlu(false).setUntMis("PZ").setQtaCnf(BigDecimal.ONE);
-
+ matchedArt = new InventarioArtDTO()
+ .setBarcode(barcodeList)
+ .setFlagQtaCnfFissa(true)
+ .setPlu(false)
+ .setUntMis("PZ")
+ .setQtaCnf(BigDecimal.ONE);
}
if (matchedArt != null) {
@@ -162,7 +186,7 @@ public class PickingInventarioViewModel extends ViewModel {
this.sendOnItemAlreadyFound(matchedArt, alreadyScannedItems);
}
- onComplete.run();
+ if(onComplete != null) onComplete.run();
} else this.sendError(new NoResultFromBarcodeException(barcodeProd));
}
@@ -306,6 +330,47 @@ public class PickingInventarioViewModel extends ViewModel {
}, this::sendError);
}
+ public void updateRow(InventarioRowRoomDTO itemToUpdate) {
+ var barcodeList = new ArrayList();
+ barcodeList.add(itemToUpdate.getScanCodBarre());
+
+ var matchedArt = availableInventarioArts.stream()
+ .filter(x -> itemToUpdate.getCodMart() != null && x.getCodMart().contains(itemToUpdate.getCodMart()))
+ .findFirst()
+ .orElse(null);
+
+ MtbAart articolo;
+
+ if (canAddUnknownItems && matchedArt == null) {
+ matchedArt = new InventarioArtDTO().setBarcode(barcodeList).setFlagQtaCnfFissa(true).setPlu(false).setUntMis(itemToUpdate.getUntMis()).setQtaCnf(itemToUpdate.getQtaConf());
+ }
+ if (matchedArt != null) {
+ articolo = matchedArt.toMtbAart().setFlagTracciabilita("N");
+ dispatchRowEdit(articolo, itemToUpdate);
+ } else this.sendError(new NoResultFromBarcodeException(itemToUpdate.getScanCodBarre()));
+ }
+
+ public void deleteRow(InventarioRowRoomDTO itemToDelete) {
+ this.inventarioRowRepository.delete(itemToDelete, () -> {
+ }, this::sendError);
+ }
+
+
+ public void exportAll(Runnable onComplete) {
+ if (this.currentInventarioRows.getValue().isEmpty()) {
+ this.sendError(new Exception("Impossibile esportare un inventario senza righe"));
+ return;
+ }
+
+ this.sendOnLoadingStarted();
+ currentInventario.getValue().setInventarioRowList(this.currentInventarioRows.getValue());
+
+ this.inventarioRepository.export(currentInventario.getValue(), () -> {
+ this.sendOnLoadingEnded();
+ onComplete.run();
+ }, this::sendError);
+ }
+
private void sendOnLoadingStarted() {
if (this.mListener != null) mListener.onLoadingStarted();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java
index 96b16257..25576357 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java
@@ -107,7 +107,7 @@ public class VenditaFiltroOrdiniViewModel {
if (dataConsegna == null) currentDataConsPredicate.set(null);
else {
- currentDataConsPredicate.set(o -> DateUtils.isSameDay(o.getDataConsD(), dataConsegna));
+ currentDataConsPredicate.set(o -> o.getDataConsD() != null && DateUtils.isSameDay(o.getDataConsD(), dataConsegna));
}
}
@@ -137,8 +137,7 @@ public class VenditaFiltroOrdiniViewModel {
if (mtbGrupList == null || mtbGrupList.isEmpty()) {
currentGruppoMercPredicate.set(null);
this.selectedMtbGrup = new ArrayList<>();
- }
- else {
+ } else {
this.selectedMtbGrup = mtbGrupList;
var mtbGrups = Stream.of(mtbGrupList).map(MtbGrup::getCodMgrp).toList();
currentGruppoMercPredicate.set(o -> Stream.of(o.getAvailableClassMerc())
@@ -693,6 +692,7 @@ public class VenditaFiltroOrdiniViewModel {
.sortBy(JtbComt::getCodJcom)
.toList();
}
+
public List getAvailableCommesse(List commesseFullList) {
if (currentIdViaggioPredicate.get() == null &&
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java
index 77e031d7..e2632733 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_dettaglio_linea/ProdDettaglioLineaViewModel.java
@@ -172,14 +172,20 @@ public class ProdDettaglioLineaViewModel {
public void checkBarcodeAndStartOrdine(BarcodeScanDTO dto) {
this.sendOnLoadingStarted();
+
ProdLineStatusDTO prodLine = lineaProd.getValue();
mBarcodeRESTConsumer.decodeEan128(dto, (ean128) -> {
- String codMart = ean128.Content;
+ String codMart = ean128.Internal1;
String partitaMag = ean128.BatchLot;
- if (!prodLine.isStarted()) {
+ if(prodLine == null) {
+ this.sendError(new Exception("Impossibile leggere lo stato della linea"));
+
+ } else if (!prodLine.isStarted()) {
this.sendError(new Exception("Impossibile avviare una produzione su una linea ferma!"));
+
} else if (UtilityString.isNullOrEmpty(prodLine.getListaOrd())) {
this.startProduction(codMart, partitaMag);
+
} else {
this.mListener.confirmOrderClose(() -> {
this.startProduction(codMart, partitaMag);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java
index 57df812f..cd1ba4f9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceViewModel.java
@@ -2,6 +2,8 @@ package it.integry.integrywmsnative.gest.prod_rientro_merce;
import androidx.lifecycle.MutableLiveData;
+import com.annimon.stream.Stream;
+
import java.util.List;
import javax.inject.Inject;
@@ -11,6 +13,7 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.IOrdersLo
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
+import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneStatoEnum;
import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException;
public class ProdRientroMerceViewModel {
@@ -32,7 +35,14 @@ public class ProdRientroMerceViewModel {
String codAnag = SettingsManager.iDB().getFilterFornitoreProd();
this.mMesRESTConsumer.getOrdiniLavorazione("I", null, codAnag, ordiniLavorazioneList -> {
- this.mOrdiniLavorazioneAperti.postValue(ordiniLavorazioneList);
+ List filteredList = null;
+
+ if(ordiniLavorazioneList != null)
+ filteredList = Stream.of(ordiniLavorazioneList)
+ .filter(x -> x.getStatoEnum() != OrdineLavorazioneStatoEnum.PROGRAMMATO)
+ .toList();
+
+ this.mOrdiniLavorazioneAperti.postValue(filteredList);
this.sendOnOrdersLoadingEnded();
}, ex -> this.sendError(new OrdersLoadException(ex)));
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java
index 4f91e780..9f6c688b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java
@@ -183,7 +183,13 @@ public class RettificaGiacenzeViewModel {
mRettificaGiacenzeRESTConsumer.searchArtForn(codAlis, queryText, listaArts -> {
this.sendOnLoadingEnded();
- List mtbAarts = Stream.of(listaArts).map(x -> (MtbAart) x).toList();
+ List mtbAarts = null;
+
+ if (listaArts != null)
+ mtbAarts = Stream.of(listaArts)
+ .map(x -> (MtbAart) x.getMtbAart())
+ .toList();
+
dispatchArts(mtbAarts);
}, this::sendError);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartRequestDTO.java
new file mode 100644
index 00000000..f823ad5a
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartRequestDTO.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.gest.rettifica_giacenze.dto;
+
+public class SearchArticoloByBarcodeOrCodMartRequestDTO {
+
+ private String codMartOrBarcode;
+
+ public String getCodMartOrBarcode() {
+ return codMartOrBarcode;
+ }
+
+ public SearchArticoloByBarcodeOrCodMartRequestDTO setCodMartOrBarcode(String codMartOrBarcode) {
+ this.codMartOrBarcode = codMartOrBarcode;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartResponseDTO.java
new file mode 100644
index 00000000..0df89be1
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByBarcodeOrCodMartResponseDTO.java
@@ -0,0 +1,60 @@
+package it.integry.integrywmsnative.gest.rettifica_giacenze.dto;
+
+import java.math.BigDecimal;
+
+import it.integry.integrywmsnative.core.model.MtbAart;
+
+public class SearchArticoloByBarcodeOrCodMartResponseDTO {
+
+ private MtbAart mtbAart;
+ private BigDecimal qtaEsistente;
+ private BigDecimal qtaImpegnata;
+ private BigDecimal numCnfEsistente;
+ private BigDecimal numCnfImpegnata;
+
+
+ public MtbAart getMtbAart() {
+ return mtbAart;
+ }
+
+ public SearchArticoloByBarcodeOrCodMartResponseDTO setMtbAart(MtbAart mtbAart) {
+ this.mtbAart = mtbAart;
+ return this;
+ }
+
+ public BigDecimal getQtaEsistente() {
+ return qtaEsistente;
+ }
+
+ public SearchArticoloByBarcodeOrCodMartResponseDTO setQtaEsistente(BigDecimal qtaEsistente) {
+ this.qtaEsistente = qtaEsistente;
+ return this;
+ }
+
+ public BigDecimal getQtaImpegnata() {
+ return qtaImpegnata;
+ }
+
+ public SearchArticoloByBarcodeOrCodMartResponseDTO setQtaImpegnata(BigDecimal qtaImpegnata) {
+ this.qtaImpegnata = qtaImpegnata;
+ return this;
+ }
+
+ public BigDecimal getNumCnfEsistente() {
+ return numCnfEsistente;
+ }
+
+ public SearchArticoloByBarcodeOrCodMartResponseDTO setNumCnfEsistente(BigDecimal numCnfEsistente) {
+ this.numCnfEsistente = numCnfEsistente;
+ return this;
+ }
+
+ public BigDecimal getNumCnfImpegnata() {
+ return numCnfImpegnata;
+ }
+
+ public SearchArticoloByBarcodeOrCodMartResponseDTO setNumCnfImpegnata(BigDecimal numCnfImpegnata) {
+ this.numCnfImpegnata = numCnfImpegnata;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneRequestDTO.java
new file mode 100644
index 00000000..f0930080
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneRequestDTO.java
@@ -0,0 +1,27 @@
+package it.integry.integrywmsnative.gest.rettifica_giacenze.dto;
+
+public class SearchArticoloByCodArtFornOrDescrizioneRequestDTO {
+
+ private String codAlis;
+
+ private String codArtFornOrDescrizione;
+
+
+ public String getCodAlis() {
+ return codAlis;
+ }
+
+ public SearchArticoloByCodArtFornOrDescrizioneRequestDTO setCodAlis(String codAlis) {
+ this.codAlis = codAlis;
+ return this;
+ }
+
+ public String getCodArtFornOrDescrizione() {
+ return codArtFornOrDescrizione;
+ }
+
+ public SearchArticoloByCodArtFornOrDescrizioneRequestDTO setCodArtFornOrDescrizione(String codArtFornOrDescrizione) {
+ this.codArtFornOrDescrizione = codArtFornOrDescrizione;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneResponseDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneResponseDTO.java
new file mode 100644
index 00000000..aa460d45
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/dto/SearchArticoloByCodArtFornOrDescrizioneResponseDTO.java
@@ -0,0 +1,28 @@
+package it.integry.integrywmsnative.gest.rettifica_giacenze.dto;
+
+import it.integry.integrywmsnative.core.model.MtbAart;
+
+public class SearchArticoloByCodArtFornOrDescrizioneResponseDTO {
+
+ private MtbAart mtbAart;
+
+ private String codArtFor;
+
+ public MtbAart getMtbAart() {
+ return mtbAart;
+ }
+
+ public SearchArticoloByCodArtFornOrDescrizioneResponseDTO setMtbAart(MtbAart mtbAart) {
+ this.mtbAart = mtbAart;
+ return this;
+ }
+
+ public String getCodArtFor() {
+ return codArtFor;
+ }
+
+ public SearchArticoloByCodArtFornOrDescrizioneResponseDTO setCodArtFor(String codArtFor) {
+ this.codArtFor = codArtFor;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java
index 366b0211..a08054f6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumer.java
@@ -1,25 +1,28 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze.rest;
+import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.List;
import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbAart;
-import it.integry.integrywmsnative.core.model.MtbAartWithFornitore;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
-import it.integry.integrywmsnative.core.settings.SettingsManager;
-import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
+import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartRequestDTO;
+import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartResponseDTO;
+import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneRequestDTO;
+import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneResponseDTO;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@@ -45,49 +48,56 @@ public class RettificaGiacenzeRESTConsumer extends _BaseRESTConsumer {
}
- public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs> onComplete, RunnableArgs onFailed) {
- String sql = "SELECT mtb_aart.*, mtb_lisa.cod_art_for from mtb_lisa, mtb_aart, mtb_part " +
- " WHERE mtb_lisa.cod_alis = " + UtilityDB.valueToString(codAlis) +
- " AND mtb_lisa.cod_mart = mtb_aart.cod_mart " +
- " AND mtb_lisa.cod_mart = mtb_part.cod_mart " +
- " AND mtb_part.cod_mdep = '" + SettingsManager.i().getUserSession().getDepo().getCodMdep() + "' " +
- " AND (mtb_aart.descrizione_estesa LIKE '%" + codArtForOrDescr + "%' OR cod_art_for LIKE '%" + codArtForOrDescr + "%') " +
- " ORDER BY ABS(mtb_part.qta_esistente) DESC, mtb_aart.descrizione_estesa";
+ public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs> onComplete, RunnableArgs onError) {
+ final RettificaGiacenzeRESTConsumerService service = RESTBuilder.getService(RettificaGiacenzeRESTConsumerService.class);
+ service.searchByCodArtFornOrDescrizione(new SearchArticoloByCodArtFornOrDescrizioneRequestDTO()
+ .setCodAlis(codAlis)
+ .setCodArtFornOrDescrizione(codArtForOrDescr))
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call>> call,
+ Response>> response) {
+ analyzeAnswer(response, "searchByCodArtFornOrDescrizione", onComplete, onError);
+ }
+
+ @Override
+ public void onFailure(Call>> call, Throwable t) {
+ onError.run(new Exception(t));
+ }
+ });
+
- Type typeOfObjectsList = new TypeToken>() {
- }.getType();
- mSystemRestConsumer.>processSql(sql, typeOfObjectsList, value -> {
- if (onComplete != null) onComplete.run(value);
- }, onFailed);
}
- public void searchArtInt(String codMartOrBarcodeOrDescr, RunnableArgs> onComplete, RunnableArgs onFailed) {
- String sql = "SELECT DISTINCT mtb_aart.*," +
- " qta_esistente, " +
- " qta_imp_cli + qta_imp_lav AS qta_impegnata, " +
- " num_esistente AS num_cnf_esistente, " +
- " num_imp_cli + num_imp_lav AS num_cnf_impegnata " +
- " FROM mtb_aart " +
- " LEFT OUTER JOIN mvw_barcode on mtb_aart.cod_mart = mvw_barcode.cod_mart " +
- " LEFT OUTER JOIN mtb_part mp on mtb_aart.cod_mart = mp.cod_mart " +
- " AND mp.cod_mdep = '" + SettingsManager.i().getUserSession().getDepo().getCodMdep() + "'" +
- " WHERE CASE" +
- " WHEN LEN(mvw_barcode.cod_barre) > 13 THEN mvw_barcode.cod_barre " +
- " ELSE Replicate('0', 13 - len(mvw_barcode.cod_barre))+ mvw_barcode.cod_barre " +
- " END LIKE '%' + CASE " +
- " WHEN LEN('" + codMartOrBarcodeOrDescr + "') > 13 THEN '" + codMartOrBarcodeOrDescr + "' " +
- " ELSE Replicate('0', 13 - len('" + codMartOrBarcodeOrDescr + "')) + '" + codMartOrBarcodeOrDescr + "'" +
- " END " +
- "OR mtb_aart.cod_mart = '" + codMartOrBarcodeOrDescr + "' " +
- "OR mtb_aart.descrizione_estesa LIKE '%" + codMartOrBarcodeOrDescr + "%'";
+ public void searchArtInt(String codMartOrBarcodeOrDescr, RunnableArgs> onComplete, RunnableArgs onError) {
+ final RettificaGiacenzeRESTConsumerService service = RESTBuilder.getService(RettificaGiacenzeRESTConsumerService.class);
+ service.searchByCodMartOrBarcode(new SearchArticoloByBarcodeOrCodMartRequestDTO()
+ .setCodMartOrBarcode(codMartOrBarcodeOrDescr))
+ .enqueue(new Callback<>() {
+ @Override
+ public void onResponse(Call>> call,
+ Response>> response) {
+ analyzeAnswer(response, "searchByCodMartOrBarcode", data -> {
- Type typeOfObjectsList = new TypeToken>() {
- }.getType();
- mSystemRestConsumer.>processSql(sql, typeOfObjectsList, value -> {
- if (onComplete != null) onComplete.run(value);
- }, onFailed);
+ var listToReturn = Stream.of(data)
+ .map(x -> x.getMtbAart()
+ .setQtaEsistente(x.getQtaEsistente())
+ .setQtaImpegnata(x.getQtaImpegnata())
+ .setNumCnfEsistente(x.getNumCnfEsistente())
+ .setNumCnfImpegnata(x.getNumCnfImpegnata()))
+ .toList();
+
+ onComplete.run(listToReturn);
+ }, onError);
+ }
+
+ @Override
+ public void onFailure(Call>> call, Throwable t) {
+ onError.run(new Exception(t));
+ }
+ });
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java
index fd6ae1d7..499cc387 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/rest/RettificaGiacenzeRESTConsumerService.java
@@ -1,7 +1,13 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze.rest;
+import java.util.List;
+
import it.integry.integrywmsnative.core.rest.model.SaveDocFromPickingRequestDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartRequestDTO;
+import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByBarcodeOrCodMartResponseDTO;
+import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneRequestDTO;
+import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.SearchArticoloByCodArtFornOrDescrizioneResponseDTO;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
@@ -9,6 +15,14 @@ import retrofit2.http.POST;
public interface RettificaGiacenzeRESTConsumerService {
+ @POST("wms/articolo/searchByCodArtFornOrDescrizione")
+ Call>> searchByCodArtFornOrDescrizione(
+ @Body SearchArticoloByCodArtFornOrDescrizioneRequestDTO searchArticoloByCodArtFornOrDescrizioneRequest);
+
+ @POST("wms/articolo/searchByCodMartOrBarcode")
+ Call>> searchByCodMartOrBarcode(
+ @Body SearchArticoloByBarcodeOrCodMartRequestDTO searchArticoloByBarcodeOrCodMartRequest);
+
@POST("saveDocFromPickingPvm")
Call> saveDocFromPickingPvm(@Body SaveDocFromPickingRequestDTO saveDocFromPickingRequestDTO);
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 42e390e3..1832702d 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
@@ -95,6 +95,7 @@ public class SpedizioneViewModel {
private Listener mListener;
+ private String mDefaultRagSocOfUL = null;
private GestioneEnum mDefaultGestioneOfUL = null;
private int mDefaultSegnoCol = -1;
private String mDefaultCodMdep = null;
@@ -205,6 +206,12 @@ public class SpedizioneViewModel {
private void initDefaultVars() {
if (this.mTestateOrdini != null && this.mTestateOrdini.size() > 0) {
+ List foundRagSoc = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getRagSocOrd).distinctBy(x -> x).toList();
+
+ if (foundRagSoc != null && foundRagSoc.size() == 1) {
+ mDefaultRagSocOfUL = foundRagSoc.get(0);
+ }
+
if (mDefaultGestioneOfUL == null) {
//Definizione della gestione collo di default
List foundGestioni = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getGestioneEnum).withoutNulls().distinct().toList();
@@ -1230,6 +1237,7 @@ public class SpedizioneViewModel {
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(createdUDS, mTestateOrdini);
this.mCurrentMtbColt = createdUDS;
+ this.mCurrentMtbColt.setRagSocCliente(mDefaultRagSocOfUL);
this.mIsNewLU = true;
if (onComplete != null) onComplete.run();
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java
index f8b6220b..ad07ba81 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java
@@ -9,6 +9,9 @@ public class DialogAvailableItemListModel {
private boolean aggiunto;
+ private boolean clickable;
+ private MtbAart originalModel;
+
public boolean isAggiunto() {
return aggiunto;
}
@@ -36,9 +39,43 @@ public class DialogAvailableItemListModel {
return this;
}
+ public boolean isClickable() {
+ return clickable;
+ }
+
+ public DialogAvailableItemListModel setClickable(boolean clickable) {
+ this.clickable = clickable;
+ return this;
+ }
+
+ public MtbAart getOriginalModel() {
+ return originalModel;
+ }
+
+ public DialogAvailableItemListModel setOriginalModel(MtbAart originalModel) {
+ this.originalModel = originalModel;
+ return this;
+ }
+
public static DialogAvailableItemListModel fromMtbAart(MtbAart mtbAart) {
return new DialogAvailableItemListModel()
.setCodMart(mtbAart.getCodMart())
- .setDescrizioneEstesa(mtbAart.getDescrizioneEstesa());
+ .setDescrizioneEstesa(mtbAart.getDescrizioneEstesa())
+ .setOriginalModel(mtbAart);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ DialogAvailableItemListModel that = (DialogAvailableItemListModel) o;
+
+ return getOriginalModel().equals(that.getOriginalModel());
+ }
+
+ @Override
+ public int hashCode() {
+ return getOriginalModel().hashCode();
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java
index 5777b43a..79a0323f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java
@@ -6,27 +6,42 @@ import android.view.LayoutInflater;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.appcompat.widget.SearchView;
import androidx.core.content.ContextCompat;
+import androidx.databinding.ObservableArrayList;
+import androidx.databinding.ObservableList;
+import com.annimon.stream.Stream;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.ravikoradiya.liveadapter.LiveAdapter;
+import com.ravikoradiya.liveadapter.Type;
import java.util.List;
import it.integry.integrywmsnative.BR;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.MtbAart;
+import it.integry.integrywmsnative.databinding.DialogAvailableIntventarioItemsItemModelBinding;
import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
public class DialogAvailableItemsView extends BaseDialogFragment {
private final List mListaArts;
+ private final ObservableList mFilteredListaArts = new ObservableArrayList<>();
- public DialogAvailableItemsView(List listaArts) {
+ private final RunnableArgs mOnItemSelected;
+
+
+ public DialogAvailableItemsView(List listaArts, RunnableArgs onItemSelected) {
super();
this.mListaArts = listaArts;
+ this.mFilteredListaArts.addAll(mListaArts);
+
+ this.mOnItemSelected = onItemSelected;
}
@@ -37,7 +52,12 @@ public class DialogAvailableItemsView extends BaseDialogFragment {
binding.titleText.setText(R.string.articoli_disponibili);
- initRecyclerView(binding, mListaArts);
+ for (var item : mListaArts) {
+ if (mOnItemSelected != null) item.setClickable(true);
+ }
+
+ initSearchView(binding);
+ initRecyclerView(binding);
var alertDialog = new MaterialAlertDialogBuilder(requireContext())
.setView(binding.getRoot())
@@ -49,17 +69,52 @@ public class DialogAvailableItemsView extends BaseDialogFragment {
return alertDialog;
}
- private void initRecyclerView(DialogChooseArtFromListaArtBinding binding, List dataset) {
+ private void initSearchView(DialogChooseArtFromListaArtBinding binding) {
+ binding.searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
+ @Override
+ public boolean onQueryTextSubmit(String query) {
+ return false;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String newText) {
+ final List matchItems = Stream.of(mListaArts)
+ .filter(x -> x.getCodMart().toLowerCase().contains(newText.toLowerCase())
+ || x.getDescrizioneEstesa().toLowerCase().contains(newText.toLowerCase()))
+ .toList();
+
+ mFilteredListaArts.clear();
+ mFilteredListaArts.addAll(matchItems);
+
+ return false;
+ }
+ });
+ }
+
+ private void initRecyclerView(DialogChooseArtFromListaArtBinding binding) {
binding.itemsList.setHasFixedSize(true);
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireContext(), SimpleDividerItemDecoration.VERTICAL);
itemDecorator.setDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.divider));
binding.itemsList.addItemDecoration(itemDecorator);
+ var itemType = new Type(R.layout.dialog_available_intventario_items__item_model, BR.item);
- new LiveAdapter(dataset, BR.item)
- .map(DialogAvailableItemListModel.class, R.layout.dialog_available_intventario_items__item_model)
+ itemType.areItemSame((x, y) -> x.getOriginalModel().getCodMart().equals(y.getOriginalModel().getCodMart()));
+ itemType.areContentsTheSame(DialogAvailableItemListModel::equals);
+
+ if (mOnItemSelected != null) {
+ itemType.onClick(x -> {
+ mOnItemSelected.run(x.getBinding().getItem().getOriginalModel());
+ dismiss();
+ return null;
+ });
+ }
+
+ new LiveAdapter(mFilteredListaArts)
+ .map(DialogAvailableItemListModel.class, itemType)
.into(binding.itemsList);
+
}
}
diff --git a/app/src/main/res/layout/activity_picking_inventario.xml b/app/src/main/res/layout/activity_picking_inventario.xml
index 56a6c486..93a609bc 100644
--- a/app/src/main/res/layout/activity_picking_inventario.xml
+++ b/app/src/main/res/layout/activity_picking_inventario.xml
@@ -26,33 +26,6 @@
android:layout_height="wrap_content"
android:orientation="vertical">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml b/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml
index e865c3d2..b13c5145 100644
--- a/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml
+++ b/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml
@@ -16,7 +16,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
- android:padding="16dp">
+ android:paddingTop="16dp"
+ android:paddingBottom="16dp">
+
+
+
+
+ android:background="?attr/selectableItemBackground">
diff --git a/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml b/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml
index aab6b20d..6ab618d5 100644
--- a/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml
+++ b/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml
@@ -12,7 +12,7 @@
diff --git a/app/src/main/res/layout/layout_filter_automezzo__list_item.xml b/app/src/main/res/layout/layout_filter_automezzo__list_item.xml
index c87823ea..39902f3b 100644
--- a/app/src/main/res/layout/layout_filter_automezzo__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_automezzo__list_item.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?attr/selectableItemBackground"
android:clickable="@{item.enabled}"
android:onClick="@{() -> item.selected.toggle()}">
diff --git a/app/src/main/res/layout/layout_filter_cliente__list_item.xml b/app/src/main/res/layout/layout_filter_cliente__list_item.xml
index 473672a8..8e97b6b7 100644
--- a/app/src/main/res/layout/layout_filter_cliente__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_cliente__list_item.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?attr/selectableItemBackground"
android:clickable="@{item.enabled}"
android:onClick="@{() -> item.selected.toggle()}">
diff --git a/app/src/main/res/layout/layout_filter_cod_art__list_item.xml b/app/src/main/res/layout/layout_filter_cod_art__list_item.xml
index 2439cf15..61a72af8 100644
--- a/app/src/main/res/layout/layout_filter_cod_art__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_cod_art__list_item.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?attr/selectableItemBackground"
android:clickable="@{item.enabled}"
android:onClick="@{() -> item.selected.toggle()}">
diff --git a/app/src/main/res/layout/layout_filter_commessa__list_item.xml b/app/src/main/res/layout/layout_filter_commessa__list_item.xml
index 5f47b131..a82bc689 100644
--- a/app/src/main/res/layout/layout_filter_commessa__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_commessa__list_item.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?attr/selectableItemBackground"
android:clickable="@{item.enabled}"
android:onClick="@{() -> item.selected.toggle()}">
diff --git a/app/src/main/res/layout/layout_filter_deposito__list_item.xml b/app/src/main/res/layout/layout_filter_deposito__list_item.xml
index 539499ed..c6594137 100644
--- a/app/src/main/res/layout/layout_filter_deposito__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_deposito__list_item.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?attr/selectableItemBackground"
android:clickable="@{item.enabled}"
android:onClick="@{() -> item.selected.toggle()}">
diff --git a/app/src/main/res/layout/layout_filter_descr__list_item.xml b/app/src/main/res/layout/layout_filter_descr__list_item.xml
index 00091465..1da7cd47 100644
--- a/app/src/main/res/layout/layout_filter_descr__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_descr__list_item.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?attr/selectableItemBackground"
android:clickable="@{item.enabled}"
android:onClick="@{() -> item.selected.toggle()}">
diff --git a/app/src/main/res/layout/layout_filter_gruppo_merc__list_item.xml b/app/src/main/res/layout/layout_filter_gruppo_merc__list_item.xml
index 2526b9fa..334f80df 100644
--- a/app/src/main/res/layout/layout_filter_gruppo_merc__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_gruppo_merc__list_item.xml
@@ -16,7 +16,7 @@
diff --git a/app/src/main/res/layout/layout_filter_posizione__list_item.xml b/app/src/main/res/layout/layout_filter_posizione__list_item.xml
index daf96357..8686adff 100644
--- a/app/src/main/res/layout/layout_filter_posizione__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_posizione__list_item.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?attr/selectableItemBackground"
android:clickable="@{item.enabled}"
android:onClick="@{() -> item.selected.toggle()}">
diff --git a/app/src/main/res/layout/layout_filter_term_cons__list_item.xml b/app/src/main/res/layout/layout_filter_term_cons__list_item.xml
index 47240d5e..876a26d8 100644
--- a/app/src/main/res/layout/layout_filter_term_cons__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_term_cons__list_item.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?attr/selectableItemBackground"
android:clickable="@{item.enabled}"
android:onClick="@{() -> item.selected.toggle()}">
diff --git a/app/src/main/res/layout/layout_filter_vettore__list_item.xml b/app/src/main/res/layout/layout_filter_vettore__list_item.xml
index 8eadcce7..15fa3d4d 100644
--- a/app/src/main/res/layout/layout_filter_vettore__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_vettore__list_item.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?attr/selectableItemBackground"
android:clickable="@{item.enabled}"
android:onClick="@{() -> item.selected.toggle()}">
diff --git a/app/src/main/res/layout/layout_filter_viaggio__list_item.xml b/app/src/main/res/layout/layout_filter_viaggio__list_item.xml
index 52d18601..5995be35 100644
--- a/app/src/main/res/layout/layout_filter_viaggio__list_item.xml
+++ b/app/src/main/res/layout/layout_filter_viaggio__list_item.xml
@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingHorizontal="8dp"
- android:background="?android:attr/selectableItemBackground"
+ android:background="?attr/selectableItemBackground"
android:clickable="@{item.enabled}"
android:onClick="@{() -> item.selected.toggle()}">
diff --git a/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml b/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml
index d275f5d9..d88e851a 100644
--- a/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml
+++ b/app/src/main/res/layout/lista_contenuto_bancale_list_model.xml
@@ -25,7 +25,7 @@
diff --git a/app/src/main/res/menu/picking_inventario_menu.xml b/app/src/main/res/menu/picking_inventario_menu.xml
index 622d7c94..e50c90de 100644
--- a/app/src/main/res/menu/picking_inventario_menu.xml
+++ b/app/src/main/res/menu/picking_inventario_menu.xml
@@ -9,5 +9,12 @@
android:contentDescription="@string/action_export"
app:showAsAction="always" />
+
+
\ 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 5312ed32..042e1261 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -460,4 +460,5 @@
Sei sicuro di voler continuare?]]>
Griglie disponibili
+ Cerca
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d5b84c79..f99ef1b5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -469,4 +469,5 @@
Do you wish to continue?]]>
Available grids
+ Search
diff --git a/build.gradle b/build.gradle
index ebcfc40b..3043ed2c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@
buildscript {
ext {
kotlin_version = '1.8.0'
- agp_version = '8.0.1'
+ agp_version = '8.0.2'
}
repositories {
diff --git a/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeReader.java b/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeReader.java
index 6caa2924..14de85e6 100644
--- a/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeReader.java
+++ b/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeReader.java
@@ -42,6 +42,8 @@ public class ZebraBarcodeReader implements BarcodeReaderInterface {
return true;
} else if (model.equalsIgnoreCase("TC20")) {
return true;
+ } else if (model.equalsIgnoreCase("MBA5")) {
+ return true;
} else return false;
}
diff --git a/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeTypeMapper.java b/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeTypeMapper.java
index a59ce5df..6e8b5f78 100644
--- a/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeTypeMapper.java
+++ b/zebrascannerlibrary/src/main/java/it/integry/zebrascannerlibrary/ZebraBarcodeTypeMapper.java
@@ -17,6 +17,12 @@ public class ZebraBarcodeTypeMapper {
case "LABEL-TYPE-CODE39":
return BarcodeType.CODE39;
+
+ case "LABEL-TYPE-IATA2OF5":
+ return BarcodeType.IATA_2OF5;
+ case "LABEL-TYPE-I2OF5":
+ return BarcodeType.INTERLEAVED_2OF5;
+
case "LABEL-TYPE-EAN13":
return BarcodeType.EAN13;
case "LABEL-TYPE-EAN8":