diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 2850b67a..514d91c4 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -1,6 +1,18 @@ + + + + + + + + + + + + diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java index 09102422..e46314e7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java @@ -1,5 +1,7 @@ package it.integry.integrywmsnative.core.model; +import android.text.TextUtils; + import androidx.databinding.ObservableArrayList; import com.annimon.stream.Optional; @@ -8,6 +10,7 @@ import com.annimon.stream.Stream; import org.jetbrains.annotations.Nullable; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -120,24 +123,24 @@ public class MtbColt extends EntityBase { case ACQUISTO: case LAVORAZIONE: case PRODUZIONE: - if(SettingsManager.iDB().getInternalCodAnags() == null) break; + if (SettingsManager.iDB().getInternalCodAnags() == null) break; Optional optCodAnagForn = Stream.of(SettingsManager.iDB().getInternalCodAnags()) .filter(InternalCodAnagsDTO::isFornitore) .findFirst(); - if(optCodAnagForn.isEmpty()) break; + if (optCodAnagForn.isEmpty()) break; codAnagToUse = optCodAnagForn.get().getCodAnag(); break; case VENDITA: - if(SettingsManager.iDB().getInternalCodAnags() == null) break; + if (SettingsManager.iDB().getInternalCodAnags() == null) break; Optional optCodAnagClie = Stream.of(SettingsManager.iDB().getInternalCodAnags()) .filter(InternalCodAnagsDTO::isCliente) .findFirst(); - if(optCodAnagClie.isEmpty()) break; + if (optCodAnagClie.isEmpty()) break; codAnagToUse = optCodAnagClie.get().getCodAnag(); break; @@ -574,9 +577,41 @@ public class MtbColt extends EntityBase { String xmlPrefix = "{\"whereCond\": \""; String xmlSuffix = "\"}"; - StringBuilder whereCond = new StringBuilder(); +// StringBuilder whereCond = new StringBuilder(); + String whereCond; + List conditions = new ArrayList<>(); + String existingFilter; + if (this.filtroOrdini != null) { + existingFilter = this.filtroOrdini; + existingFilter = existingFilter.replace(xmlPrefix, "").replace(xmlSuffix, ""); + conditions.add(existingFilter); + } else { + existingFilter = ""; + } - if (filtroOrdineDtos != null && filtroOrdineDtos.size() > 0) { + + for (FiltroOrdineDTO filtroOrdineDTO : filtroOrdineDtos) { + try { + String condition = (String.format("(d.g = %s AND d.d = %s and d.n = %s", + UtilityDB.valueToString(filtroOrdineDTO.getGestioneOrd()), + UtilityDB.valueToString(UtilityDate.formatDate(filtroOrdineDTO.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)), + UtilityDB.valueToString(filtroOrdineDTO.getNumOrd()))); + + if (!UtilityString.isNullOrEmpty(filtroOrdineDTO.getDataConsS())) { + condition += (String.format(" AND dr.dc = %s", + UtilityDB.valueToString(UtilityDate.formatDate(filtroOrdineDTO.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)))); + } + + condition += ")"; + if (!existingFilter.contains(condition)) { + conditions.add(condition); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /*if (filtroOrdineDtos != null && filtroOrdineDtos.size() > 0) { for (int i = 0; i < filtroOrdineDtos.size(); i++) { FiltroOrdineDTO x = filtroOrdineDtos.get(i); @@ -602,7 +637,8 @@ public class MtbColt extends EntityBase { } } - } + }*/ + whereCond = TextUtils.join(" OR ", conditions); this.filtroOrdini = xmlPrefix + whereCond + xmlSuffix; } 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 0ea058d8..c291a184 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 @@ -1752,7 +1752,7 @@ public class SpedizioneViewModel { this.sendOnLoadingStarted(); this.mCurrentMtbColt = mtbColt; mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini); - + this.mCurrentMtbColt.generaFiltroOrdineFromDTO(mDefaultFiltroOrdine); this.mColliMagazzinoRESTConsumer.saveCollo(this.mCurrentMtbColt, savedMtbColt -> {