bugfix ConcurrentModificationException in aggiunta articoli atumatica in nuovo ordine acquisto
This commit is contained in:
parent
2c521c5f96
commit
5e88833039
@ -10,7 +10,6 @@ import android.widget.Toast;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||
@ -34,7 +33,6 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPvArticoliOrdineAcquistoListSingleItemBinding;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEditArticoloView;
|
||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.ui.OrdineAcquistoArtListModel;
|
||||
import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
|
||||
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
|
||||
@ -53,8 +51,6 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
||||
@Inject
|
||||
PVOrdineAcquistoEditViewModel mViewModel;
|
||||
|
||||
private final ObservableArrayList<OrdineAcquistoArtListModel> mArticoliMutableData = new ObservableArrayList<>();
|
||||
|
||||
|
||||
public static Intent newInstance(Context context, Ordine ordine) {
|
||||
Intent myIntent = new Intent(context, PVOrdineAcquistoEditActivity.class);
|
||||
|
||||
@ -117,6 +117,27 @@ public class PVOrdineAcquistoEditViewModel {
|
||||
this.mArticoli.postValue(newList);
|
||||
}
|
||||
|
||||
public void saveArticoli(List<ArticoloOrdine> articoli) {
|
||||
var newList = this.mArticoli.getValue();
|
||||
if (newList == null) {
|
||||
newList = new ArrayList<>();
|
||||
}
|
||||
|
||||
for (ArticoloOrdine articolo : articoli) {
|
||||
setBgTint(articolo);
|
||||
|
||||
var alreadySavedItem = Stream.of(newList)
|
||||
.filter(x -> Objects.equals(x.getCodMart(), articolo.getCodMart()))
|
||||
.findFirst();
|
||||
|
||||
if (alreadySavedItem.isPresent()) newList.remove(alreadySavedItem.get());
|
||||
newList.add(articolo);
|
||||
}
|
||||
|
||||
|
||||
this.mArticoli.postValue(newList);
|
||||
}
|
||||
|
||||
|
||||
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||
this.checkArticolo(
|
||||
@ -225,8 +246,7 @@ public class PVOrdineAcquistoEditViewModel {
|
||||
});
|
||||
if (!articoliToSave.isEmpty()) {
|
||||
mArticoliOrdineRepository.saveArticoliToOrdine(articoliToSave, () -> {
|
||||
Stream.of(articoliToSave).forEach(this::saveArticolo);
|
||||
|
||||
this.saveArticoli(articoliToSave);
|
||||
this.sendOnLoadingEnded();
|
||||
|
||||
}, this::sendError);
|
||||
|
||||
@ -53,9 +53,7 @@ public class OrdineAcquistoPvHelper {
|
||||
|
||||
|
||||
mGrigliaRepository.saveGriglia(griglia, id -> {
|
||||
saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, grigliaResult -> {
|
||||
onSaved.run(grigliaResult);
|
||||
}, onFail);
|
||||
saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSaved, onFail);
|
||||
}, onFail);
|
||||
});
|
||||
}, onFail);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user