|
|
|
@@ -30,7 +30,6 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
|
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
|
|
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
|
|
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOperationsListener;
|
|
|
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOperationsListener;
|
|
|
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
|
|
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
|
|
|
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
|
|
|
|
|
|
|
import it.integry.integrywmsnative.core.model.JtbComt;
|
|
|
|
import it.integry.integrywmsnative.core.model.JtbComt;
|
|
|
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
|
|
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
|
|
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
|
|
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
|
|
|
@@ -40,6 +39,7 @@ import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
|
|
|
import it.integry.integrywmsnative.core.model.VtbDest;
|
|
|
|
import it.integry.integrywmsnative.core.model.VtbDest;
|
|
|
|
import it.integry.integrywmsnative.core.model.dto.InternalCodAnagsDTO;
|
|
|
|
import it.integry.integrywmsnative.core.model.dto.InternalCodAnagsDTO;
|
|
|
|
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
|
|
|
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
|
|
|
|
|
|
|
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
|
|
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
|
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
|
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
|
|
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
|
|
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
|
|
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
|
|
|
@@ -56,7 +56,10 @@ import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.Magazzin
|
|
|
|
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;
|
|
|
|
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
|
|
|
|
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
|
|
|
|
|
|
|
|
import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO;
|
|
|
|
import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
|
|
|
|
import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
|
|
|
|
|
|
|
|
import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO;
|
|
|
|
|
|
|
|
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
|
|
|
|
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;
|
|
|
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
|
|
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
|
|
|
@@ -619,42 +622,25 @@ public class PickingLiberoViewModel {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) throws Exception {
|
|
|
|
public void saveNewRow(PickingObjectDTO pickingObjectDTO, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) throws Exception {
|
|
|
|
final MtbColr mtbColr = new MtbColr()
|
|
|
|
|
|
|
|
.setCodMart(pickingObjectDTO.getMtbAart().getCodMart())
|
|
|
|
|
|
|
|
.setPartitaMag(partitaMag)
|
|
|
|
|
|
|
|
.setDataScadPartita(dataScad)
|
|
|
|
|
|
|
|
.setQtaCol(qtaTot)
|
|
|
|
|
|
|
|
.setQtaCnf(qtaCnf)
|
|
|
|
|
|
|
|
.setNumCnf(numCnf)
|
|
|
|
|
|
|
|
.setDescrizione(pickingObjectDTO.getMtbAart().getDescrizioneEstesa())
|
|
|
|
|
|
|
|
.setDatetimeRow(UtilityDate.getDateInstance())
|
|
|
|
|
|
|
|
.setCodJcom(this.mDefaultCommessa.getCodJcom());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
|
|
|
|
|
|
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
|
|
|
|
|
|
|
cloneMtbColt.getMtbColr().add((MtbColr) mtbColr.clone());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
|
|
|
|
if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
|
|
|
|
this.sendOnLoadingEnded();
|
|
|
|
this.sendOnLoadingEnded();
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var value = mColliMagazzinoRESTConsumer.saveColloSynchronized(cloneMtbColt);
|
|
|
|
var insertUdsRowRequest = new InsertUDSRowRequestDTO()
|
|
|
|
|
|
|
|
.setCodMart(pickingObjectDTO.getMtbAart().getCodMart())
|
|
|
|
|
|
|
|
.setPartitaMag(partitaMag)
|
|
|
|
|
|
|
|
.setDataScad(dataScad)
|
|
|
|
|
|
|
|
.setQtaTot(qtaTot)
|
|
|
|
|
|
|
|
.setQtaCnf(qtaCnf)
|
|
|
|
|
|
|
|
.setNumCnf(numCnf)
|
|
|
|
|
|
|
|
.setCodJcom(this.mDefaultCommessa.getCodJcom())
|
|
|
|
|
|
|
|
.setTargetMtbColt(mCurrentMtbColt.clone(false));
|
|
|
|
|
|
|
|
|
|
|
|
mtbColr
|
|
|
|
MtbColr savedMtbColr = mColliScaricoRESTConsumer.insertUDSRowSynchronized(insertUdsRowRequest);
|
|
|
|
.setDataCollo(value.getDataColloS())
|
|
|
|
savedMtbColr.setMtbAart(pickingObjectDTO.getMtbAart());
|
|
|
|
.setNumCollo(value.getNumCollo())
|
|
|
|
|
|
|
|
.setGestione(value.getGestione())
|
|
|
|
|
|
|
|
.setSerCollo(value.getSerCollo())
|
|
|
|
|
|
|
|
.setRiga(value.getMtbColr().get(value.getMtbColr().size() - 1).getRiga())
|
|
|
|
|
|
|
|
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
|
|
|
|
|
|
|
|
.setMtbAart(pickingObjectDTO.getMtbAart());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
|
|
|
mCurrentMtbColt.getMtbColr().add(savedMtbColr);
|
|
|
|
|
|
|
|
|
|
|
|
this.sendOnRowSaved();
|
|
|
|
this.sendOnRowSaved();
|
|
|
|
|
|
|
|
|
|
|
|
@@ -662,6 +648,41 @@ public class PickingLiberoViewModel {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void executeDepositChangeIfNeeded(MtbColt refMtbColt) throws Exception {
|
|
|
|
|
|
|
|
//Considero solo la prima UDC scansionata
|
|
|
|
|
|
|
|
boolean shouldChangeCodMdep = refMtbColt != null && !refMtbColt.getCodMdep().equalsIgnoreCase(mCurrentMtbColt.getCodMdep()) &&
|
|
|
|
|
|
|
|
mCurrentMtbColt.getMtbColr().isEmpty();
|
|
|
|
|
|
|
|
String newCodMdep = shouldChangeCodMdep ? refMtbColt.getCodMdep() : null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (shouldChangeCodMdep) {
|
|
|
|
|
|
|
|
mColliMagazzinoRESTConsumer.spostaUlSynchronized(mCurrentMtbColt, newCodMdep, null, false);
|
|
|
|
|
|
|
|
mCurrentMtbColt.setCodMdep(newCodMdep);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void executeTipoUlChangeIfNeeded(MtbColt refMtbColt) throws Exception {
|
|
|
|
|
|
|
|
boolean shouldChangeCodTcol = refMtbColt != null && refMtbColt.getCodTcol() != null &&
|
|
|
|
|
|
|
|
!refMtbColt.getCodTcol().equalsIgnoreCase(mCurrentMtbColt.getCodTcol()) &&
|
|
|
|
|
|
|
|
mCurrentMtbColt.getMtbColr().isEmpty();
|
|
|
|
|
|
|
|
String newTipoUL = shouldChangeCodTcol ? refMtbColt.getCodTcol() : null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ObservableMtbTcol newMtbTcol = SettingsManager.iDB().getInternalImballi().stream()
|
|
|
|
|
|
|
|
.filter(x -> x.getCodTcol().equalsIgnoreCase(newTipoUL))
|
|
|
|
|
|
|
|
.findFirst()
|
|
|
|
|
|
|
|
.orElse(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!UtilityString.isNullOrEmpty(newTipoUL) && newMtbTcol == null) {
|
|
|
|
|
|
|
|
throw new Exception("Impossibile riconoscere il tipo UL " + newTipoUL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (shouldChangeCodTcol && newMtbTcol != null) {
|
|
|
|
|
|
|
|
mColliMagazzinoRESTConsumer.updateTipoULSynchronized(mCurrentMtbColt, newMtbTcol.getCodTcol());
|
|
|
|
|
|
|
|
mCurrentMtbColt.setCodTcol(newMtbTcol.getCodTcol());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private MtbColt loadRifULFromMtbColr(MtbColr mtbColr) throws Exception {
|
|
|
|
private MtbColt loadRifULFromMtbColr(MtbColr mtbColr) throws Exception {
|
|
|
|
//Se ho dei riferimenti ad una UL devo leggere la QTA ancora disponibile sulla Ul
|
|
|
|
//Se ho dei riferimenti ad una UL devo leggere la QTA ancora disponibile sulla Ul
|
|
|
|
if (mtbColr != null &&
|
|
|
|
if (mtbColr != null &&
|
|
|
|
@@ -765,36 +786,25 @@ public class PickingLiberoViewModel {
|
|
|
|
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) throws Exception {
|
|
|
|
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) throws Exception {
|
|
|
|
this.sendOnLoadingStarted();
|
|
|
|
this.sendOnLoadingStarted();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MtbColr mtbColrClone = (MtbColr) mtbColrToUpdate.clone();
|
|
|
|
|
|
|
|
mtbColrClone.setMtbAart(null)
|
|
|
|
|
|
|
|
.setMtbPartitaMag(null);
|
|
|
|
|
|
|
|
|
|
|
|
MtbColt mtbColt = new MtbColt()
|
|
|
|
var editUDSRowRequest = new EditUDSRowRequestDTO()
|
|
|
|
.setNumCollo(mtbColrToUpdate.getNumCollo())
|
|
|
|
.setSourceMtbColr(mtbColrClone)
|
|
|
|
.setDataCollo(mtbColrToUpdate.getDataColloS())
|
|
|
|
.setNewNumCnf(numCnf)
|
|
|
|
.setSerCollo(mtbColrToUpdate.getSerCollo())
|
|
|
|
.setNewQtaCnf(qtaCnf)
|
|
|
|
.setGestione(mtbColrToUpdate.getGestione())
|
|
|
|
.setNewQtaTot(qtaTot);
|
|
|
|
.setMtbColr(new ObservableArrayList<>());
|
|
|
|
|
|
|
|
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
|
|
|
|
mColliScaricoRESTConsumer.editUDSRowSynchronized(editUDSRowRequest);
|
|
|
|
mtbColr.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
|
|
|
|
|
|
|
mtbColr
|
|
|
|
|
|
|
|
.setNumCnf(numCnf)
|
|
|
|
|
|
|
|
.setQtaCnf(qtaCnf)
|
|
|
|
|
|
|
|
.setQtaCol(qtaTot)
|
|
|
|
|
|
|
|
.setPartitaMag(partitaMag)
|
|
|
|
|
|
|
|
.setDataScadPartita(dataScad)
|
|
|
|
|
|
|
|
.setDatetimeRow(UtilityDate.getDateInstance());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mtbColt.getMtbColr().add(mtbColr);
|
|
|
|
mtbColrToUpdate.setNumCnf(numCnf)
|
|
|
|
|
|
|
|
|
|
|
|
var value = this.mColliMagazzinoRESTConsumer.saveColloSynchronized(mtbColt);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mtbColr.setNumCnf(numCnf)
|
|
|
|
|
|
|
|
.setQtaCnf(qtaCnf)
|
|
|
|
.setQtaCnf(qtaCnf)
|
|
|
|
.setQtaCol(qtaTot);
|
|
|
|
.setQtaCol(qtaTot);
|
|
|
|
|
|
|
|
|
|
|
|
handler.post(() -> {
|
|
|
|
handler.post(() -> {
|
|
|
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
|
|
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
|
|
|
this.mCurrentMtbColt.getMtbColr().add(mtbColr);
|
|
|
|
this.mCurrentMtbColt.getMtbColr().add(mtbColrToUpdate);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
this.sendOnRowSaved();
|
|
|
|
this.sendOnRowSaved();
|
|
|
|
@@ -807,21 +817,10 @@ public class PickingLiberoViewModel {
|
|
|
|
if (shouldDelete) {
|
|
|
|
if (shouldDelete) {
|
|
|
|
this.sendOnLoadingStarted();
|
|
|
|
this.sendOnLoadingStarted();
|
|
|
|
|
|
|
|
|
|
|
|
MtbColt mtbColt = new MtbColt()
|
|
|
|
var deleteUdsRowRequest = new DeleteUDSRowRequestDTO()
|
|
|
|
.setNumCollo(mtbColrToDelete.getNumCollo())
|
|
|
|
.setMtbColrToDelete(mtbColrToDelete);
|
|
|
|
.setDataCollo(mtbColrToDelete.getDataColloS())
|
|
|
|
|
|
|
|
.setSerCollo(mtbColrToDelete.getSerCollo())
|
|
|
|
|
|
|
|
.setGestione(mtbColrToDelete.getGestione())
|
|
|
|
|
|
|
|
.setMtbColr(new ObservableArrayList<>());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
|
|
|
mColliScaricoRESTConsumer.deleteUDSRowSynchronized(deleteUdsRowRequest);
|
|
|
|
|
|
|
|
|
|
|
|
MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mtbColr.setOperation(CommonModelConsts.OPERATION.DELETE);
|
|
|
|
|
|
|
|
mtbColt.getMtbColr().add(mtbColr);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var value = this.mColliMagazzinoRESTConsumer.saveColloSynchronized(mtbColt);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
handler.post(() -> {
|
|
|
|
handler.post(() -> {
|
|
|
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
|
|
|
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
|
|
|
|
|