Nel "riposizionamento da produzione" aggiunte le informazioni per "in arrivo" e "in magazzino"

This commit is contained in:
Marco Elefante 2024-03-14 13:04:48 +01:00
parent bd4f28eb6d
commit e12da84fa3
11 changed files with 574 additions and 25 deletions

View File

@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.model;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Date;
import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityNumber;
@ -41,6 +42,7 @@ public class MvwSitArtUdcDetInventario {
private String codJfas; private String codJfas;
private MtbAart mtbAart; private MtbAart mtbAart;
private Integer numOrd; private Integer numOrd;
private Date dataOrd;
public String getGestione() { public String getGestione() {
return gestione; return gestione;
@ -317,4 +319,13 @@ public class MvwSitArtUdcDetInventario {
.setPesoLordoKg(getPesoLordoKg()) .setPesoLordoKg(getPesoLordoKg())
.setUntMis(getUntMis()); .setUntMis(getUntMis());
} }
public Date getDataOrd() {
return dataOrd;
}
public MvwSitArtUdcDetInventario setDataOrd(Date dataOrd) {
this.dataOrd = dataOrd;
return this;
}
} }

View File

@ -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.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario; import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
import it.integry.integrywmsnative.core.services.inventario.InventarioService; import it.integry.integrywmsnative.core.services.inventario.InventarioService;
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO;
public class ArticoliInGiacenzaViewModel { public class ArticoliInGiacenzaViewModel {
private final InventarioService mInventarioService; private final InventarioService mInventarioService;

View File

@ -32,7 +32,6 @@ import it.integry.integrywmsnative.core.expansion.OnGeneralChangedCallback;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.ISearchableFragment; import it.integry.integrywmsnative.core.interfaces.ISearchableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment; 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.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario; import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; 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 { try {
DialogInfoGiacenzaView.newInstance(item).show(getChildFragmentManager(), DialogInfoGiacenzaView.class.getName()); DialogInfoGiacenzaView.newInstance(item).show(getChildFragmentManager(), DialogInfoGiacenzaView.class.getName());
} catch (Exception e) { } catch (Exception e) {

View File

@ -6,6 +6,7 @@ import com.annimon.stream.Optional;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
@ -13,8 +14,6 @@ import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
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.NoLUFoundException; import it.integry.integrywmsnative.core.exception.NoLUFoundException;
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException; 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.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityString; 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.ArtsInGiacenzaDTO;
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.StatoArtInventarioDTO;
public class ProdRiposizionamentoDaProdViewModel { public class ProdRiposizionamentoDaProdViewModel {
private final SoundAlertService mSoundAlertService; private final SoundAlertService mSoundAlertService;
@ -41,6 +41,7 @@ public class ProdRiposizionamentoDaProdViewModel {
private final MutableLiveData<List<ArtsInGiacenzaDTO>> itemsInventario = new MutableLiveData<>(); private final MutableLiveData<List<ArtsInGiacenzaDTO>> itemsInventario = new MutableLiveData<>();
private final MutableLiveData<MtbColt> mtbColtMutableLiveData = new MutableLiveData<>(); private final MutableLiveData<MtbColt> mtbColtMutableLiveData = new MutableLiveData<>();
private final MutableLiveData<List<MvwSitArtUdcDetInventario>> mMvwSitArtUdcDetInventarioLiveData = new MutableLiveData<>(); private final MutableLiveData<List<MvwSitArtUdcDetInventario>> mMvwSitArtUdcDetInventarioLiveData = new MutableLiveData<>();
private final MutableLiveData<List<StatoArtInventarioDTO>> mStatoArticoli = new MutableLiveData<>();
private Listener mListener; private Listener mListener;
public ProdRiposizionamentoDaProdViewModel(GiacenzaRESTConsumer giacenzaRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, SoundAlertService soundAlertService) { public ProdRiposizionamentoDaProdViewModel(GiacenzaRESTConsumer giacenzaRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, SoundAlertService soundAlertService) {
@ -100,6 +101,12 @@ public class ProdRiposizionamentoDaProdViewModel {
mMvwSitArtUdcDetInventarioLiveData.setValue(mvwSitArtUdcDetInventario); 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) boolean isPresent = Stream.of(mvwSitArtUdcDetInventario)
.anyMatch(x -> .anyMatch(x ->
x.getGestione().equals(mtbColt.getGestione()) && x.getGestione().equals(mtbColt.getGestione()) &&
@ -161,6 +168,18 @@ public class ProdRiposizionamentoDaProdViewModel {
.map(MvwSitArtUdcDetInventario::getNumCnf) .map(MvwSitArtUdcDetInventario::getNumCnf)
.reduce(BigDecimal.ZERO, BigDecimal::add); .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() return new ArtsInGiacenzaDTO()
.setCodMart(dtoList.get(0).getCodMart()) .setCodMart(dtoList.get(0).getCodMart())
.setPartitaMag(dtoList.get(0).getPartitaMag()) .setPartitaMag(dtoList.get(0).getPartitaMag())
@ -169,6 +188,7 @@ public class ProdRiposizionamentoDaProdViewModel {
.setNumOrd(dtoList.get(0).getNumOrd()) .setNumOrd(dtoList.get(0).getNumOrd())
.setNumCnf(totalNumCnf) .setNumCnf(totalNumCnf)
.setCount(dtoList.size()) .setCount(dtoList.size())
.setStatoArtInventario(statoArticolo)
.setMvwSitArtUdcDetInventarioDTO(dtoList); .setMvwSitArtUdcDetInventarioDTO(dtoList);
}) })
.sorted(Comparator.comparing(ArtsInGiacenzaDTO::getPosizione)) .sorted(Comparator.comparing(ArtsInGiacenzaDTO::getPosizione))

View File

@ -5,6 +5,7 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@ -13,6 +14,7 @@ import com.annimon.stream.Stream;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.ravikoradiya.liveadapter.LiveAdapter; import com.ravikoradiya.liveadapter.LiveAdapter;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
@ -21,8 +23,10 @@ import it.integry.integrywmsnative.BR;
import it.integry.integrywmsnative.MainApplication; import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; 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.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; import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem;
public class DialogInfoGiacenzaView extends BaseDialogFragment { public class DialogInfoGiacenzaView extends BaseDialogFragment {
@ -31,13 +35,13 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
private DialogInfoGiacenzaBinding mBindings; private DialogInfoGiacenzaBinding mBindings;
private Context mContext; 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); return new DialogInfoGiacenzaView(item);
} }
public DialogInfoGiacenzaView(List<MvwSitArtUdcDetInventario> item) { public DialogInfoGiacenzaView(ArtsInGiacenzaDTO item) {
this.item = item; this.item = item;
} }
@ -78,17 +82,47 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
this.onLoadingEnded(); this.onLoadingEnded();
} }
private void initAvailableItemsList(List<MvwSitArtUdcDetInventario> availableItems) { private void initAvailableItemsList(ArtsInGiacenzaDTO availableItems) {
if(availableItems == null || availableItems.isEmpty()) if (availableItems == null)
return; return;
var itemList = Stream.of(availableItems) var listItem = Stream.of(availableItems)
.flatMap(x -> Stream.of(x.getMvwSitArtUdcDetInventarioDTO())
.map(DialogInfoSituazioneArticoloAvailableListItem::fromMvwSitArtUdcDetInventario) .map(DialogInfoSituazioneArticoloAvailableListItem::fromMvwSitArtUdcDetInventario)
)
.toList(); .toList();
new LiveAdapter(itemList, BR.item) List<StatoArtInventarioDTO> statoArticolo = null;
.map(DialogInfoSituazioneArticoloAvailableListItem.class, R.layout.dialog_info_giacenza_list_item) StatoArtInventarioDTO statoArtInventario = availableItems.getStatoArtInventario();
.into(this.mBindings.availableList); 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);
}
} }

View File

@ -1,6 +1,7 @@
package it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto; package it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario; import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
@ -13,7 +14,9 @@ public class ArtsInGiacenzaDTO {
private String posizione; private String posizione;
private BigDecimal numCnf; private BigDecimal numCnf;
private Integer numOrd; private Integer numOrd;
private Date dataOrd;
private Integer count; private Integer count;
private StatoArtInventarioDTO statoArtInventario;
private List<MvwSitArtUdcDetInventario> mvwSitArtUdcDetInventarioDTO; private List<MvwSitArtUdcDetInventario> mvwSitArtUdcDetInventarioDTO;
public String getCodMart() { public String getCodMart() {
@ -92,4 +95,22 @@ public class ArtsInGiacenzaDTO {
this.numOrd = numOrd; this.numOrd = numOrd;
return this; 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;
}
} }

View File

@ -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;
}
}

View File

@ -24,11 +24,28 @@
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked" style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="16dp" android:layout_marginBottom="8dp"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:text="Situazione articolo" /> android:text="Situazione articolo" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/loading_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ProgressBar
android:id="@+id/progressBar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
tools:visibility="gone"/>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
android:id="@+id/list_item"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@ -37,21 +54,40 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/situazione_articolo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:nestedScrollingEnabled="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="1"
android:paddingBottom="16dp"
tools:listitem="@layout/dialog_info_giacenza_situazione_articolo"
tools:visibility="gone" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/available_label"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/badge_round_corner"
android:backgroundTint="@color/gray_200"
android:paddingHorizontal="12dp"
android:text="Sulla linea"
android:textAllCaps="true" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/available_list" android:id="@+id/available_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:nestedScrollingEnabled="false" android:nestedScrollingEnabled="false"
tools:listitem="@layout/dialog_info_situazione_articolo_available_list_item" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="3" tools:itemCount="5"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> tools:listitem="@layout/dialog_info_giacenza_list_item" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>

View File

@ -81,7 +81,7 @@
android:layout_width="12dp" android:layout_width="12dp"
android:layout_height="12dp" android:layout_height="12dp"
android:src="@drawable/ic_location_24" android:src="@drawable/ic_location_24"
android:tint="@android:color/black" android:tint="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@ -89,6 +89,7 @@
style="@style/AppTheme.NewMaterial.Text.Small" style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:text="@{item.posizione}" android:text="@{item.posizione}"
app:layout_constraintStart_toEndOf="@id/position_label_icon" app:layout_constraintStart_toEndOf="@id/position_label_icon"
@ -106,7 +107,8 @@
android:backgroundTint="@color/red_300" android:backgroundTint="@color/red_300"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:orientation="horizontal"
android:visibility="@{item.codJcom != null ? View.VISIBLE : View.GONE}"> android:visibility="@{item.codJcom != null ? View.VISIBLE : View.GONE}"
tools:visibility="invisible">
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@ -0,0 +1,244 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<import type="androidx.core.content.ContextCompat" />
<import type="it.integry.integrywmsnative.R" />
<import type="it.integry.integrywmsnative.core.utility.UntMisUtils" />
<import type="java.math.BigDecimal" />
<import type="android.view.View" />
<variable
name="item"
type="it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.StatoArtInventarioDTO" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="8dp">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="1">
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/incoming_box"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="2dp"
android:layout_weight="0.5"
android:background="@drawable/badge_round_corner"
android:backgroundTint="@color/gray_200"
android:orientation="vertical"
android:paddingHorizontal="8dp"
android:paddingVertical="4dp"
android:visibility="@{item.pedArrivoIsLessThenZero() || item.colliArrivoIsLessThenZero() ? View.GONE : View.VISIBLE}">
<androidx.appcompat.widget.AppCompatTextView
style="@style/TextAppearance.Material3.LabelSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="IN ARRIVO"
android:textColor="@color/gray_600" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Medium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(item.pedArrivo, 0)}"
android:textColor="@color/gray_600"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Medium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="4dp"
android:text="PED"
android:textColor="@color/gray_600"
android:textStyle="bold" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="4dp"
android:text="("
android:textColor="@color/gray_600"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:text="@{UtilityNumber.decimalToString(item.colliArrivo, 0)}"
android:textColor="@color/gray_600"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="2dp"
android:text="@string/unt_mis_col"
android:textColor="@color/gray_600"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="0dp"
android:text=")"
android:textColor="@color/gray_600"
android:textStyle="bold" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/already_box"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="2dp"
android:layout_weight="0.5"
android:background="@drawable/badge_round_corner"
android:backgroundTint="@color/gray_200"
android:orientation="vertical"
android:paddingHorizontal="8dp"
android:paddingVertical="4dp"
android:visibility="@{item.pedMagIsLessThenZero() || item.colliMagIsLessThenZero() ? View.GONE : View.VISIBLE}">
<androidx.appcompat.widget.AppCompatTextView
style="@style/TextAppearance.Material3.LabelSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="GIÀ POSIZIONATA"
android:textColor="@color/gray_600" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Medium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{String.valueOf(item.pedMag)}"
android:textColor="@color/gray_600"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Medium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="4dp"
android:text="PED"
android:textColor="@color/gray_600"
android:textStyle="bold" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="4dp"
android:text="("
android:textColor="@color/gray_600"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:text="@{UtilityNumber.decimalToString(item.colliMag, 0)}"
android:textColor="@color/gray_600"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="2dp"
android:text="@string/unt_mis_col"
android:textColor="@color/gray_600"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="0dp"
android:text=")"
android:textColor="@color/gray_600"
android:textStyle="bold" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</RelativeLayout>
</layout>

View File

@ -192,7 +192,7 @@
android:backgroundTint="@color/colorPrimary" android:backgroundTint="@color/colorPrimary"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true"
android:onClick="@{() -> view.onInfoClick(item.getMvwSitArtUdcDetInventarioDTO())}" android:onClick="@{() -> view.onInfoClick(item)}"
android:scaleType="fitCenter" /> android:scaleType="fitCenter" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>