Vario ed eliminazione delle personalizzazioni non più necessarie

This commit is contained in:
2021-09-15 18:56:52 +02:00
parent eb99c9d8cf
commit 6f15169157
73 changed files with 205 additions and 1753 deletions

View File

@@ -78,7 +78,7 @@ android {
abortOnError false
}
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti", ":dynamic_ime", ":dynamic_frudis", ":dynamic_saporiveri_pv", ":dynamic_saporiveri", ':dynamic_gramm', ':dynamic_agricoper']
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti"]
}

View File

@@ -69,8 +69,8 @@ public class MainApplicationModule {
@Provides
@Singleton
OrdiniRESTConsumer provideOrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
return new OrdiniRESTConsumer(systemRESTConsumer);
OrdiniRESTConsumer provideOrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer, EntityRESTConsumer entityRESTConsumer) {
return new OrdiniRESTConsumer(systemRESTConsumer, entityRESTConsumer);
}
@Provides

View File

@@ -53,6 +53,8 @@ public class MtbColr extends EntityBase {
private MtbAart mtbAart;
private MtbPartitaMag mtbPartitaMag;
private transient int id;
private transient MtbColr refMtbColr;
public MtbColr() {
@@ -516,6 +518,15 @@ public class MtbColr extends EntityBase {
return this;
}
public int getId() {
return id;
}
public MtbColr setId(int id) {
this.id = id;
return this;
}
public MtbColr getRefMtbColr() {
return refMtbColr;
}

View File

@@ -5,7 +5,7 @@ import java.util.Date;
import it.integry.integrywmsnative.core.utility.UtilityDate;
public class MtbPartitaMag {
public class MtbPartitaMag extends EntityBase{
private String codMart;
private String partitaMag;
@@ -30,6 +30,10 @@ public class MtbPartitaMag {
private String partitaMagSec;
private BigDecimal qtaAttesa;
public MtbPartitaMag() {
this.type = "mtb_partita_mag";
}
public String getCodMart() {
return codMart;

View File

@@ -96,17 +96,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
}
}
this.mEntityRESTConsumer.processEntityList(mtbColtsToSave, new ISimpleOperationCallback<List<MtbColt>>() {
@Override
public void onSuccess(List<MtbColt> value) {
if (onComplete != null) onComplete.run(value);
}
@Override
public void onFailed(Exception ex) {
if (onFailed != null) onFailed.run(ex);
}
}, true, MtbColt.class);
this.mEntityRESTConsumer.processEntityList(mtbColtsToSave, true, MtbColt.class, onComplete, onFailed);
}

View File

@@ -66,11 +66,11 @@ public class EntityRESTConsumer extends _BaseRESTConsumer {
}
public <T extends EntityBase> void processEntityList(List<T> entitiesToSave, final ISimpleOperationCallback<List<T>> callback, boolean singleTransaction, Class<T> type) {
public <T extends EntityBase> void processEntityList(List<T> entitiesToSave, boolean singleTransaction, Class<T> type, final RunnableArgs<List<T>> onComplete, final RunnableArgs<Exception> onFailed) {
RunnableArgs<Exception> tmpFailed = ex -> {
// UtilityExceptions.defaultException(null, ex);
if (callback != null) callback.onFailed(ex);
if (onFailed != null) onFailed.run(ex);
};
EntityRESTConsumerService service = RESTBuilder.getService(EntityRESTConsumerService.class);
@@ -99,7 +99,7 @@ public class EntityRESTConsumer extends _BaseRESTConsumer {
}
}
callback.onSuccess(responseList);
onComplete.run(responseList);
} else {
Log.e("EntityRESTConsumer", response.message());
tmpFailed.run(new Exception(response.message()));

View File

@@ -1,5 +1,6 @@
package it.integry.integrywmsnative.core.rest.consumers;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken;
import com.orhanobut.logger.Logger;
@@ -8,22 +9,27 @@ import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
import it.integry.integrywmsnative.core.model.OrdineInevasoDTO;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
import it.integry.integrywmsnative.core.utility.UtilityQuery;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@@ -32,9 +38,11 @@ import retrofit2.Response;
public class OrdiniRESTConsumer extends _BaseRESTConsumer {
private final SystemRESTConsumer mSystemRESTConsumer;
private final EntityRESTConsumer mEntityRESTConsumer;
public OrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
public OrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer, EntityRESTConsumer entityRESTConsumer) {
this.mSystemRESTConsumer = systemRESTConsumer;
this.mEntityRESTConsumer = entityRESTConsumer;
}
public void getSuggestedPickingList(String codMdep, List<SitArtOrdDTO> sitArtOrdList, RunnableArgs<List<PickingObjectDTO>> onComplete, RunnableArgs<Exception> onFailed) {
@@ -43,10 +51,59 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
service
.getSuggestedPickingList(codMdep, sitArtOrdList)
.enqueue(new Callback<ServiceRESTResponse<List<PickingObjectDTO>>>() {
.enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Response<ServiceRESTResponse<List<PickingObjectDTO>>> response) {
analyzeAnswer(response, "getSuggestedPickingList", onComplete, onFailed);
analyzeAnswer(response, "getSuggestedPickingList", pickingObjects -> {
List<MtbPartitaMag> batchLotsToSearch = new ArrayList<>();
for (PickingObjectDTO pickingObjectDTO : pickingObjects) {
for (MtbColt mtbColt : pickingObjectDTO.getMtbColts()) {
Stream.of(mtbColt.getMtbColr())
.filter(x -> !UtilityString.isNullOrEmpty(x.getPartitaMag()))
.forEach(x -> {
if (!Stream.of(batchLotsToSearch).anyMatch(batchLotToSearch -> batchLotToSearch.getCodMart().equalsIgnoreCase(x.getCodMart()) && batchLotToSearch.getPartitaMag().equalsIgnoreCase(x.getPartitaMag()))) {
MtbPartitaMag mtbPartitaMag = new MtbPartitaMag()
.setCodMart(x.getCodMart())
.setPartitaMag(x.getPartitaMag());
mtbPartitaMag.setOperation(CommonModelConsts.OPERATION.SELECT_OBJECT);
mtbPartitaMag.setOnlyPkMaster(false);
batchLotsToSearch.add(mtbPartitaMag);
}
});
}
}
Random rand = new Random();
retrievePartiteMag(batchLotsToSearch, partite -> {
for (PickingObjectDTO pickingObjectDTO : pickingObjects) {
for (MtbColt mtbColt : pickingObjectDTO.getMtbColts()) {
for (MtbColr mtbColr : mtbColt.getMtbColr()) {
mtbColr.setId(rand.nextInt());
Optional<MtbPartitaMag> optionalMtbPartitaMag = Stream.of(partite)
.filter(x -> x.getCodMart().equalsIgnoreCase(mtbColr.getCodMart())
&& (!UtilityString.isNullOrEmpty(x.getPartitaMag()) && x.getPartitaMag().equalsIgnoreCase(mtbColr.getPartitaMag())))
.findFirst();
if (optionalMtbPartitaMag.isPresent()) mtbColr.setMtbPartitaMag(optionalMtbPartitaMag.get());
}
}
}
onComplete.run(pickingObjects);
}, onFailed);
}, onFailed);
}
@Override
@@ -58,6 +115,11 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
}
private void retrievePartiteMag(List<MtbPartitaMag> partitaMag, RunnableArgs<List<MtbPartitaMag>> onComplete, RunnableArgs<Exception> onFailed) {
this.mEntityRESTConsumer.processEntityList(partitaMag, true, MtbPartitaMag.class, onComplete, onFailed);
}
public void getOrdiniInevasi(String codMdep, GestioneEnum gestione, RunnableArgs<List<OrdineUscitaInevasoDTO>> onComplete, RunnableArgs<Exception> onFailed) {
OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class);
@@ -67,18 +129,18 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
@Override
public void onResponse(Call<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> response) {
analyzeAnswer(response, "getOrdiniInevasi", responseDtoList -> {
if(responseDtoList == null) responseDtoList = new ArrayList<>();
if (responseDtoList == null) responseDtoList = new ArrayList<>();
onComplete.run(responseDtoList);
}, ex -> {
Logger.e(ex, "Errore durante il caricamento degli ordini di lavorazione");
if(onFailed != null) onFailed.run(ex);
if (onFailed != null) onFailed.run(ex);
});
}
@Override
public void onFailure(Call<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> call, Throwable t) {
Logger.e(t, "Errore durante il caricamento degli ordini di lavorazione");
if(onFailed != null) onFailed.run(new Exception(t));
if (onFailed != null) onFailed.run(new Exception(t));
}
});
}
@@ -113,7 +175,7 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
public void getBancaliGiaRegistrati(List<OrdineInevasoDTO> orders, GestioneEnum gestione, int segno, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
String whereCondGestione = "";
if(gestione != null) {
if (gestione != null) {
whereCondGestione = "mtb_colt.gestione = " + UtilityDB.valueToString(gestione.getText()) + " ";
} else {
whereCondGestione = "(mtb_colt.gestione = 'V' OR mtb_colt.gestione = 'L') ";
@@ -142,12 +204,13 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
baseSql += "(" + UtilityQuery.concatFieldListInWhereCond(whereCondMapList) + ")";
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {
}.getType();
this.mSystemRESTConsumer.<List<MtbColt>>processSql(baseSql, typeOfObjectsList, value -> {
if(onComplete != null) onComplete.run(value);
}, ex -> {
if(onFailed != null) onFailed.run(ex);
});
if (onComplete != null) onComplete.run(value);
}, ex -> {
if (onFailed != null) onFailed.run(ex);
});
}
}

View File

@@ -568,6 +568,7 @@ public class RettificaGiacenzeViewModel {
this.mAnyEditDone = true;
this.sendOnRowSaved();
this.sendOnLoadingEnded();
},
this::sendError
);

View File

@@ -263,12 +263,12 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
this.mBindings.spedizionePickingList.setAdapter(spedizioneListAdapter);
this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this));
spedizioneListAdapter.setOnItemClicked((clickedItem, refMtbColt) -> {
spedizioneListAdapter.setOnItemClicked((clickedItem, refMtbColt, refMtbColr) -> {
if (!noLUPresent.get() &&
((SettingsManager.iDB().isFlagSpedizioneEnableManualPick() &&
clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale()) ||
clickedItem.getTempPickData() != null)) {
this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt,
this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt, refMtbColr,
SettingsManager.iDB().isFlagSpedizioneEnableManualPick() && clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale());
}
});
@@ -363,6 +363,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
cloneModel.setSubDescrizione1(String.format(getString(R.string.batch_lot_text), mtbColrToDispatch.getPartitaMag()));
cloneModel.setBadge2(mtbColrToDispatch.getCodJcom());
}
cloneModel.setSourceMtbColr(mtbColrToDispatch);
cloneModel.setSubDescrizione2(String.format(getString(R.string.lu_number_data_text), mtbColtToPick.getNumCollo(), UtilityDate.formatDate(mtbColtToPick.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
@@ -379,14 +380,14 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
numCnfOrdCounter = numCnfOrdCounter.subtract(numCnfOrdToSubstract);
BigDecimal qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
.filter(y -> y.getRefMtbColr() != null &&
.filter(y -> y.getRefMtbColr() != null &&/*
y.getRefMtbColr().getNumCollo().equals(mtbColrToDispatch.getNumCollo()) &&
y.getRefMtbColr().getDataColloD().equals(mtbColrToDispatch.getDataColloD()) &&
y.getRefMtbColr().getSerCollo().equals(mtbColrToDispatch.getSerCollo()) &&
y.getRefMtbColr().getGestioneEnum().equals(mtbColrToDispatch.getGestioneEnum()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodMart(), mtbColrToDispatch.getCodMart()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodTagl(), mtbColrToDispatch.getCodTagl()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol()))
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol())*/ y.getRefMtbColr().equals(mtbColrToDispatch))
.map(MtbColr::getNumCnf)
.reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -404,13 +405,15 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
BigDecimal qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
.filter(y -> y.getRefMtbColr() != null &&
y.getRefMtbColr().getId() == mtbColrToDispatch.getId()
/*
y.getRefMtbColr().getNumCollo().equals(mtbColrToDispatch.getNumCollo()) &&
y.getRefMtbColr().getDataColloD().equals(mtbColrToDispatch.getDataColloD()) &&
y.getRefMtbColr().getSerCollo().equals(mtbColrToDispatch.getSerCollo()) &&
y.getRefMtbColr().getGestioneEnum().equals(mtbColrToDispatch.getGestioneEnum()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodMart(), mtbColrToDispatch.getCodMart()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodTagl(), mtbColrToDispatch.getCodTagl()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol()))
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol())*/)
.map(MtbColr::getQtaCol)
.reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -528,6 +531,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
cloneModel.setSubDescrizione1(String.format(getString(R.string.batch_lot_text), mtbColrToDispatch.getPartitaMag()));
cloneModel.setBadge2(mtbColrToDispatch.getCodJcom());
}
cloneModel.setSourceMtbColr(mtbColrToDispatch);
cloneModel.setSubDescrizione2(String.format(getString(R.string.lu_number_data_text), mtbColtToPick.getNumCollo(), UtilityDate.formatDate(mtbColtToPick.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
@@ -545,13 +549,14 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
BigDecimal qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
.filter(y -> y.getRefMtbColr() != null &&
y.getRefMtbColr().getId() == mtbColrToDispatch.getId() /*
y.getRefMtbColr().getNumCollo().equals(mtbColrToDispatch.getNumCollo()) &&
y.getRefMtbColr().getDataColloD().equals(mtbColrToDispatch.getDataColloD()) &&
y.getRefMtbColr().getSerCollo().equals(mtbColrToDispatch.getSerCollo()) &&
y.getRefMtbColr().getGestioneEnum().equals(mtbColrToDispatch.getGestioneEnum()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodMart(), mtbColrToDispatch.getCodMart()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodTagl(), mtbColrToDispatch.getCodTagl()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol()))
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol())*/)
.map(MtbColr::getNumCnf)
.reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -567,13 +572,14 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
BigDecimal qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
.filter(y -> y.getRefMtbColr() != null &&
y.getRefMtbColr().getId() == mtbColrToDispatch.getId() /*
y.getRefMtbColr().getNumCollo().equals(mtbColrToDispatch.getNumCollo()) &&
y.getRefMtbColr().getDataColloD().equals(mtbColrToDispatch.getDataColloD()) &&
y.getRefMtbColr().getSerCollo().equals(mtbColrToDispatch.getSerCollo()) &&
y.getRefMtbColr().getGestioneEnum().equals(mtbColrToDispatch.getGestioneEnum()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodMart(), mtbColrToDispatch.getCodMart()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodTagl(), mtbColrToDispatch.getCodTagl()) &&
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol()))
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol())*/)
.map(MtbColr::getQtaCol)
.reduce(BigDecimal.ZERO, BigDecimal::add);

View File

@@ -742,7 +742,7 @@ public class SpedizioneViewModel {
this.sendFilterApplied(null);
this.getPickingList().postValue(pickingList);
} else {
this.dispatchOrdineRow(matchedItem, matchedItem.getRefMtbColt(), false);
this.dispatchOrdineRow(matchedItem, matchedItem.getRefMtbColt(), matchedItem.getRefMtbColt().getMtbColr().get(0), false);
}
} else {
@@ -761,9 +761,11 @@ public class SpedizioneViewModel {
}
public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt, boolean canPartitaMagBeChanged) {
public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt, MtbColr refMtbColr, boolean canPartitaMagBeChanged) {
//TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'è ne una che corrisponde con la partita richiesta
// MtbColr refMtbColr = refMtbColt != null ? refMtbColt.getMtbColr().get(0) : null;
if (pickingObjectDTO.getTempPickData() != null &&
pickingObjectDTO.getTempPickData().getSourceMtbColt() != null &&
@@ -771,30 +773,46 @@ public class SpedizioneViewModel {
List<MtbColr> scannedMtbColrs = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr();
List<MtbPartitaMag> availableBatchLot = Stream.of(scannedMtbColrs)
List<MtbPartitaMag> availableBatchLots = Stream.of(scannedMtbColrs)
.filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) && (
x.getPartitaMag() == null || UtilityString.isNullOrEmpty(x.getMtbPartitaMag().getDataScadS()) || UtilityDate.getDateInstance().before(x.getMtbPartitaMag().getDataScadD())
x.getPartitaMag() == null ||
UtilityString.isNullOrEmpty(x.getMtbPartitaMag().getDataScadS()) ||
UtilityDate.getDateInstance().before(x.getMtbPartitaMag().getDataScadD())
))
.distinctBy(MtbColr::getPartitaMag)
.map(x -> x.getPartitaMag() == null ? new MtbPartitaMag().setCodMart(x.getMtbAart().getCodMart()) : x.getMtbPartitaMag())
.toList();
if(availableBatchLot.size() > 1) {
//Controllo se una delle partite combacia con quella che voglio evadere
if(refMtbColr != null && refMtbColr.getMtbPartitaMag() != null) {
MtbPartitaMag refMtbPartitaMag = refMtbColr.getMtbPartitaMag();
Optional<MtbPartitaMag> matchPartitaMag = Stream.of(availableBatchLots)
.filter(availableBatchLot -> refMtbPartitaMag.getPartitaMag().equalsIgnoreCase(availableBatchLot.getPartitaMag()))
.findFirst();
if(matchPartitaMag.isPresent()) {
availableBatchLots.clear();
availableBatchLots.add(refMtbPartitaMag);
}
}
if(availableBatchLots.size() > 1) {
this.sendOnLoadingStarted();
List<MtbPartitaMag> tmp = new ArrayList<>();
if(Stream.of(availableBatchLot).anyMatch(x -> !UtilityString.isNullOrEmpty(x.getDataScadS()))) {
if(Stream.of(availableBatchLots).anyMatch(x -> !UtilityString.isNullOrEmpty(x.getDataScadS()))) {
tmp.addAll(
Stream.of(availableBatchLot)
Stream.of(availableBatchLots)
.filter(x -> !UtilityString.isNullOrEmpty(x.getDataScadS()) && UtilityDate.getDateInstance().before(x.getDataScadD()))
.sortBy(MtbPartitaMag::getDataScadD)
.toList());
}
if(Stream.of(availableBatchLot).anyMatch(x -> UtilityString.isNullOrEmpty(x.getDataScadS()))) {
if(Stream.of(availableBatchLots).anyMatch(x -> UtilityString.isNullOrEmpty(x.getDataScadS()))) {
tmp.addAll(
Stream.of(availableBatchLot)
Stream.of(availableBatchLots)
.filter(x -> UtilityString.isNullOrEmpty(x.getDataScadS()))
.sortBy(MtbPartitaMag::getPartitaMag)
.toList());
@@ -811,22 +829,22 @@ public class SpedizioneViewModel {
.toList()
.get(0);
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, scannedMtbColr, canPartitaMagBeChanged);
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, refMtbColr, scannedMtbColr, canPartitaMagBeChanged);
}
});
} else {
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, scannedMtbColrs.get(0), canPartitaMagBeChanged);
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, refMtbColr, scannedMtbColrs.get(0), canPartitaMagBeChanged);
}
} else {
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, null, canPartitaMagBeChanged);
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, refMtbColr, null, canPartitaMagBeChanged);
}
}
private void dispatchOrdineRowOnPostBatchLotSelection(final PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt, MtbColr scannedMtbColr, boolean canPartitaMagBeChanged) {
private void dispatchOrdineRowOnPostBatchLotSelection(final PickingObjectDTO pickingObjectDTO, MtbColt refMtbColt, MtbColr refMtbColr, MtbColr scannedMtbColr, boolean canPartitaMagBeChanged) {
BigDecimal totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
BigDecimal qtaCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaCnfOrd();
@@ -864,45 +882,48 @@ public class SpedizioneViewModel {
refMtbColt = pickingObjectDTO.getMtbColts().get(0);
}
MtbColr refMtbColr = null;
// MtbColr refMtbColr = null;
//
// if (scannedMtbColr != null && refMtbColt != null && refMtbColt.getMtbColr().size() > 0) {
// Optional<MtbColr> optionalMtbColr = Stream.of(refMtbColt.getMtbColr())
// .filter(y -> UtilityString.equalsIgnoreCase(y.getCodMart(), scannedMtbColr.getCodMart()) &&
// UtilityString.equalsIgnoreCase(y.getCodTagl(), scannedMtbColr.getCodTagl()) &&
// UtilityString.equalsIgnoreCase(y.getCodCol(), scannedMtbColr.getCodCol()) &&
// (!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(y.getPartitaMag(), scannedMtbColr.getPartitaMag()) || UtilityString.isNullOrEmpty(scannedMtbColr.getPartitaMag())))
// .findFirst();
//
// if (optionalMtbColr.isPresent()) refMtbColr = optionalMtbColr.get();
// }
if (scannedMtbColr != null && refMtbColt != null && refMtbColt.getMtbColr().size() > 0) {
Optional<MtbColr> optionalMtbColr = Stream.of(refMtbColt.getMtbColr())
.filter(y -> UtilityString.equalsIgnoreCase(y.getCodMart(), scannedMtbColr.getCodMart()) &&
UtilityString.equalsIgnoreCase(y.getCodTagl(), scannedMtbColr.getCodTagl()) &&
UtilityString.equalsIgnoreCase(y.getCodCol(), scannedMtbColr.getCodCol()) &&
(!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(y.getPartitaMag(), scannedMtbColr.getPartitaMag()) || UtilityString.isNullOrEmpty(scannedMtbColr.getPartitaMag())))
.findFirst();
if (optionalMtbColr.isPresent()) refMtbColr = optionalMtbColr.get();
}
MtbColr mtbColrToUse = scannedMtbColr != null ? scannedMtbColr : refMtbColr;
if (mtbColrToUse != null) {
if(refMtbColr != null) {
if (pickingObjectDTO.getMtbAart().isFlagQtaCnfFissaBoolean()) {
if (UtilityBigDecimal.equalsOrLowerThan(mtbColrToUse.getQtaCol(), qtaDaEvadere)) {
numCnfDaPrelevare = mtbColrToUse.getNumCnf();
qtaColDaPrelevare = mtbColrToUse.getQtaCol();
if (UtilityBigDecimal.equalsOrLowerThan(refMtbColr.getQtaCol(), qtaDaEvadere)) {
numCnfDaPrelevare = refMtbColr.getNumCnf();
qtaColDaPrelevare = refMtbColr.getQtaCol();
} else {
numCnfDaPrelevare = numCnfDaEvadere;
qtaColDaPrelevare = qtaDaEvadere;
}
qtaCnfDaPrelevare = mtbColrToUse.getQtaCnf();
qtaCnfDaPrelevare = refMtbColr.getQtaCnf();
} else {
if (UtilityBigDecimal.equalsOrLowerThan(mtbColrToUse.getNumCnf(), numCnfDaEvadere)) {
numCnfDaPrelevare = mtbColrToUse.getNumCnf();
qtaCnfDaPrelevare = mtbColrToUse.getQtaCnf();
qtaColDaPrelevare = mtbColrToUse.getQtaCol();
if (UtilityBigDecimal.equalsOrLowerThan(refMtbColr.getNumCnf(), numCnfDaEvadere)) {
numCnfDaPrelevare = refMtbColr.getNumCnf();
qtaCnfDaPrelevare = refMtbColr.getQtaCnf();
qtaColDaPrelevare = refMtbColr.getQtaCol();
} else {
numCnfDaPrelevare = numCnfDaEvadere;
qtaColDaPrelevare = qtaDaEvadere;
qtaCnfDaPrelevare = qtaCnfDaEvadere;
}
}
}
MtbColr mtbColrToUse = scannedMtbColr != null ? scannedMtbColr : refMtbColr;
if (mtbColrToUse != null) {
totalQtaAvailable = mtbColrToUse.getQtaCol();
totalNumCnfAvailable = mtbColrToUse.getNumCnf();
qtaCnfAvailable = mtbColrToUse.getQtaCnf();
@@ -1344,7 +1365,7 @@ public class SpedizioneViewModel {
.setDatetimeRow(UtilityDate.getDateInstance());
//TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'è ne una che corrisponde con la partita richiesta
MtbColr mtbColrToDispatch = pickingObjectDTO.getTempPickData() != null &&
final MtbColr mtbColrToDispatch = pickingObjectDTO.getTempPickData() != null &&
pickingObjectDTO.getTempPickData().getSourceMtbColt() != null &&
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr() != null &&
pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().size() > 0 ?
@@ -1400,7 +1421,6 @@ public class SpedizioneViewModel {
shouldPrint = false;
}
if (UtilityBigDecimal.equalsTo(numCnf, BigDecimal.ZERO) && UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO)) {
resetMatchedRows();
this.sendOnLoadingEnded();
@@ -1430,6 +1450,15 @@ public class SpedizioneViewModel {
.setCodCol(mtbColr.getCodCol());
if (refMtbColt != null) {
MtbColr originalRefMtbColr = refMtbColt.getMtbColr() != null &&
refMtbColt.getMtbColr().size() > 0 ?
refMtbColt.getMtbColr().get(0) : null;
if(originalRefMtbColr != null) {
refMtbColr.setId(originalRefMtbColr.getId());
}
refMtbColr
.setNumCollo(refMtbColt.getNumCollo())
.setDataCollo(refMtbColt.getDataColloS())
@@ -1557,10 +1586,8 @@ public class SpedizioneViewModel {
public void closeLU(boolean shouldPrint) {
if (mCurrentMtbColt == null) return;
this.sendOnLoadingStarted();
mColliMagazzinoRESTConsumer.canLUBeDeleted(mCurrentMtbColt, canBeDeleted -> {
if (canBeDeleted) {
@@ -1641,12 +1668,8 @@ public class SpedizioneViewModel {
}
});
}
}
}, this::sendError);
}
private void distribuisciLU(RunnableArgs<List<MtbColt>> onComplete) {

View File

@@ -24,7 +24,8 @@ import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
@@ -41,7 +42,7 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<Spedizio
private final FragmentManager mFragmentManager;
private final List<SpedizioneListModel> mDataset = new ArrayList<>();
private RunnableArgss<PickingObjectDTO, MtbColt> mOnItemClicked;
private RunnableArgsss<PickingObjectDTO, MtbColt, MtbColr> mOnItemClicked;
static class SubheaderHolder extends RecyclerView.ViewHolder {
@@ -81,7 +82,7 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<Spedizio
});
}
public void setOnItemClicked(RunnableArgss<PickingObjectDTO, MtbColt> onItemClicked) {
public void setOnItemClicked(RunnableArgsss<PickingObjectDTO, MtbColt, MtbColr> onItemClicked) {
this.mOnItemClicked = onItemClicked;
}
@@ -159,7 +160,7 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<Spedizio
holder.mBinding.getRoot().setOnClickListener(v -> {
if (this.mOnItemClicked != null)
this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel(), pickingObjectDTO.getSourceMtbColt());
this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel(), pickingObjectDTO.getSourceMtbColt(), pickingObjectDTO.getSourceMtbColr());
});
}

View File

@@ -4,6 +4,7 @@ import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
@@ -26,6 +27,7 @@ public class SpedizioneListModel implements Cloneable {
private PickingObjectDTO mOriginalModel;
private MtbColt mSourceMtbColt;
private MtbColr mSourceMtbColr;
@NotNull
@Override
@@ -153,4 +155,13 @@ public class SpedizioneListModel implements Cloneable {
this.mSourceMtbColt = sourceMtbColt;
return this;
}
public MtbColr getSourceMtbColr() {
return mSourceMtbColr;
}
public SpedizioneListModel setSourceMtbColr(MtbColr sourceMtbColr) {
this.mSourceMtbColr = sourceMtbColr;
return this;
}
}

View File

@@ -1,6 +1,7 @@
package it.integry.integrywmsnative.view.dialogs.choose_batch_lot;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
@@ -32,14 +33,12 @@ public class DialogChooseBatchLotView extends BaseDialogFragment {
@Inject
DialogChooseBatchLotViewModel mViewModel;
private List<MtbPartitaMag> mAvailableBatchLot;
private RunnableArgs<MtbPartitaMag> mOnItemSelected;
private final List<MtbPartitaMag> mAvailableBatchLot;
private final RunnableArgs<MtbPartitaMag> mOnItemSelected;
private Context mContext;
private DialogChooseBatchLotBinding mBindings;
private DialogChooseBatchLotAdapter mAdapter;
private MtbPartitaMag mSelectedItem;
public static DialogChooseBatchLotView newInstance(List<MtbPartitaMag> availableBatchLot, RunnableArgs<MtbPartitaMag> onItemSelected) {
@@ -82,8 +81,8 @@ public class DialogChooseBatchLotView extends BaseDialogFragment {
}
@Override
public void dismiss() {
super.dismiss();
public void onDismiss(@NonNull DialogInterface dialog) {
super.onDismiss(dialog);
if(mOnItemSelected != null) {
this.mOnItemSelected.run(mSelectedItem);
@@ -99,7 +98,7 @@ public class DialogChooseBatchLotView extends BaseDialogFragment {
itemDecorator.setDrawable(ContextCompat.getDrawable(mContext, R.drawable.divider));
mBindings.mainList.addItemDecoration(itemDecorator);
mAdapter = new DialogChooseBatchLotAdapter(mAvailableBatchLot, onItemClicked);
DialogChooseBatchLotAdapter mAdapter = new DialogChooseBatchLotAdapter(mAvailableBatchLot, onItemClicked);
mBindings.mainList.setAdapter(mAdapter);
}