Completati controlli anomalie ul
This commit is contained in:
@@ -4,6 +4,7 @@ package it.integry.integrywmsnative.gest.picking_libero;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.text.Html;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -325,6 +326,15 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onWarning(String warningText, Runnable action) {
|
||||||
|
handler.post(() -> {
|
||||||
|
DialogSimpleMessageView
|
||||||
|
.makeWarningDialog(getContext(), new SpannableString(Html.fromHtml(warningText)), null, action)
|
||||||
|
.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
|
public void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
|
||||||
DialogAskClienteView.newInstance(onComplete, onAbort)
|
DialogAskClienteView.newInstance(onComplete, onAbort)
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import javax.inject.Inject;
|
|||||||
|
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
||||||
|
import it.integry.integrywmsnative.core.exception.AnomaliaUlException;
|
||||||
import it.integry.integrywmsnative.core.exception.InvalidCodMdepException;
|
import it.integry.integrywmsnative.core.exception.InvalidCodMdepException;
|
||||||
import it.integry.integrywmsnative.core.exception.InvalidPositionException;
|
import it.integry.integrywmsnative.core.exception.InvalidPositionException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
|
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
|
||||||
@@ -53,6 +54,7 @@ import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliScaricoRESTConsumerInterface;
|
import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliScaricoRESTConsumerInterface;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.giacenza.GetColloInGiacResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
|
||||||
@@ -190,7 +192,7 @@ public class PickingLiberoViewModel {
|
|||||||
if (foundPosizione.isMagazzinoAutomatico()) {
|
if (foundPosizione.isMagazzinoAutomatico()) {
|
||||||
//Eseguo picking da magazzino automatico
|
//Eseguo picking da magazzino automatico
|
||||||
this.executeMagazzinoAutomatico(foundPosizione);
|
this.executeMagazzinoAutomatico(foundPosizione);
|
||||||
} else if(foundPosizione.isFlagMonoCollo()) {
|
} else if (foundPosizione.isFlagMonoCollo()) {
|
||||||
this.executePosizioneMonoUL(foundPosizione, null);
|
this.executePosizioneMonoUL(foundPosizione, null);
|
||||||
} else
|
} else
|
||||||
throw new InvalidPositionException("impossibile gestire una posizione non MONO-UL in fase di picking");
|
throw new InvalidPositionException("impossibile gestire una posizione non MONO-UL in fase di picking");
|
||||||
@@ -243,7 +245,9 @@ public class PickingLiberoViewModel {
|
|||||||
throw new NoLUFoundException();
|
throw new NoLUFoundException();
|
||||||
}
|
}
|
||||||
} else if (barcodeUlInPosizione.size() == 1) {
|
} else if (barcodeUlInPosizione.size() == 1) {
|
||||||
var mtbColt = this.mColliMagazzinoRESTConsumer.getBySsccSynchronized(barcodeUlInPosizione.get(0), true, false);
|
var response = this.mColliMagazzinoRESTConsumer.getBySsccSynchronized(barcodeUlInPosizione.get(0), true, false);
|
||||||
|
this.checkAnomalieUl(response);
|
||||||
|
var mtbColt = response.getMtbColt();
|
||||||
|
|
||||||
boolean codMdepIsValid = Stream.of(SettingsManager.iDB().getAvailableDepos())
|
boolean codMdepIsValid = Stream.of(SettingsManager.iDB().getAvailableDepos())
|
||||||
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
||||||
@@ -264,7 +268,9 @@ public class PickingLiberoViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void executeEtichettaLU(String sscc) throws Exception {
|
private void executeEtichettaLU(String sscc) throws Exception {
|
||||||
var mtbColtScanned = mColliMagazzinoRESTConsumer.getBySsccSynchronized(sscc, true, false);
|
var response = mColliMagazzinoRESTConsumer.getBySsccSynchronized(sscc, true, false);
|
||||||
|
this.checkAnomalieUl(response);
|
||||||
|
var mtbColtScanned = response.getMtbColt();
|
||||||
|
|
||||||
if (mtbColtScanned == null) {
|
if (mtbColtScanned == null) {
|
||||||
throw new NoLUFoundException();
|
throw new NoLUFoundException();
|
||||||
@@ -694,12 +700,9 @@ public class PickingLiberoViewModel {
|
|||||||
!UtilityString.isNullOrEmpty(mtbColr.getDataColloRifS()) &&
|
!UtilityString.isNullOrEmpty(mtbColr.getDataColloRifS()) &&
|
||||||
mtbColr.getNumColloRif() != null) {
|
mtbColr.getNumColloRif() != null) {
|
||||||
|
|
||||||
MtbColt mtbColt = mColliMagazzinoRESTConsumer.getBySsccSynchronized(
|
return mColliMagazzinoRESTConsumer.getBySsccSynchronized(
|
||||||
mtbColr.getBarcodeUlOut(),
|
mtbColr.getBarcodeUlOut(), true, false
|
||||||
true,
|
).getMtbColt();
|
||||||
false);
|
|
||||||
|
|
||||||
return mtbColt;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
@@ -894,6 +897,16 @@ public class PickingLiberoViewModel {
|
|||||||
this.mCurrentMtbColt = null;
|
this.mCurrentMtbColt = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkAnomalieUl(GetColloInGiacResponseDTO colloInGiac) {
|
||||||
|
if (colloInGiac.getEscludiPickingVendita() && mDefaultGestione == GestioneEnum.VENDITA) {
|
||||||
|
this.sendError(new AnomaliaUlException(colloInGiac));
|
||||||
|
} else if (colloInGiac.getEscludiPickingLavorazione() && mDefaultGestione == GestioneEnum.LAVORAZIONE) {
|
||||||
|
this.sendError(new AnomaliaUlException(colloInGiac));
|
||||||
|
} else {
|
||||||
|
this.onWarning(colloInGiac.getMessageAnomalia(), () -> {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void sendOnLoadingStarted() {
|
private void sendOnLoadingStarted() {
|
||||||
if (this.mListener != null) mListener.onLoadingStarted();
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
@@ -1042,15 +1055,20 @@ public class PickingLiberoViewModel {
|
|||||||
if (this.mListener != null) mListener.onRowSaved();
|
if (this.mListener != null) mListener.onRowSaved();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onWarning(String warningText, Runnable action) {
|
||||||
|
if (this.mListener != null) mListener.onWarning(warningText, action);
|
||||||
|
}
|
||||||
|
|
||||||
public PickingLiberoViewModel setListener(Listener listener) {
|
public PickingLiberoViewModel setListener(Listener listener) {
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Listener extends ILoadingListener, ILUBaseOperationsListener {
|
public interface Listener extends ILoadingListener, ILUBaseOperationsListener {
|
||||||
|
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
|
|
||||||
|
void onWarning(String warningText, Runnable action);
|
||||||
|
|
||||||
void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort);
|
void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
void onLULineaProdRequired(RunnableArgs<DialogAskLineaProdResponse> onComplete, Runnable onAbort);
|
void onLULineaProdRequired(RunnableArgs<DialogAskLineaProdResponse> onComplete, Runnable onAbort);
|
||||||
|
|||||||
@@ -304,7 +304,7 @@ public class PickingResiViewModel {
|
|||||||
|
|
||||||
|
|
||||||
private void executeEtichettaAnonimaNotOpenedLU(BarcodeScanDTO barcodeScanDTO) throws Exception {
|
private void executeEtichettaAnonimaNotOpenedLU(BarcodeScanDTO barcodeScanDTO) throws Exception {
|
||||||
var mtbColt = mColliMagazzinoRESTConsumer.getBySsccSynchronized(barcodeScanDTO.getStringValue(), true, false);
|
var mtbColt = mColliMagazzinoRESTConsumer.getBySsccSynchronized(barcodeScanDTO.getStringValue(), true, false).getMtbColt();
|
||||||
|
|
||||||
if (mtbColt == null) {
|
if (mtbColt == null) {
|
||||||
if (!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) {
|
if (!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) {
|
||||||
@@ -328,9 +328,7 @@ public class PickingResiViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void executeEtichettaLU(String SSCC) throws Exception {
|
private void executeEtichettaLU(String SSCC) throws Exception {
|
||||||
MtbColt mtbColt = null;
|
var mtbColt = mColliMagazzinoRESTConsumer.getBySsccSynchronized(SSCC, true, false).getMtbColt();
|
||||||
|
|
||||||
mtbColt = mColliMagazzinoRESTConsumer.getBySsccSynchronized(SSCC, true, false);
|
|
||||||
|
|
||||||
if (mTipologiaReso == Tipologia.VENDITA) {
|
if (mTipologiaReso == Tipologia.VENDITA) {
|
||||||
//Leggere i colli in cui ho barcode_ul_out uguale a SSCC scansionato (nel caso di reso da cliente)
|
//Leggere i colli in cui ho barcode_ul_out uguale a SSCC scansionato (nel caso di reso da cliente)
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
Ean128Model ean128Model = this.mBarcodeRESTConsumer.decodeEan128Synchronized(barcodeScanDTO);
|
Ean128Model ean128Model = this.mBarcodeRESTConsumer.decodeEan128Synchronized(barcodeScanDTO);
|
||||||
|
|
||||||
var mtbColt = this.mColliMagazzinoRESTConsumer.getBySsccSynchronized(ean128Model.Sscc, true, false);
|
var mtbColt = this.mColliMagazzinoRESTConsumer.getBySsccSynchronized(ean128Model.Sscc, true, false).getMtbColt();
|
||||||
|
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
@@ -147,8 +147,6 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onItemDispatched(HistoryVersamentoProdULDTO item, PickedQuantityDTO pickedQuantityDTO, MtbColt sourceMtbColt) {
|
public void onItemDispatched(HistoryVersamentoProdULDTO item, PickedQuantityDTO pickedQuantityDTO, MtbColt sourceMtbColt) {
|
||||||
|
|
||||||
|
|
||||||
mExecutorService.execute(() -> {
|
mExecutorService.execute(() -> {
|
||||||
MtbColt mtbColt = sourceMtbColt;
|
MtbColt mtbColt = sourceMtbColt;
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.core.exception.AnomaliaUlException;
|
||||||
import it.integry.integrywmsnative.core.exception.InvalidCodMdepException;
|
import it.integry.integrywmsnative.core.exception.InvalidCodMdepException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
@@ -35,6 +36,7 @@ import it.integry.integrywmsnative.core.rest.consumers.MaterialiRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.giacenza.GetColloInGiacResponseDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.materiali.VersaMaterialiRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.materiali.VersaMaterialiRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
@@ -115,7 +117,9 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
if (barcodeUlInPosizioneList == null || barcodeUlInPosizioneList.isEmpty()) {
|
if (barcodeUlInPosizioneList == null || barcodeUlInPosizioneList.isEmpty()) {
|
||||||
throw new NoLUFoundException();
|
throw new NoLUFoundException();
|
||||||
} else if (barcodeUlInPosizioneList.size() == 1) {
|
} else if (barcodeUlInPosizioneList.size() == 1) {
|
||||||
var mtbColt = this.mColliMagazzinoRESTConsumer.getBySsccSynchronized(barcodeUlInPosizioneList.get(0), true, false);
|
var response = this.mColliMagazzinoRESTConsumer.getBySsccSynchronized(barcodeUlInPosizioneList.get(0), true, false);
|
||||||
|
this.checkAnomaliaUl(response);
|
||||||
|
var mtbColt = response.getMtbColt();
|
||||||
|
|
||||||
boolean codMdepIsValid = SettingsManager.iDB().getAvailableDepos().stream()
|
boolean codMdepIsValid = SettingsManager.iDB().getAvailableDepos().stream()
|
||||||
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
||||||
@@ -131,7 +135,9 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
|
|
||||||
|
|
||||||
private void executeEtichettaLU(String sscc) throws Exception {
|
private void executeEtichettaLU(String sscc) throws Exception {
|
||||||
var mtbColt = this.mColliMagazzinoRESTConsumer.getBySsccSynchronized(sscc, true, false);
|
var response = this.mColliMagazzinoRESTConsumer.getBySsccSynchronized(sscc, true, false);
|
||||||
|
this.checkAnomaliaUl(response);
|
||||||
|
var mtbColt = response.getMtbColt();
|
||||||
|
|
||||||
boolean codMdepIsValid = SettingsManager.iDB().getAvailableDepos().stream()
|
boolean codMdepIsValid = SettingsManager.iDB().getAvailableDepos().stream()
|
||||||
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
.anyMatch(x -> x.getCodMdep().equalsIgnoreCase(mtbColt.getCodMdep()));
|
||||||
@@ -419,6 +425,14 @@ public class ProdVersamentoMaterialeViewModel {
|
|||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkAnomaliaUl(GetColloInGiacResponseDTO colloInGiac) {
|
||||||
|
if (colloInGiac.getEscludiPickingLavorazione()) {
|
||||||
|
this.sendError(new AnomaliaUlException(colloInGiac));
|
||||||
|
} else {
|
||||||
|
this.sendWarning(colloInGiac.getMessageAnomalia(), () -> {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public MutableLiveData<MtbColt> getMtbColtMutableLiveData() {
|
public MutableLiveData<MtbColt> getMtbColtMutableLiveData() {
|
||||||
return mtbColtMutableLiveData;
|
return mtbColtMutableLiveData;
|
||||||
|
|||||||
Reference in New Issue
Block a user