Completata implementazione DialogInfoSituazioneArticolo.

Fix per articoli ean8 in Documenti interni.
This commit is contained in:
Giuseppe Scorrano 2023-03-16 19:25:38 +01:00
parent a1d8e98dfe
commit cd2c04ad0c
15 changed files with 599 additions and 75 deletions

View File

@ -860,4 +860,9 @@ public class MtbAart extends EntityBase {
this.numCnfImpegnata = numCnfImpegnata; this.numCnfImpegnata = numCnfImpegnata;
return this; return this;
} }
public MtbUntMis getFirstUntMis() {
return getMtbUntMis() != null && !getMtbUntMis().isEmpty() ? getMtbUntMis().get(0) : null;
}
} }

View File

@ -38,6 +38,7 @@ public class MtbUntMis extends EntityBase {
} }
public BigDecimal getCifreDec() { public BigDecimal getCifreDec() {
if(isFlagDig()) return BigDecimal.ZERO;
return cifreDec; return cifreDec;
} }

View File

@ -1,7 +1,9 @@
package it.integry.integrywmsnative.core.model; package it.integry.integrywmsnative.core.model;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
import it.integry.integrywmsnative.core.utility.UtilityDate;
/** /**
* Created by ValerioC on 06/03/2018. * Created by ValerioC on 06/03/2018.
@ -10,7 +12,7 @@ import java.util.Date;
public class MvwSitArtUdcDetInventario { public class MvwSitArtUdcDetInventario {
private String gestione; private String gestione;
private Date dataCollo; private LocalDate dataCollo;
private String serCollo; private String serCollo;
private Integer numCollo; private Integer numCollo;
private Integer segno; private Integer segno;
@ -25,6 +27,7 @@ public class MvwSitArtUdcDetInventario {
private String diacod; private String diacod;
private String descrizioneEstesa; private String descrizioneEstesa;
private String partitaMag; private String partitaMag;
private LocalDate dataScad;
private String codJcom; private String codJcom;
private String commessa; private String commessa;
private String untMis; private String untMis;
@ -46,11 +49,11 @@ public class MvwSitArtUdcDetInventario {
return this; return this;
} }
public Date getDataCollo() { public LocalDate getDataCollo() {
return dataCollo; return dataCollo;
} }
public MvwSitArtUdcDetInventario setDataCollo(Date dataCollo) { public MvwSitArtUdcDetInventario setDataCollo(LocalDate dataCollo) {
this.dataCollo = dataCollo; this.dataCollo = dataCollo;
return this; return this;
} }
@ -181,6 +184,15 @@ public class MvwSitArtUdcDetInventario {
return this; return this;
} }
public LocalDate getDataScad() {
return dataScad;
}
public MvwSitArtUdcDetInventario setDataScad(LocalDate dataScad) {
this.dataScad = dataScad;
return this;
}
public String getCodJcom() { public String getCodJcom() {
return codJcom; return codJcom;
} }
@ -276,7 +288,7 @@ public class MvwSitArtUdcDetInventario {
return new MtbColr() return new MtbColr()
.setCodJcom(getCodJcom()) .setCodJcom(getCodJcom())
.setCodMart(getCodMart()) .setCodMart(getCodMart())
.setDataCollo(getDataCollo()) .setDataCollo(UtilityDate.toDate(getDataCollo()))
.setNumCollo(getNumCollo()) .setNumCollo(getNumCollo())
.setSerCollo(getSerCollo()) .setSerCollo(getSerCollo())
.setGestione(getGestione()) .setGestione(getGestione())

View File

@ -16,6 +16,7 @@ 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.rest.consumers.GiacenzaRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
import it.integry.integrywmsnative.core.utility.UtilityDate;
@Singleton @Singleton
public class InventarioService { public class InventarioService {
@ -47,7 +48,7 @@ public class InventarioService {
MtbColt mtbColt = new MtbColt(); MtbColt mtbColt = new MtbColt();
mtbColt.setGestione(inventario.getGestione()); mtbColt.setGestione(inventario.getGestione());
mtbColt.setDataCollo(inventario.getDataCollo()); mtbColt.setDataCollo(UtilityDate.toDate(inventario.getDataCollo()));
mtbColt.setSerCollo(inventario.getSerCollo()); mtbColt.setSerCollo(inventario.getSerCollo());
mtbColt.setNumCollo(inventario.getNumCollo()); mtbColt.setNumCollo(inventario.getNumCollo());
mtbColt.setSegno(inventario.getSegno()); mtbColt.setSegno(inventario.getSegno());
@ -70,7 +71,7 @@ public class InventarioService {
MtbColr mtbColr = new MtbColr(); MtbColr mtbColr = new MtbColr();
mtbColr.setGestione(inventario.getGestione()); mtbColr.setGestione(inventario.getGestione());
mtbColr.setDataCollo(inventario.getDataCollo()); mtbColr.setDataCollo(UtilityDate.toDate(inventario.getDataCollo()));
mtbColr.setSerCollo(inventario.getSerCollo()); mtbColr.setSerCollo(inventario.getSerCollo());
mtbColr.setNumCollo(inventario.getNumCollo()); mtbColr.setNumCollo(inventario.getNumCollo());
mtbColr.setCodMart(inventario.getCodMart()); mtbColr.setCodMart(inventario.getCodMart());

View File

@ -157,6 +157,18 @@ public class UtilityDate {
return inputDate != null && inputDate.toLocalDate().isEqual(getNow()); return inputDate != null && inputDate.toLocalDate().isEqual(getNow());
} }
public static boolean isBeforeToday(LocalDate inputDate) {
return inputDate != null && inputDate.isBefore(getNow());
}
public static boolean isAfterToday(LocalDate inputDate) {
return inputDate != null && inputDate.isAfter(getNow());
}
public static boolean isToday(LocalDate inputDate) {
return inputDate != null && inputDate.isEqual(getNow());
}
public static LocalDate toLocalDate(Date dateToConvert) { public static LocalDate toLocalDate(Date dateToConvert) {
return dateToConvert.toInstant() return dateToConvert.toInstant()
.atZone(currentZone) .atZone(currentZone)

View File

@ -35,7 +35,7 @@ public class UtilityNumber {
decimalFormat.setMaximumFractionDigits(decimal); decimalFormat.setMaximumFractionDigits(decimal);
decimalFormat.setDecimalFormatSymbols(otherSymbols); decimalFormat.setDecimalFormatSymbols(otherSymbols);
decimalFormat.setGroupingUsed(false); decimalFormat.setGroupingUsed(false);
decimalFormat.setMinimumFractionDigits(2); decimalFormat.setMinimumFractionDigits(Math.min(2, decimal));
return decimalFormat.format(floatValue); return decimalFormat.format(floatValue);
} }

View File

@ -180,7 +180,11 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
public void manualSearch() { public void manualSearch() {
BarcodeManager.disable(); BarcodeManager.disable();
DialogSimpleInputHelper.makeInputDialog(this, "Ricerca articolo", null, "Cod articolo / Barcode", this.viewModel::loadArticolo, BarcodeManager::enable).show(); DialogSimpleInputHelper.makeInputDialog(this,
"Ricerca articolo",
null,
"Cod articolo / Barcode",
barcodeProd -> this.viewModel.loadArticolo(barcodeProd, null), BarcodeManager::enable).show();
} }

View File

@ -22,8 +22,11 @@ import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSour
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository; import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException; import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO; import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO;
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.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ArtDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ArtDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO;
@ -90,7 +93,7 @@ public class DocInterniEditFormViewModel {
} }
public void dispatchRowEdit(SqlMtbColr row, boolean flagTracciabilita, boolean isUntMisDig) { public void dispatchRowEdit(SqlMtbColr row, boolean flagTracciabilita, boolean isUntMisDig) {
this.listener.onEditRowRequest(row, flagTracciabilita && this.isCheckPartitaMag,isUntMisDig); this.listener.onEditRowRequest(row, flagTracciabilita && this.isCheckPartitaMag, isUntMisDig);
} }
private Integer getNextIdRiga() { private Integer getNextIdRiga() {
@ -115,18 +118,18 @@ public class DocInterniEditFormViewModel {
public void deleteDocument() { public void deleteDocument() {
this.sendOnLoadingStarted(); this.sendOnLoadingStarted();
SqlMtbColt document = this.getDocument(); SqlMtbColt document = this.getDocument();
mtbColtRepository.delete(document, () -> { mtbColtRepository.delete(document, () -> {
this.sendOnLoadingEnded(); this.sendOnLoadingEnded();
this.listener.onDocDeleted(); this.listener.onDocDeleted();
}, this::sendError); }, this::sendError);
} }
public void holdDocument() { public void holdDocument() {
this.listener.onDocumentHoldRequest(); this.listener.onDocumentHoldRequest();
} }
public void loadArticolo(String barcodeProd) { public void loadArticolo(String barcodeProd, Ean128Model ean128Model) {
DocumentoArtDTO matchedArt; DocumentoArtDTO matchedArt;
String usedBarcode = null; String usedBarcode = null;
@ -135,7 +138,7 @@ public class DocInterniEditFormViewModel {
matchedArt = Stream.of(productsList) matchedArt = Stream.of(productsList)
.filter(x -> x.getCodMart().equalsIgnoreCase(barcodeProd) || .filter(x -> x.getCodMart().equalsIgnoreCase(barcodeProd) ||
leftBarcode.equalsIgnoreCase(x.getCodMart()) || leftBarcode.equalsIgnoreCase(x.getCodMart()) ||
x.getBarcode().contains(barcodeProd)) x.getBarcode().contains(leftBarcode))
.findFirst() .findFirst()
.orElse(null); .orElse(null);
@ -143,7 +146,6 @@ public class DocInterniEditFormViewModel {
usedBarcode = matchedArt.getBarcode().contains(barcodeProd) ? barcodeProd : null; usedBarcode = matchedArt.getBarcode().contains(barcodeProd) ? barcodeProd : null;
if (matchedArt == null) { if (matchedArt == null) {
this.sendError(new NoResultFromBarcodeException(barcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
return; return;
@ -280,8 +282,27 @@ public class DocInterniEditFormViewModel {
} }
public void processBarcode(BarcodeScanDTO dto) { public void processBarcode(BarcodeScanDTO dto) {
String code = dto.getStringValue(); this.processBarcodeDTO(dto);
this.loadArticolo(code); }
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO) {
if (UtilityBarcode.isEanPeso(barcodeScanDTO)) {
//Cerco tramite etichetta ean peso
this.executeEtichettaEanPeso(barcodeScanDTO);
} else {
this.loadArticolo(barcodeScanDTO.getStringValue(), null);
}
}
private void executeEtichettaEanPeso(BarcodeScanDTO barcodeScanDTO) {
try {
Ean13PesoModel ean13PesoModel = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue());
this.loadArticolo(ean13PesoModel.getPrecode(), ean13PesoModel.toEan128());
} catch (Exception ex) {
this.sendError(ex);
}
} }
public void saveRow(SqlMtbColr row, DialogInputQuantityV2ResultDTO resultDTO) { public void saveRow(SqlMtbColr row, DialogInputQuantityV2ResultDTO resultDTO) {

View File

@ -5,15 +5,18 @@ 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;
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 org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
@ -25,8 +28,10 @@ import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.giacenza.InstantItemSituationIncomingItemDto; import it.integry.integrywmsnative.core.rest.model.giacenza.InstantItemSituationIncomingItemDto;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.databinding.DialogInfoSituazioneArticoloBinding; import it.integry.integrywmsnative.databinding.DialogInfoSituazioneArticoloBinding;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRowInfoView; import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRowInfoView;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem;
import it.integry.integrywmsnative.gest.spedizione.ui.SpedizioneListModel; import it.integry.integrywmsnative.gest.spedizione.ui.SpedizioneListModel;
public class DialogInfoSituazioneArticoloView extends BaseDialogRowInfoView { public class DialogInfoSituazioneArticoloView extends BaseDialogRowInfoView {
@ -96,6 +101,10 @@ public class DialogInfoSituazioneArticoloView extends BaseDialogRowInfoView {
private void initIncomingItemsList(List<InstantItemSituationIncomingItemDto> incomingItems) { private void initIncomingItemsList(List<InstantItemSituationIncomingItemDto> incomingItems) {
mBindings.incomingLabel.setVisibility(incomingItems == null || incomingItems.isEmpty() ? View.GONE : View.VISIBLE);
if(incomingItems == null || incomingItems.isEmpty())
return;
new LiveAdapter(incomingItems, BR.item) new LiveAdapter(incomingItems, BR.item)
.map(InstantItemSituationIncomingItemDto.class, R.layout.dialog_info_situazione_articolo_incoming_list_item) .map(InstantItemSituationIncomingItemDto.class, R.layout.dialog_info_situazione_articolo_incoming_list_item)
@ -104,9 +113,42 @@ public class DialogInfoSituazioneArticoloView extends BaseDialogRowInfoView {
private void initAvailableItemsList(List<MvwSitArtUdcDetInventario> availableItems) { private void initAvailableItemsList(List<MvwSitArtUdcDetInventario> availableItems) {
mBindings.availableLabel.setVisibility(availableItems == null || availableItems.isEmpty() ? View.GONE : View.VISIBLE);
new LiveAdapter(availableItems, BR.item) if(availableItems == null)
.map(MvwSitArtUdcDetInventario.class, R.layout.dialog_info_situazione_articolo_available_list_item) availableItems = new ArrayList<>();
availableItems = Stream.of(availableItems)
.filter(x -> UtilityDate.isAfterToday(x.getDataScad()))
.toList();
if(availableItems.isEmpty())
return;
var preferedCodJcom = getSpedizioneListModel().getOriginalModel().getSitArtOrdDTO().getCodJcom();
var preferedPartitaMag = getSpedizioneListModel().getOriginalModel().getSitArtOrdDTO().getPartitaMag();
var itemList = Stream.of(availableItems)
.map(mvwSitArtUdcDetInventario -> DialogInfoSituazioneArticoloAvailableListItem.fromMvwSitArtUdcDetInventario(mvwSitArtUdcDetInventario)
.setCommessaMatch(mvwSitArtUdcDetInventario.getCodJcom() != null && mvwSitArtUdcDetInventario.getCodJcom().equalsIgnoreCase(preferedCodJcom))
.setPartitaMagMatch(mvwSitArtUdcDetInventario.getPartitaMag() != null && mvwSitArtUdcDetInventario.getPartitaMag().equalsIgnoreCase(preferedPartitaMag)))
.toList();
var itemListCommessaMatch = Stream.of(itemList)
.filter(DialogInfoSituazioneArticoloAvailableListItem::isCommessaMatch)
.toList();
var itemListCommessaNotMatchMatch = Stream.of(itemList)
.filter(dialogInfoSituazioneArticoloAvailableListItem -> !dialogInfoSituazioneArticoloAvailableListItem.isCommessaMatch())
.sortBy(x -> x.getDataScad())
.toList();
itemListCommessaMatch.addAll(itemListCommessaNotMatchMatch);
new LiveAdapter(itemListCommessaMatch, BR.item)
.map(DialogInfoSituazioneArticoloAvailableListItem.class, R.layout.dialog_info_situazione_articolo_available_list_item)
.into(this.mBindings.availableList); .into(this.mBindings.availableList);
} }
} }

View File

@ -0,0 +1,333 @@
package it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui;
import java.math.BigDecimal;
import java.time.LocalDate;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
public class DialogInfoSituazioneArticoloAvailableListItem {
private String gestione;
private LocalDate dataCollo;
private String serCollo;
private Integer numCollo;
private Integer segno;
private String codMdep;
private String posizione;
private Integer priorita;
private String codGruppo;
private String gruppo;
private String codSgruppo;
private String sottogruppo;
private String codMart;
private String diacod;
private String descrizioneEstesa;
private String partitaMag;
private String codJcom;
private String commessa;
private String untMis;
private BigDecimal qtaCol;
private BigDecimal numCnf;
private BigDecimal qtaCnf;
private BigDecimal pesoNettoKg;
private BigDecimal pesoLordoKg;
private String codJfas;
private LocalDate dataScad;
private MtbAart mtbAart;
private boolean partitaMagMatch;
private boolean commessaMatch;
public String getGestione() {
return gestione;
}
public DialogInfoSituazioneArticoloAvailableListItem setGestione(String gestione) {
this.gestione = gestione;
return this;
}
public LocalDate getDataCollo() {
return dataCollo;
}
public DialogInfoSituazioneArticoloAvailableListItem setDataCollo(LocalDate dataCollo) {
this.dataCollo = dataCollo;
return this;
}
public String getSerCollo() {
return serCollo;
}
public DialogInfoSituazioneArticoloAvailableListItem setSerCollo(String serCollo) {
this.serCollo = serCollo;
return this;
}
public Integer getNumCollo() {
return numCollo;
}
public DialogInfoSituazioneArticoloAvailableListItem setNumCollo(Integer numCollo) {
this.numCollo = numCollo;
return this;
}
public Integer getSegno() {
return segno;
}
public DialogInfoSituazioneArticoloAvailableListItem setSegno(Integer segno) {
this.segno = segno;
return this;
}
public String getCodMdep() {
return codMdep;
}
public DialogInfoSituazioneArticoloAvailableListItem setCodMdep(String codMdep) {
this.codMdep = codMdep;
return this;
}
public String getPosizione() {
return posizione;
}
public DialogInfoSituazioneArticoloAvailableListItem setPosizione(String posizione) {
this.posizione = posizione;
return this;
}
public Integer getPriorita() {
return priorita;
}
public DialogInfoSituazioneArticoloAvailableListItem setPriorita(Integer priorita) {
this.priorita = priorita;
return this;
}
public String getCodGruppo() {
return codGruppo;
}
public DialogInfoSituazioneArticoloAvailableListItem setCodGruppo(String codGruppo) {
this.codGruppo = codGruppo;
return this;
}
public String getGruppo() {
return gruppo;
}
public DialogInfoSituazioneArticoloAvailableListItem setGruppo(String gruppo) {
this.gruppo = gruppo;
return this;
}
public String getCodSgruppo() {
return codSgruppo;
}
public DialogInfoSituazioneArticoloAvailableListItem setCodSgruppo(String codSgruppo) {
this.codSgruppo = codSgruppo;
return this;
}
public String getSottogruppo() {
return sottogruppo;
}
public DialogInfoSituazioneArticoloAvailableListItem setSottogruppo(String sottogruppo) {
this.sottogruppo = sottogruppo;
return this;
}
public String getCodMart() {
return codMart;
}
public DialogInfoSituazioneArticoloAvailableListItem setCodMart(String codMart) {
this.codMart = codMart;
return this;
}
public String getDiacod() {
return diacod;
}
public DialogInfoSituazioneArticoloAvailableListItem setDiacod(String diacod) {
this.diacod = diacod;
return this;
}
public String getDescrizioneEstesa() {
return descrizioneEstesa;
}
public DialogInfoSituazioneArticoloAvailableListItem setDescrizioneEstesa(String descrizioneEstesa) {
this.descrizioneEstesa = descrizioneEstesa;
return this;
}
public String getPartitaMag() {
return partitaMag;
}
public DialogInfoSituazioneArticoloAvailableListItem setPartitaMag(String partitaMag) {
this.partitaMag = partitaMag;
return this;
}
public String getCodJcom() {
return codJcom;
}
public DialogInfoSituazioneArticoloAvailableListItem setCodJcom(String codJcom) {
this.codJcom = codJcom;
return this;
}
public String getCommessa() {
return commessa;
}
public DialogInfoSituazioneArticoloAvailableListItem setCommessa(String commessa) {
this.commessa = commessa;
return this;
}
public String getUntMis() {
return untMis;
}
public DialogInfoSituazioneArticoloAvailableListItem setUntMis(String untMis) {
this.untMis = untMis;
return this;
}
public BigDecimal getQtaCol() {
return qtaCol;
}
public DialogInfoSituazioneArticoloAvailableListItem setQtaCol(BigDecimal qtaCol) {
this.qtaCol = qtaCol;
return this;
}
public BigDecimal getNumCnf() {
return numCnf;
}
public DialogInfoSituazioneArticoloAvailableListItem setNumCnf(BigDecimal numCnf) {
this.numCnf = numCnf;
return this;
}
public BigDecimal getQtaCnf() {
return qtaCnf;
}
public DialogInfoSituazioneArticoloAvailableListItem setQtaCnf(BigDecimal qtaCnf) {
this.qtaCnf = qtaCnf;
return this;
}
public BigDecimal getPesoNettoKg() {
return pesoNettoKg;
}
public DialogInfoSituazioneArticoloAvailableListItem setPesoNettoKg(BigDecimal pesoNettoKg) {
this.pesoNettoKg = pesoNettoKg;
return this;
}
public BigDecimal getPesoLordoKg() {
return pesoLordoKg;
}
public DialogInfoSituazioneArticoloAvailableListItem setPesoLordoKg(BigDecimal pesoLordoKg) {
this.pesoLordoKg = pesoLordoKg;
return this;
}
public String getCodJfas() {
return codJfas;
}
public DialogInfoSituazioneArticoloAvailableListItem setCodJfas(String codJfas) {
this.codJfas = codJfas;
return this;
}
public LocalDate getDataScad() {
return dataScad;
}
public DialogInfoSituazioneArticoloAvailableListItem setDataScad(LocalDate dataScad) {
this.dataScad = dataScad;
return this;
}
public MtbAart getMtbAart() {
return mtbAart;
}
public DialogInfoSituazioneArticoloAvailableListItem setMtbAart(MtbAart mtbAart) {
this.mtbAart = mtbAart;
return this;
}
public boolean isPartitaMagMatch() {
return partitaMagMatch;
}
public DialogInfoSituazioneArticoloAvailableListItem setPartitaMagMatch(boolean partitaMagMatch) {
this.partitaMagMatch = partitaMagMatch;
return this;
}
public boolean isCommessaMatch() {
return commessaMatch;
}
public DialogInfoSituazioneArticoloAvailableListItem setCommessaMatch(boolean commessaMatch) {
this.commessaMatch = commessaMatch;
return this;
}
public static DialogInfoSituazioneArticoloAvailableListItem fromMvwSitArtUdcDetInventario(MvwSitArtUdcDetInventario mvwSitArtUdcDetInventario) {
return new DialogInfoSituazioneArticoloAvailableListItem()
.setCodGruppo(mvwSitArtUdcDetInventario.getCodGruppo())
.setCodJcom(mvwSitArtUdcDetInventario.getCodJcom())
.setCodJfas(mvwSitArtUdcDetInventario.getCodJfas())
.setCodMart(mvwSitArtUdcDetInventario.getCodMart())
.setCodMdep(mvwSitArtUdcDetInventario.getCodMdep())
.setCodSgruppo(mvwSitArtUdcDetInventario.getCodSgruppo())
.setCommessa(mvwSitArtUdcDetInventario.getCommessa())
.setDataCollo(mvwSitArtUdcDetInventario.getDataCollo())
.setDescrizioneEstesa(mvwSitArtUdcDetInventario.getDescrizioneEstesa())
.setDiacod(mvwSitArtUdcDetInventario.getDiacod())
.setGestione(mvwSitArtUdcDetInventario.getGestione())
.setGruppo(mvwSitArtUdcDetInventario.getGruppo())
.setMtbAart(mvwSitArtUdcDetInventario.getMtbAart())
.setNumCnf(mvwSitArtUdcDetInventario.getNumCnf())
.setNumCollo(mvwSitArtUdcDetInventario.getNumCollo())
.setPartitaMag(mvwSitArtUdcDetInventario.getPartitaMag())
.setDataScad(mvwSitArtUdcDetInventario.getDataScad())
.setPesoLordoKg(mvwSitArtUdcDetInventario.getPesoLordoKg())
.setPesoNettoKg(mvwSitArtUdcDetInventario.getPesoNettoKg())
.setPosizione(mvwSitArtUdcDetInventario.getPosizione())
.setPriorita(mvwSitArtUdcDetInventario.getPriorita())
.setQtaCnf(mvwSitArtUdcDetInventario.getQtaCnf())
.setQtaCol(mvwSitArtUdcDetInventario.getQtaCol())
.setSegno(mvwSitArtUdcDetInventario.getSegno())
.setSerCollo(mvwSitArtUdcDetInventario.getSerCollo())
.setSottogruppo(mvwSitArtUdcDetInventario.getSottogruppo())
.setUntMis(mvwSitArtUdcDetInventario.getUntMis());
}
}

View File

@ -1,12 +1,16 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" > <level-list>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" /> <solid android:color="@color/white" />
<padding <padding
android:left="6dp" android:left="6dp"
android:right="6dp" android:right="6dp"
android:top="1dp" /> android:top="1dp" />
<corners android:radius="12dp" /> <corners android:radius="12dp" />
</shape> </shape>
</item>
</level-list>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="@color/white" />
<corners android:radius="12dp" />
</shape>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="96dp"
android:height="96dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M6,0C2.7,0 0,2.7 0,6C0,9.3 2.7,12 6,12C9.3,12 12,9.3 12,6C12,2.7 9.3,0 6,0zM6,2C8.2,2 10,3.8 10,6C10,8.2 8.2,10 6,10C3.8,10 2,8.2 2,6C2,3.8 3.8,2 6,2zM17,2C16.448,2 16,2.448 16,3L16,4L13.738,4C13.903,4.64 14,5.308 14,6C14,7.062 13.788,8.073 13.412,9L19,9L19.002,20L5,20L5,15C5,14.448 4.552,14 4,14C3.448,14 3,14.448 3,15L3,20C3,21.105 3.895,22 5,22L19,22C20.105,22 21,21.105 21,20L21,6C21,4.895 20.105,4 19,4L18,4L18,3C18,2.448 17.552,2 17,2zM6.9,3.199L5.199,6.1L7.4,8.301L8.301,7.301L6.801,5.9L8,3.801L6.9,3.199z"
android:fillColor="#5B5B5B"/>
</vector>

View File

@ -45,9 +45,10 @@
android:orientation="vertical"> android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/incoming_label"
style="@style/TextAppearance.Material3.TitleMedium" style="@style/TextAppearance.Material3.TitleMedium"
android:background="@drawable/badge_round_corner" android:background="@drawable/badge_round_corner"
android:backgroundTint="@color/yellow_200" android:backgroundTint="@color/gray_200"
android:textAllCaps="true" android:textAllCaps="true"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -68,12 +69,13 @@
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/available_label"
style="@style/TextAppearance.Material3.TitleMedium" style="@style/TextAppearance.Material3.TitleMedium"
android:textAllCaps="true" android:textAllCaps="true"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/badge_round_corner" android:background="@drawable/badge_round_corner"
android:backgroundTint="@color/green_200" android:backgroundTint="@color/gray_200"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:paddingHorizontal="12dp" android:paddingHorizontal="12dp"

View File

@ -5,18 +5,17 @@
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<data> <data>
<import type="it.integry.integrywmsnative.core.utility.UtilityString" /> <import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" /> <import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" /> <import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<import type="androidx.core.content.ContextCompat" />
<import type="it.integry.integrywmsnative.R" />
<import type="android.view.View" /> <import type="android.view.View" />
<variable <variable
name="item" name="item"
type="it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario" /> type="it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem" />
</data> </data>
@ -45,15 +44,68 @@
tools:text="UL 109467 del 17 mar 2023" /> tools:text="UL 109467 del 17 mar 2023" />
<!-- <androidx.appcompat.widget.AppCompatTextView--> <!-- <androidx.appcompat.widget.AppCompatTextView-->
<!-- style="@style/TextAppearance.AppCompat.Small"--> <!-- style="@style/TextAppearance.AppCompat.Small"-->
<!-- android:layout_width="match_parent"--> <!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"--> <!-- android:layout_height="wrap_content"-->
<!-- android:ellipsize="end"--> <!-- android:ellipsize="end"-->
<!-- android:maxLines="2"--> <!-- android:maxLines="2"-->
<!-- android:text="@{UtilityString.isNull(item.descrizioneEstesa, &quot;Nessuna descrizione&quot;)}"--> <!-- android:text="@{UtilityString.isNull(item.descrizioneEstesa, &quot;Nessuna descrizione&quot;)}"-->
<!-- tools:text="Descrizione lunga articolo" />--> <!-- tools:text="Descrizione lunga articolo" />-->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:background="@drawable/badge_round_corner_without_padding"
android:backgroundTint="@color/green_200"
android:gravity="center_vertical"
android:orientation="horizontal"
android:visibility="@{item.partitaMag != null ? View.VISIBLE : View.GONE}">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="@drawable/badge_round_corner"
android:backgroundTint="@{ContextCompat.getColor(context, item.partitaMagMatch ? R.color.green_200 : R.color.white)}"
android:gravity="center_vertical"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="12dp"
android:layout_height="12dp"
android:src="@drawable/ic_info_78dp"
android:tint="@android:color/black" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="@{item.partitaMag}"
android:textColor="@android:color/black"
tools:text="PARTITA" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_marginStart="8dp"
android:visibility="@{item.dataScad != null ? View.VISIBLE : View.GONE}"
android:src="@drawable/ic_calendar_schedule"
android:tint="@android:color/black" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:visibility="@{item.dataScad != null ? View.VISIBLE : View.GONE}"
android:text="@{UtilityDate.formatDate(item.dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)}"
android:textColor="@android:color/black"
tools:text="17 mag 2023" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -64,57 +116,75 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:background="@drawable/badge_round_corner" android:background="@drawable/badge_round_corner_without_padding"
android:backgroundTint="@color/light_blue_500" android:backgroundTint="@color/light_blue_500"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal"
android:visibility="@{item.posizione != null ? View.VISIBLE : View.GONE}"> android:visibility="@{item.posizione != null ? View.VISIBLE : View.GONE}">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="12dp"
android:layout_height="12dp"
android:src="@drawable/ic_location_24"
android:tint="@color/white" />
<androidx.appcompat.widget.AppCompatTextView
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:layout_marginStart="4dp" android:layout_margin="4dp"
android:text="@{item.posizione}" android:background="@drawable/badge_round_corner"
android:textColor="@android:color/white" android:backgroundTint="@color/light_blue_500"
android:textStyle="bold" android:gravity="center_vertical"
tools:text="POSIZIONE" /> android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/position_label_icon"
android:layout_width="12dp"
android:layout_height="12dp"
android:src="@drawable/ic_location_24"
android:tint="@android:color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="@{item.posizione}"
app:layout_constraintStart_toEndOf="@id/position_label_icon"
tools:text="POSIZIONE" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:background="@drawable/badge_round_corner" android:layout_marginTop="4dp"
android:background="@drawable/badge_round_corner_without_padding"
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}">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="12dp"
android:layout_height="12dp"
android:src="@drawable/ic_tag"
android:tint="@color/white" />
<androidx.appcompat.widget.AppCompatTextView
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:layout_marginStart="4dp" android:layout_margin="4dp"
android:text="@{item.codJcom}" android:background="@drawable/badge_round_corner"
android:textColor="@android:color/white" android:backgroundTint="@{ContextCompat.getColor(context, item.commessaMatch ? R.color.red_300 : R.color.white)}"
android:textStyle="bold" android:gravity="center_vertical"
tools:text="COMMESSA" /> android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="12dp"
android:layout_height="12dp"
android:src="@drawable/ic_tag"
android:tint="@android:color/black" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="@{item.codJcom}"
tools:text="COMMESSA" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
@ -142,7 +212,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:backgroundTint="@color/colorPrimary" android:backgroundTint="@color/colorPrimary"
android:gravity="center" android:gravity="center"
android:text="@{UtilityNumber.decimalToString(item.qtaCol, 2)}" android:text="@{UtilityNumber.decimalToString(item.qtaCol, item.mtbAart.firstUntMis.cifreDec.intValue())}"
android:textAllCaps="true" android:textAllCaps="true"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textStyle="bold" android:textStyle="bold"