Nel "riposizionamento da produzione" aggiunte le informazioni per "in arrivo" e "in magazzino"
This commit is contained in:
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.model;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||
@@ -41,6 +42,7 @@ public class MvwSitArtUdcDetInventario {
|
||||
private String codJfas;
|
||||
private MtbAart mtbAart;
|
||||
private Integer numOrd;
|
||||
private Date dataOrd;
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
@@ -317,4 +319,13 @@ public class MvwSitArtUdcDetInventario {
|
||||
.setPesoLordoKg(getPesoLordoKg())
|
||||
.setUntMis(getUntMis());
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public MvwSitArtUdcDetInventario setDataOrd(Date dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||
import it.integry.integrywmsnative.core.services.inventario.InventarioService;
|
||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO;
|
||||
|
||||
public class ArticoliInGiacenzaViewModel {
|
||||
private final InventarioService mInventarioService;
|
||||
|
||||
@@ -32,7 +32,6 @@ import it.integry.integrywmsnative.core.expansion.OnGeneralChangedCallback;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.interfaces.ISearchableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
@@ -212,7 +211,7 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements
|
||||
|
||||
}
|
||||
|
||||
public void onInfoClick(List<MvwSitArtUdcDetInventario> item) {
|
||||
public void onInfoClick(ArtsInGiacenzaDTO item) {
|
||||
try {
|
||||
DialogInfoGiacenzaView.newInstance(item).show(getChildFragmentManager(), DialogInfoGiacenzaView.class.getName());
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.annimon.stream.Optional;
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
@@ -13,8 +14,6 @@ import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
||||
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
|
||||
@@ -32,6 +31,7 @@ import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO;
|
||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.StatoArtInventarioDTO;
|
||||
|
||||
public class ProdRiposizionamentoDaProdViewModel {
|
||||
private final SoundAlertService mSoundAlertService;
|
||||
@@ -41,6 +41,7 @@ public class ProdRiposizionamentoDaProdViewModel {
|
||||
private final MutableLiveData<List<ArtsInGiacenzaDTO>> itemsInventario = new MutableLiveData<>();
|
||||
private final MutableLiveData<MtbColt> mtbColtMutableLiveData = new MutableLiveData<>();
|
||||
private final MutableLiveData<List<MvwSitArtUdcDetInventario>> mMvwSitArtUdcDetInventarioLiveData = new MutableLiveData<>();
|
||||
private final MutableLiveData<List<StatoArtInventarioDTO>> mStatoArticoli = new MutableLiveData<>();
|
||||
private Listener mListener;
|
||||
|
||||
public ProdRiposizionamentoDaProdViewModel(GiacenzaRESTConsumer giacenzaRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, SoundAlertService soundAlertService) {
|
||||
@@ -100,6 +101,12 @@ public class ProdRiposizionamentoDaProdViewModel {
|
||||
|
||||
mMvwSitArtUdcDetInventarioLiveData.setValue(mvwSitArtUdcDetInventario);
|
||||
|
||||
List<StatoArtInventarioDTO> statoArticolo = Stream.of(Objects.requireNonNull(itemsInventario.getValue()))
|
||||
.flatMap(x -> Stream.of(x.getStatoArtInventario()))
|
||||
.toList();
|
||||
|
||||
mStatoArticoli.setValue(statoArticolo);
|
||||
|
||||
boolean isPresent = Stream.of(mvwSitArtUdcDetInventario)
|
||||
.anyMatch(x ->
|
||||
x.getGestione().equals(mtbColt.getGestione()) &&
|
||||
@@ -161,6 +168,18 @@ public class ProdRiposizionamentoDaProdViewModel {
|
||||
.map(MvwSitArtUdcDetInventario::getNumCnf)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
List<StatoArtInventarioDTO> statoArticoli = mStatoArticoli.getValue();
|
||||
|
||||
if (statoArticoli == null)
|
||||
statoArticoli = new ArrayList<>();
|
||||
|
||||
StatoArtInventarioDTO statoArticolo = Stream.of(statoArticoli)
|
||||
.filter(x -> x.getCodProd().equalsIgnoreCase(dtoList.get(0).getCodMart()) &&
|
||||
Objects.equals(x.getNumOrd(), dtoList.get(0).getNumOrd()) &&
|
||||
Objects.equals(x.getDataOrd(), dtoList.get(0).getDataOrd())
|
||||
)
|
||||
.findFirstOrElse(null);
|
||||
|
||||
return new ArtsInGiacenzaDTO()
|
||||
.setCodMart(dtoList.get(0).getCodMart())
|
||||
.setPartitaMag(dtoList.get(0).getPartitaMag())
|
||||
@@ -169,6 +188,7 @@ public class ProdRiposizionamentoDaProdViewModel {
|
||||
.setNumOrd(dtoList.get(0).getNumOrd())
|
||||
.setNumCnf(totalNumCnf)
|
||||
.setCount(dtoList.size())
|
||||
.setStatoArtInventario(statoArticolo)
|
||||
.setMvwSitArtUdcDetInventarioDTO(dtoList);
|
||||
})
|
||||
.sorted(Comparator.comparing(ArtsInGiacenzaDTO::getPosizione))
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -13,6 +14,7 @@ import com.annimon.stream.Stream;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -21,8 +23,10 @@ import it.integry.integrywmsnative.BR;
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||
import it.integry.integrywmsnative.databinding.DialogInfoGiacenzaBinding;
|
||||
import it.integry.integrywmsnative.databinding.DialogInfoGiacenzaSituazioneArticoloBinding;
|
||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO;
|
||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.StatoArtInventarioDTO;
|
||||
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem;
|
||||
|
||||
public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
||||
@@ -31,13 +35,13 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
||||
|
||||
private DialogInfoGiacenzaBinding mBindings;
|
||||
private Context mContext;
|
||||
private List<MvwSitArtUdcDetInventario> item;
|
||||
private ArtsInGiacenzaDTO item;
|
||||
|
||||
public static DialogInfoGiacenzaView newInstance(List<MvwSitArtUdcDetInventario> item) {
|
||||
public static DialogInfoGiacenzaView newInstance(ArtsInGiacenzaDTO item) {
|
||||
return new DialogInfoGiacenzaView(item);
|
||||
}
|
||||
|
||||
public DialogInfoGiacenzaView(List<MvwSitArtUdcDetInventario> item) {
|
||||
public DialogInfoGiacenzaView(ArtsInGiacenzaDTO item) {
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@@ -78,17 +82,47 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
||||
this.onLoadingEnded();
|
||||
}
|
||||
|
||||
private void initAvailableItemsList(List<MvwSitArtUdcDetInventario> availableItems) {
|
||||
if(availableItems == null || availableItems.isEmpty())
|
||||
private void initAvailableItemsList(ArtsInGiacenzaDTO availableItems) {
|
||||
if (availableItems == null)
|
||||
return;
|
||||
|
||||
var itemList = Stream.of(availableItems)
|
||||
.map(DialogInfoSituazioneArticoloAvailableListItem::fromMvwSitArtUdcDetInventario)
|
||||
var listItem = Stream.of(availableItems)
|
||||
.flatMap(x -> Stream.of(x.getMvwSitArtUdcDetInventarioDTO())
|
||||
.map(DialogInfoSituazioneArticoloAvailableListItem::fromMvwSitArtUdcDetInventario)
|
||||
)
|
||||
.toList();
|
||||
|
||||
new LiveAdapter(itemList, BR.item)
|
||||
List<StatoArtInventarioDTO> statoArticolo = null;
|
||||
StatoArtInventarioDTO statoArtInventario = availableItems.getStatoArtInventario();
|
||||
if (statoArtInventario != null) {
|
||||
statoArticolo = Stream.of(statoArtInventario).toList();
|
||||
|
||||
if ((statoArtInventario.pedArrivoIsLessThenZero() || statoArtInventario.colliArrivoIsLessThenZero()) &&
|
||||
(statoArtInventario.pedMagIsLessThenZero() || statoArtInventario.colliMagIsLessThenZero())) {
|
||||
this.mBindings.situazioneArticolo.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
this.mBindings.situazioneArticolo.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
new LiveAdapter(listItem, BR.item)
|
||||
.map(DialogInfoSituazioneArticoloAvailableListItem.class, R.layout.dialog_info_giacenza_list_item)
|
||||
.into(this.mBindings.availableList);
|
||||
|
||||
new LiveAdapter(statoArticolo, BR.item)
|
||||
.map(StatoArtInventarioDTO.class, R.layout.dialog_info_giacenza_situazione_articolo)
|
||||
.into(this.mBindings.situazioneArticolo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadingStarted() {
|
||||
this.mBindings.loadingView.setVisibility(View.VISIBLE);
|
||||
this.mBindings.listItem.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadingEnded() {
|
||||
this.mBindings.loadingView.setVisibility(View.GONE);
|
||||
this.mBindings.listItem.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||
@@ -13,7 +14,9 @@ public class ArtsInGiacenzaDTO {
|
||||
private String posizione;
|
||||
private BigDecimal numCnf;
|
||||
private Integer numOrd;
|
||||
private Date dataOrd;
|
||||
private Integer count;
|
||||
private StatoArtInventarioDTO statoArtInventario;
|
||||
private List<MvwSitArtUdcDetInventario> mvwSitArtUdcDetInventarioDTO;
|
||||
|
||||
public String getCodMart() {
|
||||
@@ -92,4 +95,22 @@ public class ArtsInGiacenzaDTO {
|
||||
this.numOrd = numOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO getStatoArtInventario() {
|
||||
return statoArtInventario;
|
||||
}
|
||||
|
||||
public ArtsInGiacenzaDTO setStatoArtInventario(StatoArtInventarioDTO statoArtInventario) {
|
||||
this.statoArtInventario = statoArtInventario;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public ArtsInGiacenzaDTO setDataOrd(Date dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
package it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
public class StatoArtInventarioDTO {
|
||||
private String codProd;
|
||||
private Integer numOrd;
|
||||
private Date dataOrd;
|
||||
private String untMis;
|
||||
private BigDecimal qtaProd;
|
||||
private BigDecimal colliProd;
|
||||
private BigDecimal pedProd;
|
||||
private BigDecimal qtaInArrivo;
|
||||
private BigDecimal colliArrivo;
|
||||
private BigDecimal pedArrivo;
|
||||
private BigDecimal qtaLinea;
|
||||
private BigDecimal colliLinea;
|
||||
private Integer pedLinea;
|
||||
private BigDecimal qtaMag;
|
||||
private BigDecimal colliMag;
|
||||
private Integer pedMag;
|
||||
|
||||
public String getCodProd() {
|
||||
return codProd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setCodProd(String codProd) {
|
||||
this.codProd = codProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getNumOrd() {
|
||||
return numOrd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setNumOrd(Integer numOrd) {
|
||||
this.numOrd = numOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaProd() {
|
||||
return qtaProd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setQtaProd(BigDecimal qtaProd) {
|
||||
this.qtaProd = qtaProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getColliProd() {
|
||||
return colliProd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setColliProd(BigDecimal colliProd) {
|
||||
this.colliProd = colliProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getPedProd() {
|
||||
return pedProd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setPedProd(BigDecimal pedProd) {
|
||||
this.pedProd = pedProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaInArrivo() {
|
||||
return qtaInArrivo;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setQtaInArrivo(BigDecimal qtaInArrivo) {
|
||||
this.qtaInArrivo = qtaInArrivo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getColliArrivo() {
|
||||
return colliArrivo;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setColliArrivo(BigDecimal colliArrivo) {
|
||||
this.colliArrivo = colliArrivo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getPedArrivo() {
|
||||
return pedArrivo;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setPedArrivo(BigDecimal pedArrivo) {
|
||||
this.pedArrivo = pedArrivo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaLinea() {
|
||||
return qtaLinea;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setQtaLinea(BigDecimal qtaLinea) {
|
||||
this.qtaLinea = qtaLinea;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getColliLinea() {
|
||||
return colliLinea;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setColliLinea(BigDecimal colliLinea) {
|
||||
this.colliLinea = colliLinea;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getPedLinea() {
|
||||
return pedLinea;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setPedLinea(Integer pedLinea) {
|
||||
this.pedLinea = pedLinea;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaMag() {
|
||||
return qtaMag;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setQtaMag(BigDecimal qtaMag) {
|
||||
this.qtaMag = qtaMag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getColliMag() {
|
||||
return colliMag;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setColliMag(BigDecimal colliMag) {
|
||||
this.colliMag = colliMag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getPedMag() {
|
||||
return pedMag;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setPedMag(Integer pedMag) {
|
||||
this.pedMag = pedMag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setDataOrd(Date dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean pedArrivoIsLessThenZero(){
|
||||
return this.pedArrivo.compareTo(BigDecimal.ZERO) < 0;
|
||||
}
|
||||
|
||||
public boolean colliArrivoIsLessThenZero(){
|
||||
return this.colliArrivo.compareTo(BigDecimal.ZERO) <= 0;
|
||||
}
|
||||
|
||||
public boolean pedMagIsLessThenZero(){
|
||||
return this.pedMag < 0;
|
||||
}
|
||||
|
||||
public boolean colliMagIsLessThenZero(){
|
||||
return this.colliMag.compareTo(BigDecimal.ZERO) <= 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user