In accettazione da bolla l'ultima referenza scansionata deve comparire all'inizio dell'elenco

This commit is contained in:
Marco Elefante 2025-01-15 16:02:01 +01:00
parent 00fc3a59eb
commit 019688a5cc

View File

@ -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<AccettazioneBollaPickingListModel> 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();
}