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