Finish v1.41.01(449)
This commit is contained in:
commit
7999e98bd9
@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 446
|
def appVersionCode = 449
|
||||||
def appVersionName = '1.40.29'
|
def appVersionName = '1.41.01'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
|
|||||||
@ -29,6 +29,8 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniE
|
|||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniEditFormModule;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.DocInterniEditFormModule;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsComponent;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsComponent;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsModule;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsModule;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiModule;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleComponent;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleComponent;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleModule;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleModule;
|
||||||
import it.integry.integrywmsnative.gest.inventario.ElencoInventariComponent;
|
import it.integry.integrywmsnative.gest.inventario.ElencoInventariComponent;
|
||||||
@ -186,6 +188,7 @@ import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.DialogTracc
|
|||||||
DialogSelectDocInfoModule.class,
|
DialogSelectDocInfoModule.class,
|
||||||
DocInterniEditFormModule.class,
|
DocInterniEditFormModule.class,
|
||||||
DialogSelectDocRowsModule.class,
|
DialogSelectDocRowsModule.class,
|
||||||
|
DialogSelectLottiModule.class,
|
||||||
DialogAskClienteModule.class,
|
DialogAskClienteModule.class,
|
||||||
DialogEditArticoloModule.class,
|
DialogEditArticoloModule.class,
|
||||||
DialogPrintOrderSSCCListModule.class,
|
DialogPrintOrderSSCCListModule.class,
|
||||||
@ -332,6 +335,7 @@ public interface MainApplicationComponent {
|
|||||||
DialogInfoSituazioneArticoloComponent.Factory dialogInfoSituazioneArticoloComponent();
|
DialogInfoSituazioneArticoloComponent.Factory dialogInfoSituazioneArticoloComponent();
|
||||||
|
|
||||||
DialogSelectDocRowsComponent.Factory dialogSelectDocRowsNewComponent();
|
DialogSelectDocRowsComponent.Factory dialogSelectDocRowsNewComponent();
|
||||||
|
DialogSelectLottiComponent.Factory dialogSelectLottiComponent();
|
||||||
|
|
||||||
DialogSelectArtToOrderComponent.Factory dialogSelectArtToOrderNewComponent();
|
DialogSelectArtToOrderComponent.Factory dialogSelectArtToOrderNewComponent();
|
||||||
|
|
||||||
|
|||||||
@ -51,9 +51,9 @@ public class DocumentRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void checkFrumaDocument(String fornitore, String numDoc, String dataDoc, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
public void checkDocument(String fornitore, String numDoc, String dataDoc, String tipoDoc, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
var inventarioRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);
|
var inventarioRESTConsumerService = RESTBuilder.getService(DocumentiRESTConsumerService.class);
|
||||||
inventarioRESTConsumerService.checkFrumaDoc(fornitore, numDoc, dataDoc)
|
inventarioRESTConsumerService.checkDocument(fornitore, numDoc,tipoDoc, dataDoc)
|
||||||
.enqueue(new Callback<>() {
|
.enqueue(new Callback<>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<ServiceRESTResponse<Boolean>> call, @NonNull Response<ServiceRESTResponse<Boolean>> response) {
|
public void onResponse(@NonNull Call<ServiceRESTResponse<Boolean>> call, @NonNull Response<ServiceRESTResponse<Boolean>> response) {
|
||||||
|
|||||||
@ -21,10 +21,11 @@ public interface DocumentiRESTConsumerService {
|
|||||||
@POST("createDocFromColli")
|
@POST("createDocFromColli")
|
||||||
Call<ServiceRESTResponse<DtbDoct>> createDocFromColli(@Body LoadColliDTO listColli);
|
Call<ServiceRESTResponse<DtbDoct>> createDocFromColli(@Body LoadColliDTO listColli);
|
||||||
|
|
||||||
@GET("wms/documento/checkFruma")
|
@GET("wms/documento/checkDoc")
|
||||||
Call<ServiceRESTResponse<Boolean>> checkFrumaDoc(
|
Call<ServiceRESTResponse<Boolean>> checkDocument(
|
||||||
@Query("fornitore") String fornitore,
|
@Query("fornitore") String fornitore,
|
||||||
@Query("numDoc") String numDoc,
|
@Query("numDoc") String numDoc,
|
||||||
|
@Query("tipoDoc") String tipoDoc,
|
||||||
@Query("dataDoc") String dataDoc);
|
@Query("dataDoc") String dataDoc);
|
||||||
|
|
||||||
@GET("wms/documento/arts")
|
@GET("wms/documento/arts")
|
||||||
|
|||||||
@ -76,13 +76,12 @@ public class DBSettingsModel {
|
|||||||
private boolean flagProduzioneShowInfo = false;
|
private boolean flagProduzioneShowInfo = false;
|
||||||
private boolean flagAccettazioneBollaUseQtaOrd = true;
|
private boolean flagAccettazioneBollaUseQtaOrd = true;
|
||||||
private boolean flagWarningNewPartitaMag = false;
|
private boolean flagWarningNewPartitaMag = false;
|
||||||
|
|
||||||
private boolean flagTracciamentoImballiCaricoEnabled = false;
|
private boolean flagTracciamentoImballiCaricoEnabled = false;
|
||||||
private boolean flagTracciamentoImballiScaricoEnabled = false;
|
private boolean flagTracciamentoImballiScaricoEnabled = false;
|
||||||
private boolean flagPickingLiberoEnableScanArt = false;
|
private boolean flagPickingLiberoEnableScanArt = false;
|
||||||
private boolean flagAskDuplicateUDSSpedizione = false;
|
private boolean flagAskDuplicateUDSSpedizione = false;
|
||||||
|
|
||||||
private boolean suggestDataScad = false;
|
private boolean suggestDataScad = false;
|
||||||
|
private String docInterniRequestNumDoc;
|
||||||
|
|
||||||
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
||||||
return flagSpedizioneEnableFakeGiacenza;
|
return flagSpedizioneEnableFakeGiacenza;
|
||||||
@ -695,4 +694,13 @@ public class DBSettingsModel {
|
|||||||
this.suggestDataScad = suggestDataScad;
|
this.suggestDataScad = suggestDataScad;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDocInterniRequestNumDoc() {
|
||||||
|
return docInterniRequestNumDoc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setDocInterniRequestNumDoc(String docInterniRequestNumDoc) {
|
||||||
|
this.docInterniRequestNumDoc = docInterniRequestNumDoc;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -557,6 +557,12 @@ public class SettingsManager {
|
|||||||
dbSettingsModelIstance.setFlagTracciamentoImballiScaricoEnabled(!UtilityString.isNullOrEmpty(data));
|
dbSettingsModelIstance.setFlagTracciamentoImballiScaricoEnabled(!UtilityString.isNullOrEmpty(data));
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
|
||||||
|
.setGestName("PVM")
|
||||||
|
.setSection("DOC_INTERNI")
|
||||||
|
.setKeySection("REQUEST_NUM_DOC")
|
||||||
|
.setSetter(dbSettingsModelIstance::setDocInterniRequestNumDoc));
|
||||||
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -105,14 +105,24 @@ public class DocInterniViewModel {
|
|||||||
this.numDoc = selection.getNumDoc() != null ? selection.getNumDoc().toString() : null;
|
this.numDoc = selection.getNumDoc() != null ? selection.getNumDoc().toString() : null;
|
||||||
this.note = selection.getNote();
|
this.note = selection.getNote();
|
||||||
|
|
||||||
if (dtbTipi.getCodDtip().equalsIgnoreCase("FRUMA")) {
|
String codAnag = null;
|
||||||
documentRESTConsumer.checkFrumaDocument(
|
if (fornitore != null){
|
||||||
fornitore.getCodAnag(),
|
codAnag = fornitore.getCodAnag();
|
||||||
|
}
|
||||||
|
|
||||||
|
String codDtip = null;
|
||||||
|
if (dtbTipi != null){
|
||||||
|
codDtip = dtbTipi.getCodDtip();
|
||||||
|
}
|
||||||
|
|
||||||
|
documentRESTConsumer.checkDocument(
|
||||||
|
codAnag,
|
||||||
numDoc,
|
numDoc,
|
||||||
UtilityDate.formatDate(dataDoc, "yyyy/MM/dd"),
|
UtilityDate.formatDate(dataDoc, "yyyy/MM/dd"),
|
||||||
|
codDtip,
|
||||||
data -> {
|
data -> {
|
||||||
if (!data) {
|
if (!data) {
|
||||||
this.sendWarning(UtilityResources.getString(R.string.no_doc_found_message), this::init);
|
this.sendWarning("Documento di riferimento non trovato!", this::init);
|
||||||
} else {
|
} else {
|
||||||
action.run();
|
action.run();
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
@ -123,13 +133,6 @@ public class DocInterniViewModel {
|
|||||||
},
|
},
|
||||||
this::sendError
|
this::sendError
|
||||||
);
|
);
|
||||||
} else {
|
|
||||||
action.run();
|
|
||||||
this.sendOnLoadingStarted();
|
|
||||||
fetchProducts(() -> {
|
|
||||||
fetchDocuments(this::sendOnLoadingEnded);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void fetchProducts(Runnable onComplete) {
|
public void fetchProducts(Runnable onComplete) {
|
||||||
|
|||||||
@ -3,10 +3,13 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.dialog;
|
|||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
import androidx.lifecycle.ViewModel;
|
import androidx.lifecycle.ViewModel;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.DocumentRequiredException;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.DocumentRequiredException;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.FornitoreRequiredException;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.exception.FornitoreRequiredException;
|
||||||
@ -33,9 +36,11 @@ public class DialogSelectDocInfoViewModel extends ViewModel {
|
|||||||
private final MutableLiveData<Boolean> noteRequired = new MutableLiveData<>(false);
|
private final MutableLiveData<Boolean> noteRequired = new MutableLiveData<>(false);
|
||||||
|
|
||||||
public DialogSelectDocInfoViewModel() {
|
public DialogSelectDocInfoViewModel() {
|
||||||
|
List<String> requestNumDocList = Arrays.asList(SettingsManager.iDB().getDocInterniRequestNumDoc().split("\\|"));
|
||||||
|
|
||||||
tipoDoc.observeForever(val -> fornitoreRequired.postValue(val != null && (val.getGestioneDoc().equals("T") || val.getGestioneDoc().equals("A") || (val.getGestioneDoc().equals("P") && !val.getGestione().equals("L")))));
|
tipoDoc.observeForever(val -> fornitoreRequired.postValue(val != null && (val.getGestioneDoc().equals("T") || val.getGestioneDoc().equals("A") || (val.getGestioneDoc().equals("P") && !val.getGestione().equals("L")))));
|
||||||
|
|
||||||
tipoDoc.observeForever(val -> documentRequired.postValue(val != null && val.getGestioneDoc().equalsIgnoreCase("P") && !val.getGestione().equalsIgnoreCase("L")));
|
tipoDoc.observeForever(val -> documentRequired.postValue(val != null && (val.getGestioneDoc().equalsIgnoreCase("P") && !val.getGestione().equalsIgnoreCase("L")) || requestNumDocList.contains(Objects.requireNonNull(val).getCodDtip())));
|
||||||
|
|
||||||
tipoDoc.observeForever(val -> noteRequired.postValue(val != null && val.getGestioneDoc().equals("P") && val.getGestione().equals("L")));
|
tipoDoc.observeForever(val -> noteRequired.postValue(val != null && val.getGestioneDoc().equals("P") && val.getGestione().equals("L")));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,37 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.dto;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class RetrieveLottiDTO {
|
||||||
|
|
||||||
|
private String codProd;
|
||||||
|
private String partitaMag;
|
||||||
|
private Date dataScad;
|
||||||
|
|
||||||
|
public String getCodProd() {
|
||||||
|
return codProd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RetrieveLottiDTO setCodProd(String codProd) {
|
||||||
|
this.codProd = codProd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPartitaMag() {
|
||||||
|
return partitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RetrieveLottiDTO setPartitaMag(String partitaMag) {
|
||||||
|
this.partitaMag = partitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataScad() {
|
||||||
|
return dataScad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RetrieveLottiDTO setDataScad(Date dataScad) {
|
||||||
|
this.dataScad = dataScad;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -8,6 +8,7 @@ public class TipoDocDTO {
|
|||||||
private String gestioneDoc;
|
private String gestioneDoc;
|
||||||
private boolean flagChkTracciabilita;
|
private boolean flagChkTracciabilita;
|
||||||
private boolean requireNote = false;
|
private boolean requireNote = false;
|
||||||
|
private boolean suggestLotti;
|
||||||
|
|
||||||
public String getCodDtip() {
|
public String getCodDtip() {
|
||||||
return codDtip;
|
return codDtip;
|
||||||
@ -62,4 +63,13 @@ public class TipoDocDTO {
|
|||||||
this.flagChkTracciabilita = flagChkTracciabilita;
|
this.flagChkTracciabilita = flagChkTracciabilita;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSuggestLotti() {
|
||||||
|
return suggestLotti;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TipoDocDTO setSuggestLotti(boolean suggestLotti) {
|
||||||
|
this.suggestLotti = suggestLotti;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,6 +42,8 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDT
|
|||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsItemListModel;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsItemListModel;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiItemListModel;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiView;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.ui.DocumentRowsListAdapter;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.ui.DocumentRowsListAdapter;
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
|
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||||
@ -302,6 +304,30 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
|
|||||||
.setFlagDig(isUntMisDig ? "S" : "N");
|
.setFlagDig(isUntMisDig ? "S" : "N");
|
||||||
mtbAart.setMtbUntMis(Collections.singletonList(mtbUntMis));
|
mtbAart.setMtbUntMis(Collections.singletonList(mtbUntMis));
|
||||||
|
|
||||||
|
if (this.viewModel.getTipoDoc().isSuggestLotti()) {
|
||||||
|
this.viewModel.retrieveLotti(row.getCodMart(), lotti -> {
|
||||||
|
var dataSet =
|
||||||
|
Stream.of(lotti)
|
||||||
|
.map(x -> new DialogSelectLottiItemListModel<>()
|
||||||
|
.setPartitaMag(x.getPartitaMag())
|
||||||
|
.setDataScad(UtilityDate.toLocalDate(x.getDataScad()))
|
||||||
|
.setOriginalModel(x)
|
||||||
|
)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
DialogSelectLottiView.newInstance(dataSet, data -> {
|
||||||
|
row.setPartitaMag(data.getPartitaMag());
|
||||||
|
row.setDataScad(data.getDataScad());
|
||||||
|
|
||||||
|
openInputQuantity(mtbAart, row, flagTracciabilita);
|
||||||
|
}, () -> {}).show(this.getSupportFragmentManager(), "dialogSelectLotti");;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
openInputQuantity(mtbAart, row, flagTracciabilita);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void openInputQuantity(MtbAart mtbAart, SqlMtbColr row, boolean flagTracciabilita) {
|
||||||
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||||
.setMtbAart(mtbAart)
|
.setMtbAart(mtbAart)
|
||||||
.setInitialNumCnf(BigDecimal.valueOf(row.getNumCnf()))
|
.setInitialNumCnf(BigDecimal.valueOf(row.getNumCnf()))
|
||||||
|
|||||||
@ -19,6 +19,7 @@ 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.exception.NoResultFromCodMartException;
|
import it.integry.integrywmsnative.core.exception.NoResultFromCodMartException;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
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.Ean128Model;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
@ -32,6 +33,7 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.dto.CheckFornitoreDTO
|
|||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.RetrieveLottiDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer;
|
||||||
@ -126,7 +128,7 @@ public class DocInterniEditFormViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void loadArticoloByCodMartOrBarcode(String codMart) {
|
public void loadArticoloByCodMartOrBarcode(String codMart) {
|
||||||
if(productsList == null) {
|
if (productsList == null) {
|
||||||
this.sendError(new NoResultFromCodMartException(codMart));
|
this.sendError(new NoResultFromCodMartException(codMart));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -372,6 +374,10 @@ public class DocInterniEditFormViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void retrieveLotti(String codProd, RunnableArgs<List<RetrieveLottiDTO>> onComplete) {
|
||||||
|
docInterniRESTConsumer.retrieveLotti(codProd, onComplete, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
public void deleteRow(SqlMtbColr sqlMtbColr) {
|
public void deleteRow(SqlMtbColr sqlMtbColr) {
|
||||||
mtbColrRepository.delete(sqlMtbColr, this::fetchDocumentRows, this::sendError);
|
mtbColrRepository.delete(sqlMtbColr, this::fetchDocumentRows, this::sendError);
|
||||||
}
|
}
|
||||||
@ -397,6 +403,10 @@ public class DocInterniEditFormViewModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TipoDocDTO getTipoDoc() {
|
||||||
|
return tipoDoc;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isNotesMandatory() {
|
public boolean isNotesMandatory() {
|
||||||
return this.tipoDoc != null && this.tipoDoc.isRequireNote();
|
return this.tipoDoc != null && this.tipoDoc.isRequireNote();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogSelectLottiComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogSelectLottiComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogSelectLottiView dialogSelectLottiView);
|
||||||
|
}
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
|
public class DialogSelectLottiItemListModel<T> {
|
||||||
|
|
||||||
|
private String partitaMag;
|
||||||
|
private LocalDate dataScad;
|
||||||
|
private T originalModel;
|
||||||
|
private BindableBoolean checked = new BindableBoolean(false);
|
||||||
|
|
||||||
|
public String getPartitaMag() {
|
||||||
|
return partitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSelectLottiItemListModel<T> setPartitaMag(String partitaMag) {
|
||||||
|
this.partitaMag = partitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getDataScad() {
|
||||||
|
return dataScad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDataScadText() {
|
||||||
|
return UtilityDate.formatDate(this.dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSelectLottiItemListModel<T> setDataScad(LocalDate dataScad) {
|
||||||
|
this.dataScad = dataScad;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public T getOriginalModel() {
|
||||||
|
return originalModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSelectLottiItemListModel<T> setOriginalModel(T originalModel) {
|
||||||
|
this.originalModel = originalModel;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BindableBoolean getChecked() {
|
||||||
|
return checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogSelectLottiItemListModel<T> setChecked(BindableBoolean checked) {
|
||||||
|
this.checked = checked;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogSelectLottiComponent.class)
|
||||||
|
public class DialogSelectLottiModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogSelectLottiViewModel providesDialogSelectLottiViewModel() {
|
||||||
|
return new DialogSelectLottiViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,123 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
|
||||||
|
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 com.ravikoradiya.liveadapter.Type;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.BR;
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogSelectLottiBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogSelectLottiItemModelBinding;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @noinspection rawtypes
|
||||||
|
*/
|
||||||
|
public class DialogSelectLottiView extends BaseDialogFragment {
|
||||||
|
@Inject
|
||||||
|
DialogSelectLottiViewModel mViewModel;
|
||||||
|
|
||||||
|
private DialogSelectLottiBinding mBindings;
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
private final List<DialogSelectLottiItemListModel<Object>> listLotti;
|
||||||
|
private final RunnableArgs<DialogSelectLottiItemListModel> onConfirm;
|
||||||
|
private final Runnable onAbort;
|
||||||
|
|
||||||
|
public static DialogSelectLottiView newInstance(List<DialogSelectLottiItemListModel<Object>> listLotti,
|
||||||
|
RunnableArgs<DialogSelectLottiItemListModel> onConfirm,
|
||||||
|
Runnable onAbort) {
|
||||||
|
return new DialogSelectLottiView(listLotti, onConfirm, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogSelectLottiView(List<DialogSelectLottiItemListModel<Object>> listLotti,
|
||||||
|
RunnableArgs<DialogSelectLottiItemListModel> onConfirm,
|
||||||
|
Runnable onAbort) {
|
||||||
|
super();
|
||||||
|
|
||||||
|
this.listLotti = listLotti;
|
||||||
|
this.onConfirm = onConfirm;
|
||||||
|
this.onAbort = onAbort;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
this.mContext = requireContext();
|
||||||
|
|
||||||
|
mBindings = DialogSelectLottiBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialogSelectLottiComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
setCancelable(false);
|
||||||
|
|
||||||
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
|
.setView(mBindings.getRoot())
|
||||||
|
.setCancelable(isCancelable())
|
||||||
|
.setPositiveButton(R.string.confirm, (dialog, which) -> {
|
||||||
|
final DialogSelectLottiItemListModel<Object> selectedItem = Stream.of(listLotti)
|
||||||
|
.filter(x -> x.getChecked().get())
|
||||||
|
.findFirstOrElse(null);
|
||||||
|
if (selectedItem != null)
|
||||||
|
this.onConfirm.run(selectedItem);
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.abort, (dialog, which) -> {
|
||||||
|
if (this.onAbort != null) this.onAbort.run();
|
||||||
|
})
|
||||||
|
.create();
|
||||||
|
|
||||||
|
alertDialog.setCanceledOnTouchOutside(isCancelable());
|
||||||
|
alertDialog.setOnShowListener(this);
|
||||||
|
return alertDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShow(DialogInterface dialogInterface) {
|
||||||
|
super.onShow(dialogInterface);
|
||||||
|
|
||||||
|
this.listLotti.get(0).getChecked().set(true);
|
||||||
|
this.initRecyclerView();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initRecyclerView() {
|
||||||
|
var itemType = new Type<DialogSelectLottiItemListModel, DialogSelectLottiItemModelBinding>(R.layout.dialog_select_lotti__item_model, BR.row);
|
||||||
|
itemType.areContentsTheSame(DialogSelectLottiItemListModel::equals);
|
||||||
|
itemType.onClick(x -> {
|
||||||
|
resetChecks();
|
||||||
|
x.getBinding().getRow().getChecked().set(true);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
new LiveAdapter(listLotti)
|
||||||
|
.map(DialogSelectLottiItemListModel.class, itemType)
|
||||||
|
.into(this.mBindings.itemList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resetChecks() {
|
||||||
|
for (var item : listLotti) {
|
||||||
|
item.getChecked().set(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti;
|
||||||
|
|
||||||
|
public class DialogSelectLottiViewModel {
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,5 +1,9 @@
|
|||||||
package it.integry.integrywmsnative.gest.contab_doc_interni.rest;
|
package it.integry.integrywmsnative.gest.contab_doc_interni.rest;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.exception.RestException;
|
import it.integry.integrywmsnative.core.exception.RestException;
|
||||||
@ -9,6 +13,7 @@ import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.RetrieveLottiDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
@ -38,6 +43,21 @@ public class DocInterniRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void retrieveLotti(String codProd, RunnableArgs<List<RetrieveLottiDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
DocInterniRESTConsumerService service = RESTBuilder.getService(DocInterniRESTConsumerService.class);
|
||||||
|
service.retrieveLotti(codProd)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(@NonNull Call<ServiceRESTResponse<List<RetrieveLottiDTO>>> call, @NonNull Response<ServiceRESTResponse<List<RetrieveLottiDTO>>> response) {
|
||||||
|
analyzeAnswer(response, "retrieveLotti", onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(@NonNull Call<ServiceRESTResponse<List<RetrieveLottiDTO>>> call, @NonNull Throwable t) {
|
||||||
|
onFailed.run(new RestException(t.getMessage()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void saveDoc(SaveDTO saveDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
public void saveDoc(SaveDTO saveDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
magazzinoRESTConsumer.saveTerminalinoWMS(saveDTO, onComplete, onFailed);
|
magazzinoRESTConsumer.saveTerminalinoWMS(saveDTO, onComplete, onFailed);
|
||||||
|
|||||||
@ -1,9 +1,14 @@
|
|||||||
package it.integry.integrywmsnative.gest.contab_doc_interni.rest;
|
package it.integry.integrywmsnative.gest.contab_doc_interni.rest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.documento.RetrieveDocumentoArtsResponseDTO;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.RetrieveLottiDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.http.GET;
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
|
|
||||||
public interface DocInterniRESTConsumerService {
|
public interface DocInterniRESTConsumerService {
|
||||||
@ -11,4 +16,7 @@ public interface DocInterniRESTConsumerService {
|
|||||||
@GET("getDocInterniSetup")
|
@GET("getDocInterniSetup")
|
||||||
Call<ServiceRESTResponse<DocInterniSetupDTO>> getSetupDocInterni();
|
Call<ServiceRESTResponse<DocInterniSetupDTO>> getSetupDocInterni();
|
||||||
|
|
||||||
|
@GET("wms/documento/retrieveLotti")
|
||||||
|
Call<ServiceRESTResponse<List<RetrieveLottiDTO>>> retrieveLotti(
|
||||||
|
@Query("codProd") String codProd);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -279,8 +279,8 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT
|
|||||||
|
|
||||||
var mailRequest = new MailRequestDTO()
|
var mailRequest = new MailRequestDTO()
|
||||||
.setTo("developer@integry.it")
|
.setTo("developer@integry.it")
|
||||||
.setMsgText("Questo è una mail che contiene il log del WMS")
|
.setMsgText("Questa è una mail contenente il log del WMS")
|
||||||
.setSubject("U vuemmeess")
|
.setSubject("Internal WMS log")
|
||||||
.setAttachments(attachmentDTOList);
|
.setAttachments(attachmentDTOList);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
43
app/src/main/res/layout/dialog_select_lotti.xml
Normal file
43
app/src/main/res/layout/dialog_select_lotti.xml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical" android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingVertical="16dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/title_text"
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:layout_marginHorizontal="16dp"
|
||||||
|
android:singleLine="false"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:text="Seleziona lotto" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/item_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
tools:listitem="@layout/dialog_select_lotti__item_model"
|
||||||
|
tools:itemCount="5"/>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
</layout>
|
||||||
79
app/src/main/res/layout/dialog_select_lotti__item_model.xml
Normal file
79
app/src/main/res/layout/dialog_select_lotti__item_model.xml
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
<?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.R" />
|
||||||
|
<import type="android.view.View" />
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="row"
|
||||||
|
type="it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectLotti.DialogSelectLottiItemListModel" />
|
||||||
|
</data>
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="4dp"
|
||||||
|
android:layout_marginVertical="2dp"
|
||||||
|
android:background="@drawable/bg_checked_layout"
|
||||||
|
android:onClick="@{() -> row.checked.toggle()}"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingStart="8dp"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
|
app:backgroundTintResID="@{row.checked.get() ? R.color.bg_checked_layout : android.R.color.transparent}">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatRadioButton
|
||||||
|
android:id="@+id/checkbox"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:minWidth="0dp"
|
||||||
|
android:minHeight="0dp"
|
||||||
|
android:clickable="false"
|
||||||
|
app:checked="@{row.checked}" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/linearLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_toEndOf="@id/checkbox"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/partita_mag_label"
|
||||||
|
style="@style/TextAppearance.Material3.BodyLarge"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{row.partitaMag}"
|
||||||
|
tools:text="PARTITA MAG" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{row.getDataScadText}"
|
||||||
|
style="@style/TextAppearance.Material3.BodyMedium"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:layout_below="@id/partita_mag_label"
|
||||||
|
tools:text="dd/MM/yyyy" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</RelativeLayout>
|
||||||
|
</layout>
|
||||||
Loading…
x
Reference in New Issue
Block a user