diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml
index edb5f641..8d5b9119 100644
--- a/.idea/assetWizardSettings.xml
+++ b/.idea/assetWizardSettings.xml
@@ -18,7 +18,7 @@
@@ -29,9 +29,11 @@
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 0721a52c..67cc901d 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 40b03484..ede2e358 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -10,6 +10,7 @@
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 7af1a597..6f56623a 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -4,6 +4,7 @@
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 9f3cad56..99774301 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -32,7 +32,7 @@ dependencies {
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:design:27.1.1'
- implementation 'com.android.support.constraint:constraint-layout:1.1.0'
+ implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.android.support:recyclerview-v7:27.1.1'
@@ -70,7 +70,7 @@ dependencies {
implementation 'com.fxn769:stash:1.2'
implementation 'net.cachapa.expandablelayout:expandablelayout:2.9.2'
-
+ implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'
testImplementation 'junit:junit:4.12'
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
index 30bb3993..3771b45a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
@@ -17,7 +17,7 @@ public class MainApplication extends Application {
super.onCreate();
Stash.init(this);
- SettingsManager.init();
+ SettingsManager.init(this);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/CommonConst.java b/app/src/main/java/it/integry/integrywmsnative/core/CommonConst.java
index b30875ab..6875b58d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/CommonConst.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/CommonConst.java
@@ -5,8 +5,11 @@ public class CommonConst {
public static class Login {
public static class Azienda {
- public static String host = "192.168.2.13";
- public static int port = 8080;
+// public static String host = "192.168.2.13";
+// public static int port = 8080;
+
+ public static String host = "www2.studioml.it";
+ public static int port = 80;
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java
index 9001de76..277e9341 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java
@@ -5,6 +5,7 @@ import android.util.Log;
import java.util.List;
import it.integry.integrywmsnative.core.REST.RESTBuilder;
+import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.REST.model.EsitoType;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.settings.SettingsManager;
@@ -56,4 +57,50 @@ public class SystemRESTConsumer {
}
+
+
+
+
+ public static void getAvailableCodMdeps(final ISimpleOperationCallback> callback){
+
+ SystemRESTConsumerService service = RESTBuilder.getService(SystemRESTConsumerService.class);
+ service.getAvailableCodMdeps().enqueue(new Callback>>() {
+ @Override
+ public void onResponse(Call>> call, Response>> response) {
+
+ if(response.isSuccessful()) {
+
+ if(response.body() != null) {
+ if(response.body().getEsito() == EsitoType.OK) {
+ callback.onSuccess(response.body().getDto());
+ } else {
+ Log.e("CodMdepsAvailable", response.body().getErrorMessage());
+ callback.onFailed(new Exception(response.body().getErrorMessage()));
+ }
+ } else {
+ Log.e("CodMdepsAvailable", response.message());
+ callback.onFailed(new Exception(response.message()));
+ }
+ } else {
+ Log.e("CodMdepsAvailable", "Status " + response.code() + ": " + response.message());
+ callback.onFailed(new Exception("Status " + response.code() + ": " + response.message()));
+ }
+
+
+ }
+
+ @Override
+ public void onFailure(Call>> call, final Throwable t) {
+
+ Log.e("CodMdepsAvailable", t.toString());
+ callback.onFailed(new Exception(t));
+
+
+
+ }
+ });
+
+
+ }
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumerService.java
index 42ceaab7..207b688e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumerService.java
@@ -2,9 +2,9 @@ package it.integry.integrywmsnative.core.REST.consumers;
import java.util.List;
+import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import retrofit2.Call;
-import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Query;
@@ -13,4 +13,7 @@ public interface SystemRESTConsumerService {
@GET("getAvailableProfiles")
Call>> getAvailableProfiles(@Query("username") String username, @Query("password") String password);
+ @GET("getAvailableCodMdepsForUser")
+ Call>> getAvailableCodMdeps();
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/model/AvailableCodMdepsDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/model/AvailableCodMdepsDTO.java
new file mode 100644
index 00000000..b48b4913
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/model/AvailableCodMdepsDTO.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative.core.REST.model;
+
+public class AvailableCodMdepsDTO {
+
+ private String codMdep;
+ private String descrizione;
+
+ public String getCodMdep() {
+ return codMdep;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/AppComponent.java b/app/src/main/java/it/integry/integrywmsnative/core/di/AppComponent.java
deleted file mode 100644
index a6e5c330..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/core/di/AppComponent.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package it.integry.integrywmsnative.core.di;
-
-/**
- * Created by GiuseppeS on 06/03/2018.
- */
-
-public class AppComponent {
-}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/binders/RecyclerViewAdapterBinders.java b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/RecyclerViewAdapterBinders.java
new file mode 100644
index 00000000..a210f34c
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/RecyclerViewAdapterBinders.java
@@ -0,0 +1,43 @@
+package it.integry.integrywmsnative.core.di.binders;
+
+import android.databinding.BindingAdapter;
+import android.databinding.ObservableArrayList;
+import android.support.v7.widget.RecyclerView;
+import android.view.ViewGroup;
+
+import java.util.List;
+
+public class RecyclerViewAdapterBinders {
+
+
+
+// @BindingAdapter("app:adapter")
+// public static void setItems(RecyclerView recyclerView, Class clazz) {
+// setItems(recyclerView, null, clazz);
+// }
+//
+// @BindingAdapter("app:items")
+// public static void setItems(RecyclerView recyclerView, ObservableArrayList entries) {
+// setItems(recyclerView, entries, null);
+// }
+//
+// @BindingAdapter({"app:items", "app:adapter"})
+// public static void setItems(RecyclerView recyclerView,
+// ObservableArrayList entries, Class clazz) {
+//
+//// recyclerView.removeAllViews();
+//// if (entries != null) {
+//// LayoutInflater inflater = (LayoutInflater)
+//// viewGroup.getContext()
+//// .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+//// for (int i = 0; i < entries.size(); i++) {
+//// T entry = entries.get(i);
+//// ViewDataBinding binding = DataBindingUtil
+//// .inflate(inflater, layoutId, viewGroup, true);
+//// binding.setVariable(BR.data, entry);
+//// }
+//// }
+// }
+
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/BindingRecyclerViewAdapter.java b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/BindingRecyclerViewAdapter.java
new file mode 100644
index 00000000..654e0e0c
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/BindingRecyclerViewAdapter.java
@@ -0,0 +1,216 @@
+package it.integry.integrywmsnative.core.di.binders.recyclerview;
+
+import android.databinding.DataBindingUtil;
+import android.databinding.ObservableArrayList;
+import android.databinding.ObservableList;
+import android.databinding.ViewDataBinding;
+import android.support.annotation.Nullable;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import java.lang.ref.WeakReference;
+import java.util.Collection;
+
+public class BindingRecyclerViewAdapter extends RecyclerView.Adapter implements View.OnClickListener, View.OnLongClickListener
+{
+ private static final int ITEM_MODEL = -124;
+ private final WeakReferenceOnListChangedCallback onListChangedCallback;
+ private final ItemBinder itemBinder;
+ private ObservableList items;
+ private LayoutInflater inflater;
+ private ClickHandler clickHandler;
+ private LongClickHandler longClickHandler;
+
+ public BindingRecyclerViewAdapter(ItemBinder itemBinder, @Nullable Collection items)
+ {
+ this.itemBinder = itemBinder;
+ this.onListChangedCallback = new WeakReferenceOnListChangedCallback<>(this);
+ setItems(items);
+ }
+
+ public ObservableList getItems()
+ {
+ return items;
+ }
+
+ public void setItems(@Nullable Collection items)
+ {
+ if (this.items == items)
+ {
+ return;
+ }
+
+ if (this.items != null)
+ {
+ this.items.removeOnListChangedCallback(onListChangedCallback);
+ notifyItemRangeRemoved(0, this.items.size());
+ }
+
+ if (items instanceof ObservableList)
+ {
+ this.items = (ObservableList) items;
+ notifyItemRangeInserted(0, this.items.size());
+ this.items.addOnListChangedCallback(onListChangedCallback);
+ }
+ else if (items != null)
+ {
+ this.items = new ObservableArrayList<>();
+ this.items.addOnListChangedCallback(onListChangedCallback);
+ this.items.addAll(items);
+ }
+ else
+ {
+ this.items = null;
+ }
+ }
+
+ @Override
+ public void onDetachedFromRecyclerView(RecyclerView recyclerView)
+ {
+ if (items != null)
+ {
+ items.removeOnListChangedCallback(onListChangedCallback);
+ }
+ }
+
+ @Override
+ public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int layoutId)
+ {
+ if (inflater == null)
+ {
+ inflater = LayoutInflater.from(viewGroup.getContext());
+ }
+
+ ViewDataBinding binding = DataBindingUtil.inflate(inflater, layoutId, viewGroup, false);
+ return new ViewHolder(binding);
+ }
+
+ @Override
+ public void onBindViewHolder(ViewHolder viewHolder, int position)
+ {
+ final T item = items.get(position);
+ viewHolder.binding.setVariable(itemBinder.getBindingVariable(item), item);
+ viewHolder.binding.getRoot().setTag(ITEM_MODEL, item);
+ viewHolder.binding.getRoot().setOnClickListener(this);
+ viewHolder.binding.getRoot().setOnLongClickListener(this);
+ viewHolder.binding.executePendingBindings();
+ }
+
+ @Override
+ public int getItemViewType(int position)
+ {
+ return itemBinder.getLayoutRes(items.get(position));
+ }
+
+ @Override
+ public int getItemCount()
+ {
+ return items == null ? 0 : items.size();
+ }
+
+ @Override
+ public void onClick(View v)
+ {
+ if (clickHandler != null)
+ {
+ T item = (T) v.getTag(ITEM_MODEL);
+ clickHandler.onClick(item);
+ }
+ }
+
+ @Override
+ public boolean onLongClick(View v)
+ {
+ if (longClickHandler != null)
+ {
+ T item = (T) v.getTag(ITEM_MODEL);
+ longClickHandler.onLongClick(item);
+ return true;
+ }
+ return false;
+ }
+
+ public static class ViewHolder extends RecyclerView.ViewHolder
+ {
+ final ViewDataBinding binding;
+
+ ViewHolder(ViewDataBinding binding)
+ {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+ }
+
+ private static class WeakReferenceOnListChangedCallback extends ObservableList.OnListChangedCallback
+ {
+
+ private final WeakReference> adapterReference;
+
+ public WeakReferenceOnListChangedCallback(BindingRecyclerViewAdapter bindingRecyclerViewAdapter)
+ {
+ this.adapterReference = new WeakReference<>(bindingRecyclerViewAdapter);
+ }
+
+ @Override
+ public void onChanged(ObservableList sender)
+ {
+ RecyclerView.Adapter adapter = adapterReference.get();
+ if (adapter != null)
+ {
+ adapter.notifyDataSetChanged();
+ }
+ }
+
+ @Override
+ public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount)
+ {
+ RecyclerView.Adapter adapter = adapterReference.get();
+ if (adapter != null)
+ {
+ adapter.notifyItemRangeChanged(positionStart, itemCount);
+ }
+ }
+
+ @Override
+ public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount)
+ {
+ RecyclerView.Adapter adapter = adapterReference.get();
+ if (adapter != null)
+ {
+ adapter.notifyItemRangeInserted(positionStart, itemCount);
+ }
+ }
+
+ @Override
+ public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount)
+ {
+ RecyclerView.Adapter adapter = adapterReference.get();
+ if (adapter != null)
+ {
+ adapter.notifyItemMoved(fromPosition, toPosition);
+ }
+ }
+
+ @Override
+ public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount)
+ {
+ RecyclerView.Adapter adapter = adapterReference.get();
+ if (adapter != null)
+ {
+ adapter.notifyItemRangeRemoved(positionStart, itemCount);
+ }
+ }
+ }
+
+ public void setClickHandler(ClickHandler clickHandler)
+ {
+ this.clickHandler = clickHandler;
+ }
+
+ public void setLongClickHandler(LongClickHandler clickHandler)
+ {
+ this.longClickHandler = clickHandler;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/ClickHandler.java b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/ClickHandler.java
new file mode 100644
index 00000000..2c35050e
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/ClickHandler.java
@@ -0,0 +1,6 @@
+package it.integry.integrywmsnative.core.di.binders.recyclerview;
+
+public interface ClickHandler
+{
+ void onClick(T viewModel);
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/ItemBinder.java b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/ItemBinder.java
new file mode 100644
index 00000000..956a914b
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/ItemBinder.java
@@ -0,0 +1,7 @@
+package it.integry.integrywmsnative.core.di.binders.recyclerview;
+
+public interface ItemBinder
+{
+ int getLayoutRes(T model);
+ int getBindingVariable(T model);
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/ItemBinderBase.java b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/ItemBinderBase.java
new file mode 100644
index 00000000..754b7f33
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/ItemBinderBase.java
@@ -0,0 +1,23 @@
+package it.integry.integrywmsnative.core.di.binders.recyclerview;
+
+public class ItemBinderBase implements ItemBinder
+{
+ protected final int bindingVariable;
+ protected final int layoutId;
+
+ public ItemBinderBase(int bindingVariable, int layoutId)
+ {
+ this.bindingVariable = bindingVariable;
+ this.layoutId = layoutId;
+ }
+
+ public int getLayoutRes(T model)
+ {
+ return layoutId;
+ }
+
+ public int getBindingVariable(T model)
+ {
+ return bindingVariable;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/LongClickHandler.java b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/LongClickHandler.java
new file mode 100644
index 00000000..3896a1f6
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/LongClickHandler.java
@@ -0,0 +1,6 @@
+package it.integry.integrywmsnative.core.di.binders.recyclerview;
+
+public interface LongClickHandler
+{
+ void onLongClick(T viewModel);
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/RecyclerViewBindings.java b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/RecyclerViewBindings.java
new file mode 100644
index 00000000..43aa99c5
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/di/binders/recyclerview/RecyclerViewBindings.java
@@ -0,0 +1,73 @@
+package it.integry.integrywmsnative.core.di.binders.recyclerview;
+
+import android.databinding.BindingAdapter;
+import android.support.v7.widget.RecyclerView;
+
+import java.util.Collection;
+
+public class RecyclerViewBindings {
+
+ private static final int KEY_ITEMS = -123;
+ private static final int KEY_CLICK_HANDLER = -124;
+ private static final int KEY_LONG_CLICK_HANDLER = -125;
+
+ @SuppressWarnings("unchecked")
+ @BindingAdapter("items")
+ public static void setItems(RecyclerView recyclerView, Collection items)
+ {
+ BindingRecyclerViewAdapter adapter = (BindingRecyclerViewAdapter) recyclerView.getAdapter();
+ if (adapter != null)
+ {
+ adapter.setItems(items);
+ }
+ else
+ {
+ recyclerView.setTag(KEY_ITEMS, items);
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ @BindingAdapter("clickHandler")
+ public static void setHandler(RecyclerView recyclerView, ClickHandler handler)
+ {
+ BindingRecyclerViewAdapter adapter = (BindingRecyclerViewAdapter) recyclerView.getAdapter();
+ if (adapter != null)
+ {
+ adapter.setClickHandler(handler);
+ }
+ else
+ {
+ recyclerView.setTag(KEY_CLICK_HANDLER, handler);
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ @BindingAdapter("longClickHandler")
+ public static void setHandler(RecyclerView recyclerView, LongClickHandler handler)
+ {
+ BindingRecyclerViewAdapter adapter = (BindingRecyclerViewAdapter) recyclerView.getAdapter();
+ if (adapter != null)
+ {
+ adapter.setLongClickHandler(handler);
+ }
+ else
+ {
+ recyclerView.setTag(KEY_LONG_CLICK_HANDLER, handler);
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ @BindingAdapter("itemViewBinder")
+ public static void setItemViewBinder(RecyclerView recyclerView, ItemBinder itemViewMapper)
+ {
+ Collection items = (Collection) recyclerView.getTag(KEY_ITEMS);
+ ClickHandler clickHandler = (ClickHandler) recyclerView.getTag(KEY_CLICK_HANDLER);
+ BindingRecyclerViewAdapter adapter = new BindingRecyclerViewAdapter<>(itemViewMapper, items);
+ if(clickHandler != null)
+ {
+ adapter.setClickHandler(clickHandler);
+ }
+ recyclerView.setAdapter(adapter);
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java
new file mode 100644
index 00000000..c4fdee8c
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java
@@ -0,0 +1,294 @@
+package it.integry.integrywmsnative.core.model;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class MtbColr extends EntityBase{
+
+
+ private Date dataCollo;
+ private String gestione;
+ private String serCollo;
+ private Integer numCollo;
+ private Integer riga;
+ private Integer rigaOrd;
+ private String codMart;
+ private String codBarre;
+ private String codCol;
+ private String codTagl;
+ private String partitaMag;
+ private String gestioneRif;
+ private String serColloRif;
+ private String note;
+ private Date dataOrd;
+ private Date dataColloRif;
+ private BigDecimal qtaCnf;
+ private BigDecimal qtaCol;
+ private Integer numOrd;
+ private Integer numEtich;
+ private Integer numColloRif;
+ private Date datetimeRow;
+ private String codJcom;
+ private BigDecimal numCnf;
+ private String insPartitaMag;
+ private String mtbPartitaMag_descrizione;
+ private Date dataScadPartita;
+ private String descrizione;
+
+
+ public MtbColr() {
+ type = "mtb_colr";
+ }
+
+ public Date getDataCollo() {
+ return dataCollo;
+ }
+
+ public MtbColr setDataCollo(Date dataCollo) {
+ this.dataCollo = dataCollo;
+ return this;
+ }
+
+ public String getGestione() {
+ return gestione;
+ }
+
+ public MtbColr setGestione(String gestione) {
+ this.gestione = gestione;
+ return this;
+ }
+
+ public String getSerCollo() {
+ return serCollo;
+ }
+
+ public MtbColr setSerCollo(String serCollo) {
+ this.serCollo = serCollo;
+ return this;
+ }
+
+ public Integer getNumCollo() {
+ return numCollo;
+ }
+
+ public MtbColr setNumCollo(Integer numCollo) {
+ this.numCollo = numCollo;
+ return this;
+ }
+
+ public Integer getRiga() {
+ return riga;
+ }
+
+ public MtbColr setRiga(Integer riga) {
+ this.riga = riga;
+ return this;
+ }
+
+ public Integer getRigaOrd() {
+ return rigaOrd;
+ }
+
+ public MtbColr setRigaOrd(Integer rigaOrd) {
+ this.rigaOrd = rigaOrd;
+ return this;
+ }
+
+ public String getCodMart() {
+ return codMart;
+ }
+
+ public MtbColr setCodMart(String codMart) {
+ this.codMart = codMart;
+ return this;
+ }
+
+ public String getCodBarre() {
+ return codBarre;
+ }
+
+ public MtbColr setCodBarre(String codBarre) {
+ this.codBarre = codBarre;
+ return this;
+ }
+
+ public String getCodCol() {
+ return codCol;
+ }
+
+ public MtbColr setCodCol(String codCol) {
+ this.codCol = codCol;
+ return this;
+ }
+
+ public String getCodTagl() {
+ return codTagl;
+ }
+
+ public MtbColr setCodTagl(String codTagl) {
+ this.codTagl = codTagl;
+ return this;
+ }
+
+ public String getPartitaMag() {
+ return partitaMag;
+ }
+
+ public MtbColr setPartitaMag(String partitaMag) {
+ this.partitaMag = partitaMag;
+ return this;
+ }
+
+ public String getGestioneRif() {
+ return gestioneRif;
+ }
+
+ public MtbColr setGestioneRif(String gestioneRif) {
+ this.gestioneRif = gestioneRif;
+ return this;
+ }
+
+ public String getSerColloRif() {
+ return serColloRif;
+ }
+
+ public MtbColr setSerColloRif(String serColloRif) {
+ this.serColloRif = serColloRif;
+ return this;
+ }
+
+ public String getNote() {
+ return note;
+ }
+
+ public MtbColr setNote(String note) {
+ this.note = note;
+ return this;
+ }
+
+ public Date getDataOrd() {
+ return dataOrd;
+ }
+
+ public MtbColr setDataOrd(Date dataOrd) {
+ this.dataOrd = dataOrd;
+ return this;
+ }
+
+ public Date getDataColloRif() {
+ return dataColloRif;
+ }
+
+ public MtbColr setDataColloRif(Date dataColloRif) {
+ this.dataColloRif = dataColloRif;
+ return this;
+ }
+
+ public BigDecimal getQtaCnf() {
+ return qtaCnf;
+ }
+
+ public MtbColr setQtaCnf(BigDecimal qtaCnf) {
+ this.qtaCnf = qtaCnf;
+ return this;
+ }
+
+ public BigDecimal getQtaCol() {
+ return qtaCol;
+ }
+
+ public MtbColr setQtaCol(BigDecimal qtaCol) {
+ this.qtaCol = qtaCol;
+ return this;
+ }
+
+ public Integer getNumOrd() {
+ return numOrd;
+ }
+
+ public MtbColr setNumOrd(Integer numOrd) {
+ this.numOrd = numOrd;
+ return this;
+ }
+
+ public Integer getNumEtich() {
+ return numEtich;
+ }
+
+ public MtbColr setNumEtich(Integer numEtich) {
+ this.numEtich = numEtich;
+ return this;
+ }
+
+ public Integer getNumColloRif() {
+ return numColloRif;
+ }
+
+ public MtbColr setNumColloRif(Integer numColloRif) {
+ this.numColloRif = numColloRif;
+ return this;
+ }
+
+ public Date getDatetimeRow() {
+ return datetimeRow;
+ }
+
+ public MtbColr setDatetimeRow(Date datetimeRow) {
+ this.datetimeRow = datetimeRow;
+ return this;
+ }
+
+ public String getCodJcom() {
+ return codJcom;
+ }
+
+ public MtbColr setCodJcom(String codJcom) {
+ this.codJcom = codJcom;
+ return this;
+ }
+
+ public BigDecimal getNumCnf() {
+ return numCnf;
+ }
+
+ public MtbColr setNumCnf(BigDecimal numCnf) {
+ this.numCnf = numCnf;
+ return this;
+ }
+
+ public String getInsPartitaMag() {
+ return insPartitaMag;
+ }
+
+ public MtbColr setInsPartitaMag(String insPartitaMag) {
+ this.insPartitaMag = insPartitaMag;
+ return this;
+ }
+
+ public String getMtbPartitaMag_descrizione() {
+ return mtbPartitaMag_descrizione;
+ }
+
+ public MtbColr setMtbPartitaMag_descrizione(String mtbPartitaMag_descrizione) {
+ this.mtbPartitaMag_descrizione = mtbPartitaMag_descrizione;
+ return this;
+ }
+
+ public Date getDataScadPartita() {
+ return dataScadPartita;
+ }
+
+ public MtbColr setDataScadPartita(Date dataScadPartita) {
+ this.dataScadPartita = dataScadPartita;
+ return this;
+ }
+
+ public String getDescrizione() {
+ return descrizione;
+ }
+
+ public MtbColr setDescrizione(String descrizione) {
+ this.descrizione = descrizione;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
index 4be21c2d..171c5692 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
@@ -1,9 +1,12 @@
package it.integry.integrywmsnative.core.model;
+import android.databinding.ObservableArrayList;
+
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.List;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
@@ -46,6 +49,17 @@ public class MtbColt extends EntityBase{
private BigDecimal larghezzaCm;
private BigDecimal altezzaCm;
+ private ObservableArrayList mtbColr = new ObservableArrayList<>();
+
+ public ObservableArrayList getMtbColr() {
+ return mtbColr;
+ }
+
+ public MtbColt setMtbColr(ObservableArrayList mtbColr) {
+ this.mtbColr = mtbColr;
+ return this;
+ }
+
public MtbColt(){
type = "mtb_colt";
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
index ab9f055f..dcde03d9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
@@ -2,10 +2,12 @@ package it.integry.integrywmsnative.core.settings;
import java.util.List;
+import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
+
public class DBSettingsModel {
private List availableProfiles = null;
- private List availableCodMdep = null;
+ private List availableCodMdep = null;
public List getAvailableProfiles() {
return availableProfiles;
@@ -15,11 +17,11 @@ public class DBSettingsModel {
this.availableProfiles = availableProfiles;
}
- public List getAvailableCodMdep() {
+ public List getAvailableCodMdep() {
return availableCodMdep;
}
- public void setAvailableCodMdep(List availableCodMdep) {
+ public void setAvailableCodMdep(List availableCodMdep) {
this.availableCodMdep = availableCodMdep;
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
index fb0149bf..3c520980 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
@@ -1,9 +1,13 @@
package it.integry.integrywmsnative.core.settings;
+import android.content.Context;
+
import java.util.List;
+import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
+import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
public class SettingsManager {
@@ -14,7 +18,11 @@ public class SettingsManager {
private static boolean firstStart = false;
- public static void init(){
+ private static Context mContext;
+
+ public static void init(Context context){
+ mContext = context;
+
settingsModelIstance = (SettingsModel) Stash.getObject(TAG, SettingsModel.class);
if(settingsModelIstance == null) {
@@ -48,13 +56,62 @@ public class SettingsManager {
Stash.put(TAG, settingsModelIstance);
}
+
+
+
+
+
+
public static void reloadDBVariables(final ISimpleOperationCallback callback){
dbSettingsModelIstance = new DBSettingsModel();
+ loadAvailableProfiles(callback);
+ }
+
+ private static void loadAvailableProfiles(final ISimpleOperationCallback callback){
SystemRESTConsumer.getAvailableProfiles(new ISimpleOperationCallback>() {
@Override
public void onSuccess(List availableProfiles) {
dbSettingsModelIstance.setAvailableProfiles(availableProfiles);
+
+ loadAvailableCodMdeps(callback);
+ }
+
+ @Override
+ public void onFailed(Exception ex) {
+ //BOH
+ if(callback != null) callback.onFailed(ex);
+ }
+ });
+ }
+
+ private static void loadAvailableCodMdeps(final ISimpleOperationCallback callback) {
+ SystemRESTConsumer.getAvailableCodMdeps(new ISimpleOperationCallback>() {
+ @Override
+ public void onSuccess(List availableCodMdeps) {
+ dbSettingsModelIstance.setAvailableCodMdep(availableCodMdeps);
+
+ if(availableCodMdeps == null || availableCodMdeps.size() == 0) {
+ callback.onFailed(new Exception(mContext.getText(R.string.no_codmdep_available).toString()));
+ return;
+ }
+
+ boolean codMdepExistsAnymore = false;
+
+ if(settingsModelIstance.userSession.codMdep != null && !settingsModelIstance.userSession.codMdep.isEmpty()){
+ for(AvailableCodMdepsDTO availableCodMdepDTO : availableCodMdeps){
+ //Controllo se il codMdep salvato esiste ancora
+ if(availableCodMdepDTO.getCodMdep().equalsIgnoreCase(settingsModelIstance.userSession.codMdep)) {
+ codMdepExistsAnymore = true;
+ break;
+ }
+ }
+ }
+
+ if(!codMdepExistsAnymore){
+ settingsModelIstance.userSession.codMdep = availableCodMdeps.get(0).getCodMdep();
+ }
+
if(callback != null) callback.onSuccess(null);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java
index 115c4aa6..696f41b7 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java
@@ -5,6 +5,7 @@ import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
@@ -29,6 +30,7 @@ import it.integry.integrywmsnative.core.REST.CommonRESTException;
import it.integry.integrywmsnative.core.coollection.Coollection;
import it.integry.integrywmsnative.core.interfaces.ICheckBoxCallback;
import it.integry.integrywmsnative.core.utility.UtilityString;
+import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBinding;
import it.integry.integrywmsnative.gest.accettazione.core.AccettazioneHelper;
import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneAdapter;
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback;
@@ -42,17 +44,14 @@ import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallback, SearchView.OnQueryTextListener, ITitledFragment {
-
- @BindView(R.id.accettazione_main_fab) FloatingActionButton mFab;
-
- @BindView(R.id.accettazione_main_list) RecyclerView mRecyclerView;
-
- private MainListAccettazioneAdapter mAdapter;
- private RecyclerView.LayoutManager mLayoutManager;
-
+ private FragmentMainAccettazioneBinding mBinding;
private AccettazioneHelper helper;
+
private List groupedOrdiniInevasi;
+ private MainListAccettazioneAdapter mAdapter;
+
+
public MainAccettazioneFragment() {
@@ -79,6 +78,7 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb
// mParam2 = getArguments().getString(ARG_PARAM2);
}
+
init();
}
@@ -86,24 +86,22 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- View layout = inflater.inflate(R.layout.fragment_main_accettazione, container, false);
+ mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_accettazione, container, false);
- ButterKnife.bind(this, layout);
+ mBinding.setView(this);
+ mBinding.accettazioneMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
+ mBinding.accettazioneMainFab.hide();
- mRecyclerView.setHasFixedSize(true);
+ ButterKnife.bind(this, mBinding.getRoot());
- mLayoutManager = new LinearLayoutManager(getActivity());
- mRecyclerView.setLayoutManager(mLayoutManager);
-
- mFab.hide();
-
- return layout;
+ return mBinding.getRoot();
}
private void init(){
+
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting),
getText(R.string.loading) + " ...", true);
@@ -113,7 +111,7 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb
@Override
public void onLoadSuccess(List ordini) {
Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show();
- groupOrdini(ordini);
+ groupOrdiniAndMakeRecycler(ordini);
progress.dismiss();
}
@@ -131,7 +129,7 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb
}
- private void groupOrdini(List ordini){
+ private void groupOrdiniAndMakeRecycler(List ordini){
String prevCodAnag = "";
@@ -212,6 +210,7 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb
cliente.descrCom = filteredByCodAnagAndDateAndNumberOrders.get(k).descrizioneCom;
cliente.dataCons = filteredByCodAnagAndDateAndNumberOrders.get(k).dataCons;
cliente.numCnf = filteredByCodAnagAndDateAndNumberOrders.get(k).numCnf;
+ cliente.rifOrd = filteredByCodAnagAndDateAndNumberOrders.get(k).rifOrd;
rigaOrdine.clienti.add(cliente);
}
@@ -223,9 +222,10 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb
groupedOrdiniInevasi.add(groupedOrdine);
}
-
mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, this);
- mRecyclerView.setAdapter(mAdapter);
+ // mAdapter.setHasStableIds(true);
+ mBinding.accettazioneMainList.setAdapter(mAdapter);
+ //mRecyclerView.setAdapter(mAdapter);
}
@OnClick(R.id.accettazione_main_fab)
@@ -292,8 +292,8 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb
@Override
public void onToggle(boolean newValue) {
- if(helper.getSelectedOrders(groupedOrdiniInevasi).size() > 0) mFab.show();
- else mFab.hide();
+ if(helper.getSelectedOrders(groupedOrdiniInevasi).size() > 0) mBinding.accettazioneMainFab.show();
+ else mBinding.accettazioneMainFab.hide();
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/MainListAccettazioneAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/MainListAccettazioneAdapter.java
index 9fce3cf7..dc45449a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/MainListAccettazioneAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/core/MainListAccettazioneAdapter.java
@@ -32,6 +32,9 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter views = new ArrayList<>();
+
public ViewHolder(View v) {
super(v);
}
@@ -52,14 +55,12 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter();
+ //}
+
+ boolean isCreatedNew = false;
+
+ if(holder.views.size() <= i){
+ holder.views.add(LayoutInflater.from(mContext)
+ .inflate(R.layout.accettazione_main_list_group_model, holder.mLinearLayoutGroupItemContainer, false));
+ isCreatedNew = true;
+ }
+
+
+ View groupModelView = holder.views.get(i);
+
+ groupModelView.setVisibility(View.VISIBLE);
+
+ if (i % 2 == 1) {
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
}
- final CheckBox checkBox = (CheckBox) groupModelView.findViewById(R.id.accettazione_main_list_group_item_container_checkBox);
+ final CheckBox checkBox = groupModelView.findViewById(R.id.accettazione_main_list_group_item_container_checkBox);
checkBox.setChecked(ordine.checkBox);
ordine.checkBoxCallback.add(new ICheckBoxCallback() {
@@ -120,24 +135,27 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter subGroupClienti = ordine.clienti;
- for(int k = 0; k < subGroupClienti.size(); k++){
+ clientLinearLayout.removeAllViews();
+
+ for (int k = 0; k < subGroupClienti.size(); k++) {
View groupClienteModelView = LayoutInflater.from(mContext)
.inflate(R.layout.accettazione_main_list_group_clienti, clientLinearLayout, false);
- TextView clienteComm = (TextView) groupClienteModelView.findViewById(R.id.accettazione_main_list_group_clienti_comm);
+ TextView clienteComm = groupClienteModelView.findViewById(R.id.accettazione_main_list_group_clienti_comm);
String clienteText;
- clienteText = subGroupClienti.get(k).codJcom + " - " + subGroupClienti.get(k).descrCom;
+// clienteText = subGroupClienti.get(k).codJcom + " - " + subGroupClienti.get(k).descrCom;
+ clienteText = subGroupClienti.get(k).rifOrd;
clienteComm.setText(clienteText);
- TextView dataCons = (TextView) groupClienteModelView.findViewById(R.id.accettazione_main_list_group_clienti_datacons);
- if(subGroupClienti.get(k).getDataCons() != null) {
+ TextView dataCons = groupClienteModelView.findViewById(R.id.accettazione_main_list_group_clienti_datacons);
+ if (subGroupClienti.get(k).getDataCons() != null) {
dataCons.setText(UtilityDate.formatDate(subGroupClienti.get(k).getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
} else {
dataCons.setText("");
@@ -146,7 +164,13 @@ public class MainListAccettazioneAdapter extends RecyclerView.Adapter>> listOrdiniInevasi();
- @POST("WMSGetPickingListAccettazione")
+ @GET("WMSGetPickingListAccettazione")
Call>> pickingListAccettazione(@Query("codBarreBancale") String codBarreBacale);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java
index 52655d8f..285e8c71 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java
@@ -1,103 +1,44 @@
package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.support.design.widget.BottomSheetBehavior;
-import android.support.design.widget.BottomSheetDialog;
-import android.support.v4.widget.NestedScrollView;
-import android.support.v7.app.AlertDialog;
+import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.Toolbar;
-import android.text.SpannableString;
import android.view.Menu;
import android.view.MenuItem;
-import android.view.View;
-import android.widget.LinearLayout;
-import android.widget.Toast;
-
-import com.github.clans.fab.FloatingActionButton;
-import com.github.clans.fab.FloatingActionMenu;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-import butterknife.OnClick;
import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.REST.CommonRESTException;
-import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
-import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
-import it.integry.integrywmsnative.core.model.CommonModelConsts;
-import it.integry.integrywmsnative.core.model.MtbColt;
-import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
-import it.integry.integrywmsnative.core.settings.SettingsManager;
-import it.integry.integrywmsnative.core.settings.SettingsModel;
+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.core.AccettazioneOrdineInevasoHelper;
-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.views.NoteAggiuntiveNuovaULDialog;
-import it.integry.integrywmsnative.view.ArticoliInColloBottomSheetHelper;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel.AccettazioneOrdineInevasoViewModel;
+import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
- @BindView(R.id.toolbar) Toolbar toolbar;
+ public ActivityAccettazioneOrdineInevasoBinding bindings;
+ private AccettazioneOrdineInevasoViewModel mAccettazioneOrdineInevasoViewModel;
- @BindView(R.id.accettazione_ordine_main_list) RecyclerView mRecyclerView;
-
- @BindView(R.id.accettazione_ordine_inevaso_fab) FloatingActionMenu fab;
- @BindView(R.id.accettazione_ordine_inevaso_fab_item1) FloatingActionButton fabItem1;
- @BindView(R.id.accettazione_ordine_inevaso_fab_item2) FloatingActionButton fabItem2;
-
- @BindView(R.id.bottom_sheet1) View layoutBottomSheet;
-
-
- private MainListOrdineAccettazioneAdapter mAdapter;
- private RecyclerView.LayoutManager mLayoutManager;
-
- private List> groupedRighe;
- private List groupedOrdini;
-
- private AccettazioneOrdineInevasoHelper helper;
-
- private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR;
-
-
- private Context mContext = this;
- private ArticoliInColloBottomSheetHelper mArticoliInColloBottomSheetHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_accettazione_ordine_inevaso);
- ButterKnife.bind(this);
-
- setSupportActionBar(toolbar);
+ bindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso);
+ FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
+ ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
List orders = (ArrayList)getIntent().getSerializableExtra("key");
+ mAccettazioneOrdineInevasoViewModel = new AccettazioneOrdineInevasoViewModel(
+ this, mArticoliInColloBottomSheetViewModel, orders);
+
+ setSupportActionBar(this.bindings.toolbar);
setTitle(orders);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- groupedOrdini = new ArrayList<>();
- for (OrdineAccettazioneDTO ordine : orders){
- groupedOrdini.addAll(ordine.ordini);
- }
-
- helper = new AccettazioneOrdineInevasoHelper(this);
-
- groupedRighe = helper.getOrdiniRaggruppatiPerCodArtForn(groupedOrdini);
-
- initRecyclerView(groupedRighe);
-
- initBottomDialog();
}
@Override
@@ -118,7 +59,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
// Handle item selection
switch (item.getItemId()) {
case R.id.action_filter:
- this.showOrderDialog();
+ mAccettazioneOrdineInevasoViewModel.showOrderDialog();
return true;
default:
return super.onOptionsItemSelected(item);
@@ -138,126 +79,6 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
}
}
- private void initRecyclerView(List> groupedRighe){
- //RecyclerView setup
- mRecyclerView.setHasFixedSize(true);
-
- mLayoutManager = new LinearLayoutManager(this);
- mRecyclerView.setLayoutManager(mLayoutManager);
-
- try {
- mAdapter = helper.getRightListAdapter(AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR, groupedRighe);
- } catch (Exception e) {
- e.printStackTrace();
- DialogSimpleMessageHelper.makeErrorDialog(this, new SpannableString(e.toString()), null, null).show();
- }
- mRecyclerView.setAdapter(mAdapter);
- }
-
- private void initBottomDialog(){
-
- mArticoliInColloBottomSheetHelper = new ArticoliInColloBottomSheetHelper(this, layoutBottomSheet);
- }
-
-
- private void showOrderDialog() {
-
- AlertDialog dialog = new AlertDialog.Builder(this)
- .setTitle(AccettazioneOrdineInevasoActivity.this.getText(R.string.action_orderBy))
- .setSingleChoiceItems(AccettazioneOrdineInevasoOrderBy.descriptions, currentOrderBy.getVal(), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(which);
- }
- })
- .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- refreshOrderBy();
- }
- })
- .create();
- dialog.show();
- }
-
- private void refreshOrderBy(){
- switch (currentOrderBy){
- case COD_ART_FOR:
- groupedRighe = helper.getOrdiniRaggruppatiPerCodArtForn(groupedOrdini);
- break;
- case DESCR_ART:
- groupedRighe = helper.getOrdiniRaggruppatiPerDescrArt(groupedOrdini);
- break;
-
- case RAG_SOC_COM:
- groupedRighe = helper.getOrdiniRaggruppatiPerRagSocCommessa(groupedOrdini);
- break;
-
- default:
- break;
- }
-
- try {
- mAdapter.updateDataset(helper.getRightListViewModel(currentOrderBy, groupedRighe));
- } catch (Exception e) {
- e.printStackTrace();
- Toast.makeText(this, e.getMessage().toString(), Toast.LENGTH_LONG).show();
- }
- }
-
-
- //Al click di "Crea nuova UL"
- @OnClick(R.id.accettazione_ordine_inevaso_fab_item2)
- public void onItem2Click(View view) {
-
- fab.close(true);
-
- NoteAggiuntiveNuovaULDialog.show(this, new NoteAggiuntiveNuovaULDialog.Callback() {
- @Override
- public void onSuccess(String noteString) {
-
- MtbColt mtbColt = new MtbColt();
- mtbColt .setDataCollo(new Date())
- .setGestione(GestioneEnum.ACQUISTO)
- .setCodMdep(SettingsManager.i().userSession.codMdep)
- .setPreparatoDa(SettingsManager.i().user.username)
- .setOraInizPrep(new Date())
- .setAnnotazioni(noteString)
- .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
-
-
-
-
- ColliMagazzinoRESTConsumer.saveCollo(mtbColt, new ISimpleOperationCallback() {
- @Override
- public void onSuccess(MtbColt value) {
- mArticoliInColloBottomSheetHelper.initCollo(value);
- DialogSimpleMessageHelper.makeInfoDialog(mContext, "Creazione UL",new SpannableString("Salvataggio collo avvenuto con successo"), null, null).show();
- }
-
- @Override
- public void onFailed(Exception ex) {
- String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
-
- if(errorMessage == null) errorMessage = ex.getMessage();
- DialogSimpleMessageHelper.makeErrorDialog(mContext, new SpannableString(errorMessage), null, null).show();
- }
- });
-
- }
- });
-
-
- }
-
-
- //Al click di "Mostra UL già create"
- @OnClick(R.id.accettazione_ordine_inevaso_fab_item1)
- public void onItem1Click(View view) {
-
- fab.close(true);
-
- }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java
index a89cbfc5..58146bbb 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core;
import android.content.Context;
import android.content.SyncRequest;
+import android.databinding.ObservableArrayList;
import android.util.Log;
import java.text.DecimalFormat;
@@ -27,52 +28,34 @@ public class AccettazioneOrdineInevasoHelper {
private Context mContext;
+ private ObservableArrayList mListViewModels = new ObservableArrayList<>();
+
public AccettazioneOrdineInevasoHelper(Context context){
mContext = context;
}
- public MainListOrdineAccettazioneAdapter getRightListAdapter(AccettazioneOrdineInevasoOrderBy.Enum orderByEnum, List> mDataset) throws Exception {
-
- List listViewModels = null;
-
- switch (orderByEnum){
- case COD_ART_FOR:
- case DESCR_ART:
- listViewModels = getListViewModelPerArtForn(mDataset);
- break;
-
- case RAG_SOC_COM:
- listViewModels = getListViewModelPerRagSocCommessa(mDataset);
- break;
-
- default:
- throw new Exception("Cannot find right list adapter: " + orderByEnum.toString());
- }
-
- return new MainListOrdineAccettazioneAdapter(mContext, listViewModels);
-
+ public MainListOrdineAccettazioneAdapter getRightListAdapter() {
+ return new MainListOrdineAccettazioneAdapter(mContext, mListViewModels);
}
- public List getRightListViewModel(AccettazioneOrdineInevasoOrderBy.Enum orderByEnum, List> mDataset) throws Exception {
+ public void updateListModel(AccettazioneOrdineInevasoOrderBy.Enum orderByEnum, List> mDataset) throws Exception {
- List listViewModels = null;
+ mListViewModels.clear();
switch (orderByEnum){
case COD_ART_FOR:
case DESCR_ART:
- listViewModels = getListViewModelPerArtForn(mDataset);
+ mListViewModels.addAll(getListViewModelPerArtForn(mDataset));
break;
case RAG_SOC_COM:
- listViewModels = getListViewModelPerRagSocCommessa(mDataset);
+ mListViewModels.addAll(getListViewModelPerRagSocCommessa(mDataset));
break;
default:
throw new Exception("Cannot find right list adapter: " + orderByEnum.toString());
}
- return listViewModels;
-
}
@@ -149,16 +132,22 @@ public class AccettazioneOrdineInevasoHelper {
private class RaggruppaPerCommessaUtilDTO {
- public String codJcom;
- public String ragSocCom;
+ public String codJcom = "";
+ public String ragSocCom = "";
}
public List> getOrdiniRaggruppatiPerRagSocCommessa(List mDataset) {
List commessaList = new ArrayList<>();
+ commessaList.add(new RaggruppaPerCommessaUtilDTO());
+
for(int i = 0; i < mDataset.size(); i++){
boolean alreadyExists = false;
+ if(mDataset.get(i).codJcom == null) mDataset.get(i).codJcom = "N/A";
+ if(mDataset.get(i).ragSocCom == null) mDataset.get(i).ragSocCom = mContext.getText(R.string.stock).toString().toUpperCase();
+
+
for(int k = 0; k < commessaList.size(); k++){
if(commessaList.get(k).codJcom.equalsIgnoreCase(mDataset.get(i).codJcom)){
alreadyExists = true;
@@ -208,11 +197,6 @@ public class AccettazioneOrdineInevasoHelper {
}
- //Raggruppo tutti quelli per il magazzino e li aggiungo alla fine
-
- List tmpList = Coollection.from(mDataset)
- .where("ragSocCom", Coollection.eqIgnoreCase("MAG")).all();
-
return groupedRighe;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java
index fbdf14b0..60217c7d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java
@@ -1,6 +1,8 @@
package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core;
import android.content.Context;
+import android.databinding.ObservableArrayList;
+import android.databinding.ObservableList;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
@@ -24,7 +26,7 @@ import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.Accettaz
public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter {
protected Context mContext;
- protected List mDataset;
+ protected ObservableArrayList mDataset;
public static class ViewHolder extends RecyclerView.ViewHolder {
// each data item is just a string in this case
@@ -35,15 +37,39 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter myDataset) {
+ public MainListOrdineAccettazioneAdapter(Context context, ObservableArrayList myDataset) {
mContext = context;
mDataset = myDataset;
+
+ myDataset.addOnListChangedCallback(onListChangedCallback);
}
- public void updateDataset(List myDataset){
- mDataset = myDataset;
- notifyDataSetChanged();
- }
+ private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback>() {
+ @Override
+ public void onChanged(ObservableList sender) {
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
+ notifyDataSetChanged();
+ }
+ };
@Override
@@ -56,10 +82,10 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter isFabVisible = new ObservableField<>();
+
+ private final AccettazioneOrdineInevasoActivity mActivity;
+ private final ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
+ private final List mOrders;
+
+ private List> groupedRighe;
+ private List groupedOrdini;
+
+ private AccettazioneOrdineInevasoHelper helper;
+
+ private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR;
+ private MainListOrdineAccettazioneAdapter mAdapter;
+
+ public AccettazioneOrdineInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List orders) {
+ this.mActivity = activity;
+ this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
+ this.mOrders = orders;
+
+ this.isFabVisible.set(true);
+
+ this.mActivity.bindings.setVariable(BR.viewmodel, this);
+
+ this.init();
+ }
+
+
+ private void init(){
+ mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
+
+ groupedOrdini = new ArrayList<>();
+ for (OrdineAccettazioneDTO ordine : mOrders){
+ groupedOrdini.addAll(ordine.ordini);
+ }
+
+ helper = new AccettazioneOrdineInevasoHelper(mActivity);
+
+ groupedRighe = helper.getOrdiniRaggruppatiPerCodArtForn(groupedOrdini);
+
+ initRecyclerView(groupedRighe);
+ }
+
+
+ private void initRecyclerView(List> groupedRighe){
+ //RecyclerView setup
+ mActivity.bindings.accettazioneOrdineMainList.setHasFixedSize(true);
+
+ mActivity.bindings.accettazioneOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
+
+ try {
+ mAdapter = helper.getRightListAdapter();
+ helper.updateListModel(AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR, groupedRighe);
+ } catch (Exception e) {
+ e.printStackTrace();
+ DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(e.toString()), null, null).show();
+ }
+ mActivity.bindings.accettazioneOrdineMainList.setAdapter(mAdapter);
+ }
+
+ private void refreshOrderBy(){
+ switch (currentOrderBy){
+ case COD_ART_FOR:
+ groupedRighe = helper.getOrdiniRaggruppatiPerCodArtForn(groupedOrdini);
+ break;
+ case DESCR_ART:
+ groupedRighe = helper.getOrdiniRaggruppatiPerDescrArt(groupedOrdini);
+ break;
+
+ case RAG_SOC_COM:
+ groupedRighe = helper.getOrdiniRaggruppatiPerRagSocCommessa(groupedOrdini);
+ break;
+
+ default:
+ break;
+ }
+
+ try {
+ helper.updateListModel(currentOrderBy, groupedRighe);
+ } catch (Exception e) {
+ e.printStackTrace();
+ Toast.makeText(mActivity, e.getMessage().toString(), Toast.LENGTH_LONG).show();
+ }
+ }
+
+ public void showOrderDialog() {
+
+ AlertDialog dialog = new AlertDialog.Builder(mActivity)
+ .setTitle(mActivity.getText(R.string.action_orderBy))
+ .setSingleChoiceItems(AccettazioneOrdineInevasoOrderBy.descriptions, currentOrderBy.getVal(), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(which);
+ }
+ })
+ .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ refreshOrderBy();
+ }
+ })
+ .create();
+ dialog.show();
+ }
+
+
+ public void createNewUL() {
+
+ mActivity.bindings.accettazioneOrdineInevasoFab.close(true);
+
+ NoteAggiuntiveNuovaULDialog.show(mActivity, new NoteAggiuntiveNuovaULDialog.Callback() {
+ @Override
+ public void onSuccess(String noteString) {
+
+ MtbColt mtbColt = new MtbColt();
+ mtbColt .setDataCollo(new Date())
+ .setGestione(GestioneEnum.ACQUISTO)
+ .setCodMdep(SettingsManager.i().userSession.codMdep)
+ .setPreparatoDa(SettingsManager.i().user.username)
+ .setOraInizPrep(new Date())
+ .setAnnotazioni(noteString)
+ .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+
+
+
+
+ ColliMagazzinoRESTConsumer.saveCollo(mtbColt, new ISimpleOperationCallback() {
+ @Override
+ public void onSuccess(MtbColt value) {
+// mArticoliInColloBottomSheetHelper.initCollo(value);
+ value.setMtbColr(new ObservableArrayList());
+
+
+ mArticoliInColloBottomSheetViewModel.mtbColt.set(value);
+
+
+ for(int i = 0; i < 10; i++){
+ value.getMtbColr().add(new MtbColr().setCodMart("ABCICCIO").setDescrizione("DESCRCICCIO"));
+ }
+
+
+ DialogSimpleMessageHelper.makeInfoDialog(mActivity, "Creazione UL",new SpannableString("Salvataggio collo avvenuto con successo"), null, null).show();
+ }
+
+ @Override
+ public void onFailed(Exception ex) {
+ String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
+
+ if(errorMessage == null) errorMessage = ex.getMessage();
+ DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(errorMessage), null, null).show();
+ }
+ });
+
+ }
+ });
+
+
+ }
+
+
+ //Al click di "Mostra UL già create"
+ public void showCreatedUL() {
+ mActivity.bindings.accettazioneOrdineInevasoFab.close(true);
+ }
+
+ @Override
+ public void onColloClosed() {
+ mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java
index 48cdbcb3..83338988 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java
@@ -20,7 +20,7 @@ public class LoginActivity extends AppCompatActivity {
ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
LoginViewModel loginViewModel = new LoginViewModel(this);
- binding.setVariable(BR.loginViewModel, loginViewModel);
+ binding.setLoginViewModel(loginViewModel);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java
index 73ea5d55..df1532cb 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java
@@ -150,7 +150,7 @@ public class LoginViewModel {
@Override
public void onFailed(Exception ex) {
- onLoginFailed(Html.fromHtml(String.format(mActivity.getText(R.string.server_cod_azienda_not_valid).toString(), codAzienda)));
+ onLoginFailed(Html.fromHtml(String.format(mActivity.getText(R.string.server_cod_azienda_not_valid).toString(), codAzienda.get())));
}
});
@@ -160,7 +160,7 @@ public class LoginViewModel {
private void onLoginFailed(final Spanned message){
mProgress.dismiss();
- loginButtonEnabled.set(false);
+ loginButtonEnabled.set(true);
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/ArticoliInColloBottomSheetHelper.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java
similarity index 72%
rename from app/src/main/java/it/integry/integrywmsnative/view/ArticoliInColloBottomSheetHelper.java
rename to app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java
index 9d2350c7..dca5ecc9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/ArticoliInColloBottomSheetHelper.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java
@@ -1,4 +1,4 @@
-package it.integry.integrywmsnative.view;
+package it.integry.integrywmsnative.view.bottomsheet;
import android.support.annotation.NonNull;
import android.support.design.widget.AppBarLayout;
@@ -19,19 +19,15 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.BottomSheetCallback {
private AppCompatActivity mActivity;
+ private FragmentArticoliInColloBottomSheetBinding mBinding;
- @BindView(R.id.articoli_in_collo_sheet_button) AppCompatButton mSheetButtonToggle;
- @BindView(R.id.articoli_in_collo_close_collo) AppCompatButton mCloseULButton;
- @BindView(R.id.articoli_in_collo_title) AppCompatTextView mTitleTextView;
- @BindView(R.id.articoli_in_collo_details_date) AppCompatTextView mDetailDateTextView;
- @BindView(R.id.articoli_in_collo_details_posizione) AppCompatTextView mDetailPosizioneTextView;
- @BindView(R.id.articoli_in_collo_details_preparatoDa) AppCompatTextView mDetailPreparatoDaTextView;
@BindView(R.id.appbar_bottom_sheet) AppBarLayout appBarLayoutBottomSheet;
@BindView(R.id.toolbar_bottom_sheet) Toolbar toolbarBottomSheet;
@@ -39,14 +35,14 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom
@BindView(R.id.tap_action_layout) RelativeLayout tapActionLayout;
private BottomSheetBehavior mBottomSheetBehavior;
- private MtbColt mMtbColt;
- public ArticoliInColloBottomSheetHelper(AppCompatActivity context, View rootView){
+ public ArticoliInColloBottomSheetHelper(AppCompatActivity context, FragmentArticoliInColloBottomSheetBinding binding){
mActivity = context;
+ mBinding = binding;
- ButterKnife.bind(this, rootView);
+ ButterKnife.bind(this, mBinding.getRoot());
- mBottomSheetBehavior = BottomSheetBehavior.from(rootView);
+ mBottomSheetBehavior = BottomSheetBehavior.from(mBinding.getRoot());
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
mBottomSheetBehavior.setBottomSheetCallback(this);
@@ -70,31 +66,29 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom
});
- mCloseULButton.setText(mActivity.getText(R.string.action_close_ul) + " ");
+ mBinding.articoliInColloCloseCollo.setText(mActivity.getText(R.string.action_close_ul) + " ");
updateRigheNumber(0);
}
public void initCollo(MtbColt mtbColt){
- this.mMtbColt = mtbColt;
-
SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy");
- mTitleTextView.setText(String.format(mActivity.getText(R.string.articoli_in_collo_sheet_title).toString(), mtbColt.getNumCollo()));
+ mBinding.articoliInColloTitle.setText(String.format(mActivity.getText(R.string.articoli_in_collo_sheet_title).toString(), mtbColt.getNumCollo()));
try {
- mDetailDateTextView.setText(sdf.format(mtbColt.getDataColloD()));
+ mBinding.articoliInColloDetailsDate.setText(sdf.format(mtbColt.getDataColloD()));
} catch (ParseException e) {
e.printStackTrace();
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(e.toString()), null, null).show();
}
- mDetailPosizioneTextView.setText(mtbColt.getPosizione() != null ? mtbColt.getPosizione() : "N/A");
- mDetailPreparatoDaTextView.setText(mtbColt.getPreparatoDa() != null ? mtbColt.getPreparatoDa() : "N/A");
+ mBinding.articoliInColloDetailsPosizione.setText(mtbColt.getPosizione() != null ? mtbColt.getPosizione() : "N/A");
+// bindings.articoliInColloDetailsPreparatoDa.setText(mtbColt.getPreparatoDa() != null ? mtbColt.getPreparatoDa() : "N/A");
}
public void updateRigheNumber(int newRigheNumber){
- mSheetButtonToggle.setText(" " + newRigheNumber + " " + mActivity.getResources().getQuantityString(R.plurals.articles, newRigheNumber));
+ mBinding.articoliInColloSheetButton.setText(" " + newRigheNumber + " " + mActivity.getResources().getQuantityString(R.plurals.articles, newRigheNumber));
}
@OnClick(R.id.articoli_in_collo_sheet_button)
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/interfaces/IOnColloClosedCallback.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/interfaces/IOnColloClosedCallback.java
new file mode 100644
index 00000000..9a0fc23e
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/interfaces/IOnColloClosedCallback.java
@@ -0,0 +1,7 @@
+package it.integry.integrywmsnative.view.bottomsheet.interfaces;
+
+public interface IOnColloClosedCallback {
+
+ void onColloClosed();
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java
new file mode 100644
index 00000000..4a5a08d4
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java
@@ -0,0 +1,157 @@
+package it.integry.integrywmsnative.view.bottomsheet.viewmodel;
+
+import android.content.Context;
+import android.databinding.DataBindingUtil;
+import android.databinding.Observable;
+import android.databinding.ObservableField;
+import android.databinding.ObservableList;
+import android.databinding.ViewDataBinding;
+import android.support.v7.app.AppCompatActivity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+
+import java.lang.ref.WeakReference;
+
+import it.integry.integrywmsnative.BR;
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
+import it.integry.integrywmsnative.view.bottomsheet.ArticoliInColloBottomSheetHelper;
+import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
+
+public class ArticoliInColloBottomSheetViewModel {
+
+ public ObservableField mtbColt = new ObservableField<>();
+
+ private Context mContext;
+ private ArticoliInColloBottomSheetHelper mArticoliInColloBottomSheetHelper;
+
+ private IOnColloClosedCallback onCloseColloCallback;
+
+
+ public ArticoliInColloBottomSheetViewModel(AppCompatActivity context, final FragmentArticoliInColloBottomSheetBinding mBindings){
+ mContext = context;
+ mArticoliInColloBottomSheetHelper = new ArticoliInColloBottomSheetHelper(context, mBindings);
+
+ mBindings.setViewModel(this);
+
+ mtbColt.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
+ @Override
+ public void onPropertyChanged(Observable sender, int propertyId) {
+ mBindings.linearListview.setAdapter(new ArticoliInColloBottomSheetMtbColrAdapter());
+ }
+ });
+
+ }
+
+ public void setOnCloseColloCallbackListener(final IOnColloClosedCallback onCloseColloCallback){
+ this.onCloseColloCallback = onCloseColloCallback;
+ }
+
+
+ public void closeCurrentUL(){
+ if(onCloseColloCallback != null) onCloseColloCallback.onColloClosed();
+ }
+
+
+ public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter {
+
+
+ private final WeakReferenceOnListChangedCallback onListChangedCallback;
+
+ public ArticoliInColloBottomSheetMtbColrAdapter() {
+ super();
+ this.onListChangedCallback = new WeakReferenceOnListChangedCallback(this);
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+
+ LayoutInflater inflater = LayoutInflater.from(parent.getContext());
+
+ ViewDataBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_articoli_in_collo_bottom_sheet__mtbcolr_item, parent, false);
+
+ final MtbColr item = mtbColt.get().getMtbColr().get(position);
+ binding.setVariable(BR.mtbColr, item);
+// viewHolder.binding.getRoot().setTag(ITEM_MODEL, item);
+// viewHolder.binding.getRoot().setOnClickListener(this);
+ binding.executePendingBindings();
+
+ if(position % 2 == 1) binding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
+
+ return binding.getRoot();
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return position;
+ }
+
+ @Override
+ public int getCount() {
+ if(mtbColt.get() != null && mtbColt.get().getMtbColr() != null) {
+ mtbColt.get().getMtbColr().addOnListChangedCallback(onListChangedCallback);
+ return mtbColt.get().getMtbColr().size();
+ } else return 0;
+ }
+
+
+ public class WeakReferenceOnListChangedCallback extends ObservableList.OnListChangedCallback {
+
+ private final WeakReference adapterReference;
+
+ public WeakReferenceOnListChangedCallback(BaseAdapter baseAdapter) {
+ this.adapterReference = new WeakReference<>(baseAdapter);
+ }
+
+ @Override
+ public void onChanged(ObservableList sender) {
+ BaseAdapter adapter = adapterReference.get();
+ if (adapter != null) {
+ adapter.notifyDataSetChanged();
+ }
+ }
+
+ @Override
+ public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
+ BaseAdapter adapter = adapterReference.get();
+ if (adapter != null) {
+ adapter.notifyDataSetChanged();
+ }
+ }
+
+ @Override
+ public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
+ BaseAdapter adapter = adapterReference.get();
+ if (adapter != null) {
+ adapter.notifyDataSetChanged();
+ }
+ }
+
+ @Override
+ public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
+ BaseAdapter adapter = adapterReference.get();
+ if (adapter != null) {
+ adapter.notifyDataSetChanged();
+ }
+ }
+
+ @Override
+ public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
+ BaseAdapter adapter = adapterReference.get();
+ if (adapter != null) {
+ adapter.notifyDataSetChanged();
+ }
+ }
+ }
+ };
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogSimpleMessageHelper.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogSimpleMessageHelper.java
index d2ea04b1..0c73e51d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogSimpleMessageHelper.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogSimpleMessageHelper.java
@@ -61,7 +61,7 @@ public class DialogSimpleMessageHelper {
switch (type){
case INFO:
colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.colorPrimary);
- titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_info_24dp);
+ titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_info_78dp);
break;
case SUCCESS:
diff --git a/app/src/main/res/drawable/ic_info_24dp.xml b/app/src/main/res/drawable/ic_info_78dp.xml
similarity index 62%
rename from app/src/main/res/drawable/ic_info_24dp.xml
rename to app/src/main/res/drawable/ic_info_78dp.xml
index 20ef9346..d2ea4c23 100644
--- a/app/src/main/res/drawable/ic_info_24dp.xml
+++ b/app/src/main/res/drawable/ic_info_78dp.xml
@@ -1,5 +1,5 @@
-
+ android:width="78dp" xmlns:android="http://schemas.android.com/apk/res/android">
diff --git a/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml b/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
index a21f5ee6..785372e5 100644
--- a/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
+++ b/app/src/main/res/layout/activity_accettazione_ordine_inevaso.xml
@@ -1,4 +1,15 @@
-
+
+
+
+
+
+
+
+
+
+ fab:menu_backgroundColor="@color/white_bg_alpha"
+ android:visibility="@{viewmodel.isFabVisible ? View.VISIBLE : View.GONE}">
+ fab:fab_label="@string/action_show_created_ul"
+ app:onClick="@{() -> viewmodel.showCreatedUL()}"/>
+ fab:fab_label="@string/action_create_ul"
+ app:onClick="@{() -> viewmodel.createNewUL()}" />
@@ -108,6 +122,10 @@
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_custom_header.xml b/app/src/main/res/layout/dialog_custom_header.xml
index a7e28e8f..799faad1 100644
--- a/app/src/main/res/layout/dialog_custom_header.xml
+++ b/app/src/main/res/layout/dialog_custom_header.xml
@@ -16,7 +16,7 @@
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_gravity="center"
- android:src="@drawable/ic_info_24dp"
+ android:src="@drawable/ic_info_78dp"
android:tint="@color/green_500"/>
-
+
-
+
+
+
+
+
+ android:layout_height="match_parent"
+ android:background="@android:color/white"
+ android:visibility="@{viewModel.mtbColt.get() != null ? View.VISIBLE : View.GONE}"
+ app:behavior_peekHeight="?attr/actionBarSize"
+ app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
+ app:behavior_hideable="false">
-
-
+ android:layout_height="match_parent">
-
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ android:textSize="16sp"
+ android:onClick="@{() -> viewModel.closeCurrentUL()}"/>
-
-
-
-
-
-
+ android:layout_height="match_parent">
-
-
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
-
-
-
-
+
-
-
-
-
-
-
+ android:layout_height="wrap_content"
+ android:text="@string/already_read_articles"
+ android:textAllCaps="true"
+ android:textStyle="bold"/>
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="14dp">
-
+
-
+
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
+
-
-
-
-
-
-
-
-
+ android:layout_height="wrap_content">
-
+ android:alpha="0">
-
+ android:background="?attr/colorPrimary"
+ app:titleTextColor="@android:color/white"
+ app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+ app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
+
+
-
+
-
+
-
+
-
+
+
-
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml b/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml
new file mode 100644
index 00000000..a83511e4
--- /dev/null
+++ b/app/src/main/res/layout/fragment_articoli_in_collo_bottom_sheet__mtbcolr_item.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_main_accettazione.xml b/app/src/main/res/layout/fragment_main_accettazione.xml
index 3535e816..036d95e2 100644
--- a/app/src/main/res/layout/fragment_main_accettazione.xml
+++ b/app/src/main/res/layout/fragment_main_accettazione.xml
@@ -1,29 +1,39 @@
-
+
-
+
+
+
+
+
+ android:layout_height="match_parent"
+ xmlns:fab="http://schemas.android.com/apk/res-auto"
+ tools:context="it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment">
-
+ android:layout_height="match_parent">
-
+
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 1fa757f3..4aacbc3d 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -62,5 +62,10 @@
inserire una porta valida
%s non è valido. Controllalo e riprova]]>
%s sulla porta %d non è al momento raggiungibile. Riprova più tardi]]>
+ Nessun deposito trovato per l\'utente corrente
Seleziona un database
+
+ Nessuna riga presente nell\'Unità Logistica
+
+ Qtà
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9d0c0058..331c7657 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -69,7 +69,11 @@
enter a valid port
%s is not valid. Check and retry later]]>
%s on port %d is not reachable. Retry later]]>
+ No deposit available with current user
Choose a database
+ No rows found in LU
+
+ Qty
diff --git a/build.gradle b/build.gradle
index 54f71c29..4e563190 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,7 +10,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.1'
+ classpath 'com.android.tools.build:gradle:3.1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/pointmobilescannerlibrary/.gitignore b/pointmobilescannerlibrary/.gitignore
new file mode 100644
index 00000000..796b96d1
--- /dev/null
+++ b/pointmobilescannerlibrary/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/pointmobilescannerlibrary/build.gradle b/pointmobilescannerlibrary/build.gradle
new file mode 100644
index 00000000..14a5bf75
--- /dev/null
+++ b/pointmobilescannerlibrary/build.gradle
@@ -0,0 +1,34 @@
+apply plugin: 'com.android.library'
+
+android {
+ compileSdkVersion 27
+
+
+
+ defaultConfig {
+ minSdkVersion 21
+ targetSdkVersion 27
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+
+ implementation 'com.android.support:appcompat-v7:27.1.1'
+ testImplementation 'junit:junit:4.12'
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
+ androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+}
diff --git a/pointmobilescannerlibrary/proguard-rules.pro b/pointmobilescannerlibrary/proguard-rules.pro
new file mode 100644
index 00000000..f1b42451
--- /dev/null
+++ b/pointmobilescannerlibrary/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/pointmobilescannerlibrary/src/androidTest/java/it/integry/pointmobilescannerlibrary/ExampleInstrumentedTest.java b/pointmobilescannerlibrary/src/androidTest/java/it/integry/pointmobilescannerlibrary/ExampleInstrumentedTest.java
new file mode 100644
index 00000000..03c3c049
--- /dev/null
+++ b/pointmobilescannerlibrary/src/androidTest/java/it/integry/pointmobilescannerlibrary/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package it.integry.pointmobilescannerlibrary;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getTargetContext();
+
+ assertEquals("it.integry.pointmobilescannerlibrary.test", appContext.getPackageName());
+ }
+}
diff --git a/pointmobilescannerlibrary/src/main/AndroidManifest.xml b/pointmobilescannerlibrary/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..93192785
--- /dev/null
+++ b/pointmobilescannerlibrary/src/main/AndroidManifest.xml
@@ -0,0 +1,2 @@
+
diff --git a/pointmobilescannerlibrary/src/main/res/values/strings.xml b/pointmobilescannerlibrary/src/main/res/values/strings.xml
new file mode 100644
index 00000000..1afba1e0
--- /dev/null
+++ b/pointmobilescannerlibrary/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ PointMobileScannerLibrary
+
diff --git a/pointmobilescannerlibrary/src/test/java/it/integry/pointmobilescannerlibrary/ExampleUnitTest.java b/pointmobilescannerlibrary/src/test/java/it/integry/pointmobilescannerlibrary/ExampleUnitTest.java
new file mode 100644
index 00000000..f315a2a1
--- /dev/null
+++ b/pointmobilescannerlibrary/src/test/java/it/integry/pointmobilescannerlibrary/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package it.integry.pointmobilescannerlibrary;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index e7b4def4..5120ba59 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':app'
+include ':app', ':pointmobilescannerlibrary'