Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
8039d1942d
@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 447
|
def appVersionCode = 448
|
||||||
def appVersionName = '1.40.30'
|
def appVersionName = '1.41.00'
|
||||||
|
|
||||||
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();
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
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