diff --git a/app/src/main/java/it/integry/integrywmsnative/core/mapper/InventarioRowMapper.java b/app/src/main/java/it/integry/integrywmsnative/core/mapper/InventarioRowMapper.java index f54b84c9..36768b5f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/mapper/InventarioRowMapper.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/mapper/InventarioRowMapper.java @@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.mapper; import it.integry.integrywmsnative.core.data_store.db.entity.InventarioRowRoomDTO; import it.integry.integrywmsnative.core.model.MtbInvenr; +import it.integry.integrywmsnative.core.settings.SettingsManager; public class InventarioRowMapper extends BaseMapper { @@ -32,6 +33,7 @@ public class InventarioRowMapper extends BaseMapper allowedCodMgrpForArtCreation; + private boolean flagAccettazioneGroupListForn = false; public boolean isFlagSpedizioneEnableFakeGiacenza() { return flagSpedizioneEnableFakeGiacenza; @@ -733,4 +734,12 @@ public class DBSettingsModel { this.flagPositionChangeRequest = flagPositionChangeRequest; return this; } + + public boolean isFlagAccettazioneGroupListForn() { + return flagAccettazioneGroupListForn; + } + + public void setFlagAccettazioneGroupListForn(boolean flagAccettazioneGroupListForn) { + this.flagAccettazioneGroupListForn = flagAccettazioneGroupListForn; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index 5b59af13..1a4f4bd9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -243,6 +243,11 @@ public class SettingsManager { .setSection("ACCETTAZIONE") .setKeySection("FLAG_AUTO_OPEN_NEW_UL") .setSetter(dbSettingsModelIstance::setFlagCanAutoOpenNewULAccettazione)); + stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class) + .setGestName("PICKING") + .setSection("ACCETTAZIONE") + .setKeySection("FLAG_GROUP_LIST_FORN") + .setSetter(dbSettingsModelIstance::setFlagAccettazioneGroupListForn)); stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class) .setGestName("PICKING") .setSection("ACCETTAZIONE") diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoFragment.java index ecb7bda6..187a9895 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_elenco/MainAccettazioneBollaElencoFragment.java @@ -25,6 +25,7 @@ import it.integry.integrywmsnative.core.di.BindableBoolean; import it.integry.integrywmsnative.core.expansion.BaseFragment; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBollaBinding; import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO; @@ -166,7 +167,7 @@ public class MainAccettazioneBollaElencoFragment extends BaseFragment implements this.mBolleInevaseMutableData.clear(); - if(tmpList != null) + if (tmpList != null) this.mBolleInevaseMutableData.addAll(convertDataModelToListModel(tmpList)); } @@ -182,33 +183,44 @@ public class MainAccettazioneBollaElencoFragment extends BaseFragment implements } - - - private List convertDataModelToListModel(List dataList) { - if(dataList == null) - return null; + boolean group = !SettingsManager.iDB().isFlagAccettazioneGroupListForn(); + if (dataList == null) return null; - final Comparator comparer = Comparator.comparing(TestataBollaAccettazioneDTO::getListino) - .thenComparing(TestataBollaAccettazioneDTO::getRagSoc) - .thenComparing(TestataBollaAccettazioneDTO::getNumDoc); + Stream stream = Stream.of(dataList); - return Stream.of(dataList) - .sorted(comparer) - .map(x -> { - MainAccettazioneBolleElencoListModel listModel = new MainAccettazioneBolleElencoListModel(); + if (group) { + final Comparator comparer = Comparator.comparing(TestataBollaAccettazioneDTO::getListino) + .thenComparing(TestataBollaAccettazioneDTO::getRagSoc) + .thenComparing(TestataBollaAccettazioneDTO::getNumDoc); + stream = stream.sorted(comparer); + } else { + stream = stream.sortBy(x -> x.getRagSoc() + UtilityDate.formatDate(x.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)); + } - listModel.setOriginalModel(x); - listModel.setGroupTitle(x.getListino() + " - " + x.getRagSoc()); - listModel.setDescription(String.format(getString(R.string.ord_acq_testata), x.getNumDoc(), UtilityDate.formatDate(x.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN))); + return stream.map(x -> { + MainAccettazioneBolleElencoListModel listModel = new MainAccettazioneBolleElencoListModel(); + listModel.setOriginalModel(x); - listModel.setSubDescription(x.getDescrizioneListino()); - listModel.setRightDescription(x.getCodAnag()); - listModel.setRightSubDescription(x.getCodJcom()); + if (group) + listModel.setGroupTitle(x.getListino() + " - " + x.getRagSoc()); + else + listModel.setGroupTitle(x.getRagSoc()); - return listModel; - }) - .toList(); + listModel.setDescription(String.format(getString(R.string.ord_acq_testata), + x.getNumDoc(), + UtilityDate.formatDate(x.getDataDoc(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN))); + + if (group) + listModel.setSubDescription(x.getDescrizioneListino()); + else + listModel.setSubDescription(x.getListino() + " - " + x.getDescrizioneListino()); + + listModel.setRightDescription(x.getCodAnag()); + listModel.setRightSubDescription(x.getCodJcom()); + + return listModel; + }).toList(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java index 6e8b80eb..0e94d5e8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/AccettazioneBollaPickingViewModel.java @@ -544,10 +544,6 @@ public class AccettazioneBollaPickingViewModel { initialQtaCnf = qtaCnfDaPrelevare; initialQtaTot = qtaColDaPrelevare; - } else if (totalQtaDoc != null) { - initialNumCnf = totalNumCnfDoc; - initialQtaCnf = qtaCnfDoc; - initialQtaTot = totalQtaDoc; } else { initialNumCnf = BigDecimal.ONE; initialQtaCnf = mtbAart.getQtaCnf(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java index bf8f8a83..3b81d9c4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java @@ -2,10 +2,12 @@ package it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui; import android.content.Context; import android.graphics.Color; +import android.os.Build; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.res.ResourcesCompat; import androidx.databinding.ObservableArrayList; @@ -15,7 +17,11 @@ import androidx.recyclerview.widget.RecyclerView; import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback; @@ -62,10 +68,29 @@ public class AccettazioneBollaPickingListAdapter extends SectionedRecyclerViewAd this.mShowSecondaryUntMis = showSecondaryUntMis; mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() { + @RequiresApi(api = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) @Override public void onChanged(ObservableList sender) { + List listaOrdinata = new ArrayList<>(); + if (!sender.isEmpty()) { + listaOrdinata = new ArrayList<>(sender); + + Collections.sort(listaOrdinata, (a, b) -> { + + boolean condA = a.getQtaEvasa().subtract(a.getQtaTot()).floatValue() == 0; + boolean condB = b.getQtaEvasa().subtract(b.getQtaTot()).floatValue() == 0; + + if (condA && !condB) { + return -1; + } else if (!condA && condB) { + return 1; + } + return 0; + }); + } + mDataset.clear(); - mDataset.addAll(sender); + mDataset.addAll(listaOrdinata); notifyDataSetChanged(); notifyDataChanged(); }