Compare commits

...

25 Commits

Author SHA1 Message Date
3f647952c0 Finish v1.40.24(441) 2024-06-18 09:52:37 +02:00
9bf55aae85 -> v1.40.24 (441) 2024-06-18 09:52:23 +02:00
f9a31faa78 Fix import docInterni 2024-06-18 09:49:23 +02:00
9a643837d4 Finish v1.40.23(440) 2024-06-17 17:55:25 +02:00
f458a52b18 Finish v1.40.23(440) 2024-06-17 17:55:24 +02:00
132437d134 -> v1.40.23 (440) 2024-06-17 17:55:10 +02:00
022841c195 Controllo documenti fruma 2024-06-17 17:53:46 +02:00
bdbecfb037 Finish v1.40.22(439) 2024-05-31 18:41:09 +02:00
1a501af172 Finish v1.40.22(439) 2024-05-31 18:41:08 +02:00
fe558a8be8 -> v.1.40.22 (439) 2024-05-31 18:41:02 +02:00
05d930d8f7 Aggiunta setup per "Disabilitare" il picking libero quando si spara un'etichetta cartone 2024-05-31 18:38:25 +02:00
267aa85e01 Finish v1.40.21(438) 2024-05-28 19:07:53 +02:00
89a98cac8b Finish v1.40.21(438) 2024-05-28 19:07:52 +02:00
efc052d622 -> v1.40.21 (438) 2024-05-28 19:07:48 +02:00
6f61f3af9b Fix date in recupero materiale 2024-05-28 19:07:01 +02:00
e7d06c9752 Finish v1.40.20(437) 2024-05-27 13:27:22 +02:00
81e3c70960 Finish v1.40.20(437) 2024-05-27 13:27:22 +02:00
76a0fe9b6f -> v1.40.20 (437) 2024-05-27 13:27:08 +02:00
a9bab6db56 Fix format LocalDate in recupero materiale 2024-05-27 13:26:11 +02:00
85197c1f9b Finish v1.40.19(436) 2024-05-21 12:15:37 +02:00
ece434806f Finish v1.40.19(436) 2024-05-21 12:15:36 +02:00
0962192144 -> v1.40.19 (436) 2024-05-21 12:15:29 +02:00
38139a1ec9 Merge remote-tracking branch 'origin/develop' into develop 2024-05-21 12:14:19 +02:00
56e5603256 Fix date in recupero materiale 2024-05-21 12:14:03 +02:00
26f9f0e16c Finish v1.40.18(435) 2024-05-14 16:57:12 +02:00
17 changed files with 142 additions and 43 deletions

View File

@@ -1,6 +1,6 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="app" type="AndroidRunConfigurationType" factoryName="Android App">
<module name="WMS_Native.app.main" />
<module name="WMS.app.main" />
<option name="DEPLOY" value="true" />
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
<option name="DEPLOY_AS_INSTANT" value="false" />

View File

@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
def appVersionCode = 435
def appVersionName = '1.40.18'
def appVersionCode = 441
def appVersionName = '1.40.24'
signingConfigs {
release {

View File

@@ -261,6 +261,11 @@ public class MtbColr extends EntityBase {
return this;
}
public MtbColr setDataColloRif(LocalDate dataColloRif) {
this.dataColloRif = UtilityDate.formatDate(dataColloRif, UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH);
return this;
}
public BigDecimal getQtaCnf() {
return qtaCnf;
}

View File

@@ -10,6 +10,7 @@ import com.annimon.stream.Stream;
import org.jetbrains.annotations.Nullable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -160,6 +161,10 @@ public class MtbColt extends EntityBase {
return UtilityDate.recognizeDateWithExceptionHandler(getDataColloS());
}
public LocalDate getDataColloLD() {
return UtilityDate.recognizeLocalDateWithExceptionHandler(getDataColloS());
}
public MtbColt setDataCollo(String dataCollo) {
this.dataCollo = dataCollo;
return this;
@@ -170,6 +175,11 @@ public class MtbColt extends EntityBase {
return this;
}
public MtbColt setDataCollo(LocalDate dataCollo) {
this.dataCollo = UtilityDate.formatDate(dataCollo, UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH);
return this;
}
public String getSerCollo() {
return serCollo;
}

View File

@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.rest.consumers;
import androidx.annotation.NonNull;
import java.util.Date;
import java.util.List;
import javax.inject.Singleton;
@@ -50,8 +51,21 @@ public class DocumentRESTConsumer extends _BaseRESTConsumer {
});
}
public void checkFrumaDocument(String fornitore, String numDoc, String dataDoc, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
var inventarioRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);
inventarioRESTConsumerService.checkFrumaDoc(fornitore, numDoc, dataDoc)
.enqueue(new Callback<>() {
@Override
public void onResponse(@NonNull Call<ServiceRESTResponse<Boolean>> call, @NonNull Response<ServiceRESTResponse<Boolean>> response) {
analyzeAnswer(response, "checkDocument", onComplete, onFailed);
}
@Override
public void onFailure(@NonNull Call<ServiceRESTResponse<Boolean>> call, @NonNull Throwable t) {
onFailed.run(new Exception(t));
}
});
}
public void loadDocumentAvailableArts(String codDtip, String codMgrp, String codAnagForn, RunnableArgs<RetrieveDocumentoArtsResponseDTO> onComplete, RunnableArgs<Exception> onFailed) {
var inventarioRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);

View File

@@ -1,5 +1,6 @@
package it.integry.integrywmsnative.core.rest.consumers;
import java.util.Date;
import java.util.List;
import it.integry.integrywmsnative.core.model.DtbDoct;
@@ -20,8 +21,11 @@ public interface DocumentiRESTConsumerService {
@POST("createDocFromColli")
Call<ServiceRESTResponse<DtbDoct>> createDocFromColli(@Body LoadColliDTO listColli);
@GET("wms/documento/checkFruma")
Call<ServiceRESTResponse<Boolean>> checkFrumaDoc(
@Query("fornitore") String fornitore,
@Query("numDoc") String numDoc,
@Query("dataDoc") String dataDoc);
@GET("wms/documento/arts")
Call<ServiceRESTResponse<RetrieveDocumentoArtsResponseDTO>> retrieveArts(

View File

@@ -78,6 +78,7 @@ public class DBSettingsModel {
private boolean flagTracciamentoImballiCaricoEnabled = false;
private boolean flagTracciamentoImballiScaricoEnabled = false;
private boolean flagPickingLiberoEnableScanArt = false;
public boolean isFlagSpedizioneEnableFakeGiacenza() {
return flagSpedizioneEnableFakeGiacenza;
@@ -654,4 +655,13 @@ public class DBSettingsModel {
this.flagTracciamentoImballiScaricoEnabled = flagTracciamentoImballiScaricoEnabled;
return this;
}
public boolean isFlagPickingLiberoEnableScanArt() {
return flagPickingLiberoEnableScanArt;
}
public DBSettingsModel setFlagPickingLiberoEnableScanArt(boolean flagPickingLiberoEnableScanArt) {
this.flagPickingLiberoEnableScanArt = flagPickingLiberoEnableScanArt;
return this;
}
}

View File

@@ -518,6 +518,12 @@ public class SettingsManager {
.setKeySection("FLAG_WARNING_NEW_PARTITA_MAG")
.setSetter(dbSettingsModelIstance::setFlagWarningNewPartitaMag)
.setDefaultValue(false));
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("PICKING_LIBERO")
.setKeySection("ENABLE_SCAN_ART")
.setSetter(dbSettingsModelIstance::setFlagPickingLiberoEnableScanArt)
.setDefaultValue(true));
stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
.setGestName("PICKING")

View File

@@ -3,6 +3,8 @@ package it.integry.integrywmsnative.gest.contab_doc_interni;
import android.content.Context;
import android.os.Bundle;
import android.text.Html;
import android.text.SpannableString;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -37,6 +39,7 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniE
import it.integry.integrywmsnative.gest.contab_doc_interni.ui.DocInterniListAdapter;
import it.integry.integrywmsnative.gest.contab_doc_interni.ui.DocInterniListModel;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class DocInterniFragment extends BaseFragment implements ITitledFragment, IScrollableFragment, DocInterniViewModel.Listener {
@@ -120,10 +123,21 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
this.openDocumentSelectionDialog();
}
@Override
public void onWarning(String warningText, Runnable action) {
this.requireActivity().runOnUiThread(() -> {
this.onLoadingEnded();
DialogSimpleMessageView
.makeWarningDialog(new SpannableString(Html.fromHtml(warningText)), null, action)
.show(requireActivity().getSupportFragmentManager(), "tag");
});
}
@Override
public void onDocDetailsChanged(DialogSelectDocInfoResponseDTO selection) {
mViewModel.setSelectedDocDetails(selection);
mViewModel.setSelectedDocDetails(selection, () -> {
mBinding.invalidateAll();
});
}
@Override

View File

@@ -8,6 +8,7 @@ import java.util.List;
import javax.inject.Inject;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
@@ -17,6 +18,8 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
import it.integry.integrywmsnative.core.rest.consumers.DocumentRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoResponseDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO;
@@ -76,6 +79,14 @@ public class DocInterniViewModel {
if (this.mListener != null) mListener.onError(ex);
}
private void sendWarning(String warningText, Runnable action) {
if (this.mListener != null) mListener.onWarning(warningText, action);
}
private void sendDocDetailsChanged(DialogSelectDocInfoResponseDTO selection){
if (this.mListener != null) mListener.onDocDetailsChanged(selection);
}
public DocInterniViewModel setListeners(Listener listener) {
this.mListener = listener;
return this;
@@ -85,7 +96,7 @@ public class DocInterniViewModel {
return mDocsList;
}
public void setSelectedDocDetails(DialogSelectDocInfoResponseDTO selection) {
public void setSelectedDocDetails(DialogSelectDocInfoResponseDTO selection, Runnable action) {
this.fornitore = selection.getFornitore();
this.dtbTipi = selection.getTipoDoc();
@@ -94,11 +105,32 @@ public class DocInterniViewModel {
this.numDoc = selection.getNumDoc() != null ? selection.getNumDoc().toString() : null;
this.note = selection.getNote();
if (dtbTipi.getCodDtip().equalsIgnoreCase("FRUMA")) {
documentRESTConsumer.checkFrumaDocument(
fornitore.getCodAnag(),
numDoc,
UtilityDate.formatDate(dataDoc, "yyyy/MM/dd"),
data -> {
if (!data) {
this.sendWarning(UtilityResources.getString(R.string.no_doc_found_message), this::init);
} else {
action.run();
this.sendOnLoadingStarted();
fetchProducts(() -> {
fetchDocuments(this::sendOnLoadingEnded);
});
}
},
this::sendError
);
} else {
action.run();
this.sendOnLoadingStarted();
fetchProducts(() -> {
fetchDocuments(this::sendOnLoadingEnded);
});
}
}
public void fetchProducts(Runnable onComplete) {
documentRESTConsumer.loadDocumentAvailableArts(
@@ -210,6 +242,8 @@ public class DocInterniViewModel {
void onError(Exception ex);
void onWarning(String warningText, Runnable action);
void onDocInterniSetupFetched(DocInterniSetupDTO docInterniSetupDTO);
void onDocDetailsChanged(DialogSelectDocInfoResponseDTO selection);

View File

@@ -90,7 +90,7 @@ public class LoginViewModel {
this.mSystemRESTConsumer.getAvailableCodMdeps(availableCodMdeps -> {
SettingsManager.iDB().setAvailableCodMdep(availableCodMdeps);
if (availableCodMdeps == null || availableCodMdeps.size() == 0) {
if (availableCodMdeps == null || availableCodMdeps.isEmpty()) {
this.sendError(new InvalidUserDepositException());
return;
}

View File

@@ -14,6 +14,7 @@ import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.core.exception.InvalidCodMdepException;
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
@@ -137,13 +138,15 @@ public class PickingLiberoViewModel {
//Cerco tramite etichetta ean 128 (che può indicarmi una UL)
this.executeEtichettaEan128(barcodeScanDTO, onComplete);
} else if (UtilityBarcode.isEanPeso(barcodeScanDTO)) {
} else if (UtilityBarcode.isEanPeso(barcodeScanDTO) && SettingsManager.iDB().isFlagPickingLiberoEnableScanArt()) {
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
this.executeEtichettaEanPeso(barcodeScanDTO, onComplete);
} else {
} else if (SettingsManager.iDB().isFlagPickingLiberoEnableScanArt()){
//Cerco tramite ean13 un collo in posizione mono ul definita in anagrafica articolo, altrimenti se abilitato procedo con picking manuale
this.loadArticolo(barcodeScanDTO.getStringValue(), null, onComplete);
} else {
this.sendError(new NoArtsFoundException());
}
}
@@ -269,18 +272,16 @@ public class PickingLiberoViewModel {
if (!UtilityString.isNullOrEmpty(ean128Model.Content))
barcodeProd = ean128Model.Content;
if (!UtilityString.isNullOrEmpty(barcodeProd)) {
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
this.executeEtichettaLU(ean128Model.Sscc, onComplete);
} else if (!UtilityString.isNullOrEmpty(barcodeProd)) {
} else if (!UtilityString.isNullOrEmpty(barcodeProd) && SettingsManager.iDB().isFlagPickingLiberoEnableScanArt()) {
this.loadArticolo(barcodeProd, ean128Model, onComplete);
} else {
this.sendError(new NoLUFoundException());
}
} else {
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
this.sendError(new NoLUFoundException());

View File

@@ -3,13 +3,12 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale;
import androidx.databinding.ObservableArrayList;
import androidx.lifecycle.MutableLiveData;
import com.annimon.stream.Stream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.inject.Inject;
@@ -93,14 +92,14 @@ public class ProdRecuperoMaterialeViewModel {
private HistoryVersamentoProdULDTO getHistoryElementFromMtbColt(MtbColt mtbColt) {
List<HistoryVersamentoProdULDTO> filteredItems = Stream.of(this.mUlList.getValue())
List<HistoryVersamentoProdULDTO> filteredItems = this.mUlList.getValue().stream()
.filter(x -> Objects.equals(x.getNumColloRif(), mtbColt.getNumCollo()) &&
x.getDataColloRif().equals(mtbColt.getDataColloS()) &&
x.getDataColloRif().equals(mtbColt.getDataColloLD()) &&
x.getSerColloRif().equalsIgnoreCase(mtbColt.getSerCollo()) &&
x.getGestioneRif().equalsIgnoreCase(mtbColt.getGestione()))
.toList();
.collect(Collectors.toList());
if (filteredItems != null && filteredItems.size() > 0) {
if (!filteredItems.isEmpty()) {
return filteredItems.get(0);
}
@@ -267,7 +266,7 @@ public class ProdRecuperoMaterialeViewModel {
if (!Objects.equals(mtbColt.getNumCollo(), item.getNumColloRif()) ||
!Objects.equals(mtbColt.getSerCollo(), item.getSerColloRif()) ||
!Objects.equals(mtbColt.getDataColloS(), item.getDataColloRif()) ||
!Objects.equals(mtbColt.getDataColloLD(), item.getDataColloRif()) ||
!Objects.equals(mtbColt.getGestione(), item.getGestioneRif())) {
final MtbColt mtbColtCarico = mtbColt

View File

@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale.dto;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
@@ -11,7 +12,7 @@ import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
public class HistoryVersamentoProdULDTO {
private String gestione;
private String dataCollo;
private LocalDate dataCollo;
private String serCollo;
private Integer numCollo;
private String segno;
@@ -28,7 +29,7 @@ public class HistoryVersamentoProdULDTO {
private String descrizioneArt;
private String untMis;
private String gestioneRif;
private String dataColloRif;
private LocalDate dataColloRif;
private String serColloRif;
private Integer numColloRif;
@@ -50,11 +51,11 @@ public class HistoryVersamentoProdULDTO {
return this;
}
public String getDataCollo() {
public LocalDate getDataCollo() {
return dataCollo;
}
public HistoryVersamentoProdULDTO setDataCollo(String dataCollo) {
public HistoryVersamentoProdULDTO setDataCollo(LocalDate dataCollo) {
this.dataCollo = dataCollo;
return this;
}
@@ -203,11 +204,11 @@ public class HistoryVersamentoProdULDTO {
return this;
}
public String getDataColloRif() {
public LocalDate getDataColloRif() {
return dataColloRif;
}
public HistoryVersamentoProdULDTO setDataColloRif(String dataColloRif) {
public HistoryVersamentoProdULDTO setDataColloRif(LocalDate dataColloRif) {
this.dataColloRif = dataColloRif;
return this;
}

View File

@@ -1,16 +1,16 @@
package it.integry.integrywmsnative.gest.prod_recupero_materiale.dto;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.utility.UtilityDate;
public class HistoryVersamentoProdULRestDTO {
private String gestione;
private String dataCollo;
private LocalDate dataCollo;
private String serCollo;
private Integer numCollo;
private String segno;
@@ -27,7 +27,7 @@ public class HistoryVersamentoProdULRestDTO {
private String descrizioneArt;
private String untMis;
private String gestioneRif;
private String dataColloRif;
private LocalDate dataColloRif;
private String serColloRif;
private Integer numColloRif;
@@ -55,11 +55,11 @@ public class HistoryVersamentoProdULRestDTO {
return this;
}
public String getDataCollo() {
public LocalDate getDataCollo() {
return dataCollo;
}
public HistoryVersamentoProdULRestDTO setDataCollo(String dataCollo) {
public HistoryVersamentoProdULRestDTO setDataCollo(LocalDate dataCollo) {
this.dataCollo = dataCollo;
return this;
}
@@ -208,11 +208,11 @@ public class HistoryVersamentoProdULRestDTO {
return this;
}
public String getDataColloRif() {
public LocalDate getDataColloRif() {
return dataColloRif;
}
public HistoryVersamentoProdULRestDTO setDataColloRif(String dataColloRif) {
public HistoryVersamentoProdULRestDTO setDataColloRif(LocalDate dataColloRif) {
this.dataColloRif = dataColloRif;
return this;
}

View File

@@ -264,7 +264,7 @@ public class ProdRecuperMaterialeRESTConsumer extends _BaseRESTConsumer {
});
if (newUlList.size() > 0) {
if (!newUlList.isEmpty()) {
List<String> codMarts = Stream.of(newUlList)
.map(HistoryVersamentoProdULDTO::getCodMart)
.withoutNulls()

View File

@@ -813,7 +813,8 @@ public class SpedizioneViewModel {
List<PickingObjectDTO> matchPickingObject = pickingList.stream()
.filter(x -> UtilityString.equalsIgnoreCase(mtbAart.getCodMart(), x.getSitArtOrdDTO().getCodMart()))
.filter(x -> x.getSitArtOrdDTO().isFlagEnableScanArt()).filter(x -> {
.filter(x -> x.getSitArtOrdDTO().isFlagEnableScanArt())
.filter(x -> {
MtbPartitaMag mtbPartitaMag = pickData != null && pickData.getManualPickDTO() != null && pickData.getManualPickDTO().getMtbPartitaMag() != null ? pickData.getManualPickDTO().getMtbPartitaMag() : null;
return !mEnableCheckPartitaMag || (mtbPartitaMag != null && UtilityString.equalsIgnoreCase(x.getSitArtOrdDTO().getPartitaMag(), mtbPartitaMag.getPartitaMag()));
}).collect(Collectors.toList());