Implementate EmptyView in Accettazione e Vendita.
Mostrato dialog di "funzione non attiva" quando si prova a recuperare una UL in Vendita.
This commit is contained in:
parent
7182782c25
commit
d3a4372b02
@ -1,11 +1,19 @@
|
|||||||
package it.integry.integrywmsnative.core.REST.consumers;
|
package it.integry.integrywmsnative.core.REST.consumers;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.REST.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.REST.model.DistribuzioneColloDTO;
|
||||||
|
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.Callback;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
public class ColliMagazzinoRESTConsumer {
|
public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
||||||
|
|
||||||
|
|
||||||
public static void saveCollo(MtbColt mtbColtToSave, final ISimpleOperationCallback<MtbColt> callback){
|
public static void saveCollo(MtbColt mtbColtToSave, final ISimpleOperationCallback<MtbColt> callback){
|
||||||
@ -32,6 +40,32 @@ public class ColliMagazzinoRESTConsumer {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void distribuisciCollo(MtbColt mtbColtToDistribute, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
|
DistribuzioneColloDTO distribuzioneColloDTO = new DistribuzioneColloDTO()
|
||||||
|
.setCriterioDistribuzione(DistribuzioneColloDTO.CriterioDistribuzione.UPDATE)
|
||||||
|
.setDataCollo(mtbColtToDistribute.getDataColloS())
|
||||||
|
.setNumCollo(mtbColtToDistribute.getNumCollo())
|
||||||
|
.setGestione(mtbColtToDistribute.getGestione())
|
||||||
|
.setSerCollo(mtbColtToDistribute.getSerCollo());
|
||||||
|
|
||||||
|
ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class);
|
||||||
|
colliMagazzinoRESTConsumerService.distribuisciCollo(distribuzioneColloDTO)
|
||||||
|
.enqueue(new Callback<ServiceRESTResponse<JsonObject>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
|
||||||
|
analyzeAnswer(response, "GetAvailablePrinters", obj -> onComplete.run(), onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<JsonObject>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static void deleteRiga(MtbColr mtbColrToDelete, Runnable onComplete, RunnableArgs<Exception> onFailed){
|
public static void deleteRiga(MtbColr mtbColrToDelete, Runnable onComplete, RunnableArgs<Exception> onFailed){
|
||||||
MtbColr newMtbColr = new MtbColr();
|
MtbColr newMtbColr = new MtbColr();
|
||||||
|
|
||||||
@ -79,4 +113,5 @@ public class ColliMagazzinoRESTConsumer {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,17 @@
|
|||||||
|
package it.integry.integrywmsnative.core.REST.consumers;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.REST.model.DistribuzioneColloDTO;
|
||||||
|
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.Body;
|
||||||
|
import retrofit2.http.POST;
|
||||||
|
|
||||||
|
public interface ColliMagazzinoRESTConsumerService {
|
||||||
|
|
||||||
|
|
||||||
|
@POST("SM2DistribuzioneRigheCollo")
|
||||||
|
Call<ServiceRESTResponse<JsonObject>> distribuisciCollo(@Body DistribuzioneColloDTO distribuzioneCollo);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,83 @@
|
|||||||
|
package it.integry.integrywmsnative.core.REST.model;
|
||||||
|
|
||||||
|
public class DistribuzioneColloDTO {
|
||||||
|
|
||||||
|
private String gestione;
|
||||||
|
private String dataCollo;
|
||||||
|
private Integer numCollo;
|
||||||
|
private String serCollo;
|
||||||
|
private String criterioDistribuzione;
|
||||||
|
|
||||||
|
public String getGestione() {
|
||||||
|
return gestione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DistribuzioneColloDTO setGestione(String gestione) {
|
||||||
|
this.gestione = gestione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDataCollo() {
|
||||||
|
return dataCollo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DistribuzioneColloDTO setDataCollo(String dataCollo) {
|
||||||
|
this.dataCollo = dataCollo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNumCollo() {
|
||||||
|
return numCollo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DistribuzioneColloDTO setNumCollo(Integer numCollo) {
|
||||||
|
this.numCollo = numCollo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSerCollo() {
|
||||||
|
return serCollo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DistribuzioneColloDTO setSerCollo(String serCollo) {
|
||||||
|
this.serCollo = serCollo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCriterioDistribuzione() {
|
||||||
|
return criterioDistribuzione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CriterioDistribuzione getCriterioDistribuzioneEnum() {
|
||||||
|
return CriterioDistribuzione.fromString(criterioDistribuzione);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DistribuzioneColloDTO setCriterioDistribuzione(String criterioDistribuzione) {
|
||||||
|
this.criterioDistribuzione = criterioDistribuzione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DistribuzioneColloDTO setCriterioDistribuzione(CriterioDistribuzione criterioDistribuzione) {
|
||||||
|
this.criterioDistribuzione = criterioDistribuzione != null ? criterioDistribuzione.getText() : null;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum CriterioDistribuzione {
|
||||||
|
UPDATE("U"); //UPDATE COLLO GIA' ESISTENTE
|
||||||
|
|
||||||
|
private String text;
|
||||||
|
CriterioDistribuzione(String text) {
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
public String getText() {
|
||||||
|
return this.text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static CriterioDistribuzione fromString(String text) {
|
||||||
|
for (CriterioDistribuzione b : CriterioDistribuzione.values()) {
|
||||||
|
if (b.text.equalsIgnoreCase(text)) return b;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -527,8 +527,10 @@ public class MtbColr extends EntityBase implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public MtbColr setDataScadPartita(Date dataScadPartita) {
|
public MtbColr setDataScadPartita(Date dataScadPartita) {
|
||||||
|
if(dataScadPartita != null) {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||||
this.dataScadPartita = sdf.format(dataScadPartita);
|
this.dataScadPartita = sdf.format(dataScadPartita);
|
||||||
|
} else this.dataScadPartita = null;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -495,6 +495,14 @@ public class MtbColt extends EntityBase implements Parcelable {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MtbColt setDataOrdD(Date dataOrd) {
|
||||||
|
if(dataOrd != null) {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||||
|
this.dataOrd = sdf.format(dataOrd);
|
||||||
|
} else this.dataOrd = null;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getDataDoc() {
|
public String getDataDoc() {
|
||||||
return dataDoc;
|
return dataDoc;
|
||||||
}
|
}
|
||||||
@ -528,6 +536,12 @@ public class MtbColt extends EntityBase implements Parcelable {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MtbColt setOraFinePrep(Date oraFinePrep) {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||||
|
this.oraFinePrep = sdf.format(oraFinePrep);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getDataDocProvv() {
|
public String getDataDocProvv() {
|
||||||
return dataDocProvv;
|
return dataDocProvv;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,7 +24,7 @@ public class ReportManager {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case VENDITA:
|
case VENDITA:
|
||||||
onFailed.run(new Exception("Etichetta non definita"));
|
onComplete.run("EtichettaSpedizione");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,4 +10,8 @@ public class UtilityString {
|
|||||||
return stringToCheck == null || stringToCheck.trim().length() == 0;
|
return stringToCheck == null || stringToCheck.trim().length() == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String empty2null(String stringToCheck) {
|
||||||
|
return (stringToCheck != null && stringToCheck.trim().length() == 0 || stringToCheck == null) ? null : stringToCheck.trim();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,18 +12,17 @@ import java.util.List;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
|
||||||
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
|
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOnOrdineInevasoViewModel;
|
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOnOrdineAccettazioneInevasoViewModel;
|
||||||
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||||
|
|
||||||
public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
|
public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
|
||||||
|
|
||||||
public ActivityAccettazioneOrdineInevasoBinding bindings;
|
public ActivityAccettazioneOrdineInevasoBinding bindings;
|
||||||
private AccettazioneOnOrdineInevasoViewModel mAccettazioneOrdineInevasoViewModel;
|
private AccettazioneOnOrdineAccettazioneInevasoViewModel mAccettazioneOrdineInevasoViewModel;
|
||||||
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
||||||
|
|
||||||
private static final int PICK_UL_REQUEST = 1; // The request code
|
private static final int PICK_UL_REQUEST = 1; // The request code
|
||||||
@ -37,7 +36,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
|
|||||||
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
|
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
|
||||||
|
|
||||||
List<OrdineAccettazioneDTO> orders = (ArrayList<OrdineAccettazioneDTO>)getIntent().getSerializableExtra("key");
|
List<OrdineAccettazioneDTO> orders = (ArrayList<OrdineAccettazioneDTO>)getIntent().getSerializableExtra("key");
|
||||||
mAccettazioneOrdineInevasoViewModel = new AccettazioneOnOrdineInevasoViewModel(
|
mAccettazioneOrdineInevasoViewModel = new AccettazioneOnOrdineAccettazioneInevasoViewModel(
|
||||||
this, mArticoliInColloBottomSheetViewModel, orders);
|
this, mArticoliInColloBottomSheetViewModel, orders);
|
||||||
|
|
||||||
setSupportActionBar(this.bindings.toolbar);
|
setSupportActionBar(this.bindings.toolbar);
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.databinding.ObservableArrayList;
|
import android.databinding.ObservableArrayList;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
import com.orhanobut.logger.Logger;
|
import com.orhanobut.logger.Logger;
|
||||||
@ -36,8 +37,8 @@ public class AccettazioneOrdineInevasoHelper {
|
|||||||
mContext = context;
|
mContext = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MainListOrdineAccettazioneAdapter getRightListAdapter() {
|
public MainListOrdineAccettazioneAdapter getRightListAdapter(View emptyView) {
|
||||||
return new MainListOrdineAccettazioneAdapter(mContext, mListViewModels);
|
return new MainListOrdineAccettazioneAdapter(mContext, mListViewModels, emptyView);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateListModel(AccettazioneOrdineInevasoOrderBy.Enum orderByEnum, List<List<OrdineAccettazioneDTO.Riga>> mDataset, List<MtbColr> mtbColrs) throws Exception {
|
public void updateListModel(AccettazioneOrdineInevasoOrderBy.Enum orderByEnum, List<List<OrdineAccettazioneDTO.Riga>> mDataset, List<MtbColr> mtbColrs) throws Exception {
|
||||||
@ -119,7 +120,7 @@ public class AccettazioneOrdineInevasoHelper {
|
|||||||
if(mDataset.get(i).codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) mDataset.get(i).descrizioneCommessa = null;
|
if(mDataset.get(i).codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) mDataset.get(i).descrizioneCommessa = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Collections.sort(descrArtForns, (str1, str2) -> str1.compareToIgnoreCase(str2));
|
Collections.sort(descrArtForns, String::compareToIgnoreCase);
|
||||||
|
|
||||||
List<List<OrdineAccettazioneDTO.Riga>> groupedRighe = new ArrayList<>();
|
List<List<OrdineAccettazioneDTO.Riga>> groupedRighe = new ArrayList<>();
|
||||||
for (String descrArtForn : descrArtForns) {
|
for (String descrArtForn : descrArtForns) {
|
||||||
|
|||||||
@ -2,7 +2,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||||
|
|
||||||
public interface IOnOrdineRowDispatchCallback {
|
public interface IOnOrdineAccettazioneRowDispatchCallback {
|
||||||
|
|
||||||
void onOrdineRowDispatch(OrdineAccettazioneDTO.Riga item);
|
void onOrdineRowDispatch(OrdineAccettazioneDTO.Riga item);
|
||||||
|
|
||||||
@ -29,10 +29,12 @@ import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.Accettaz
|
|||||||
|
|
||||||
public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<MainListOrdineAccettazioneAdapter.ViewHolder> {
|
public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<MainListOrdineAccettazioneAdapter.ViewHolder> {
|
||||||
|
|
||||||
protected Context mContext;
|
private Context mContext;
|
||||||
protected List<AccettazioneOrdineInevasoListViewModel> mDataset;
|
private List<AccettazioneOrdineInevasoListViewModel> mDataset;
|
||||||
protected ObservableArrayList<AccettazioneOrdineInevasoListViewModel> mObservableDataset;
|
private View mEmptyView;
|
||||||
protected IOnOrdineRowDispatchCallback mOrdineRowDispatch;
|
|
||||||
|
private ObservableArrayList<AccettazioneOrdineInevasoListViewModel> mObservableDataset;
|
||||||
|
private IOnOrdineAccettazioneRowDispatchCallback mOrdineRowDispatch;
|
||||||
|
|
||||||
private static final Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(200);
|
private static final Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(200);
|
||||||
|
|
||||||
@ -49,16 +51,18 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public MainListOrdineAccettazioneAdapter(Context context, ObservableArrayList<AccettazioneOrdineInevasoListViewModel> myDataset) {
|
public MainListOrdineAccettazioneAdapter(Context context, ObservableArrayList<AccettazioneOrdineInevasoListViewModel> myDataset, View emptyView) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mObservableDataset = myDataset;
|
mObservableDataset = myDataset;
|
||||||
|
mEmptyView = emptyView;
|
||||||
|
|
||||||
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
|
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
|
||||||
mObservableDataset.addOnListChangedCallback(onListChangedCallback);
|
mObservableDataset.addOnListChangedCallback(onListChangedCallback);
|
||||||
|
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnOrdineRowDispatchCallback(IOnOrdineRowDispatchCallback ordineRowDispatch) {
|
public void setOnOrdineRowDispatchCallback(IOnOrdineAccettazioneRowDispatchCallback ordineRowDispatch) {
|
||||||
mOrdineRowDispatch = ordineRowDispatch;
|
mOrdineRowDispatch = ordineRowDispatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,30 +71,35 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
|
|||||||
public void onChanged(ObservableList<AccettazioneOrdineInevasoListViewModel> sender) {
|
public void onChanged(ObservableList<AccettazioneOrdineInevasoListViewModel> sender) {
|
||||||
refreshNotHiddenElements();
|
refreshNotHiddenElements();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemRangeChanged(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
public void onItemRangeChanged(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||||
refreshNotHiddenElements();
|
refreshNotHiddenElements();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemRangeInserted(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
public void onItemRangeInserted(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||||
refreshNotHiddenElements();
|
refreshNotHiddenElements();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemRangeMoved(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int fromPosition, int toPosition, int itemCount) {
|
public void onItemRangeMoved(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int fromPosition, int toPosition, int itemCount) {
|
||||||
refreshNotHiddenElements();
|
refreshNotHiddenElements();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemRangeRemoved(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
public void onItemRangeRemoved(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||||
refreshNotHiddenElements();
|
refreshNotHiddenElements();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshNotHiddenElements() {
|
private void refreshNotHiddenElements() {
|
||||||
@ -221,4 +230,13 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
|
|||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
return mDataset.size();
|
return mDataset.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void checkIfEmpty() {
|
||||||
|
if (mEmptyView != null) {
|
||||||
|
final boolean emptyViewVisible = getItemCount() == 0;
|
||||||
|
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
|
|||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
|
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.AccettazioneOrdineInevasoHelper;
|
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.AccettazioneOrdineInevasoHelper;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.IOnOrdineRowDispatchCallback;
|
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.IOnOrdineAccettazioneRowDispatchCallback;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.MainListOrdineAccettazioneAdapter;
|
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.MainListOrdineAccettazioneAdapter;
|
||||||
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;
|
||||||
@ -45,7 +45,7 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
|||||||
|
|
||||||
import static br.com.zbra.androidlinq.Linq.stream;
|
import static br.com.zbra.androidlinq.Linq.stream;
|
||||||
|
|
||||||
public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallback, IOnOrdineRowDispatchCallback {
|
public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColloClosedCallback, IOnOrdineAccettazioneRowDispatchCallback {
|
||||||
|
|
||||||
public ObservableField<Boolean> isFabVisible = new ObservableField<>();
|
public ObservableField<Boolean> isFabVisible = new ObservableField<>();
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
|
|||||||
private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR;
|
private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR;
|
||||||
private MainListOrdineAccettazioneAdapter mAdapter;
|
private MainListOrdineAccettazioneAdapter mAdapter;
|
||||||
|
|
||||||
public AccettazioneOnOrdineInevasoViewModel(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;
|
||||||
this.mOrders = orders;
|
this.mOrders = orders;
|
||||||
@ -97,7 +97,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
|
|||||||
|
|
||||||
mActivity.bindings.accettazioneOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
|
mActivity.bindings.accettazioneOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||||
|
|
||||||
mAdapter = helper.getRightListAdapter();
|
mAdapter = helper.getRightListAdapter(mActivity.bindings.accettazioneEmptyView);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
helper.updateListModel(AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR, groupedRighe, null);
|
helper.updateListModel(AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR, groupedRighe, null);
|
||||||
@ -315,22 +315,44 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
|
|||||||
public void onColloClosed() {
|
public void onColloClosed() {
|
||||||
if(thereIsAnOpenedUL()) {
|
if(thereIsAnOpenedUL()) {
|
||||||
|
|
||||||
if(thereIsAnyRowInUL()) {
|
|
||||||
printCollo();
|
|
||||||
} else {
|
|
||||||
deleteCollo();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void printCollo() {
|
|
||||||
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
||||||
mActivity.getText(R.string.loading) + " ...", true);
|
mActivity.getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
progress.show();
|
progress.show();
|
||||||
|
|
||||||
|
if(thereIsAnyRowInUL()) {
|
||||||
|
updateDataFine(progress, () -> printCollo(progress));
|
||||||
|
} else {
|
||||||
|
deleteCollo(progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
||||||
|
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||||
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
cloneMtbColt.setOraFinePrep(new Date());
|
||||||
|
|
||||||
|
|
||||||
|
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(MtbColt value) {
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void printCollo(ProgressDialog progress) {
|
||||||
|
|
||||||
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), new ISimpleOperationCallback<List<String>>() {
|
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), new ISimpleOperationCallback<List<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<String> value) {
|
public void onSuccess(List<String> value) {
|
||||||
@ -386,11 +408,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void deleteCollo() {
|
private void deleteCollo(ProgressDialog progress) {
|
||||||
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
|
||||||
mActivity.getText(R.string.loading) + " ...", true);
|
|
||||||
|
|
||||||
progress.show();
|
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.deleteCollo(mArticoliInColloBottomSheetViewModel.mtbColt.get(), () -> {
|
ColliMagazzinoRESTConsumer.deleteCollo(mArticoliInColloBottomSheetViewModel.mtbColt.get(), () -> {
|
||||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||||
@ -415,22 +433,16 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
|
|||||||
|
|
||||||
|
|
||||||
private void postCloseOperations() {
|
private void postCloseOperations() {
|
||||||
// for(int i = 0; i < groupedOrdini.size(); i++){
|
|
||||||
// if(groupedOrdini.get(i).getQtaDaEvadere().floatValue() <= 0){
|
|
||||||
// this.groupedOrdini.remove(i);
|
|
||||||
// i--;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
MtbColt mtbColtToDelete = mArticoliInColloBottomSheetViewModel.mtbColt.get();
|
MtbColt mtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get();
|
||||||
|
|
||||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||||
isFabVisible.set(true);
|
isFabVisible.set(true);
|
||||||
|
|
||||||
if(mtbColtToDelete != null && mtbColtToDelete.getMtbColr() != null) {
|
if(mtbColt != null && mtbColt.getMtbColr() != null) {
|
||||||
for (int i = 0; i < mtbColtToDelete.getMtbColr().size(); i++) {
|
for (int i = 0; i < mtbColt.getMtbColr().size(); i++) {
|
||||||
|
|
||||||
MtbColr currentRow = mtbColtToDelete.getMtbColr().get(i);
|
MtbColr currentRow = mtbColt.getMtbColr().get(i);
|
||||||
|
|
||||||
Stream.of(this.groupedOrdini)
|
Stream.of(this.groupedOrdini)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
@ -204,7 +204,6 @@ public class MainListVenditaAdapter extends RecyclerView.Adapter<MainListVendita
|
|||||||
return mDataset.size();
|
return mDataset.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setFilter(List<OrdineVenditaGroupedInevasoDTO> newDataset) {
|
public void setFilter(List<OrdineVenditaGroupedInevasoDTO> newDataset) {
|
||||||
mDataset = new ArrayList<>();
|
mDataset = new ArrayList<>();
|
||||||
mDataset.addAll(newDataset);
|
mDataset.addAll(newDataset);
|
||||||
|
|||||||
@ -135,7 +135,7 @@ public class VenditaHelper {
|
|||||||
|
|
||||||
for(int j = 0; j < currentOrders.size(); j++){
|
for(int j = 0; j < currentOrders.size(); j++){
|
||||||
|
|
||||||
whereCond += "(mtb_colr.data_ord = " + UtilityDate.formatDate(currentOrders.get(j).getData(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) + " " +
|
whereCond += "(mtb_colr.data_ord = '" + UtilityDate.formatDate(currentOrders.get(j).getData(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) + "' " +
|
||||||
"AND mtb_colr.num_ord = " + currentOrders.get(j).getNumero() + ") ";
|
"AND mtb_colr.num_ord = " + currentOrders.get(j).getNumero() + ") ";
|
||||||
|
|
||||||
if(i != (orders.size() - 1)){
|
if(i != (orders.size() - 1)){
|
||||||
|
|||||||
@ -8,6 +8,10 @@ import java.text.ParseException;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
|
|
||||||
public class PickingObjectDTO implements Parcelable {
|
public class PickingObjectDTO implements Parcelable {
|
||||||
|
|
||||||
private Integer numCollo;
|
private Integer numCollo;
|
||||||
@ -31,6 +35,8 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
private String codAlis;
|
private String codAlis;
|
||||||
private BigDecimal colliPedana;
|
private BigDecimal colliPedana;
|
||||||
|
|
||||||
|
private MtbAart mtbAart;
|
||||||
|
|
||||||
private Boolean hidden = null;
|
private Boolean hidden = null;
|
||||||
|
|
||||||
protected PickingObjectDTO(Parcel in) {
|
protected PickingObjectDTO(Parcel in) {
|
||||||
@ -79,6 +85,9 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
} else {
|
} else {
|
||||||
numCnfCollo = new BigDecimal(in.readFloat());
|
numCnfCollo = new BigDecimal(in.readFloat());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
mtbAart = (MtbAart) in.readValue(MtbAart.class.getClassLoader());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -139,6 +148,8 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
dest.writeByte((byte) (0x01));
|
dest.writeByte((byte) (0x01));
|
||||||
dest.writeFloat(numCnfCollo.floatValue());
|
dest.writeFloat(numCnfCollo.floatValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dest.writeValue(mtbAart);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -239,6 +250,19 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
return sdf.parse(getDataColloS());
|
return sdf.parse(getDataColloS());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDataColloHuman() {
|
||||||
|
Date dataColloD = null;
|
||||||
|
try {
|
||||||
|
dataColloD = getDataColloD();
|
||||||
|
} catch (ParseException ex){
|
||||||
|
UtilityLogger.errorMe(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(dataColloD != null){
|
||||||
|
return UtilityDate.formatDate(dataColloD, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN);
|
||||||
|
} else return null;
|
||||||
|
}
|
||||||
|
|
||||||
public PickingObjectDTO setDataCollo(String dataCollo) {
|
public PickingObjectDTO setDataCollo(String dataCollo) {
|
||||||
this.dataCollo = dataCollo;
|
this.dataCollo = dataCollo;
|
||||||
return this;
|
return this;
|
||||||
@ -348,6 +372,15 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MtbAart getMtbAart() {
|
||||||
|
return mtbAart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingObjectDTO setMtbAart(MtbAart mtbAart) {
|
||||||
|
this.mtbAart = mtbAart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public Boolean isHidden() {
|
public Boolean isHidden() {
|
||||||
return hidden;
|
return hidden;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import android.databinding.ObservableList;
|
|||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.support.v4.util.Pools;
|
import android.support.v4.util.Pools;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.text.Html;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -22,14 +23,16 @@ import it.integry.integrywmsnative.core.CommonConst;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.interfaces.IOnOrdineVenditaRowDispatched;
|
||||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.dto.VenditaOrdineInevasoListViewModel;
|
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.dto.VenditaOrdineInevasoListViewModel;
|
||||||
|
|
||||||
public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<MainListOrdineVenditaInevasoAdapter.ViewHolder> {
|
public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<MainListOrdineVenditaInevasoAdapter.ViewHolder> {
|
||||||
|
|
||||||
protected Context mContext;
|
private Context mContext;
|
||||||
protected List<VenditaOrdineInevasoListViewModel> mDataset;
|
private List<VenditaOrdineInevasoListViewModel> mDataset;
|
||||||
protected ObservableArrayList<VenditaOrdineInevasoListViewModel> mObservableDataset;
|
private View mEmptyView;
|
||||||
protected IOnOrdineRowDispatchCallback mOrdineRowDispatch;
|
private ObservableArrayList<VenditaOrdineInevasoListViewModel> mObservableDataset;
|
||||||
|
private IOnOrdineVenditaRowDispatched mOrdineRowDispatch;
|
||||||
|
|
||||||
private static final Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(200);
|
private static final Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(200);
|
||||||
|
|
||||||
@ -45,16 +48,19 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<Ma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public MainListOrdineVenditaInevasoAdapter(Context context, ObservableArrayList<VenditaOrdineInevasoListViewModel> myDataset) {
|
public MainListOrdineVenditaInevasoAdapter(Context context, ObservableArrayList<VenditaOrdineInevasoListViewModel> myDataset, View emptyView) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mObservableDataset = myDataset;
|
mObservableDataset = myDataset;
|
||||||
|
mEmptyView = emptyView;
|
||||||
|
|
||||||
|
|
||||||
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
|
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
|
||||||
mObservableDataset.addOnListChangedCallback(onListChangedCallback);
|
mObservableDataset.addOnListChangedCallback(onListChangedCallback);
|
||||||
|
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnOrdineRowDispatchCallback(IOnOrdineRowDispatchCallback ordineRowDispatch) {
|
public void setOnOrdineRowDispatchCallback(IOnOrdineVenditaRowDispatched ordineRowDispatch) {
|
||||||
mOrdineRowDispatch = ordineRowDispatch;
|
mOrdineRowDispatch = ordineRowDispatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,30 +69,35 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<Ma
|
|||||||
public void onChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender) {
|
public void onChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender) {
|
||||||
refreshNotHiddenElements();
|
refreshNotHiddenElements();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemRangeChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
public void onItemRangeChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||||
refreshNotHiddenElements();
|
refreshNotHiddenElements();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemRangeInserted(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
public void onItemRangeInserted(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||||
refreshNotHiddenElements();
|
refreshNotHiddenElements();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemRangeMoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int fromPosition, int toPosition, int itemCount) {
|
public void onItemRangeMoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int fromPosition, int toPosition, int itemCount) {
|
||||||
refreshNotHiddenElements();
|
refreshNotHiddenElements();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemRangeRemoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
public void onItemRangeRemoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||||
refreshNotHiddenElements();
|
refreshNotHiddenElements();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
checkIfEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshNotHiddenElements() {
|
private void refreshNotHiddenElements() {
|
||||||
@ -172,6 +183,10 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<Ma
|
|||||||
descrizione.setText(descrizioneString);
|
descrizione.setText(descrizioneString);
|
||||||
descrizione.setTextColor(descrizioneColor);
|
descrizione.setTextColor(descrizioneColor);
|
||||||
|
|
||||||
|
final TextView subDescrizione = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_subdescrizione);
|
||||||
|
if(rowItem.getSubDescrizione() != null) subDescrizione.setText(Html.fromHtml(rowItem.getSubDescrizione()));
|
||||||
|
subDescrizione.setVisibility(UtilityString.isNullOrEmpty(rowItem.getSubDescrizione()) ? View.GONE : View.VISIBLE);
|
||||||
|
|
||||||
final TextView qtaEvasa = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_qta_evasa);
|
final TextView qtaEvasa = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_qta_evasa);
|
||||||
qtaEvasa.setText(UtilityNumber.decimalToString(rowItem.getQtaRiservata()));
|
qtaEvasa.setText(UtilityNumber.decimalToString(rowItem.getQtaRiservata()));
|
||||||
|
|
||||||
@ -218,6 +233,13 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<Ma
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void checkIfEmpty() {
|
||||||
|
if (mEmptyView != null) {
|
||||||
|
final boolean emptyViewVisible = getItemCount() == 0;
|
||||||
|
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public interface IOnOrdineRowDispatchCallback {
|
public interface IOnOrdineRowDispatchCallback {
|
||||||
|
|
||||||
void onOrdineRowDispatch(PickingObjectDTO item);
|
void onOrdineRowDispatch(PickingObjectDTO item);
|
||||||
|
|||||||
@ -2,9 +2,12 @@ package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.databinding.ObservableArrayList;
|
import android.databinding.ObservableArrayList;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -24,8 +27,8 @@ public class VenditaOrdineInevasoHelper {
|
|||||||
mContext = context;
|
mContext = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MainListOrdineVenditaInevasoAdapter getRightListAdapter() {
|
public MainListOrdineVenditaInevasoAdapter getRightListAdapter(View emptyView) {
|
||||||
return new MainListOrdineVenditaInevasoAdapter(mContext, mListViewModels);
|
return new MainListOrdineVenditaInevasoAdapter(mContext, mListViewModels, emptyView);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateListModel(List<List<PickingObjectDTO>> mDataset, List<MtbColr> mtbColrs) throws Exception {
|
public void updateListModel(List<List<PickingObjectDTO>> mDataset, List<MtbColr> mtbColrs) throws Exception {
|
||||||
@ -56,9 +59,12 @@ public class VenditaOrdineInevasoHelper {
|
|||||||
|
|
||||||
for(int i = 0; i < tmpList.size(); i++){
|
for(int i = 0; i < tmpList.size(); i++){
|
||||||
if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
|
if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
|
||||||
if (tmpList.get(i).getQtaCollo().floatValue() <= 0) {
|
PickingObjectDTO tmpItem = tmpList.get(i);
|
||||||
tmpList.get(i).setHidden(true);
|
|
||||||
} else tmpList.get(i).setHidden(false);
|
if ( (tmpItem.getNumCollo() != null && tmpItem.getQtaCollo().floatValue() <= 0) ||
|
||||||
|
(tmpItem.getNumCollo() == null && tmpItem.getQtaOrd().floatValue() <= 0)) {
|
||||||
|
tmpItem.setHidden(true);
|
||||||
|
} else tmpItem.setHidden(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,7 +103,11 @@ public class VenditaOrdineInevasoHelper {
|
|||||||
|
|
||||||
rowModel.setDescrizione(currentItem.getDescrizioneEstesa());
|
rowModel.setDescrizione(currentItem.getDescrizioneEstesa());
|
||||||
|
|
||||||
//TODO: Aggiungere la qta evasa
|
if(currentItem.getNumCollo() != null) {
|
||||||
|
rowModel.setSubDescrizione(String.format(mContext.getResources().getText(R.string.lu_number_text).toString(), currentItem.getNumCollo(), currentItem.getDataColloHuman()));
|
||||||
|
}
|
||||||
|
|
||||||
|
rowModel.setQtaRiservata(getRigaQuantityEvasa(currentItem, mtbColrs));
|
||||||
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getQtaCollo() : currentItem.getQtaOrd());
|
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getQtaCollo() : currentItem.getQtaOrd());
|
||||||
|
|
||||||
rowModel.setOriginalModel(currentItem);
|
rowModel.setOriginalModel(currentItem);
|
||||||
@ -111,4 +121,24 @@ public class VenditaOrdineInevasoHelper {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BigDecimal getRigaQuantityEvasa(PickingObjectDTO item, List<MtbColr> mtbColrs){
|
||||||
|
BigDecimal currentQtaEvasa = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
if(mtbColrs != null) {
|
||||||
|
|
||||||
|
List<MtbColr> filteredMtbColrs = Stream.of(mtbColrs).filter(
|
||||||
|
x -> x.getCodMart().equalsIgnoreCase(item.getCodMart()) &&
|
||||||
|
((x.getCodJcom() == null && item.getCodJcom() == null) || (x.getCodJcom() != null && x.getCodJcom().equalsIgnoreCase(item.getCodJcom()))) &&
|
||||||
|
((x.getPartitaMag() == null && item.getPartitaMag() == null) || (x.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(item.getPartitaMag()))) &&
|
||||||
|
((x.getNumColloRif() == null && item.getNumCollo() == null) || (x.getNumColloRif() != null && x.getNumColloRif().equals(item.getNumCollo())))).toList();
|
||||||
|
|
||||||
|
|
||||||
|
for (MtbColr mtbColr : filteredMtbColrs) {
|
||||||
|
currentQtaEvasa = currentQtaEvasa.add(mtbColr.getQtaCol());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return currentQtaEvasa;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,8 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.interfaces;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||||
|
|
||||||
|
public interface IOnOrdineVenditaRowDispatched {
|
||||||
|
|
||||||
|
void onOrdineRowDispatch(PickingObjectDTO item);
|
||||||
|
}
|
||||||
@ -22,6 +22,7 @@ public class VenditaOrdineInevasoListViewModel {
|
|||||||
private String badge2;
|
private String badge2;
|
||||||
|
|
||||||
private String descrizione;
|
private String descrizione;
|
||||||
|
private String subDescrizione;
|
||||||
private BigDecimal qtaRiservata;
|
private BigDecimal qtaRiservata;
|
||||||
private BigDecimal qtaOrdinata;
|
private BigDecimal qtaOrdinata;
|
||||||
|
|
||||||
@ -54,6 +55,15 @@ public class VenditaOrdineInevasoListViewModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSubDescrizione() {
|
||||||
|
return subDescrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SubItem setSubDescrizione(String subDescrizione) {
|
||||||
|
this.subDescrizione = subDescrizione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public BigDecimal getQtaRiservata() {
|
public BigDecimal getQtaRiservata() {
|
||||||
return qtaRiservata == null ? BigDecimal.ZERO : qtaRiservata;
|
return qtaRiservata == null ? BigDecimal.ZERO : qtaRiservata;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,33 +1,47 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel;
|
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel;
|
||||||
|
|
||||||
import android.app.ProgressDialog;
|
import android.app.ProgressDialog;
|
||||||
|
import android.databinding.ObservableArrayList;
|
||||||
import android.databinding.ObservableField;
|
import android.databinding.ObservableField;
|
||||||
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
||||||
|
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||||
import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
|
import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.gest.vendita.rest.OrdiniVenditaRESTConsumerService;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
|
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
|
||||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.VenditaOrdineInevasoHelper;
|
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.VenditaOrdineInevasoHelper;
|
||||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.MainListOrdineVenditaInevasoAdapter;
|
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.MainListOrdineVenditaInevasoAdapter;
|
||||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.rest.OrdineVenditaInevasoRESTConsumerService;
|
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.interfaces.IOnOrdineVenditaRowDispatched;
|
||||||
|
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;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.BR;
|
import it.integry.integrywmsnative.BR;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||||
|
|
||||||
public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IOnOrdineVenditaRowDispatched {
|
||||||
|
|
||||||
public ObservableField<Boolean> isFabVisible = new ObservableField<>();
|
public ObservableField<Boolean> isFabVisible = new ObservableField<>();
|
||||||
|
|
||||||
@ -43,7 +57,11 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
|||||||
private MainListOrdineVenditaInevasoAdapter mAdapter;
|
private MainListOrdineVenditaInevasoAdapter mAdapter;
|
||||||
|
|
||||||
private GestioneEnum defaultGestioneOfUL = null;
|
private GestioneEnum defaultGestioneOfUL = null;
|
||||||
private List<FiltroOrdineDTO> defaultFiltroOrdine = null;
|
private List<FiltroOrdineDTO> defaultFiltroOrdine = new ArrayList<>();
|
||||||
|
private String defaultCodAnagOfUL = null;
|
||||||
|
private String defaultRifOrdOfUL = null;
|
||||||
|
private Integer defaultNumOrdOfUL = null;
|
||||||
|
private Date defaultDataOrdOfUL = null;
|
||||||
|
|
||||||
public VenditaOrdineInevasoViewModel(VenditaOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<PickingObjectDTO> pickingList, List<OrdineVenditaGroupedInevasoDTO> orders, List<MtbColt> colliRegistrati) {
|
public VenditaOrdineInevasoViewModel(VenditaOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<PickingObjectDTO> pickingList, List<OrdineVenditaGroupedInevasoDTO> orders, List<MtbColt> colliRegistrati) {
|
||||||
this.mActivity = activity;
|
this.mActivity = activity;
|
||||||
@ -76,7 +94,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
|||||||
|
|
||||||
mActivity.bindings.venditaOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
|
mActivity.bindings.venditaOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||||
|
|
||||||
mAdapter = mHelper.getRightListAdapter();
|
mAdapter = mHelper.getRightListAdapter(mActivity.bindings.venditaOrdineInevasoEmptyView);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, true);
|
this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, true);
|
||||||
@ -85,53 +103,93 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
|||||||
UtilityExceptions.defaultException(mActivity, e);
|
UtilityExceptions.defaultException(mActivity, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// mAdapter.setOnOrdineRowDispatchCallback(this);
|
mAdapter.setOnOrdineRowDispatchCallback(this);
|
||||||
mActivity.bindings.venditaOrdineMainList.setAdapter(mAdapter);
|
mActivity.bindings.venditaOrdineMainList.setAdapter(mAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initDatiPicking() {
|
private void initDatiPicking() {
|
||||||
if(this.mTestateOrdini != null && this.mTestateOrdini.size() > 0){
|
if(this.mTestateOrdini != null && this.mTestateOrdini.size() > 0){
|
||||||
boolean shouldBreak = false;
|
List<OrdineVenditaGroupedInevasoDTO.Ordine> flatOrderArray = new ArrayList<>();
|
||||||
|
|
||||||
|
Stream.of(this.mTestateOrdini).forEach(x -> flatOrderArray.addAll(x.ordini));
|
||||||
|
|
||||||
|
|
||||||
//Definizione della gestione collo di default
|
//Definizione della gestione collo di default
|
||||||
for(int i = 0; i < this.mTestateOrdini.size(); i++){
|
List<GestioneEnum> foundGestioni = Stream.of(flatOrderArray)
|
||||||
|
.map(OrdineVenditaGroupedInevasoDTO.Ordine::getGestioneEnum)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinctBy(x -> x)
|
||||||
|
.toList();
|
||||||
|
|
||||||
for(int j = 0; j < this.mTestateOrdini.get(i).ordini.size(); j++){
|
if(foundGestioni != null && foundGestioni.size() > 1){
|
||||||
|
UtilityExceptions.defaultException(mActivity, new Exception("Impossibile caricare ordini di diverse gestioni"));
|
||||||
OrdineVenditaGroupedInevasoDTO.Ordine dto = this.mTestateOrdini.get(i).ordini.get(j);
|
mActivity.finish();
|
||||||
|
return;
|
||||||
if(defaultGestioneOfUL == null) {
|
} else if(foundGestioni != null && foundGestioni.size() == 1){
|
||||||
defaultGestioneOfUL = dto.getGestioneEnum();
|
defaultGestioneOfUL = foundGestioni.get(0);
|
||||||
|
} else {
|
||||||
|
defaultGestioneOfUL = GestioneEnum.VENDITA;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dto.getGestioneEnum() != defaultGestioneOfUL){
|
|
||||||
//TODO: scrivere qui la gestione di default che deve avere il collo nel caso in cui ho fatto il pick di ordini L e V insieme
|
|
||||||
defaultGestioneOfUL = GestioneEnum.LAVORAZIONE;
|
|
||||||
shouldBreak = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(shouldBreak) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Definizione del filtro ordine da applicare a tutti i colli generati
|
//Definizione del filtro ordine da applicare a tutti i colli generati
|
||||||
for(int i = 0; i < this.mTestateOrdini.size(); i++){
|
Stream.of(flatOrderArray).forEach(x -> {
|
||||||
|
|
||||||
if(defaultFiltroOrdine == null) defaultFiltroOrdine = new ArrayList<>();
|
|
||||||
|
|
||||||
for(int j = 0; j < this.mTestateOrdini.get(i).ordini.size(); j++){
|
|
||||||
OrdineVenditaGroupedInevasoDTO.Ordine dto = this.mTestateOrdini.get(i).ordini.get(j);
|
|
||||||
|
|
||||||
defaultFiltroOrdine.add(new FiltroOrdineDTO()
|
defaultFiltroOrdine.add(new FiltroOrdineDTO()
|
||||||
.setDataOrd(dto.getData())
|
.setDataOrd(x.getData())
|
||||||
.setNumOrd(dto.getNumero())
|
.setNumOrd(x.getNumero())
|
||||||
.setGestioneOrd(dto.getGestione()));
|
.setGestioneOrd(x.getGestione()));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Definizione del codAnag
|
||||||
|
List<String> foundCodAnag = Stream.of(flatOrderArray)
|
||||||
|
.map(OrdineVenditaGroupedInevasoDTO.Ordine::getCodAnagOrd)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinctBy(x -> x)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if(foundCodAnag != null && foundCodAnag.size() == 1){
|
||||||
|
defaultCodAnagOfUL = foundCodAnag.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Definizione del rifOrd
|
||||||
|
List<String> foundRifOrd = Stream.of(flatOrderArray)
|
||||||
|
.map(OrdineVenditaGroupedInevasoDTO.Ordine::getRifOrd)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinctBy(x -> x)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if(foundRifOrd != null && foundRifOrd.size() == 1){
|
||||||
|
defaultRifOrdOfUL = foundRifOrd.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Definizione del numOrd
|
||||||
|
List<Integer> foundNumOrd = Stream.of(flatOrderArray)
|
||||||
|
.map(OrdineVenditaGroupedInevasoDTO.Ordine::getNumero)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinctBy(x -> x)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if(foundNumOrd != null && foundNumOrd.size() == 1){
|
||||||
|
defaultNumOrdOfUL = foundNumOrd.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Definizione del dataOrd
|
||||||
|
List<Date> foundDataOrd = Stream.of(flatOrderArray)
|
||||||
|
.map(OrdineVenditaGroupedInevasoDTO.Ordine::getData)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinctBy(x -> x)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if(foundDataOrd != null && foundDataOrd.size() == 1){
|
||||||
|
defaultDataOrdOfUL = foundDataOrd.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,6 +207,8 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
|||||||
|
|
||||||
public void recoverUL(MtbColt recoveredMtbColt){
|
public void recoverUL(MtbColt recoveredMtbColt){
|
||||||
|
|
||||||
|
DialogSimpleMessageHelper.makeInfoDialog(mActivity, "Info", new SpannableString("La funzione di recupero UL non è stata abilitata"), null, null).show();
|
||||||
|
|
||||||
for(int i = 0; i < recoveredMtbColt.getMtbColr().size(); i++){
|
for(int i = 0; i < recoveredMtbColt.getMtbColr().size(); i++){
|
||||||
|
|
||||||
MtbColr currentMtbColr = recoveredMtbColt.getMtbColr().get(i);
|
MtbColr currentMtbColr = recoveredMtbColt.getMtbColr().get(i);
|
||||||
@ -174,6 +234,53 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void createNewUL() {
|
public void createNewUL() {
|
||||||
|
mActivity.bindings.venditaOrdineInevasoFab.close(true);
|
||||||
|
|
||||||
|
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
||||||
|
mActivity.getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
|
progress.show();
|
||||||
|
|
||||||
|
MtbColt mtbColt = new MtbColt();
|
||||||
|
mtbColt .setDataCollo(new Date())
|
||||||
|
.setGestione(defaultGestioneOfUL)
|
||||||
|
.setSegno(-1)
|
||||||
|
.setCodMdep(SettingsManager.i().userSession.depo.getCodMdep())
|
||||||
|
.setPreparatoDa(SettingsManager.i().user.fullname)
|
||||||
|
.setOraInizPrep(new Date())
|
||||||
|
.setRifOrd(defaultRifOrdOfUL)
|
||||||
|
.setNumOrd(defaultNumOrdOfUL)
|
||||||
|
.setDataOrdD(defaultDataOrdOfUL)
|
||||||
|
.setCodAnag(defaultCodAnagOfUL)
|
||||||
|
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
mtbColt.generaFiltroOrdineFromDTO(defaultFiltroOrdine);
|
||||||
|
|
||||||
|
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(MtbColt value) {
|
||||||
|
|
||||||
|
value.setMtbColr(new ObservableArrayList<>());
|
||||||
|
|
||||||
|
setULToCurrentContext(value);
|
||||||
|
|
||||||
|
progress.dismiss();
|
||||||
|
|
||||||
|
new StatusBarAlert.Builder(mActivity)
|
||||||
|
.autoHide(true)
|
||||||
|
.withDuration(2500)
|
||||||
|
.showProgress(false)
|
||||||
|
.withText(R.string.data_saved)
|
||||||
|
.withAlertColor(R.color.mainGreen)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,22 +298,117 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
|||||||
@Override
|
@Override
|
||||||
public void onColloClosed() {
|
public void onColloClosed() {
|
||||||
if(thereIsAnOpenedUL()) {
|
if(thereIsAnOpenedUL()) {
|
||||||
|
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
||||||
|
mActivity.getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
|
progress.show();
|
||||||
|
|
||||||
if(thereIsAnyRowInUL()) {
|
if(thereIsAnyRowInUL()) {
|
||||||
printCollo();
|
updateDataFine(progress, () -> distribuisciCollo(progress, () -> printCollo(progress)));
|
||||||
} else {
|
} else {
|
||||||
deleteCollo();
|
deleteCollo(progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void printCollo() {
|
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
||||||
|
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||||
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
cloneMtbColt.setOraFinePrep(new Date());
|
||||||
|
|
||||||
|
|
||||||
|
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(MtbColt value) {
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteCollo() {
|
private void distribuisciCollo(ProgressDialog progress, Runnable onComplete) {
|
||||||
|
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||||
|
|
||||||
|
ColliMagazzinoRESTConsumer.distribuisciCollo(cloneMtbColt, onComplete,
|
||||||
|
ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void printCollo(ProgressDialog progress) {
|
||||||
|
|
||||||
|
|
||||||
|
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), new ISimpleOperationCallback<List<String>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<String> value) {
|
||||||
|
|
||||||
|
if(value.size() > 0) {
|
||||||
|
try{
|
||||||
|
MtbColt currentMtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get();
|
||||||
|
|
||||||
|
ReportManager.getRightReportNameByMtbColt(currentMtbColt, reportName -> {
|
||||||
|
|
||||||
|
PrinterRESTConsumer.printCollo(
|
||||||
|
value.get(0),
|
||||||
|
currentMtbColt,
|
||||||
|
1, reportName, () -> {
|
||||||
|
|
||||||
|
postCloseOperations();
|
||||||
|
progress.dismiss();
|
||||||
|
|
||||||
|
}, ex -> {
|
||||||
|
|
||||||
|
progress.dismiss();
|
||||||
|
String errorMessage = ex.getMessage();
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(
|
||||||
|
mActivity,
|
||||||
|
new SpannableString(errorMessage),
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
R.string.button_ignore_print,
|
||||||
|
() -> postCloseOperations()).show();
|
||||||
|
});
|
||||||
|
|
||||||
|
}, ex -> UtilityExceptions.defaultException(mActivity, ex, progress)
|
||||||
|
);
|
||||||
|
} catch (Exception ex){
|
||||||
|
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||||
|
postCloseOperations();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||||
|
isFabVisible.set(true);
|
||||||
|
|
||||||
|
progress.dismiss();
|
||||||
|
String errorMessage = "Nessuna stampante configurata";
|
||||||
|
DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, () -> postCloseOperations()).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteCollo(ProgressDialog progress) {
|
||||||
|
|
||||||
|
ColliMagazzinoRESTConsumer.deleteCollo(mArticoliInColloBottomSheetViewModel.mtbColt.get(), () -> {
|
||||||
|
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||||
|
|
||||||
|
isFabVisible.set(true);
|
||||||
|
|
||||||
|
progress.dismiss();
|
||||||
|
}, ex -> UtilityExceptions.defaultException(mActivity, ex, progress)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean thereIsAnOpenedUL() {
|
public boolean thereIsAnOpenedUL() {
|
||||||
@ -219,4 +421,140 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void postCloseOperations() {
|
||||||
|
|
||||||
|
MtbColt mtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get();
|
||||||
|
|
||||||
|
this.mColliRegistrati.add(mtbColt);
|
||||||
|
|
||||||
|
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||||
|
isFabVisible.set(true);
|
||||||
|
|
||||||
|
if(mtbColt != null && mtbColt.getMtbColr() != null) {
|
||||||
|
|
||||||
|
List<MtbColr> mtbColrs = mtbColt.getMtbColr();
|
||||||
|
|
||||||
|
for (int i = 0; i < mtbColrs.size(); i++) {
|
||||||
|
|
||||||
|
MtbColr x = mtbColt.getMtbColr().get(i);
|
||||||
|
|
||||||
|
Stream.of(this.mPickingList)
|
||||||
|
.filter(currentRow ->
|
||||||
|
x.getCodMart().equalsIgnoreCase(currentRow.getCodMart()) &&
|
||||||
|
((x.getCodJcom() == null && currentRow.getCodJcom() == null) || (x.getCodJcom() != null && x.getCodJcom().equalsIgnoreCase(currentRow.getCodJcom()))) &&
|
||||||
|
((x.getPartitaMag() == null && currentRow.getPartitaMag() == null) || (x.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(currentRow.getPartitaMag()))) &&
|
||||||
|
((x.getNumColloRif() == null && currentRow.getNumCollo() == null) || (x.getNumColloRif() != null && x.getNumColloRif().equals(currentRow.getNumCollo())))
|
||||||
|
)
|
||||||
|
|
||||||
|
.forEach(currentRow -> currentRow.setQtaCollo(currentRow.getQtaCollo().add(x.getQtaCol())));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
refreshOrderBy(true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onOrdineRowDispatch(final PickingObjectDTO item) {
|
||||||
|
if(mArticoliInColloBottomSheetViewModel.mtbColt.get() != null){
|
||||||
|
|
||||||
|
List<MtbColr> currentMtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr();
|
||||||
|
|
||||||
|
List<MtbColr> filteredMtbColrs = Stream.of(currentMtbColrs).filter(
|
||||||
|
x -> x.getCodMart().equalsIgnoreCase(item.getCodMart()) &&
|
||||||
|
(x.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(item.getPartitaMag())))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
float qtaEvasaInMtbColr = 0;
|
||||||
|
for (MtbColr mtbColr : filteredMtbColrs) {
|
||||||
|
qtaEvasaInMtbColr += mtbColr.getQtaCol().floatValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
float qtaEvasa = qtaEvasaInMtbColr;
|
||||||
|
|
||||||
|
BigDecimal qtaDaEvadere = item.getQtaOrd().subtract(new BigDecimal(qtaEvasa));
|
||||||
|
if(qtaDaEvadere.floatValue() < 0) qtaDaEvadere = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
||||||
|
.setBatchLot(item.getPartitaMag())
|
||||||
|
.setCodArtFor(item.getCodArtFor())
|
||||||
|
.setMtbAart(item.getMtbAart())
|
||||||
|
.setQtaOrd(item.getQtaOrd())
|
||||||
|
.setQtaDaEvadere(qtaDaEvadere)
|
||||||
|
.setQtaEvasa(new BigDecimal(qtaEvasa))
|
||||||
|
.setCanPartitaMagBeChanged(false)
|
||||||
|
.setMaxQta(item.getQtaOrd());
|
||||||
|
|
||||||
|
DialogInputQuantity.makeBase(mActivity, dto, true, value -> onOrdineRowDispatched(item, value)).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onOrdineRowDispatched(PickingObjectDTO item, QuantityDTO quantityDTO){
|
||||||
|
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
||||||
|
mActivity.getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
|
final MtbColr mtbColr = new MtbColr()
|
||||||
|
.setCodMart(item.getCodMart())
|
||||||
|
.setPartitaMag(UtilityString.empty2null(quantityDTO.batchLot.get()))
|
||||||
|
.setQtaCol(new BigDecimal(quantityDTO.qtaTot.get()))
|
||||||
|
.setQtaCnf(new BigDecimal(quantityDTO.qtaCnf.get()))
|
||||||
|
.setNumCnf(new BigDecimal(quantityDTO.numCnf.get()))
|
||||||
|
.setDescrizione(item.getDescrizioneEstesa())
|
||||||
|
.setDatetimeRow(new Date());
|
||||||
|
|
||||||
|
if(item.getNumCollo() != null) {
|
||||||
|
mtbColr
|
||||||
|
.setCodJcom(UtilityString.empty2null(item.getCodJcom()))
|
||||||
|
.setSerColloRif(UtilityString.empty2null(item.getSerCollo()))
|
||||||
|
.setNumColloRif(item.getNumCollo())
|
||||||
|
.setGestioneRif(UtilityString.empty2null(item.getGestione()))
|
||||||
|
.setDataColloRif(UtilityString.empty2null(item.getDataColloS()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||||
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
|
||||||
|
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
||||||
|
cloneMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(MtbColt value) {
|
||||||
|
|
||||||
|
mtbColr
|
||||||
|
.setDataCollo(value.getDataColloS())
|
||||||
|
.setNumCollo(value.getNumCollo())
|
||||||
|
.setGestione(value.getGestione())
|
||||||
|
.setSerCollo(value.getSerCollo())
|
||||||
|
.setRiga(value.getMtbColr().get(0).getRiga())
|
||||||
|
.setUntMis(item.getMtbAart().untMis)
|
||||||
|
.setMtbAart(item.getMtbAart());
|
||||||
|
|
||||||
|
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().add(mtbColr);
|
||||||
|
refreshOrderBy(false);
|
||||||
|
|
||||||
|
new StatusBarAlert.Builder(mActivity)
|
||||||
|
.autoHide(true)
|
||||||
|
.withDuration(2500)
|
||||||
|
.showProgress(false)
|
||||||
|
.withText(R.string.data_saved)
|
||||||
|
.withAlertColor(R.color.mainGreen)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
progress.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,6 +39,7 @@ public class DialogInputQuantity {
|
|||||||
public BigDecimal qtaDaEvadere;
|
public BigDecimal qtaDaEvadere;
|
||||||
public BigDecimal qtaOrd;
|
public BigDecimal qtaOrd;
|
||||||
public BigDecimal qtaTot;
|
public BigDecimal qtaTot;
|
||||||
|
public BigDecimal qtaCnf;
|
||||||
public BigDecimal qtaEvasa;
|
public BigDecimal qtaEvasa;
|
||||||
public BigDecimal maxQta;
|
public BigDecimal maxQta;
|
||||||
public String codArtFor;
|
public String codArtFor;
|
||||||
@ -89,6 +90,15 @@ public class DialogInputQuantity {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaCnf() {
|
||||||
|
return qtaCnf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DTO setQtaCnf(BigDecimal qtaCnf) {
|
||||||
|
this.qtaCnf = qtaCnf;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public BigDecimal getQtaEvasa() {
|
public BigDecimal getQtaEvasa() {
|
||||||
return qtaEvasa;
|
return qtaEvasa;
|
||||||
}
|
}
|
||||||
@ -211,11 +221,17 @@ public class DialogInputQuantity {
|
|||||||
|
|
||||||
quantityDTO.batchLot.set(dto.batchLot);
|
quantityDTO.batchLot.set(dto.batchLot);
|
||||||
if(quantityDTO.qtaCnf.get(false) == null) {
|
if(quantityDTO.qtaCnf.get(false) == null) {
|
||||||
|
if(dto.getQtaCnf() != null) {
|
||||||
|
quantityDTO.qtaCnf.set(dto.getQtaCnf().floatValue());
|
||||||
|
} else {
|
||||||
quantityDTO.qtaCnf.set(dto.mtbAart.qtaCnf.floatValue());
|
quantityDTO.qtaCnf.set(dto.mtbAart.qtaCnf.floatValue());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(quantityDTO.qtaTot.get(false) == null) {
|
if(quantityDTO.qtaTot.get(false) == null) {
|
||||||
quantityDTO.qtaTot.set(qtaDaEvadere);
|
quantityDTO.qtaTot.set(qtaDaEvadere);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(quantityDTO.numCnf.get(false) == null) {
|
if(quantityDTO.numCnf.get(false) == null) {
|
||||||
quantityDTO.numCnf.set(quantityDTO.qtaTot.get() / quantityDTO.qtaCnf.get());
|
quantityDTO.numCnf.set(quantityDTO.qtaTot.get() / quantityDTO.qtaCnf.get());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<variable
|
<variable
|
||||||
name="viewmodel"
|
name="viewmodel"
|
||||||
type="it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOnOrdineInevasoViewModel"/>
|
type="it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOnOrdineAccettazioneInevasoViewModel"/>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
@ -57,8 +57,66 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:scrollbars="vertical"
|
android:scrollbars="vertical"
|
||||||
|
android:paddingBottom="72dp"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<android.support.constraint.ConstraintLayout
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/accettazione_empty_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:alpha="0.3"
|
||||||
|
tools:context=".gest.lista_bancali.ListaBancaliActivity">
|
||||||
|
|
||||||
|
<android.support.constraint.Guideline
|
||||||
|
android:id="@+id/guideline_empty_top"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintGuide_percent="0.2" />
|
||||||
|
|
||||||
|
<android.support.constraint.Guideline
|
||||||
|
android:id="@+id/guideline_empty_left"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.15" />
|
||||||
|
|
||||||
|
<android.support.constraint.Guideline
|
||||||
|
android:id="@+id/guideline_empty_right"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.85" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatImageView
|
||||||
|
android:layout_width="72dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/ic_playlist_add_check_24dp"
|
||||||
|
android:adjustViewBounds="true"/>
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:text="@string/no_item_to_pick_text"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</android.support.constraint.ConstraintLayout>
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionMenu
|
<com.github.clans.fab.FloatingActionMenu
|
||||||
android:id="@+id/accettazione_ordine_inevaso_fab"
|
android:id="@+id/accettazione_ordine_inevaso_fab"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@ -87,7 +87,7 @@
|
|||||||
android:gravity="center_horizontal"
|
android:gravity="center_horizontal"
|
||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:text="Nessun bancale creato in precedenza"/>
|
android:text="@string/no_lu_already_registered_text"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</android.support.constraint.ConstraintLayout>
|
</android.support.constraint.ConstraintLayout>
|
||||||
|
|||||||
@ -57,7 +57,65 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:scrollbars="vertical"
|
android:scrollbars="vertical"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||||
|
android:paddingBottom="72dp"
|
||||||
|
android:clipToPadding="false" />
|
||||||
|
|
||||||
|
|
||||||
|
<android.support.constraint.ConstraintLayout
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/vendita_ordine_inevaso_empty_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:alpha="0.3"
|
||||||
|
tools:context=".gest.lista_bancali.ListaBancaliActivity">
|
||||||
|
|
||||||
|
<android.support.constraint.Guideline
|
||||||
|
android:id="@+id/guideline_empty_top"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintGuide_percent="0.2" />
|
||||||
|
|
||||||
|
<android.support.constraint.Guideline
|
||||||
|
android:id="@+id/guideline_empty_left"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.15" />
|
||||||
|
|
||||||
|
<android.support.constraint.Guideline
|
||||||
|
android:id="@+id/guideline_empty_right"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.85" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatImageView
|
||||||
|
android:layout_width="72dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/ic_playlist_add_check_24dp"
|
||||||
|
android:adjustViewBounds="true"/>
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:text="@string/no_item_to_pick_text"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</android.support.constraint.ConstraintLayout>
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionMenu
|
<com.github.clans.fab.FloatingActionMenu
|
||||||
android:id="@+id/vendita_ordine_inevaso_fab"
|
android:id="@+id/vendita_ordine_inevaso_fab"
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:padding="8dp">
|
android:padding="8dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -94,7 +94,14 @@
|
|||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
android:text="DESCRIZIONE"/>
|
tools:text="DESCRIZIONE"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_subdescrizione"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="14sp"
|
||||||
|
tools:text="SUB DESCRIZIONE"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
@ -114,7 +114,11 @@
|
|||||||
<string name="activity_contenuto_bancale_title">Contenuto UL</string>
|
<string name="activity_contenuto_bancale_title">Contenuto UL</string>
|
||||||
<string name="activity_vendita_inevaso_title">Spedizione merce</string>
|
<string name="activity_vendita_inevaso_title">Spedizione merce</string>
|
||||||
|
|
||||||
|
<string name="lu_number_text"><![CDATA[UL n° <b>%d</b> - <b>%s</b>]]></string>
|
||||||
|
|
||||||
<string name="button_ignore_print">Salta stampa</string>
|
<string name="button_ignore_print">Salta stampa</string>
|
||||||
|
|
||||||
|
<string name="no_lu_already_registered_text">Nessuna UL registrata a magazzino</string>
|
||||||
|
<string name="no_item_to_pick_text">Nessun articolo da prelevare</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@ -122,6 +122,11 @@
|
|||||||
<string name="activity_contenuto_bancale_title">LU Content</string>
|
<string name="activity_contenuto_bancale_title">LU Content</string>
|
||||||
<string name="activity_vendita_inevaso_title">Shipping goods</string>
|
<string name="activity_vendita_inevaso_title">Shipping goods</string>
|
||||||
|
|
||||||
|
<string name="lu_number_text"><![CDATA[LU n° <b>%d</b> - <b>%s</b>]]></string>
|
||||||
|
|
||||||
<string name="button_ignore_print">Skip print</string>
|
<string name="button_ignore_print">Skip print</string>
|
||||||
|
|
||||||
|
<string name="no_lu_already_registered_text">No LU already registered</string>
|
||||||
|
<string name="no_item_to_pick_text">No items to pick</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user