diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java index 78148940..d9989c47 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java @@ -860,4 +860,9 @@ public class MtbAart extends EntityBase { this.numCnfImpegnata = numCnfImpegnata; return this; } + + + public MtbUntMis getFirstUntMis() { + return getMtbUntMis() != null && !getMtbUntMis().isEmpty() ? getMtbUntMis().get(0) : null; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbUntMis.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbUntMis.java index 89f8c0e4..8507338e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbUntMis.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbUntMis.java @@ -38,6 +38,7 @@ public class MtbUntMis extends EntityBase { } public BigDecimal getCifreDec() { + if(isFlagDig()) return BigDecimal.ZERO; return cifreDec; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java index 1a49d7c4..314671ef 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MvwSitArtUdcDetInventario.java @@ -1,7 +1,9 @@ package it.integry.integrywmsnative.core.model; 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. @@ -10,7 +12,7 @@ import java.util.Date; public class MvwSitArtUdcDetInventario { private String gestione; - private Date dataCollo; + private LocalDate dataCollo; private String serCollo; private Integer numCollo; private Integer segno; @@ -25,6 +27,7 @@ public class MvwSitArtUdcDetInventario { private String diacod; private String descrizioneEstesa; private String partitaMag; + private LocalDate dataScad; private String codJcom; private String commessa; private String untMis; @@ -46,11 +49,11 @@ public class MvwSitArtUdcDetInventario { return this; } - public Date getDataCollo() { + public LocalDate getDataCollo() { return dataCollo; } - public MvwSitArtUdcDetInventario setDataCollo(Date dataCollo) { + public MvwSitArtUdcDetInventario setDataCollo(LocalDate dataCollo) { this.dataCollo = dataCollo; return this; } @@ -181,6 +184,15 @@ public class MvwSitArtUdcDetInventario { return this; } + public LocalDate getDataScad() { + return dataScad; + } + + public MvwSitArtUdcDetInventario setDataScad(LocalDate dataScad) { + this.dataScad = dataScad; + return this; + } + public String getCodJcom() { return codJcom; } @@ -276,7 +288,7 @@ public class MvwSitArtUdcDetInventario { return new MtbColr() .setCodJcom(getCodJcom()) .setCodMart(getCodMart()) - .setDataCollo(getDataCollo()) + .setDataCollo(UtilityDate.toDate(getDataCollo())) .setNumCollo(getNumCollo()) .setSerCollo(getSerCollo()) .setGestione(getGestione()) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/services/inventario/InventarioService.java b/app/src/main/java/it/integry/integrywmsnative/core/services/inventario/InventarioService.java index 587147a6..55402a93 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/services/inventario/InventarioService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/services/inventario/InventarioService.java @@ -16,6 +16,7 @@ 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.rest.consumers.GiacenzaRESTConsumer; +import it.integry.integrywmsnative.core.utility.UtilityDate; @Singleton public class InventarioService { @@ -47,7 +48,7 @@ public class InventarioService { MtbColt mtbColt = new MtbColt(); mtbColt.setGestione(inventario.getGestione()); - mtbColt.setDataCollo(inventario.getDataCollo()); + mtbColt.setDataCollo(UtilityDate.toDate(inventario.getDataCollo())); mtbColt.setSerCollo(inventario.getSerCollo()); mtbColt.setNumCollo(inventario.getNumCollo()); mtbColt.setSegno(inventario.getSegno()); @@ -70,7 +71,7 @@ public class InventarioService { MtbColr mtbColr = new MtbColr(); mtbColr.setGestione(inventario.getGestione()); - mtbColr.setDataCollo(inventario.getDataCollo()); + mtbColr.setDataCollo(UtilityDate.toDate(inventario.getDataCollo())); mtbColr.setSerCollo(inventario.getSerCollo()); mtbColr.setNumCollo(inventario.getNumCollo()); mtbColr.setCodMart(inventario.getCodMart()); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java index 634378ed..9aa27662 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDate.java @@ -157,6 +157,18 @@ public class UtilityDate { 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) { return dateToConvert.toInstant() .atZone(currentZone) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityNumber.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityNumber.java index f3ec20ca..4da65217 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityNumber.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityNumber.java @@ -35,7 +35,7 @@ public class UtilityNumber { decimalFormat.setMaximumFractionDigits(decimal); decimalFormat.setDecimalFormatSymbols(otherSymbols); decimalFormat.setGroupingUsed(false); - decimalFormat.setMinimumFractionDigits(2); + decimalFormat.setMinimumFractionDigits(Math.min(2, decimal)); return decimalFormat.format(floatValue); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java index 4666d634..4f75d5a0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java @@ -180,7 +180,11 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter public void manualSearch() { 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(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java index df5e9620..d82f173a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java @@ -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.exception.NoResultFromBarcodeException; 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.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityBarcode; 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.ColloDTO; @@ -90,7 +93,7 @@ public class DocInterniEditFormViewModel { } 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() { @@ -115,18 +118,18 @@ public class DocInterniEditFormViewModel { public void deleteDocument() { this.sendOnLoadingStarted(); - SqlMtbColt document = this.getDocument(); - mtbColtRepository.delete(document, () -> { - this.sendOnLoadingEnded(); - this.listener.onDocDeleted(); - }, this::sendError); + SqlMtbColt document = this.getDocument(); + mtbColtRepository.delete(document, () -> { + this.sendOnLoadingEnded(); + this.listener.onDocDeleted(); + }, this::sendError); } public void holdDocument() { this.listener.onDocumentHoldRequest(); } - public void loadArticolo(String barcodeProd) { + public void loadArticolo(String barcodeProd, Ean128Model ean128Model) { DocumentoArtDTO matchedArt; String usedBarcode = null; @@ -135,7 +138,7 @@ public class DocInterniEditFormViewModel { matchedArt = Stream.of(productsList) .filter(x -> x.getCodMart().equalsIgnoreCase(barcodeProd) || leftBarcode.equalsIgnoreCase(x.getCodMart()) || - x.getBarcode().contains(barcodeProd)) + x.getBarcode().contains(leftBarcode)) .findFirst() .orElse(null); @@ -143,7 +146,6 @@ public class DocInterniEditFormViewModel { usedBarcode = matchedArt.getBarcode().contains(barcodeProd) ? barcodeProd : null; - if (matchedArt == null) { this.sendError(new NoResultFromBarcodeException(barcodeProd)); return; @@ -280,8 +282,27 @@ public class DocInterniEditFormViewModel { } public void processBarcode(BarcodeScanDTO dto) { - String code = dto.getStringValue(); - this.loadArticolo(code); + this.processBarcodeDTO(dto); + } + + 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) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/info_situazione_articolo/DialogInfoSituazioneArticoloView.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/info_situazione_articolo/DialogInfoSituazioneArticoloView.java index a70d0db2..349259e7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/info_situazione_articolo/DialogInfoSituazioneArticoloView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/info_situazione_articolo/DialogInfoSituazioneArticoloView.java @@ -5,15 +5,18 @@ 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; +import com.annimon.stream.Stream; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.ravikoradiya.liveadapter.LiveAdapter; import org.jetbrains.annotations.NotNull; +import java.util.ArrayList; import java.util.List; 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.model.giacenza.InstantItemSituationIncomingItemDto; import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityDate; 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.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem; import it.integry.integrywmsnative.gest.spedizione.ui.SpedizioneListModel; public class DialogInfoSituazioneArticoloView extends BaseDialogRowInfoView { @@ -96,6 +101,10 @@ public class DialogInfoSituazioneArticoloView extends BaseDialogRowInfoView { private void initIncomingItemsList(List incomingItems) { + mBindings.incomingLabel.setVisibility(incomingItems == null || incomingItems.isEmpty() ? View.GONE : View.VISIBLE); + + if(incomingItems == null || incomingItems.isEmpty()) + return; new LiveAdapter(incomingItems, BR.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 availableItems) { + mBindings.availableLabel.setVisibility(availableItems == null || availableItems.isEmpty() ? View.GONE : View.VISIBLE); - new LiveAdapter(availableItems, BR.item) - .map(MvwSitArtUdcDetInventario.class, R.layout.dialog_info_situazione_articolo_available_list_item) + if(availableItems == null) + 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); } } \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/info_situazione_articolo/ui/DialogInfoSituazioneArticoloAvailableListItem.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/info_situazione_articolo/ui/DialogInfoSituazioneArticoloAvailableListItem.java new file mode 100644 index 00000000..a425c2d5 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dialogs/row_info/info_situazione_articolo/ui/DialogInfoSituazioneArticoloAvailableListItem.java @@ -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()); + } +} diff --git a/app/src/main/res/drawable/badge_round_corner.xml b/app/src/main/res/drawable/badge_round_corner.xml index 0e8c0074..e7af763b 100644 --- a/app/src/main/res/drawable/badge_round_corner.xml +++ b/app/src/main/res/drawable/badge_round_corner.xml @@ -1,12 +1,16 @@ - + + + - + - + - - \ No newline at end of file + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/badge_round_corner_without_padding.xml b/app/src/main/res/drawable/badge_round_corner_without_padding.xml new file mode 100644 index 00000000..93b0dc08 --- /dev/null +++ b/app/src/main/res/drawable/badge_round_corner_without_padding.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_calendar_schedule.xml b/app/src/main/res/drawable/ic_calendar_schedule.xml new file mode 100644 index 00000000..eda2c2dd --- /dev/null +++ b/app/src/main/res/drawable/ic_calendar_schedule.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/dialog_info_situazione_articolo.xml b/app/src/main/res/layout/dialog_info_situazione_articolo.xml index e68036bd..d605d601 100644 --- a/app/src/main/res/layout/dialog_info_situazione_articolo.xml +++ b/app/src/main/res/layout/dialog_info_situazione_articolo.xml @@ -45,9 +45,10 @@ android:orientation="vertical"> - - - + + + type="it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem" /> @@ -45,15 +44,68 @@ tools:text="UL 109467 del 17 mar 2023" /> - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + android:layout_margin="4dp" + android:background="@drawable/badge_round_corner" + android:backgroundTint="@color/light_blue_500" + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + + - - - + android:layout_margin="4dp" + android:background="@drawable/badge_round_corner" + android:backgroundTint="@{ContextCompat.getColor(context, item.commessaMatch ? R.color.red_300 : R.color.white)}" + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + @@ -142,7 +212,7 @@ android:layout_height="wrap_content" android:backgroundTint="@color/colorPrimary" 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:textColor="@android:color/white" android:textStyle="bold"