Merge branch 'develop' into feature/Popup_InfoArticolo
This commit is contained in:
@@ -115,4 +115,6 @@ public class BaseDialogFragment extends DialogFragment implements DialogInterfac
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -48,7 +48,6 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
|
||||
private FragmentDocInterniBinding mBinding;
|
||||
private DocInterniSetupDTO mDocInterniSetupDTO;
|
||||
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||
private boolean dialogInitialized = false;
|
||||
|
||||
|
||||
public DocInterniFragment() {
|
||||
@@ -80,8 +79,10 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
|
||||
|
||||
mViewModel.setListeners(this);
|
||||
mBinding.setLifecycleOwner(this);
|
||||
|
||||
mBinding.setView(this);
|
||||
mBinding.setViewModel(mViewModel);
|
||||
|
||||
mViewModel.mtbGrup.observe(getViewLifecycleOwner(), mtbGrup -> mViewModel.fetchProducts());
|
||||
mViewModel.dtbTipi.observe(getViewLifecycleOwner(), dtbTipi -> mViewModel.fetchDocuments());
|
||||
this.initRecyclerView();
|
||||
@@ -110,8 +111,7 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
|
||||
@Override
|
||||
public void onDocInterniSetupFetched(DocInterniSetupDTO docInterniSetupDTO) {
|
||||
this.mDocInterniSetupDTO = docInterniSetupDTO;
|
||||
this.dialogInitialized = true;
|
||||
this.selectDocInfo();
|
||||
this.openDocumentSelectionDialog();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -125,11 +125,11 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
|
||||
}
|
||||
|
||||
|
||||
if (selection.getGruppoArt() != null) {
|
||||
mBinding.mtbGrpContainer.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mBinding.mtbGrpContainer.setVisibility(View.GONE);
|
||||
}
|
||||
// if (selection.getGruppoArt() != null) {
|
||||
// mBinding.mtbGrpContainer.setVisibility(View.VISIBLE);
|
||||
// } else {
|
||||
// mBinding.mtbGrpContainer.setVisibility(View.GONE);
|
||||
// }
|
||||
|
||||
if (selection.isDocumentRequired()) {
|
||||
mBinding.docContainer.setVisibility(View.VISIBLE);
|
||||
@@ -150,15 +150,16 @@ public class DocInterniFragment extends BaseFragment implements ITitledFragment,
|
||||
this.mOnPreDestroyList.add(onPreDestroy);
|
||||
}
|
||||
|
||||
public void selectDocInfo() {
|
||||
if (this.dialogInitialized) {
|
||||
public void openDocumentSelectionDialog() {
|
||||
DialogSelectDocInfoView.newInstance(
|
||||
mDocInterniSetupDTO,
|
||||
this::onDocDetailsChanged,
|
||||
this::popMe)
|
||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||
}
|
||||
|
||||
public void showInfoArtDialog() {
|
||||
|
||||
DialogSelectDocInfoView.newInstance(
|
||||
mDocInterniSetupDTO,
|
||||
this::onDocDetailsChanged,
|
||||
this::popMe)
|
||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||
}
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
|
||||
@@ -50,6 +50,7 @@ public class DialogSelectDocInfoView extends BaseDialogFragment {
|
||||
private final RunnableArgs<DialogSelectDocInfoResponseDTO> onConfirm;
|
||||
private final Runnable onAbort;
|
||||
|
||||
private boolean completed = false;
|
||||
|
||||
public ObservableField<TipoDocDTO> selectedTipoDoc = new ObservableField<>();
|
||||
public ObservableField<GruppoArticoloDTO> selectedGroupArt = new ObservableField<>();
|
||||
@@ -95,7 +96,7 @@ public class DialogSelectDocInfoView extends BaseDialogFragment {
|
||||
|
||||
mViewModel.setFornitori(mDocInputData.getFornitori());
|
||||
|
||||
var cancelable = true;
|
||||
var cancelable = false;
|
||||
|
||||
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||
.setView(mBindings.getRoot())
|
||||
@@ -110,6 +111,8 @@ public class DialogSelectDocInfoView extends BaseDialogFragment {
|
||||
|
||||
alertDialog.setOnShowListener(this);
|
||||
alertDialog.setCanceledOnTouchOutside(cancelable);
|
||||
alertDialog.setOnDismissListener(this);
|
||||
|
||||
|
||||
return alertDialog;
|
||||
}
|
||||
@@ -135,6 +138,7 @@ public class DialogSelectDocInfoView extends BaseDialogFragment {
|
||||
mBindings.inputNoteLayout.setError(null);
|
||||
|
||||
mViewModel.validate();
|
||||
completed = true;
|
||||
alertDialog.dismiss();
|
||||
|
||||
if (this.onConfirm != null)
|
||||
@@ -174,6 +178,7 @@ public class DialogSelectDocInfoView extends BaseDialogFragment {
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void initBindings() {
|
||||
this.isFornitoreRequired.set(mViewModel.isFornitoreRequired().getValue());
|
||||
mViewModel.isFornitoreRequired().observe(this, val -> this.isFornitoreRequired.set(val));
|
||||
@@ -227,7 +232,7 @@ public class DialogSelectDocInfoView extends BaseDialogFragment {
|
||||
.getOriginalModel());
|
||||
});
|
||||
|
||||
var arrayAdapterFornitori = new DialogSelectDocInfo_FornitoreAdapter(mContext, R.layout.array_adapter_single_item, mDocInputData.getFornitori());
|
||||
var arrayAdapterFornitori = new DialogSelectDocInfo_FornitoreAdapter(mContext, R.layout.array_adapter_single_item, mViewModel.getAvailableFornitori());
|
||||
mBindings.filledExposedDropdownCodAnagList.setAdapter(arrayAdapterFornitori);
|
||||
mBindings.filledExposedDropdownCodAnagList.setOnItemClickListener((adapterView, view, i, l) -> {
|
||||
this.selectedFornitore.set(
|
||||
@@ -239,4 +244,11 @@ public class DialogSelectDocInfoView extends BaseDialogFragment {
|
||||
mBindings.filledExposedDropdownNote.setAdapter(arrayAdapterNote);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||
super.onDismiss(dialog);
|
||||
|
||||
if(!completed)
|
||||
this.onAbort.run();
|
||||
}
|
||||
}
|
||||
@@ -54,6 +54,10 @@ public class DialogSelectDocInfoViewModel extends ViewModel {
|
||||
val.getGestione().equals("L")));
|
||||
}
|
||||
|
||||
public MutableLiveData<List<FornitoreDTO>> getAvailableFornitori() {
|
||||
return availableFornitori;
|
||||
}
|
||||
|
||||
public void setFornitori(List<FornitoreDTO> fornitori) {
|
||||
tipoDoc.observeForever(val -> {
|
||||
availableFornitori.postValue(Stream.of(fornitori)
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
@@ -13,17 +14,20 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.dto.FornitoreDTO;
|
||||
|
||||
public class DialogSelectDocInfo_FornitoreAdapter extends ArrayAdapter<DialogSelectDocInfo_FornitoreAdapter.ListModel> {
|
||||
|
||||
public DialogSelectDocInfo_FornitoreAdapter(@NonNull Context context, int resource, List<FornitoreDTO> inputData) {
|
||||
public DialogSelectDocInfo_FornitoreAdapter(@NonNull Context context, int resource, MutableLiveData<List<FornitoreDTO>> inputData) {
|
||||
super(context, resource);
|
||||
|
||||
if (inputData == null) return;
|
||||
|
||||
List<ListModel> mDataset = Stream.of(inputData)
|
||||
.map(x -> new ListModel()
|
||||
.setOriginalModel(x))
|
||||
.toList();
|
||||
inputData.observeForever(data -> {
|
||||
List<ListModel> mDataset = Stream.of(data)
|
||||
.map(x -> new ListModel()
|
||||
.setOriginalModel(x))
|
||||
.toList();
|
||||
|
||||
addAll(mDataset);
|
||||
clear();
|
||||
addAll(mDataset);
|
||||
});
|
||||
}
|
||||
|
||||
public static class ListModel {
|
||||
|
||||
@@ -47,6 +47,7 @@ import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
|
||||
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||
|
||||
@@ -94,10 +95,12 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
binding = DataBindingUtil.setContentView(this, R.layout.activity_contab_doc_interni_edit);
|
||||
|
||||
MainApplication.appComponent
|
||||
.docInterniEditFormComponent()
|
||||
.create()
|
||||
.inject(this);
|
||||
|
||||
SqlMtbColt document = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_DOCUMENT));
|
||||
List<DocumentoArtDTO> productList = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_PRODUCTS_LIST));
|
||||
TipoDocDTO docType = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_TIPO_DOC));
|
||||
@@ -117,11 +120,11 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
|
||||
SqlMtbColt document = this.viewModel.getDocument();
|
||||
this.codDtip.set(document.getCodDtipProvv());
|
||||
this.note.set(document.getAnnotazioni());
|
||||
|
||||
if (document.getCodMgrp() != null) {
|
||||
this.codMgrp.set(document.getCodMgrp());
|
||||
} else {
|
||||
binding.mtbGrupContainer.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if (document.getCodAnag() != null) {
|
||||
this.codAnag.set(document.getCodAnag() + (document.getCodVdes() != null ? " - " + document.getCodVdes() : ""));
|
||||
} else {
|
||||
@@ -131,7 +134,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
|
||||
this.documentHeader.set(String.format(this.getString(R.string.doc_interni_doc_header), document.getId(), document.getCodDtipProvv()));
|
||||
|
||||
if (document.getNumDoc() != null && document.getDataDoc() != null) {
|
||||
this.documentRifHeader.set(String.format(this.getString(R.string.doc_testata), document.getNumDoc().toString(), document.getDataDoc()));
|
||||
this.documentRifHeader.set(String.format(this.getString(R.string.doc_testata), document.getNumDoc().toString(), UtilityDate.formatDate(document.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)));
|
||||
} else {
|
||||
this.binding.docRifLayout.setVisibility(View.GONE);
|
||||
}
|
||||
@@ -349,4 +352,20 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
|
||||
.findFirstOrElse(null);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void showInfoArtDialog() {
|
||||
var listaMtbAart = Stream.of(this.viewModel.getProductsList())
|
||||
.map(x -> new MtbAart()
|
||||
.setCodMart(x.getCodMart())
|
||||
.setUntMis(x.getUntMis())
|
||||
.setDescrizione(x.getDescrizione())
|
||||
.setDescrizioneEstesa(x.getDescrizione())
|
||||
.setQtaCnf(x.getQtaCnf()))
|
||||
.toList();
|
||||
|
||||
new DialogChooseArtFromListaArtsView(false, listaMtbAart, null)
|
||||
.show(getSupportFragmentManager(), "tag");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -264,6 +264,10 @@ public class DocInterniEditFormViewModel {
|
||||
return document.getValue();
|
||||
}
|
||||
|
||||
public List<DocumentoArtDTO> getProductsList() {
|
||||
return productsList;
|
||||
}
|
||||
|
||||
public void setProductsList(List<DocumentoArtDTO> productsList) {
|
||||
this.productsList = productsList;
|
||||
this.flattedBarcodesCodMarts = new HashMap<>();
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.view.Menu;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||
import com.ravikoradiya.liveadapter.Type;
|
||||
|
||||
@@ -38,6 +39,7 @@ import it.integry.integrywmsnative.gest.inventario.bottom_sheet__inventario_row_
|
||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNoView;
|
||||
@@ -229,4 +231,13 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn
|
||||
})
|
||||
.show(getSupportFragmentManager(), "tag");
|
||||
}
|
||||
|
||||
public void showAvailableArts() {
|
||||
var listaMtbAart = Stream.of(this.mViewModel.getAvailableArts())
|
||||
.map(InventarioArtDTO::toMtbAart)
|
||||
.toList();
|
||||
|
||||
new DialogChooseArtFromListaArtsView(false, listaMtbAart, null)
|
||||
.show(getSupportFragmentManager(), "tag");
|
||||
}
|
||||
}
|
||||
@@ -138,7 +138,6 @@ public class PVOrdineAcquistoEditViewModel {
|
||||
} catch (Exception e) {
|
||||
this.sendError(e);
|
||||
BarcodeManager.enable();
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -301,7 +301,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
|
||||
|
||||
@Override
|
||||
public void onArtListLoaded(ArrayList<MtbAart> artList, RunnableArgs<MtbAart> onArtChoosed) {
|
||||
new DialogChooseArtFromListaArtsView(artList, onArtChoosed)
|
||||
new DialogChooseArtFromListaArtsView(true, artList, onArtChoosed)
|
||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||
}
|
||||
|
||||
|
||||
@@ -941,7 +941,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
|
||||
@Override
|
||||
public void onChooseArtRequest(List<MtbAart> artsList, RunnableArgs<MtbAart> onComplete) {
|
||||
new DialogChooseArtFromListaArtsView(artsList, onComplete)
|
||||
new DialogChooseArtFromListaArtsView(true, artsList, onComplete)
|
||||
.show(getSupportFragmentManager(), "tag");
|
||||
}
|
||||
|
||||
|
||||
@@ -1240,9 +1240,12 @@ public class SpedizioneViewModel {
|
||||
return;
|
||||
}
|
||||
|
||||
var clonedSourceMtbColr = (MtbColr) mtbColrToDispatch.clone();
|
||||
clonedSourceMtbColr.setMtbPartitaMag(null)
|
||||
.setMtbAart(null);
|
||||
MtbColr clonedSourceMtbColr = null;
|
||||
if (mtbColrToDispatch != null) {
|
||||
clonedSourceMtbColr = (MtbColr) mtbColrToDispatch.clone();
|
||||
clonedSourceMtbColr.setMtbPartitaMag(null)
|
||||
.setMtbAart(null);
|
||||
}
|
||||
|
||||
var clonedTargetMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||
clonedTargetMtbColt.setMtbColr(null);
|
||||
@@ -1341,7 +1344,6 @@ public class SpedizioneViewModel {
|
||||
}, this::sendError);
|
||||
|
||||
|
||||
|
||||
// MtbColt mtbColt = new MtbColt()
|
||||
// .setNumCollo(mtbColrToUpdate.getNumCollo())
|
||||
// .setDataCollo(mtbColrToUpdate.getDataColloS())
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
@@ -18,7 +19,7 @@ public class DialogChooseArtFromListaArtsAdapter extends RecyclerView.Adapter<Di
|
||||
protected Context mContext;
|
||||
|
||||
private List<MtbAart> mDataset;
|
||||
private IRecyclerItemClicked<MtbAart> mOnItemClickListener;
|
||||
private final IRecyclerItemClicked<MtbAart> mOnItemClickListener;
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
protected DialogChooseArtFromListaArtItemModelBinding mViewDataBinding;
|
||||
|
||||
@@ -16,6 +16,7 @@ import java.util.List;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding;
|
||||
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
||||
@@ -23,12 +24,15 @@ import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
||||
public class DialogChooseArtFromListaArtsView extends BaseDialogFragment {
|
||||
|
||||
|
||||
private final boolean mEnableSelection;
|
||||
private final List<MtbAart> mListaArts;
|
||||
private final RunnableArgs<MtbAart> mOnItemChoosed;
|
||||
|
||||
|
||||
public DialogChooseArtFromListaArtsView(List<MtbAart> listaArts, RunnableArgs<MtbAart> onItemChoosed) {
|
||||
public DialogChooseArtFromListaArtsView(boolean enableSelection, List<MtbAart> listaArts, RunnableArgs<MtbAart> onItemChoosed) {
|
||||
super();
|
||||
|
||||
this.mEnableSelection = enableSelection;
|
||||
this.mListaArts = listaArts;
|
||||
this.mOnItemChoosed = onItemChoosed;
|
||||
}
|
||||
@@ -39,6 +43,9 @@ public class DialogChooseArtFromListaArtsView extends BaseDialogFragment {
|
||||
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||
var binding = DialogChooseArtFromListaArtBinding.inflate(LayoutInflater.from(requireContext()));
|
||||
|
||||
binding.titleText.setText(this.mEnableSelection ? R.string.dialog_choose_art_from_lista_art :
|
||||
R.string.articoli_disponibili);
|
||||
|
||||
initRecyclerView(binding, mListaArts);
|
||||
|
||||
var alertDialog = new MaterialAlertDialogBuilder(requireContext())
|
||||
@@ -60,14 +67,16 @@ public class DialogChooseArtFromListaArtsView extends BaseDialogFragment {
|
||||
itemDecorator.setDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.divider));
|
||||
binding.dialogChooseArtFromListaArtMainList.addItemDecoration(itemDecorator);
|
||||
|
||||
DialogChooseArtFromListaArtsAdapter mCurrentAdapter = new DialogChooseArtFromListaArtsAdapter(requireContext(), dataset,
|
||||
((item, position) -> {
|
||||
if (mOnItemChoosed != null) {
|
||||
mOnItemChoosed.run(item);
|
||||
}
|
||||
IRecyclerItemClicked<MtbAart> onItemClickListener = (item, position) -> {
|
||||
if (mOnItemChoosed != null) {
|
||||
mOnItemChoosed.run(item);
|
||||
}
|
||||
|
||||
dismiss();
|
||||
}));
|
||||
dismiss();
|
||||
};
|
||||
|
||||
DialogChooseArtFromListaArtsAdapter mCurrentAdapter = new DialogChooseArtFromListaArtsAdapter(
|
||||
requireContext(), dataset, this.mEnableSelection ? onItemClickListener : null);
|
||||
binding.dialogChooseArtFromListaArtMainList.setAdapter(mCurrentAdapter);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user