Completata implementazione ordini di lavorazione in accettazione
This commit is contained in:
parent
3097691b48
commit
3573480ca1
@ -22,6 +22,7 @@ import android.widget.Toast;
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
@ -147,8 +148,6 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
||||
|
||||
private void groupOrdiniAndMakeRecycler(List<OrdineAccettazioneInevasoDTO> ordini){
|
||||
|
||||
String prevCodAnag = "";
|
||||
|
||||
for(OrdineAccettazioneInevasoDTO ordine : ordini){
|
||||
if(UtilityString.isNullOrEmpty(ordine.codJcom) || ordine.codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){
|
||||
ordine.codJcom = CommonConst.Config.COMMESSA_MAG;
|
||||
@ -159,84 +158,82 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
||||
groupedOrdiniInevasi = new ArrayList<>();
|
||||
|
||||
//Splitto gli ordini per codAnagClie
|
||||
for(int i = 0; i < ordini.size(); i++){
|
||||
if(prevCodAnag.equalsIgnoreCase(ordini.get(i).codAnagOrd)) continue;
|
||||
else prevCodAnag = ordini.get(i).codAnagOrd;
|
||||
|
||||
List<OrdineAccettazioneGroupedInevasoDTO> groupedOrdini = Stream.of(ordini)
|
||||
.map(x -> {
|
||||
OrdineAccettazioneGroupedInevasoDTO groupedOrdine = new OrdineAccettazioneGroupedInevasoDTO();
|
||||
|
||||
groupedOrdine.codAnagForn = ordini.get(i).codAnagOrd;
|
||||
groupedOrdine.nomeFornitore = ordini.get(i).ragSocOrd;
|
||||
groupedOrdine.codAnagForn = x.codAnagOrd;
|
||||
groupedOrdine.nomeFornitore = x.ragSocOrd;
|
||||
groupedOrdine.ordini = new ArrayList<>();
|
||||
|
||||
List<OrdineAccettazioneInevasoDTO> filteredByCodAnagOrders =
|
||||
Coollection
|
||||
.from(ordini)
|
||||
.where("codAnagOrd", Coollection.eq(ordini.get(i).codAnagOrd)).all();
|
||||
return groupedOrdine;
|
||||
})
|
||||
.distinctBy(x -> x.codAnagForn + "_" + x.nomeFornitore)
|
||||
.toList();
|
||||
|
||||
|
||||
int prevNumOrd = -1;
|
||||
String prevDataOrd = "";
|
||||
Stream.of(groupedOrdini).forEach(groupedOrdine -> {
|
||||
|
||||
|
||||
//Splitto gli ordini di ogni fornitore per data e numero
|
||||
for(int j = 0; j < filteredByCodAnagOrders.size(); j++) {
|
||||
if( prevNumOrd == filteredByCodAnagOrders.get(j).numero &&
|
||||
prevDataOrd.equalsIgnoreCase(filteredByCodAnagOrders.get(j).data)) continue;
|
||||
|
||||
else {
|
||||
prevNumOrd = filteredByCodAnagOrders.get(j).numero;
|
||||
prevDataOrd = filteredByCodAnagOrders.get(j).data;
|
||||
}
|
||||
List<OrdineAccettazioneGroupedInevasoDTO.Ordine> tmpOrd = Stream.of(ordini)
|
||||
.filter(x -> x.codAnagOrd.equals(groupedOrdine.codAnagForn))
|
||||
.map(x -> {
|
||||
|
||||
OrdineAccettazioneGroupedInevasoDTO.Ordine rigaOrdine = new OrdineAccettazioneGroupedInevasoDTO.Ordine();
|
||||
|
||||
rigaOrdine.data = filteredByCodAnagOrders.get(j).data;
|
||||
rigaOrdine.numero = filteredByCodAnagOrders.get(j).numero;
|
||||
rigaOrdine.codAnagOrd = filteredByCodAnagOrders.get(j).codAnagOrd;
|
||||
rigaOrdine.ragSocOrd = filteredByCodAnagOrders.get(j).ragSocOrd;
|
||||
rigaOrdine.pesoTotale = filteredByCodAnagOrders.get(j).pesoTotale;
|
||||
rigaOrdine.barcode = filteredByCodAnagOrders.get(j).barcode;
|
||||
rigaOrdine.termCons = filteredByCodAnagOrders.get(j).termCons;
|
||||
rigaOrdine.dataCons = filteredByCodAnagOrders.get(j).dataCons;
|
||||
rigaOrdine.rifOrd = filteredByCodAnagOrders.get(j).rifOrd;
|
||||
rigaOrdine.data = x.data;
|
||||
rigaOrdine.numero = x.numero;
|
||||
rigaOrdine.codAnagOrd = x.codAnagOrd;
|
||||
rigaOrdine.ragSocOrd = x.ragSocOrd;
|
||||
rigaOrdine.pesoTotale = x.pesoTotale;
|
||||
rigaOrdine.barcode = x.barcode;
|
||||
rigaOrdine.termCons = x.termCons;
|
||||
rigaOrdine.dataCons = x.dataCons;
|
||||
rigaOrdine.rifOrd = x.rifOrd;
|
||||
rigaOrdine.clienti = new ArrayList<>();
|
||||
|
||||
return rigaOrdine;
|
||||
})
|
||||
.distinctBy(x -> x.barcode)
|
||||
.toList();
|
||||
|
||||
|
||||
List<OrdineAccettazioneInevasoDTO> filteredByCodAnagAndDateAndNumberOrders =
|
||||
Coollection
|
||||
.from(ordini)
|
||||
.where("codAnagOrd", Coollection.eq(filteredByCodAnagOrders.get(j).codAnagOrd))
|
||||
.and("numero", Coollection.eq(filteredByCodAnagOrders.get(j).numero))
|
||||
.and("data", Coollection.eq(filteredByCodAnagOrders.get(j).data)).all();
|
||||
|
||||
|
||||
String prevCodJcomAndDataCons = "";
|
||||
|
||||
//Splitto gli ordini per codJcom e dataCons
|
||||
for(int k = 0; k < filteredByCodAnagAndDateAndNumberOrders.size(); k++) {
|
||||
if(prevCodJcomAndDataCons.equalsIgnoreCase(filteredByCodAnagAndDateAndNumberOrders.get(k).codJcom + "_" + filteredByCodAnagAndDateAndNumberOrders.get(k).dataCons)) continue;
|
||||
else prevCodJcomAndDataCons = filteredByCodAnagAndDateAndNumberOrders.get(k).codJcom + "_" + filteredByCodAnagAndDateAndNumberOrders.get(k).dataCons;
|
||||
Stream.of(tmpOrd)
|
||||
.forEach(rigaOrdine -> {
|
||||
|
||||
Stream.of(ordini)
|
||||
.filter(x ->
|
||||
x.codAnagOrd.equals(rigaOrdine.codAnagOrd) &&
|
||||
x.numero == rigaOrdine.numero &&
|
||||
x.data.equals(rigaOrdine.data))
|
||||
.forEach(x -> {
|
||||
OrdineAccettazioneGroupedInevasoDTO.Cliente cliente = new OrdineAccettazioneGroupedInevasoDTO.Cliente();
|
||||
|
||||
cliente.codJcom = filteredByCodAnagAndDateAndNumberOrders.get(k).codJcom;
|
||||
cliente.ragSocCom = filteredByCodAnagAndDateAndNumberOrders.get(k).ragSocCom;
|
||||
cliente.descrCom = filteredByCodAnagAndDateAndNumberOrders.get(k).descrizioneCom;
|
||||
cliente.dataCons = filteredByCodAnagAndDateAndNumberOrders.get(k).dataCons;
|
||||
cliente.numCnf = filteredByCodAnagAndDateAndNumberOrders.get(k).numCnf;
|
||||
cliente.rifOrd = filteredByCodAnagAndDateAndNumberOrders.get(k).rifOrd;
|
||||
cliente.codJcom = x.codJcom;
|
||||
cliente.ragSocCom = x.ragSocCom;
|
||||
cliente.descrCom = x.descrizioneCom;
|
||||
cliente.dataCons = x.dataCons;
|
||||
cliente.numCnf = x.numCnf;
|
||||
cliente.rifOrd = x.rifOrd;
|
||||
|
||||
rigaOrdine.clienti.add(cliente);
|
||||
}
|
||||
});
|
||||
|
||||
// List<OrdineAccettazioneInevasoDTO> filteredByCodAnagAndDateAndNumberOrders = Stream.of(tmpOrd)
|
||||
// .filter(x ->
|
||||
// x.codAnagOrd.equals(rigaOrdine.codAnagOrd) &&
|
||||
// x.numero == rigaOrdine.numero &&
|
||||
// x.data.equals(rigaOrdine.data)).toList();
|
||||
|
||||
|
||||
|
||||
groupedOrdine.ordini.add(rigaOrdine);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
groupedOrdiniInevasi.add(groupedOrdine);
|
||||
}
|
||||
});
|
||||
|
||||
mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged);
|
||||
mBinding.accettazioneMainList.setAdapter(mAdapter);
|
||||
|
||||
@ -12,6 +12,7 @@ import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
|
||||
/**
|
||||
* Created by GiuseppeS on 06/03/2018.
|
||||
@ -129,6 +130,10 @@ public class OrdineAccettazioneDTO implements Parcelable {
|
||||
return gestioneOrd;
|
||||
}
|
||||
|
||||
public GestioneEnum getGestioneOrdEnum() {
|
||||
return GestioneEnum.fromString(gestioneOrd);
|
||||
}
|
||||
|
||||
public String getDataCons() {
|
||||
return dataCons;
|
||||
}
|
||||
|
||||
@ -49,6 +49,7 @@ import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.MainLis
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.rest.OrdineAccettazioneInevasoRESTConsumerService;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.views.NoteAggiuntiveNuovaULDialog;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||
import it.integry.integrywmsnative.ui.StatusBarAlert;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||
@ -75,6 +76,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
|
||||
private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR;
|
||||
private MainListOrdineAccettazioneAdapter mAdapter;
|
||||
|
||||
private GestioneEnum defaultGestioneOfUL = null;
|
||||
|
||||
public AccettazioneOnOrdineAccettazioneInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<OrdineAccettazioneDTO> orders) {
|
||||
this.mActivity = activity;
|
||||
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
|
||||
@ -102,6 +105,18 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
|
||||
groupedRighe = helper.getOrdiniRaggruppatiPerCodArtForn(groupedOrdini, true);
|
||||
|
||||
initRecyclerView(groupedRighe);
|
||||
|
||||
|
||||
//Definizione della gestione collo di default
|
||||
List<GestioneEnum> foundGestioni = Stream.of(groupedOrdini)
|
||||
.map(OrdineAccettazioneDTO.Riga::getGestioneOrdEnum)
|
||||
.withoutNulls()
|
||||
.distinctBy(x -> x)
|
||||
.toList();
|
||||
|
||||
if(foundGestioni != null && foundGestioni.size() == 1){
|
||||
defaultGestioneOfUL = foundGestioni.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -396,7 +411,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
|
||||
if(defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value)) defaultPosAccettazione = defaultPosAccettazioneDTO.value;
|
||||
|
||||
MtbColt mtbColt = new MtbColt();
|
||||
mtbColt .setGestione(GestioneEnum.ACQUISTO)
|
||||
mtbColt
|
||||
.setGestione(defaultGestioneOfUL)
|
||||
.setPreparatoDa(SettingsManager.i().user.fullname)
|
||||
.setAnnotazioni(noteString)
|
||||
.setPosizione(defaultPosAccettazione)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user