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;
|
||||
|
||||
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.model.CommonModelConsts;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
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){
|
||||
@ -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){
|
||||
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) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
this.dataScadPartita = sdf.format(dataScadPartita);
|
||||
if(dataScadPartita != null) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
||||
this.dataScadPartita = sdf.format(dataScadPartita);
|
||||
} else this.dataScadPartita = null;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@ -495,6 +495,14 @@ public class MtbColt extends EntityBase implements Parcelable {
|
||||
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() {
|
||||
return dataDoc;
|
||||
}
|
||||
@ -528,6 +536,12 @@ public class MtbColt extends EntityBase implements Parcelable {
|
||||
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() {
|
||||
return dataDocProvv;
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ public class ReportManager {
|
||||
break;
|
||||
|
||||
case VENDITA:
|
||||
onFailed.run(new Exception("Etichetta non definita"));
|
||||
onComplete.run("EtichettaSpedizione");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@ -10,4 +10,8 @@ public class UtilityString {
|
||||
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.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
||||
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.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||
|
||||
public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
|
||||
|
||||
public ActivityAccettazioneOrdineInevasoBinding bindings;
|
||||
private AccettazioneOnOrdineInevasoViewModel mAccettazioneOrdineInevasoViewModel;
|
||||
private AccettazioneOnOrdineAccettazioneInevasoViewModel mAccettazioneOrdineInevasoViewModel;
|
||||
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
||||
|
||||
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);
|
||||
|
||||
List<OrdineAccettazioneDTO> orders = (ArrayList<OrdineAccettazioneDTO>)getIntent().getSerializableExtra("key");
|
||||
mAccettazioneOrdineInevasoViewModel = new AccettazioneOnOrdineInevasoViewModel(
|
||||
mAccettazioneOrdineInevasoViewModel = new AccettazioneOnOrdineAccettazioneInevasoViewModel(
|
||||
this, mArticoliInColloBottomSheetViewModel, orders);
|
||||
|
||||
setSupportActionBar(this.bindings.toolbar);
|
||||
|
||||
@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core;
|
||||
|
||||
import android.content.Context;
|
||||
import android.databinding.ObservableArrayList;
|
||||
import android.view.View;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.orhanobut.logger.Logger;
|
||||
@ -36,8 +37,8 @@ public class AccettazioneOrdineInevasoHelper {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public MainListOrdineAccettazioneAdapter getRightListAdapter() {
|
||||
return new MainListOrdineAccettazioneAdapter(mContext, mListViewModels);
|
||||
public MainListOrdineAccettazioneAdapter getRightListAdapter(View emptyView) {
|
||||
return new MainListOrdineAccettazioneAdapter(mContext, mListViewModels, emptyView);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
Collections.sort(descrArtForns, (str1, str2) -> str1.compareToIgnoreCase(str2));
|
||||
Collections.sort(descrArtForns, String::compareToIgnoreCase);
|
||||
|
||||
List<List<OrdineAccettazioneDTO.Riga>> groupedRighe = new ArrayList<>();
|
||||
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;
|
||||
|
||||
public interface IOnOrdineRowDispatchCallback {
|
||||
public interface IOnOrdineAccettazioneRowDispatchCallback {
|
||||
|
||||
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> {
|
||||
|
||||
protected Context mContext;
|
||||
protected List<AccettazioneOrdineInevasoListViewModel> mDataset;
|
||||
protected ObservableArrayList<AccettazioneOrdineInevasoListViewModel> mObservableDataset;
|
||||
protected IOnOrdineRowDispatchCallback mOrdineRowDispatch;
|
||||
private Context mContext;
|
||||
private List<AccettazioneOrdineInevasoListViewModel> mDataset;
|
||||
private View mEmptyView;
|
||||
|
||||
private ObservableArrayList<AccettazioneOrdineInevasoListViewModel> mObservableDataset;
|
||||
private IOnOrdineAccettazioneRowDispatchCallback mOrdineRowDispatch;
|
||||
|
||||
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;
|
||||
mObservableDataset = myDataset;
|
||||
|
||||
mEmptyView = emptyView;
|
||||
|
||||
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
|
||||
mObservableDataset.addOnListChangedCallback(onListChangedCallback);
|
||||
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
public void setOnOrdineRowDispatchCallback(IOnOrdineRowDispatchCallback ordineRowDispatch) {
|
||||
public void setOnOrdineRowDispatchCallback(IOnOrdineAccettazioneRowDispatchCallback ordineRowDispatch) {
|
||||
mOrdineRowDispatch = ordineRowDispatch;
|
||||
}
|
||||
|
||||
@ -67,30 +71,35 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
|
||||
public void onChanged(ObservableList<AccettazioneOrdineInevasoListViewModel> sender) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeChanged(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeInserted(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeMoved(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int fromPosition, int toPosition, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeRemoved(ObservableList<AccettazioneOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
private void refreshNotHiddenElements() {
|
||||
@ -221,4 +230,13 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
|
||||
public int getItemCount() {
|
||||
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_ordine_inevaso.AccettazioneOrdineInevasoActivity;
|
||||
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.dto.AccettazioneOrdineInevasoOrderBy;
|
||||
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;
|
||||
|
||||
public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallback, IOnOrdineRowDispatchCallback {
|
||||
public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColloClosedCallback, IOnOrdineAccettazioneRowDispatchCallback {
|
||||
|
||||
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 MainListOrdineAccettazioneAdapter mAdapter;
|
||||
|
||||
public AccettazioneOnOrdineInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<OrdineAccettazioneDTO> orders) {
|
||||
public AccettazioneOnOrdineAccettazioneInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<OrdineAccettazioneDTO> orders) {
|
||||
this.mActivity = activity;
|
||||
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
|
||||
this.mOrders = orders;
|
||||
@ -97,7 +97,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
|
||||
|
||||
mActivity.bindings.accettazioneOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
|
||||
mAdapter = helper.getRightListAdapter();
|
||||
mAdapter = helper.getRightListAdapter(mActivity.bindings.accettazioneEmptyView);
|
||||
|
||||
try {
|
||||
helper.updateListModel(AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR, groupedRighe, null);
|
||||
@ -315,21 +315,43 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
|
||||
public void onColloClosed() {
|
||||
if(thereIsAnOpenedUL()) {
|
||||
|
||||
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
||||
mActivity.getText(R.string.loading) + " ...", true);
|
||||
|
||||
progress.show();
|
||||
|
||||
if(thereIsAnyRowInUL()) {
|
||||
printCollo();
|
||||
updateDataFine(progress, () -> printCollo(progress));
|
||||
} else {
|
||||
deleteCollo();
|
||||
deleteCollo(progress);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void printCollo() {
|
||||
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
||||
mActivity.getText(R.string.loading) + " ...", true);
|
||||
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
||||
|
||||
progress.show();
|
||||
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>>() {
|
||||
@Override
|
||||
@ -386,11 +408,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
|
||||
}
|
||||
|
||||
|
||||
private void deleteCollo() {
|
||||
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
||||
mActivity.getText(R.string.loading) + " ...", true);
|
||||
|
||||
progress.show();
|
||||
private void deleteCollo(ProgressDialog progress) {
|
||||
|
||||
ColliMagazzinoRESTConsumer.deleteCollo(mArticoliInColloBottomSheetViewModel.mtbColt.get(), () -> {
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||
@ -415,22 +433,16 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
|
||||
|
||||
|
||||
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);
|
||||
isFabVisible.set(true);
|
||||
|
||||
if(mtbColtToDelete != null && mtbColtToDelete.getMtbColr() != null) {
|
||||
for (int i = 0; i < mtbColtToDelete.getMtbColr().size(); i++) {
|
||||
if(mtbColt != null && mtbColt.getMtbColr() != null) {
|
||||
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)
|
||||
.filter(x ->
|
||||
@ -204,7 +204,6 @@ public class MainListVenditaAdapter extends RecyclerView.Adapter<MainListVendita
|
||||
return mDataset.size();
|
||||
}
|
||||
|
||||
|
||||
public void setFilter(List<OrdineVenditaGroupedInevasoDTO> newDataset) {
|
||||
mDataset = new ArrayList<>();
|
||||
mDataset.addAll(newDataset);
|
||||
|
||||
@ -135,7 +135,7 @@ public class VenditaHelper {
|
||||
|
||||
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() + ") ";
|
||||
|
||||
if(i != (orders.size() - 1)){
|
||||
|
||||
@ -8,6 +8,10 @@ import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
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 {
|
||||
|
||||
private Integer numCollo;
|
||||
@ -31,6 +35,8 @@ public class PickingObjectDTO implements Parcelable {
|
||||
private String codAlis;
|
||||
private BigDecimal colliPedana;
|
||||
|
||||
private MtbAart mtbAart;
|
||||
|
||||
private Boolean hidden = null;
|
||||
|
||||
protected PickingObjectDTO(Parcel in) {
|
||||
@ -79,6 +85,9 @@ public class PickingObjectDTO implements Parcelable {
|
||||
} else {
|
||||
numCnfCollo = new BigDecimal(in.readFloat());
|
||||
}
|
||||
|
||||
|
||||
mtbAart = (MtbAart) in.readValue(MtbAart.class.getClassLoader());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -139,6 +148,8 @@ public class PickingObjectDTO implements Parcelable {
|
||||
dest.writeByte((byte) (0x01));
|
||||
dest.writeFloat(numCnfCollo.floatValue());
|
||||
}
|
||||
|
||||
dest.writeValue(mtbAart);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -239,6 +250,19 @@ public class PickingObjectDTO implements Parcelable {
|
||||
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) {
|
||||
this.dataCollo = dataCollo;
|
||||
return this;
|
||||
@ -348,6 +372,15 @@ public class PickingObjectDTO implements Parcelable {
|
||||
return this;
|
||||
}
|
||||
|
||||
public MtbAart getMtbAart() {
|
||||
return mtbAart;
|
||||
}
|
||||
|
||||
public PickingObjectDTO setMtbAart(MtbAart mtbAart) {
|
||||
this.mtbAart = mtbAart;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Boolean isHidden() {
|
||||
return hidden;
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import android.databinding.ObservableList;
|
||||
import android.graphics.Color;
|
||||
import android.support.v4.util.Pools;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
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.UtilityString;
|
||||
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;
|
||||
|
||||
public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<MainListOrdineVenditaInevasoAdapter.ViewHolder> {
|
||||
|
||||
protected Context mContext;
|
||||
protected List<VenditaOrdineInevasoListViewModel> mDataset;
|
||||
protected ObservableArrayList<VenditaOrdineInevasoListViewModel> mObservableDataset;
|
||||
protected IOnOrdineRowDispatchCallback mOrdineRowDispatch;
|
||||
private Context mContext;
|
||||
private List<VenditaOrdineInevasoListViewModel> mDataset;
|
||||
private View mEmptyView;
|
||||
private ObservableArrayList<VenditaOrdineInevasoListViewModel> mObservableDataset;
|
||||
private IOnOrdineVenditaRowDispatched mOrdineRowDispatch;
|
||||
|
||||
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;
|
||||
mObservableDataset = myDataset;
|
||||
mEmptyView = emptyView;
|
||||
|
||||
|
||||
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
|
||||
mObservableDataset.addOnListChangedCallback(onListChangedCallback);
|
||||
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
public void setOnOrdineRowDispatchCallback(IOnOrdineRowDispatchCallback ordineRowDispatch) {
|
||||
public void setOnOrdineRowDispatchCallback(IOnOrdineVenditaRowDispatched ordineRowDispatch) {
|
||||
mOrdineRowDispatch = ordineRowDispatch;
|
||||
}
|
||||
|
||||
@ -63,30 +69,35 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<Ma
|
||||
public void onChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeInserted(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeMoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int fromPosition, int toPosition, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeRemoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
private void refreshNotHiddenElements() {
|
||||
@ -172,6 +183,10 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<Ma
|
||||
descrizione.setText(descrizioneString);
|
||||
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);
|
||||
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 {
|
||||
|
||||
void onOrdineRowDispatch(PickingObjectDTO item);
|
||||
|
||||
@ -2,9 +2,12 @@ package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core;
|
||||
|
||||
import android.content.Context;
|
||||
import android.databinding.ObservableArrayList;
|
||||
import android.view.View;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@ -24,8 +27,8 @@ public class VenditaOrdineInevasoHelper {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public MainListOrdineVenditaInevasoAdapter getRightListAdapter() {
|
||||
return new MainListOrdineVenditaInevasoAdapter(mContext, mListViewModels);
|
||||
public MainListOrdineVenditaInevasoAdapter getRightListAdapter(View emptyView) {
|
||||
return new MainListOrdineVenditaInevasoAdapter(mContext, mListViewModels, emptyView);
|
||||
}
|
||||
|
||||
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++){
|
||||
if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
|
||||
if (tmpList.get(i).getQtaCollo().floatValue() <= 0) {
|
||||
tmpList.get(i).setHidden(true);
|
||||
} else tmpList.get(i).setHidden(false);
|
||||
PickingObjectDTO tmpItem = tmpList.get(i);
|
||||
|
||||
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());
|
||||
|
||||
//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.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 descrizione;
|
||||
private String subDescrizione;
|
||||
private BigDecimal qtaRiservata;
|
||||
private BigDecimal qtaOrdinata;
|
||||
|
||||
@ -54,6 +55,15 @@ public class VenditaOrdineInevasoListViewModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getSubDescrizione() {
|
||||
return subDescrizione;
|
||||
}
|
||||
|
||||
public SubItem setSubDescrizione(String subDescrizione) {
|
||||
this.subDescrizione = subDescrizione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaRiservata() {
|
||||
return qtaRiservata == null ? BigDecimal.ZERO : qtaRiservata;
|
||||
}
|
||||
|
||||
@ -1,33 +1,47 @@
|
||||
package it.integry.integrywmsnative.gest.vendita_ordine_inevaso.viewmodel;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.databinding.ObservableArrayList;
|
||||
import android.databinding.ObservableField;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.text.SpannableString;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
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.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
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.UtilityString;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||
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.core.VenditaOrdineInevasoHelper;
|
||||
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.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||
|
||||
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<>();
|
||||
|
||||
@ -43,7 +57,11 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
||||
private MainListOrdineVenditaInevasoAdapter mAdapter;
|
||||
|
||||
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) {
|
||||
this.mActivity = activity;
|
||||
@ -76,7 +94,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
||||
|
||||
mActivity.bindings.venditaOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
|
||||
mAdapter = mHelper.getRightListAdapter();
|
||||
mAdapter = mHelper.getRightListAdapter(mActivity.bindings.venditaOrdineInevasoEmptyView);
|
||||
|
||||
try {
|
||||
this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, true);
|
||||
@ -85,53 +103,93 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
||||
UtilityExceptions.defaultException(mActivity, e);
|
||||
}
|
||||
|
||||
// mAdapter.setOnOrdineRowDispatchCallback(this);
|
||||
mAdapter.setOnOrdineRowDispatchCallback(this);
|
||||
mActivity.bindings.venditaOrdineMainList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private void initDatiPicking() {
|
||||
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
|
||||
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++){
|
||||
|
||||
OrdineVenditaGroupedInevasoDTO.Ordine dto = this.mTestateOrdini.get(i).ordini.get(j);
|
||||
|
||||
if(defaultGestioneOfUL == null) {
|
||||
defaultGestioneOfUL = dto.getGestioneEnum();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
if(foundGestioni != null && foundGestioni.size() > 1){
|
||||
UtilityExceptions.defaultException(mActivity, new Exception("Impossibile caricare ordini di diverse gestioni"));
|
||||
mActivity.finish();
|
||||
return;
|
||||
} else if(foundGestioni != null && foundGestioni.size() == 1){
|
||||
defaultGestioneOfUL = foundGestioni.get(0);
|
||||
} else {
|
||||
defaultGestioneOfUL = GestioneEnum.VENDITA;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//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 -> {
|
||||
defaultFiltroOrdine.add(new FiltroOrdineDTO()
|
||||
.setDataOrd(x.getData())
|
||||
.setNumOrd(x.getNumero())
|
||||
.setGestioneOrd(x.getGestione()));
|
||||
});
|
||||
|
||||
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()
|
||||
.setDataOrd(dto.getData())
|
||||
.setNumOrd(dto.getNumero())
|
||||
.setGestioneOrd(dto.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){
|
||||
|
||||
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++){
|
||||
|
||||
MtbColr currentMtbColr = recoveredMtbColt.getMtbColr().get(i);
|
||||
@ -174,6 +234,53 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback {
|
||||
}
|
||||
|
||||
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
|
||||
public void onColloClosed() {
|
||||
if(thereIsAnOpenedUL()) {
|
||||
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
|
||||
mActivity.getText(R.string.loading) + " ...", true);
|
||||
|
||||
progress.show();
|
||||
|
||||
if(thereIsAnyRowInUL()) {
|
||||
printCollo();
|
||||
updateDataFine(progress, () -> distribuisciCollo(progress, () -> printCollo(progress)));
|
||||
} 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() {
|
||||
@ -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 qtaOrd;
|
||||
public BigDecimal qtaTot;
|
||||
public BigDecimal qtaCnf;
|
||||
public BigDecimal qtaEvasa;
|
||||
public BigDecimal maxQta;
|
||||
public String codArtFor;
|
||||
@ -89,6 +90,15 @@ public class DialogInputQuantity {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaCnf() {
|
||||
return qtaCnf;
|
||||
}
|
||||
|
||||
public DTO setQtaCnf(BigDecimal qtaCnf) {
|
||||
this.qtaCnf = qtaCnf;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaEvasa() {
|
||||
return qtaEvasa;
|
||||
}
|
||||
@ -211,11 +221,17 @@ public class DialogInputQuantity {
|
||||
|
||||
quantityDTO.batchLot.set(dto.batchLot);
|
||||
if(quantityDTO.qtaCnf.get(false) == null) {
|
||||
quantityDTO.qtaCnf.set(dto.mtbAart.qtaCnf.floatValue());
|
||||
if(dto.getQtaCnf() != null) {
|
||||
quantityDTO.qtaCnf.set(dto.getQtaCnf().floatValue());
|
||||
} else {
|
||||
quantityDTO.qtaCnf.set(dto.mtbAart.qtaCnf.floatValue());
|
||||
}
|
||||
}
|
||||
|
||||
if(quantityDTO.qtaTot.get(false) == null) {
|
||||
quantityDTO.qtaTot.set(qtaDaEvadere);
|
||||
}
|
||||
|
||||
if(quantityDTO.numCnf.get(false) == null) {
|
||||
quantityDTO.numCnf.set(quantityDTO.qtaTot.get() / quantityDTO.qtaCnf.get());
|
||||
}
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOnOrdineInevasoViewModel"/>
|
||||
type="it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOnOrdineAccettazioneInevasoViewModel"/>
|
||||
|
||||
</data>
|
||||
|
||||
@ -57,8 +57,66 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical"
|
||||
android:paddingBottom="72dp"
|
||||
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
|
||||
android:id="@+id/accettazione_ordine_inevaso_fab"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@ -87,7 +87,7 @@
|
||||
android:gravity="center_horizontal"
|
||||
android:textColor="@android:color/black"
|
||||
android:textSize="18sp"
|
||||
android:text="Nessun bancale creato in precedenza"/>
|
||||
android:text="@string/no_lu_already_registered_text"/>
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
|
||||
@ -57,7 +57,65 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
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
|
||||
android:id="@+id/vendita_ordine_inevaso_fab"
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
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">
|
||||
|
||||
<LinearLayout
|
||||
@ -94,7 +94,14 @@
|
||||
android:layout_marginTop="4dp"
|
||||
android:textSize="16sp"
|
||||
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>
|
||||
|
||||
|
||||
@ -114,7 +114,11 @@
|
||||
<string name="activity_contenuto_bancale_title">Contenuto UL</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="no_lu_already_registered_text">Nessuna UL registrata a magazzino</string>
|
||||
<string name="no_item_to_pick_text">Nessun articolo da prelevare</string>
|
||||
|
||||
</resources>
|
||||
@ -122,6 +122,11 @@
|
||||
<string name="activity_contenuto_bancale_title">LU Content</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="no_lu_already_registered_text">No LU already registered</string>
|
||||
<string name="no_item_to_pick_text">No items to pick</string>
|
||||
|
||||
</resources>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user