diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java index f5d16abf..dcc17409 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java @@ -24,6 +24,6 @@ public interface MtbColrDao { @Delete void delete(SqlMtbColr mtbColr); - @Query("SELECT * from mtb_colr where id_collo = :idDocument") + @Query("SELECT * FROM mtb_colr WHERE id_collo = :idDocument ORDER BY id DESC") List getDocumentRows(long idDocument); } 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 e58bd7b6..a1ab5ea4 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 @@ -47,8 +47,9 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.ui.Document 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.available_items.DialogAvailableItemListModel; +import it.integry.integrywmsnative.view.dialogs.available_items.DialogAvailableItemsView; 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; @@ -231,7 +232,6 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter @Override public void onEditRowRequest(SqlMtbColr row, boolean flagTracciabilita, boolean isUntMisDig) { - this.onLoadingStarted(); MtbAart mtbAart = new MtbAart(); mtbAart.setBarCode(row.getCodBarre()); mtbAart.setDiacod(row.getCodBarre()); @@ -280,7 +280,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter this.onLoadingStarted(); this.viewModel.saveRow(row, resultDTO); }) - .setOnAbort(this::onLoadingEnded) + .setOnAbort(() -> {}) .show(getSupportFragmentManager(), "tag"); } @@ -370,16 +370,22 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter public void showInfoArtDialog() { var listaMtbAart = Stream.of(this.viewModel.getProductsList()) - .map(x -> new MtbAart() + .map(x -> new DialogAvailableItemListModel() .setCodMart(x.getCodMart()) - .setUntMis(x.getUntMis()) - .setDescrizione(x.getDescrizione()) - .setDescrizioneEstesa(x.getDescrizione()) - .setQtaCnf(x.getQtaCnf())) + .setDescrizioneEstesa(x.getDescrizione())) .toList(); - new DialogChooseArtFromListaArtsView(false, listaMtbAart, null) - .show(getSupportFragmentManager(), "tag"); + for (var documentRow : viewModel.getDocumentRows()) { + var codMart = documentRow.getCodMart(); + + Stream.of(listaMtbAart) + .filter(x -> x.getCodMart().equalsIgnoreCase(codMart)) + .forEach(x -> x.setAggiunto(true)); + } + + + new DialogAvailableItemsView(listaMtbAart) + .show(getSupportFragmentManager(), "DialogAvailableInventarioItemsView"); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariViewModel.java index 9d0463d1..26587640 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/ElencoInventariViewModel.java @@ -2,6 +2,8 @@ package it.integry.integrywmsnative.gest.inventario; import androidx.lifecycle.LiveData; +import com.annimon.stream.Stream; + import java.util.List; import java.util.Objects; @@ -65,8 +67,7 @@ public class ElencoInventariViewModel { this.sendCreateInventarioRequest(inventoryId, zone); } else { - var matchedInventory = getInventarioList().getValue() - .stream() + var matchedInventory = Stream.of(getInventarioList().getValue()) .filter(x -> Objects.equals(x.getIdInventario(), inventoryId) && UtilityString.equalsIgnoreCase(x.getZona(), zone) && !x.isSyncronized()) .findFirst() diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java index 21aa5c88..a399dabb 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioActivity.java @@ -40,7 +40,8 @@ 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.available_items.DialogAvailableItemListModel; +import it.integry.integrywmsnative.view.dialogs.available_items.DialogAvailableItemsView; 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; @@ -238,9 +239,19 @@ public class PickingInventarioActivity extends BaseActivity implements PickingIn public void showAvailableArts() { var listaMtbAart = Stream.of(this.mViewModel.getAvailableArts()) .map(InventarioArtDTO::toMtbAart) + .map(DialogAvailableItemListModel::fromMtbAart) .toList(); - new DialogChooseArtFromListaArtsView(false, listaMtbAart, null) - .show(getSupportFragmentManager(), "tag"); + for (var inventoryItem : mViewModel.currentInventarioRows.getValue()) { + var codMart = inventoryItem.getCodMart(); + + Stream.of(listaMtbAart) + .filter(x -> x.getCodMart().equalsIgnoreCase(codMart)) + .forEach(x -> x.setAggiunto(true)); + } + + + new DialogAvailableItemsView(listaMtbAart) + .show(getSupportFragmentManager(), "DialogAvailableInventarioItemsView"); } } \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java new file mode 100644 index 00000000..f8b6220b --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemListModel.java @@ -0,0 +1,44 @@ +package it.integry.integrywmsnative.view.dialogs.available_items; + +import it.integry.integrywmsnative.core.model.MtbAart; + +public class DialogAvailableItemListModel { + + private String codMart; + private String descrizioneEstesa; + + private boolean aggiunto; + + public boolean isAggiunto() { + return aggiunto; + } + + public DialogAvailableItemListModel setAggiunto(boolean aggiunto) { + this.aggiunto = aggiunto; + return this; + } + + public String getCodMart() { + return codMart; + } + + public DialogAvailableItemListModel setCodMart(String codMart) { + this.codMart = codMart; + return this; + } + + public String getDescrizioneEstesa() { + return descrizioneEstesa; + } + + public DialogAvailableItemListModel setDescrizioneEstesa(String descrizioneEstesa) { + this.descrizioneEstesa = descrizioneEstesa; + return this; + } + + public static DialogAvailableItemListModel fromMtbAart(MtbAart mtbAart) { + return new DialogAvailableItemListModel() + .setCodMart(mtbAart.getCodMart()) + .setDescrizioneEstesa(mtbAart.getDescrizioneEstesa()); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java new file mode 100644 index 00000000..5777b43a --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/available_items/DialogAvailableItemsView.java @@ -0,0 +1,65 @@ +package it.integry.integrywmsnative.view.dialogs.available_items; + +import android.app.Dialog; +import android.os.Bundle; +import android.view.LayoutInflater; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import com.ravikoradiya.liveadapter.LiveAdapter; + +import java.util.List; + +import it.integry.integrywmsnative.BR; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; +import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding; +import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration; + +public class DialogAvailableItemsView extends BaseDialogFragment { + + private final List mListaArts; + + + public DialogAvailableItemsView(List listaArts) { + super(); + this.mListaArts = listaArts; + } + + + @NonNull + @Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + var binding = DialogChooseArtFromListaArtBinding.inflate(LayoutInflater.from(requireContext())); + + binding.titleText.setText(R.string.articoli_disponibili); + + initRecyclerView(binding, mListaArts); + + var alertDialog = new MaterialAlertDialogBuilder(requireContext()) + .setView(binding.getRoot()) + .setCancelable(false) + .create(); + + alertDialog.setCanceledOnTouchOutside(false); + alertDialog.setOnShowListener(this); + return alertDialog; + } + + private void initRecyclerView(DialogChooseArtFromListaArtBinding binding, List dataset) { + binding.itemsList.setHasFixedSize(true); + + SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireContext(), SimpleDividerItemDecoration.VERTICAL); + itemDecorator.setDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.divider)); + binding.itemsList.addItemDecoration(itemDecorator); + + + new LiveAdapter(dataset, BR.item) + .map(DialogAvailableItemListModel.class, R.layout.dialog_available_intventario_items__item_model) + .into(binding.itemsList); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArtsAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArtsAdapter.java index 6fa91617..c522e3eb 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArtsAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArtsAdapter.java @@ -31,7 +31,7 @@ public class DialogChooseArtFromListaArtsAdapter extends RecyclerView.Adapter dataset) { - binding.dialogChooseArtFromListaArtMainList.setNestedScrollingEnabled(false); - binding.dialogChooseArtFromListaArtMainList.setHasFixedSize(true); - binding.dialogChooseArtFromListaArtMainList.setLayoutManager(new LinearLayoutManager(requireContext())); + binding.itemsList.setNestedScrollingEnabled(false); + binding.itemsList.setHasFixedSize(true); + binding.itemsList.setLayoutManager(new LinearLayoutManager(requireContext())); SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireContext(), SimpleDividerItemDecoration.VERTICAL); itemDecorator.setDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.divider)); - binding.dialogChooseArtFromListaArtMainList.addItemDecoration(itemDecorator); + binding.itemsList.addItemDecoration(itemDecorator); IRecyclerItemClicked onItemClickListener = (item, position) -> { if (mOnItemChoosed != null) { @@ -77,7 +77,7 @@ public class DialogChooseArtFromListaArtsView extends BaseDialogFragment { DialogChooseArtFromListaArtsAdapter mCurrentAdapter = new DialogChooseArtFromListaArtsAdapter( requireContext(), dataset, this.mEnableSelection ? onItemClickListener : null); - binding.dialogChooseArtFromListaArtMainList.setAdapter(mCurrentAdapter); + binding.itemsList.setAdapter(mCurrentAdapter); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_batch_lot/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_batch_lot/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrAdapter.java index 1253e88e..23f04d4d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_batch_lot/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_batch_lot/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrAdapter.java @@ -32,7 +32,7 @@ public class DialogChooseArtFromListaMtbColrAdapter extends RecyclerView.Adapter } public void bind(MtbAart mtbAart) { - mViewDataBinding.setMtbAart(mtbAart); + mViewDataBinding.setItem(mtbAart); mViewDataBinding.executePendingBindings(); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_batch_lot/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_batch_lot/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrView.java index fdfef0ce..e37c993a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_batch_lot/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_batch_lot/choose_art_from_lista_mtb_colr/DialogChooseArtFromListaMtbColrView.java @@ -55,18 +55,18 @@ public class DialogChooseArtFromListaMtbColrView { } private void initRecyclerView(DialogChooseArtFromListaArtBinding binding, List dataset) { - binding.dialogChooseArtFromListaArtMainList.setNestedScrollingEnabled(false); + binding.itemsList.setNestedScrollingEnabled(false); - binding.dialogChooseArtFromListaArtMainList.setHasFixedSize(true); + binding.itemsList.setHasFixedSize(true); - binding.dialogChooseArtFromListaArtMainList.setLayoutManager(new LinearLayoutManager(currentContext)); + binding.itemsList.setLayoutManager(new LinearLayoutManager(currentContext)); SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(currentContext, SimpleDividerItemDecoration.VERTICAL); itemDecorator.setDrawable(ContextCompat.getDrawable(currentContext, R.drawable.divider)); - binding.dialogChooseArtFromListaArtMainList.addItemDecoration(itemDecorator); + binding.itemsList.addItemDecoration(itemDecorator); currentAdapter = new DialogChooseArtFromListaMtbColrAdapter(currentContext, dataset, onItemClicked); - binding.dialogChooseArtFromListaArtMainList.setAdapter(currentAdapter); + binding.itemsList.setAdapter(currentAdapter); } private IRecyclerItemClicked onItemClicked = (item, position) -> { diff --git a/app/src/main/res/drawable/ic_verified_account__green_800.xml b/app/src/main/res/drawable/ic_verified_account__green_800.xml new file mode 100644 index 00000000..9f4555a9 --- /dev/null +++ b/app/src/main/res/drawable/ic_verified_account__green_800.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/dialog_available_intventario_items__item_model.xml b/app/src/main/res/layout/dialog_available_intventario_items__item_model.xml new file mode 100644 index 00000000..9bbd4696 --- /dev/null +++ b/app/src/main/res/layout/dialog_available_intventario_items__item_model.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml b/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml index 53f552c3..e865c3d2 100644 --- a/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml +++ b/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml @@ -35,9 +35,11 @@ diff --git a/app/src/main/res/layout/dialog_choose_art_from_lista_art__item_model.xml b/app/src/main/res/layout/dialog_choose_art_from_lista_art__item_model.xml index 159d8ebf..691d124b 100644 --- a/app/src/main/res/layout/dialog_choose_art_from_lista_art__item_model.xml +++ b/app/src/main/res/layout/dialog_choose_art_from_lista_art__item_model.xml @@ -6,13 +6,11 @@ - - @@ -37,7 +35,7 @@ @@ -60,7 +58,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="end" - android:text="@{mtbAart.descrizioneEstesa}" + android:text="@{item.descrizioneEstesa}" android:textColor="@android:color/black" android:textSize="16sp" tools:text="Descrizione lunga articolo" />