diff --git a/.githooks/commit-msg b/.githooks/commit-msg
new file mode 100644
index 00000000..cc47bcff
--- /dev/null
+++ b/.githooks/commit-msg
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# An example hook script to check the commit log message.
+# Called by "git commit" with one argument, the name of the file
+# that has the commit message. The hook should exit with non-zero
+# status after issuing an appropriate message if it wants to stop the
+# commit. The hook is allowed to edit the commit message file.
+#
+# To enable this hook, rename this file to "commit-msg".
+
+# Uncomment the below to add a Signed-off-by line to the message.
+# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
+# hook is more suited to it.
+#
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
+
+# This example catches duplicate Signed-off-by lines.
+
+USER_EMAIL=$(git log -1 --format=format:%ae HEAD)
+USER_NAME=$(git log -1 --format=format:%an HEAD)
+COMMIT_MESSAGE=$(cat $1)
+
+if [[ $COMMIT_MESSAGE == "#"* ]];
+then
+ ACTIVITY_ID=$(echo $COMMIT_MESSAGE | awk '{print $1;}')
+ ACTIVITY_ID=$(echo $ACTIVITY_ID | tr -d : | tr -d "#")
+
+ echo "Riconosciuta attivita: " $ACTIVITY_ID
+ curl -X POST "http://192.168.2.215:8080/ems-api/activity/createFromCommit?profileDb=INTEGRY&committerEmail=$USER_EMAIL" \
+ -d "commitMessage=$COMMIT_MESSAGE"
+
+fi
+
+
+#echo "TESTO: " $COMMIT_MESSAGE
+
+
+#test "" = "$(grep '^Signed-off-by: ' "$1" |
+# sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
+# echo >&2 Duplicate Signed-off-by lines.
+# exit 1
+#}
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 5c9f83fa..ebe421f9 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 b17be737..d0657fda 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -13,7 +13,6 @@
-
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 4acbbeaf..694ab0c8 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -8,7 +8,6 @@
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index e55a5b1a..0c245163 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 41
- def appVersionName = '1.0.38'
+ def appVersionCode = 42
+ def appVersionName = '1.0.39'
signingConfigs {
release {
@@ -95,25 +95,25 @@ dependencies {
})
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.orhanobut:logger:2.2.0'
- implementation 'com.google.firebase:firebase-core:16.0.7'
+ implementation 'com.google.firebase:firebase-core:16.0.8'
implementation 'com.google.firebase:firebase-crash:16.2.1'
- implementation 'com.google.firebase:firebase-perf:16.2.3'
+ implementation 'com.google.firebase:firebase-perf:16.2.4'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
- implementation 'androidx.appcompat:appcompat:1.1.0-alpha02'
+ implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- implementation 'com.google.android.material:material:1.1.0-alpha03'
+ implementation 'com.google.android.material:material:1.1.0-alpha04'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
implementation 'androidx.cardview:cardview:1.0.0'
- implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha02'
- implementation 'androidx.preference:preference:1.1.0-alpha03'
+ implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha03'
+ implementation 'androidx.preference:preference:1.1.0-alpha04'
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
- implementation 'com.squareup.retrofit2:retrofit:2.3.0'
- implementation 'com.squareup.retrofit2:converter-gson:2.0.0'
+ implementation 'com.squareup.retrofit2:retrofit:2.5.0'
+ implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.annimon:stream:1.2.1'
implementation 'androidx.lifecycle:lifecycle-runtime:2.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
implementation 'androidx.lifecycle:lifecycle-common-java8:2.0.0'
- kapt "androidx.lifecycle:lifecycle-compiler:2.0.0"
+ //kapt "androidx.lifecycle:lifecycle-compiler:2.0.0"
implementation 'com.danielpuiu:ghostfish:2.0.0'
annotationProcessor "com.danielpuiu:ghostfish-compiler:2.0.0"
//MVVM
@@ -138,7 +138,6 @@ dependencies {
implementation 'com.fede987:status-bar-alert:1.0.1'
implementation 'com.fxn769:stash:1.2'
testImplementation 'junit:junit:4.12'
- implementation project(':waterfall_toolbar')
implementation 'com.mikhaellopez:lazydatepicker:1.0.0'
implementation 'com.github.demoNo:AutoScrollViewPager:v1.0.2'
//AppUpdate
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
index 5ae9ae8c..4c15198a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
@@ -121,7 +121,7 @@ public class MainActivity extends AppCompatActivity
@Override
public boolean onNavigationItemSelected(MenuItem item) {
-// mBinding.appBarMain.waterfallToolbar.resetAll();
+ mBinding.appBarMain.elevatedToolbar.resetAll();
// Handle navigation view item clicks here.
Fragment fragment = null;
@@ -181,10 +181,12 @@ public class MainActivity extends AppCompatActivity
mBinding.appBarMain.mainSearch.setVisibility(View.VISIBLE);
mBinding.appBarMain.mainSearch.setOnSearchClickListener(v -> {
((ISearcableFragment) fragment).onSearchEnabled();
+ mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.GONE);
});
mBinding.appBarMain.mainSearch.setOnCloseListener(() -> {
((ISearcableFragment) fragment).onSearchDisabled();
+ mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.VISIBLE);
return false;
});
} else {
@@ -206,7 +208,6 @@ public class MainActivity extends AppCompatActivity
if(fragment instanceof IScrollableFragment) {
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
- // ((IScrollableFragment) fragment).setWaterfallToolbar(mBinding.appBarMain.waterfallToolbar);
}
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) {
@@ -236,7 +237,7 @@ public class MainActivity extends AppCompatActivity
if(addToBackStack) ft.addToBackStack(fragment.getTag());
ft.commit();
-// fragmentManager.executePendingTransactions();
+ //fragmentManager.executePendingTransactions();
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java b/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java
index 9321c9db..f7147bcb 100644
--- a/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java
@@ -13,14 +13,12 @@ import java.util.List;
import androidx.appcompat.app.AppCompatActivity;
import butterknife.BindView;
import butterknife.ButterKnife;
-import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.context.MainContext;
-import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.PermissionsHelper;
import it.integry.integrywmsnative.gest.login.LoginActivity;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class SplashActivity extends AppCompatActivity {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java
index fb6ce904..04b234c8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java
@@ -74,6 +74,23 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
}
+
+ public static void saveColli(List mtbColtsToSave, RunnableArgs> onComplete, RunnableArgs onFailed){
+
+ EntityRESTConsumer.processEntityList(mtbColtsToSave, new ISimpleOperationCallback>() {
+ @Override
+ public void onSuccess(List value) {
+ if(onComplete != null) onComplete.run(value);
+ }
+
+ @Override
+ public void onFailed(Exception ex) {
+ if(onFailed != null) onFailed.run(ex);
+ }
+ }, true);
+
+ }
+
public static void saveRigaCollo(MtbColr mtbColrToSave, RunnableArgs onComplete, RunnableArgs onFailed){
EntityRESTConsumer.processEntity(mtbColrToSave, new ISimpleOperationCallback() {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java
index dc7ba934..8995ffd4 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java
@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.REST.consumers;
import android.util.Log;
import com.google.gson.Gson;
+import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
@@ -59,6 +60,53 @@ public class EntityRESTConsumer {
}
+ public static void processEntityList(List entitiesToSave, final ISimpleOperationCallback> callback, boolean singleTransaction){
+
+ EntityRESTConsumerService service = RESTBuilder.getService(EntityRESTConsumerService.class);
+ Call>> request = service.processEntityList(singleTransaction, entitiesToSave);
+ request.enqueue(new Callback>>() {
+ @Override
+ public void onResponse(Call>> call, Response>> response) {
+ if(response.isSuccessful()) {
+
+ if(response.body() != null) {
+
+ ArrayList responseList = new ArrayList<>();
+ Gson gson = new Gson();
+ Type typeOfObjectsList = new TypeToken() {}.getType();
+
+ for(ServiceRESTResponse jsonSingleObject : response.body()) {
+
+ if (jsonSingleObject.getEsito() == EsitoType.OK) {
+ responseList.add(gson.fromJson(jsonSingleObject.getEntity(), typeOfObjectsList));
+ } else {
+ Log.e("EntityRESTConsumer", jsonSingleObject.getErrorMessage());
+ callback.onFailed(new Exception(jsonSingleObject.getErrorMessage()));
+
+ return;
+ }
+ }
+
+ callback.onSuccess(responseList);
+ } else {
+ Log.e("EntityRESTConsumer", response.message());
+ callback.onFailed(new Exception(response.message()));
+ }
+ } else {
+ Log.e("EntityRESTConsumer", "Status " + response.code() + ": " + response.message());
+ callback.onFailed(new Exception("Status " + response.code() + ": " + response.message()));
+ }
+ }
+
+ @Override
+ public void onFailure(Call>> call, Throwable t) {
+ Log.e("EntityRESTConsumer", t.toString());
+ callback.onFailed(new Exception(t));
+ }
+ });
+
+ }
+
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumerService.java
index d74ed113..e9fc7319 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumerService.java
@@ -3,15 +3,21 @@ package it.integry.integrywmsnative.core.REST.consumers;
import com.google.gson.JsonObject;
+import java.util.List;
+
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.model.EntityBase;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
+import retrofit2.http.Query;
public interface EntityRESTConsumerService {
@POST("processEntity")
Call> processEntity(@Body Object entity);
+ @POST("processEntityList")
+ Call>> processEntityList(@Query("forceTransaction") boolean singleTransaction, @Body Object entity);
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java
index b974b8c6..29a812be 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java
@@ -40,7 +40,6 @@ public class ServerStatusChecker {
public void addCallback(RunnableArgs callback){
this.mCallback.add(callback);
-
}
public void removeCallback(RunnableArgs callback){
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java b/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java
index f9160f86..1787944c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java
@@ -1,7 +1,6 @@
package it.integry.integrywmsnative.core.barcode_reader;
import android.content.Context;
-import android.text.SpannableString;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
@@ -9,7 +8,6 @@ import java.util.List;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException;
import it.integry.plugins.barcode_base_library.interfaces.BarcodeReaderInterface;
import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
index 7aa4148c..eed2350a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java
@@ -10,7 +10,7 @@ import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class MainContext {
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 99cdda0a..7f27189c 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
@@ -15,6 +15,7 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager;
+import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
@@ -673,10 +674,10 @@ public class MtbColt extends EntityBase implements Parcelable {
public void generaFiltroOrdineFromDTO(List filtroOrdineDtos) {
- String xmlPrefix = "";
- String xmlSuffix = "";
+ String xmlPrefix = "{\"whereCond\": \"";
+ String xmlSuffix = "\"}";
- StringBuilder xmlContent = new StringBuilder();
+ StringBuilder whereCond = new StringBuilder();
if(filtroOrdineDtos != null && filtroOrdineDtos.size() > 0) {
@@ -684,7 +685,16 @@ public class MtbColt extends EntityBase implements Parcelable {
FiltroOrdineDTO x = filtroOrdineDtos.get(i);
try {
- xmlContent.append("" + x.getGestioneOrd() + "" + UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) + "" + x.getNumOrd() + "");
+ whereCond.append(String.format("(dtb_ordt.gestione = %s AND dtb_ordt.data_ord = %s and dtb_ordt.num_ord = %s)",
+ UtilityDB.valueToString(x.getGestioneOrd()),
+ UtilityDB.valueToString(UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)),
+ UtilityDB.valueToString(x.getNumOrd())));
+
+ if(i < filtroOrdineDtos.size()-1) {
+ whereCond.append(" OR ");
+ }
+
+ //whereCond.append("" + x.getGestioneOrd() + "" + UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) + "" + x.getNumOrd() + "");
} catch (Exception e) {
e.printStackTrace();
}
@@ -692,7 +702,7 @@ public class MtbColt extends EntityBase implements Parcelable {
}
- this.filtroOrdini = xmlPrefix + xmlContent + xmlSuffix;
+ this.filtroOrdini = xmlPrefix + whereCond + xmlSuffix;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java
index 75ec4e7a..d451690a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityBarcode.java
@@ -41,7 +41,7 @@ public class UtilityBarcode {
}
- return barcodeScanDTO != null && isPosizione;
+ return isPosizione;
}
public static boolean isEanPeso(BarcodeScanDTO barcodeScanDTO) {
@@ -51,7 +51,9 @@ public class UtilityBarcode {
public static Integer getNumColloFromULAnonima(String barcode) {
- if(barcode != null){
+ if(!UtilityString.isNullOrEmpty(barcode)) {
+ barcode = barcode.trim();
+
return Integer.parseInt(barcode.substring(3));
} else
return null;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
index 20f1f45a..ec1cf692 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java
@@ -3,14 +3,13 @@ package it.integry.integrywmsnative.core.utility;
import android.app.ProgressDialog;
import android.content.Context;
import android.text.SpannableString;
-import android.util.Log;
import com.crashlytics.android.Crashlytics;
import com.orhanobut.logger.Logger;
import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.REST.CommonRESTException;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class UtilityExceptions {
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 1c527bc4..77a0cdb0 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
@@ -6,7 +6,6 @@ import android.content.Context;
import android.content.Intent;
import androidx.appcompat.widget.AppCompatTextView;
-import androidx.appcompat.widget.Toolbar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@@ -30,7 +29,6 @@ import butterknife.OnClick;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.CommonRESTException;
-import it.integry.integrywmsnative.core.coollection.Coollection;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
@@ -47,7 +45,7 @@ import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroup
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
@@ -147,8 +145,6 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
private void groupOrdiniAndMakeRecycler(List ordini){
- String prevCodAnag = "";
-
for(OrdineAccettazioneInevasoDTO ordine : ordini){
if(UtilityString.isNullOrEmpty(ordine.codJcom) || ordine.codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){
ordine.codJcom = CommonConst.Config.COMMESSA_MAG;
@@ -159,84 +155,75 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
groupedOrdiniInevasi = new ArrayList<>();
//Splitto gli ordini per codAnagClie
- for(int i = 0; i < ordini.size(); i++){
- if(prevCodAnag.equalsIgnoreCase(ordini.get(i).codAnagOrd)) continue;
- else prevCodAnag = ordini.get(i).codAnagOrd;
+ List groupedOrdini = Stream.of(ordini)
+ .map(x -> {
+ OrdineAccettazioneGroupedInevasoDTO groupedOrdine = new OrdineAccettazioneGroupedInevasoDTO();
- OrdineAccettazioneGroupedInevasoDTO groupedOrdine = new OrdineAccettazioneGroupedInevasoDTO();
+ groupedOrdine.codAnagForn = x.codAnagOrd;
+ groupedOrdine.nomeFornitore = x.ragSocOrd;
+ groupedOrdine.ordini = new ArrayList<>();
- groupedOrdine.codAnagForn = ordini.get(i).codAnagOrd;
- groupedOrdine.nomeFornitore = ordini.get(i).ragSocOrd;
- groupedOrdine.ordini = new ArrayList<>();
-
- List filteredByCodAnagOrders =
- Coollection
- .from(ordini)
- .where("codAnagOrd", Coollection.eq(ordini.get(i).codAnagOrd)).all();
+ return groupedOrdine;
+ })
+ .distinctBy(x -> x.codAnagForn + "_" + x.nomeFornitore)
+ .toList();
- int prevNumOrd = -1;
- String prevDataOrd = "";
+ Stream.of(groupedOrdini).forEach(groupedOrdine -> {
//Splitto gli ordini di ogni fornitore per data e numero
- for(int j = 0; j < filteredByCodAnagOrders.size(); j++) {
- if( prevNumOrd == filteredByCodAnagOrders.get(j).numero &&
- prevDataOrd.equalsIgnoreCase(filteredByCodAnagOrders.get(j).data)) continue;
+ List tmpOrd = Stream.of(ordini)
+ .filter(x -> x.codAnagOrd.equals(groupedOrdine.codAnagForn))
+ .map(x -> {
- else {
- prevNumOrd = filteredByCodAnagOrders.get(j).numero;
- prevDataOrd = filteredByCodAnagOrders.get(j).data;
- }
+ OrdineAccettazioneGroupedInevasoDTO.Ordine rigaOrdine = new OrdineAccettazioneGroupedInevasoDTO.Ordine();
- OrdineAccettazioneGroupedInevasoDTO.Ordine rigaOrdine = new OrdineAccettazioneGroupedInevasoDTO.Ordine();
+ rigaOrdine.data = x.data;
+ rigaOrdine.numero = x.numero;
+ rigaOrdine.codAnagOrd = x.codAnagOrd;
+ rigaOrdine.ragSocOrd = x.ragSocOrd;
+ rigaOrdine.pesoTotale = x.pesoTotale;
+ rigaOrdine.barcode = x.barcode;
+ rigaOrdine.termCons = x.termCons;
+ rigaOrdine.dataCons = x.dataCons;
+ rigaOrdine.rifOrd = x.rifOrd;
+ rigaOrdine.clienti = new ArrayList<>();
- rigaOrdine.data = filteredByCodAnagOrders.get(j).data;
- rigaOrdine.numero = filteredByCodAnagOrders.get(j).numero;
- rigaOrdine.codAnagOrd = filteredByCodAnagOrders.get(j).codAnagOrd;
- rigaOrdine.ragSocOrd = filteredByCodAnagOrders.get(j).ragSocOrd;
- rigaOrdine.pesoTotale = filteredByCodAnagOrders.get(j).pesoTotale;
- rigaOrdine.barcode = filteredByCodAnagOrders.get(j).barcode;
- rigaOrdine.termCons = filteredByCodAnagOrders.get(j).termCons;
- rigaOrdine.dataCons = filteredByCodAnagOrders.get(j).dataCons;
- rigaOrdine.rifOrd = filteredByCodAnagOrders.get(j).rifOrd;
- rigaOrdine.clienti = new ArrayList<>();
+ return rigaOrdine;
+ })
+ .distinctBy(x -> x.barcode)
+ .toList();
+ Stream.of(tmpOrd)
+ .forEach(rigaOrdine -> {
- List filteredByCodAnagAndDateAndNumberOrders =
- Coollection
- .from(ordini)
- .where("codAnagOrd", Coollection.eq(filteredByCodAnagOrders.get(j).codAnagOrd))
- .and("numero", Coollection.eq(filteredByCodAnagOrders.get(j).numero))
- .and("data", Coollection.eq(filteredByCodAnagOrders.get(j).data)).all();
+ Stream.of(ordini)
+ .filter(x ->
+ x.codAnagOrd.equals(rigaOrdine.codAnagOrd) &&
+ x.numero == rigaOrdine.numero &&
+ x.data.equals(rigaOrdine.data))
+ .forEach(x -> {
+ OrdineAccettazioneGroupedInevasoDTO.Cliente cliente = new OrdineAccettazioneGroupedInevasoDTO.Cliente();
+
+ cliente.codJcom = x.codJcom;
+ cliente.ragSocCom = x.ragSocCom;
+ cliente.descrCom = x.descrizioneCom;
+ cliente.dataCons = x.dataCons;
+ cliente.numCnf = x.numCnf;
+ cliente.rifOrd = x.rifOrd;
+
+ rigaOrdine.clienti.add(cliente);
+ });
- String prevCodJcomAndDataCons = "";
+ groupedOrdine.ordini.add(rigaOrdine);
- //Splitto gli ordini per codJcom e dataCons
- for(int k = 0; k < filteredByCodAnagAndDateAndNumberOrders.size(); k++) {
- if(prevCodJcomAndDataCons.equalsIgnoreCase(filteredByCodAnagAndDateAndNumberOrders.get(k).codJcom + "_" + filteredByCodAnagAndDateAndNumberOrders.get(k).dataCons)) continue;
- else prevCodJcomAndDataCons = filteredByCodAnagAndDateAndNumberOrders.get(k).codJcom + "_" + filteredByCodAnagAndDateAndNumberOrders.get(k).dataCons;
-
- OrdineAccettazioneGroupedInevasoDTO.Cliente cliente = new OrdineAccettazioneGroupedInevasoDTO.Cliente();
-
- cliente.codJcom = filteredByCodAnagAndDateAndNumberOrders.get(k).codJcom;
- cliente.ragSocCom = filteredByCodAnagAndDateAndNumberOrders.get(k).ragSocCom;
- cliente.descrCom = filteredByCodAnagAndDateAndNumberOrders.get(k).descrizioneCom;
- cliente.dataCons = filteredByCodAnagAndDateAndNumberOrders.get(k).dataCons;
- cliente.numCnf = filteredByCodAnagAndDateAndNumberOrders.get(k).numCnf;
- cliente.rifOrd = filteredByCodAnagAndDateAndNumberOrders.get(k).rifOrd;
-
- rigaOrdine.clienti.add(cliente);
- }
-
-
- groupedOrdine.ordini.add(rigaOrdine);
- }
+ });
groupedOrdiniInevasi.add(groupedOrdine);
- }
+ });
mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged);
mBinding.accettazioneMainList.setAdapter(mAdapter);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneDTO.java
index aed2be5f..6d06f8ac 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneDTO.java
@@ -12,6 +12,7 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
/**
* Created by GiuseppeS on 06/03/2018.
@@ -129,6 +130,10 @@ public class OrdineAccettazioneDTO implements Parcelable {
return gestioneOrd;
}
+ public GestioneEnum getGestioneOrdEnum() {
+ return GestioneEnum.fromString(gestioneOrd);
+ }
+
public String getDataCons() {
return dataCons;
}
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 1b19bb7d..30e3e340 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
@@ -110,7 +110,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
public void startListaBancaliRegistratiActivity(ArrayList mtbColts){
- Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, true, PrinterRESTConsumer.Type.SECONDARIA);
+ Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, false, PrinterRESTConsumer.Type.SECONDARIA);
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java
index 2180a140..d7c97e89 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java
@@ -49,10 +49,9 @@ import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.MainLis
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.rest.OrdineAccettazioneInevasoRESTConsumerService;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.views.NoteAggiuntiveNuovaULDialog;
-import it.integry.integrywmsnative.ui.StatusBarAlert;
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
@@ -75,6 +74,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR;
private MainListOrdineAccettazioneAdapter mAdapter;
+ private GestioneEnum defaultGestioneOfUL = null;
+
public AccettazioneOnOrdineAccettazioneInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List orders) {
this.mActivity = activity;
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
@@ -102,6 +103,18 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
groupedRighe = helper.getOrdiniRaggruppatiPerCodArtForn(groupedOrdini, true);
initRecyclerView(groupedRighe);
+
+
+ //Definizione della gestione collo di default
+ List foundGestioni = Stream.of(groupedOrdini)
+ .map(OrdineAccettazioneDTO.Riga::getGestioneOrdEnum)
+ .withoutNulls()
+ .distinctBy(x -> x)
+ .toList();
+
+ if(foundGestioni != null && foundGestioni.size() == 1){
+ defaultGestioneOfUL = foundGestioni.get(0);
+ }
}
@@ -396,7 +409,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
if(defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value)) defaultPosAccettazione = defaultPosAccettazioneDTO.value;
MtbColt mtbColt = new MtbColt();
- mtbColt .setGestione(GestioneEnum.ACQUISTO)
+ mtbColt
+ .setGestione(defaultGestioneOfUL)
.setPreparatoDa(SettingsManager.i().user.fullname)
.setAnnotazioni(noteString)
.setPosizione(defaultPosAccettazione)
@@ -667,16 +681,20 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
MtbColr currentRow = mtbColt.getMtbColr().get(i);
- Stream.of(this.groupedOrdini)
- .filter(x ->
- x.getQtaDaEvadere().floatValue() > 0 &&
- x.getMtbAart().getCodMart().equalsIgnoreCase(currentRow.getCodMart()) &&
- x.getCodJcom().equalsIgnoreCase(currentRow.getCodJcom()) &&
- x.getRigaOrd() == currentRow.getRigaOrd() &&
- x.getDataOrd().equals(currentRow.getDataOrdD()) &&
- x.getNumOrd() == currentRow.getNumOrd()
- )
- .forEach(x -> x.setQtaRiservate(x.getQtaRiservate().add(currentRow.getQtaCol())));
+ if(currentRow.getRigaOrd() != null) {
+
+ Stream.of(this.groupedOrdini)
+ .filter(x ->
+ x.getQtaDaEvadere().floatValue() > 0 &&
+ x.getMtbAart().getCodMart().equalsIgnoreCase(currentRow.getCodMart()) &&
+ x.getCodJcom().equalsIgnoreCase(currentRow.getCodJcom()) &&
+ x.getRigaOrd() == currentRow.getRigaOrd() &&
+ x.getDataOrd().equals(currentRow.getDataOrdD()) &&
+ x.getNumOrd() == currentRow.getNumOrd()
+ )
+ .forEach(x -> x.setQtaRiservate(x.getQtaRiservate().add(currentRow.getQtaCol())));
+
+ }
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/ContenutoBancaleActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/ContenutoBancaleActivity.java
index a15db8d7..2438b50b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/ContenutoBancaleActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/ContenutoBancaleActivity.java
@@ -51,7 +51,7 @@ public class ContenutoBancaleActivity extends AppCompatActivity {
mViewModel = new ContenutoBancaleViewModel(this, mtbColt, canRecoverUL, mPrinterType);
- bindings.waterfallToolbar.setNestedScrollView(bindings.scrollView);
+ bindings.elevatedToolbar.setNestedScrollView(bindings.scrollView);
setSupportActionBar(this.bindings.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/viewmodel/ContenutoBancaleViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/viewmodel/ContenutoBancaleViewModel.java
index 1043b7b0..807ffbac 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/viewmodel/ContenutoBancaleViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/viewmodel/ContenutoBancaleViewModel.java
@@ -24,7 +24,7 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
import it.integry.integrywmsnative.gest.contenuto_bancale.core.ContenutoBancaleListAdapter;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import static android.app.Activity.RESULT_OK;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java
index a5f0d4dd..341a3370 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java
@@ -46,7 +46,7 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked {
mAdapter = new MainListListaColliAdapter(mContext, mMtbColts, this, mContext.bindings.listaBancaliEmptyView);
mContext.bindings.listaColliMainList.setAdapter(mAdapter);
- mContext.bindings.waterfallToolbar.setRecyclerView(mContext.bindings.listaColliMainList);
+ mContext.bindings.elevatedToolbar.setRecyclerView(mContext.bindings.listaColliMainList);
}
@@ -69,37 +69,6 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked {
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
- /*String sql = "SELECT *, mtb_aart.descrizione, mtb_aart.unt_mis " +
- "FROM mtb_colr " +
- "LEFT OUTER JOIN mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart " +
- "WHERE " +
- "mtb_colr.data_collo = " + UtilityDB.valueToString(item.getDataColloD()) + " AND " +
- "mtb_colr.ser_collo = " + UtilityDB.valueToString(item.getSerCollo()) + " AND " +
- "mtb_colr.num_collo = " + UtilityDB.valueToString(item.getNumCollo()) + " AND " +
- "mtb_colr.gestione = " + UtilityDB.valueToString(item.getGestione());
-
-
- Type typeOfObjectsList = new TypeToken>() {}.getType();
- SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() {
- @Override
- public void onSuccess(List value) {
- ObservableArrayList mtbColrObservableArrayList = new ObservableArrayList<>();
- mtbColrObservableArrayList.addAll(value);
- item.setMtbColr(mtbColrObservableArrayList);
-
- progress.dismiss();
-
- mContext.startContenutoBancaleActivity(item);
-
- }
-
- @Override
- public void onFailed(Exception ex) {
- UtilityExceptions.defaultException(mContext, ex, progress);
- }
- });
- */
-
} catch (Exception e) {
e.printStackTrace();
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 027e28d4..f72dc910 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
@@ -27,7 +27,7 @@ import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.gest.login.core.LoginHelper;
import it.integry.integrywmsnative.gest.login.dto.LoginAziendaDTO;
import it.integry.integrywmsnative.gest.login.dto.LoginDTO;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class LoginViewModel {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
index 2353a371..d433b2b8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java
@@ -145,7 +145,13 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
cyclicRecover(sessionsIterator, onComplete, onFailed);
}, ex -> {
- onFailed.run(ex);
+
+ if(ex.getMessage().contains("Dati collo non corretti")) {
+ ColliDataRecover.closeSession(recoveredMtbColtID);
+ } else {
+ onFailed.run(ex);
+ }
+
cyclicRecover(sessionsIterator, onComplete, onFailed);
});
} else {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
index b2464d01..a95a9027 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
@@ -77,7 +77,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment {
.setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
- mBindings.waterfallToolbar.setNestedScrollView(mBindings.scrollView);
+ mBindings.elevatedToolbar.setNestedScrollView(mBindings.scrollView);
return mBindings.getRoot();
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java
index b14243ed..8b993da3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java
@@ -2,7 +2,6 @@ package it.integry.integrywmsnative.gest.picking_libero.viewmodel;
import android.app.Activity;
import android.app.ProgressDialog;
-import android.content.Context;
import android.text.SpannableString;
import android.view.View;
@@ -17,7 +16,6 @@ import java.util.Iterator;
import java.util.List;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat;
import androidx.databinding.Observable;
@@ -46,8 +44,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter;
-import it.integry.integrywmsnative.ui.StatusBarAlert;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java
index fc05b3ee..42da807a 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java
@@ -24,13 +24,14 @@ import java.util.Date;
import java.util.List;
import java.util.Objects;
-import it.integry.integrywmsnative.MainActivity;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.CommonRESTException;
+import it.integry.integrywmsnative.core.REST.consumers.ArticoloRESTConsumer;
+import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
-import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
+import it.integry.integrywmsnative.core.REST.model.Ean128Model;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@@ -43,6 +44,8 @@ import it.integry.integrywmsnative.core.model.MtbCols;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.report.ReportManager;
import it.integry.integrywmsnative.core.settings.SettingsManager;
+import it.integry.integrywmsnative.core.utility.UtilityBarcode;
+import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
@@ -53,13 +56,13 @@ import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenz
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.AutoCompleteFornitoreAdapter;
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.RettificaGiacenzeMainListAdapter;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
-import it.integry.integrywmsnative.ui.StatusBarAlert;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
+import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
import it.integry.plugins.barcode_base_library.model.BarcodeType;
@@ -160,15 +163,78 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked
BarcodeManager.disable();
+ ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
+
if(data.getType() == BarcodeType.EAN8 || data.getType() == BarcodeType.EAN13 || data.getType() == BarcodeType.UPCA){
- searchArtInt(data.getStringValue());
+ searchArtInt(data.getStringValue(), progressDialog);
+ } else if(UtilityBarcode.isEtichetta128(data)) {
+ this.executeEtichettaEan128(data, progressDialog);
} else {
BarcodeManager.enable();
+ progressDialog.dismiss();
}
};
+ private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, ProgressDialog progressDialog) {
+ BarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
+
+ String barcodeProd = null;
+
+ if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
+ if(!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
+ if(!UtilityString.isNullOrEmpty(ean128Model.Content)) barcodeProd = ean128Model.Content;
+
+ if(!UtilityString.isNullOrEmpty(barcodeProd)) {
+ if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
+ barcodeProd = barcodeProd.substring(1, barcodeProd.length());
+ }
+ this.loadBarcodeArticolo(barcodeProd, ean128Model, progressDialog);
+ } else {
+ //EAN 128 non completo o comunque mancano i riferimenti al prodotto
+ progressDialog.dismiss();
+ BarcodeManager.enable();
+ }
+ }, ex-> {
+ UtilityExceptions.defaultException(mContext, ex, progressDialog);
+ BarcodeManager.enable();
+ });
+ }
+
+
+ private void loadBarcodeArticolo(String barcodeProd, Ean128Model ean128Model, ProgressDialog progressDialog) {
+ if(barcodeProd.length() == 14) {
+// barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd);
+ barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
+ }
+
+ ArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
+
+ if(mtbAartList != null && mtbAartList.size() > 0) {
+
+ this.dispatchArt(mtbAartList.get(0), ean128Model);
+
+ BarcodeManager.enable();
+ progressDialog.dismiss();
+
+ } else {
+ BarcodeManager.enable();
+ progressDialog.dismiss();
+
+ DialogSimpleMessageHelper.makeWarningDialog(mContext,
+ new SpannableString(mContext.getResources().getText(R.string.no_result_from_barcode)),
+ null, null)
+ .show();
+ }
+
+ }, ex -> {
+ BarcodeManager.enable();
+ UtilityExceptions.defaultException(mContext, ex, progressDialog);
+ });
+ }
+
+
public void setupSearchFornitori(ArrayList listaFornitori) {
AutoCompleteFornitoreAdapter autoCompleteFornitoreAdapter = new AutoCompleteFornitoreAdapter(mContext, listaFornitori);
mBinding.autoCompleteFornitori.setAdapter(autoCompleteFornitoreAdapter);
@@ -205,7 +271,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked
return true;
}
- searchArtInt(mBinding.inputCodArtDescrInt.getText().toString());
+ searchArtInt(mBinding.inputCodArtDescrInt.getText().toString(), UtilityProgress.createDefaultProgressDialog(mContext));
return true;
}
return false;
@@ -248,8 +314,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked
}, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog));
}
- private void searchArtInt(String queryText) {
- final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
+ private void searchArtInt(String queryText, ProgressDialog progressDialog) {
//progressDialog.show();
mHelper.searchArtInt(queryText, listaArts -> {
@@ -269,9 +334,9 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked
if(articoloFornitoreDTOS.size() == 0) {
showNoArtsFound();
} else if(articoloFornitoreDTOS.size() == 1) {
- dispatchArt(articoloFornitoreDTOS.get(0));
+ dispatchArt(articoloFornitoreDTOS.get(0), null);
} else {
- DialogChooseArtFromListaArts.make(mContext, articoloFornitoreDTOS, this::dispatchArt).show();
+ DialogChooseArtFromListaArts.make(mContext, articoloFornitoreDTOS, mtbAart -> this.dispatchArt(mtbAart, null)).show();
}
} else {
showNoArtsFound();
@@ -285,7 +350,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked
}
- private void dispatchArt(MtbAart mtbAart){
+ private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model){
DialogInputQuantity.DTO qtaDto = new DialogInputQuantity.DTO();
qtaDto.setMtbAart(mtbAart);
@@ -301,6 +366,41 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked
qtaDto.setCanDataScadBeChanged(true);
+ if(ean128Model != null){
+ if(!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) {
+ qtaDto.setBatchLot(ean128Model.BatchLot);
+ qtaDto.setCanPartitaMagBeChanged(false);
+ }
+
+ try {
+ if(!UtilityString.isNullOrEmpty(ean128Model.BestBefore)){
+ qtaDto.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore));
+ qtaDto.setCanDataScadBeChanged(false);
+ } else if(!UtilityString.isNullOrEmpty(ean128Model.Expiry)) {
+ qtaDto.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry));
+ qtaDto.setCanDataScadBeChanged(false);
+ }
+
+ } catch (Exception e) {
+ UtilityLogger.errorMe(e);
+ }
+
+
+ if(ean128Model.Count != null && ean128Model.Count > 0) {
+ qtaDto.setNumCnf(ean128Model.Count);
+ }
+
+ if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0) {
+ qtaDto.setQtaTot(new BigDecimal(ean128Model.NetWeightKg));
+ } else {
+ qtaDto.setQtaTot(qtaDto.getQtaCnf().multiply(new BigDecimal(qtaDto.getNumCnf())));
+ }
+
+
+ qtaDto.setShouldAskDataScad(true);
+ }
+
+
DialogInputQuantity.makeBase(mContext, qtaDto, true, (quantityDTO) -> {
onPostDispatch(mtbAart, quantityDTO);
}, null).show();
@@ -469,16 +569,31 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked
}
private void posizionaCollo(Runnable onComplete, Runnable onAbort, RunnableArgs onFailed) {
- DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), mtbDepoPosizione -> {
- if(mtbDepoPosizione != null && mtbColt.get() != null) {
- Objects.requireNonNull(mtbColt.get()).setPosizione(mtbDepoPosizione.getPosizione());
- onComplete.run();
- } else {
- onAbort.run();
+
+ DialogYesNo.make(mContext, "Posiziona UL", "Vuoi cambiare la posizione della UL corrente?", result -> {
+
+ switch (result){
+ case YES:
+ DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), mtbDepoPosizione -> {
+ if(mtbDepoPosizione != null && mtbColt.get() != null) {
+ Objects.requireNonNull(mtbColt.get()).setPosizione(mtbDepoPosizione.getPosizione());
+ onComplete.run();
+ } else {
+ onAbort.run();
+ }
+
+
+ }, onFailed).show();
+ break;
+
+ case NO:
+ onAbort.run();
+ break;
}
+ }).show();
+
- }, onFailed).show();
}
private void onItemEdit(MtbColr mtbColrToEdit, int index) {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java
index c271c3bf..07c2e2da 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java
@@ -51,7 +51,7 @@ import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita.viewmodel.VenditaViewModel;
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class MainVenditaFragment extends Fragment implements ITitledFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java
index a7af3d5c..ad4d53df 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/viewmodel/VenditaViewModel.java
@@ -5,14 +5,12 @@ import android.app.ProgressDialog;
import android.text.Html;
import android.text.SpannableString;
-import com.annimon.stream.Collectors;
import com.annimon.stream.Stream;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
@@ -21,18 +19,14 @@ import it.integry.integrywmsnative.core.model.DtbOrdt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
-import it.integry.integrywmsnative.core.utility.UtilityLogger;
-import it.integry.integrywmsnative.core.utility.UtilityPosizione;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding;
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper;
-import it.integry.integrywmsnative.gest.vendita.dialogs.DialogVenditaFiltroAvanzatoViewModel;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
-import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class VenditaViewModel {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java
index ffece70f..c0b237a0 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java
@@ -96,9 +96,11 @@ public class VenditaOrdineInevasoHelper {
final PickingObjectDTO currentItem = currentGroup.get(k);
final VenditaOrdineInevasoListViewModel.SubItem rowModel = new VenditaOrdineInevasoListViewModel.SubItem();
+ String badge1 = "";
+ badge1 += !UtilityString.isNullOrEmpty(currentItem.getCodAlis()) ? (currentItem.getCodAlis() + " - ") : "";
+ badge1 += (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart());
- String badge1 = currentItem.getCodAlis() + " - " + (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart());
rowModel.setBadge1(badge1);
rowModel.setBadge2(UtilityString.isNullOrEmpty(currentItem.getCodJcom()) ? null : currentItem.getCodJcom());
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java
index 44588839..3156d977 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java
@@ -54,7 +54,7 @@ import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.interfaces.I
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java
index 6a5aa776..777be8ed 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java
@@ -16,7 +16,6 @@ import java.util.Date;
import java.util.Iterator;
import java.util.List;
-import it.integry.integrywmsnative.MainActivity;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
@@ -38,7 +37,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentMainVersamentoMerceBinding;
import it.integry.integrywmsnative.gest.versamento_merce.core.VersamentoMerceHelper;
import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
@@ -185,7 +184,7 @@ public class VersamentoMerceViewModel {
showNoULFound();
BarcodeManager.enable();
progressDialog.dismiss();
- } else if(mtbColt != null && (mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.VENDITA)) {
+ } else if(mtbColt != null && (/*mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO ||*/ mtbColt.getGestioneEnum() == GestioneEnum.VENDITA)) {
showWrongGestioneUL();
BarcodeManager.enable();
progressDialog.dismiss();
@@ -243,6 +242,8 @@ public class VersamentoMerceViewModel {
private void pickMerceULtoUL(MtbColt destMtbColt, ProgressDialog progressDialog) {
+ MtbColt sourceMtbColt = mtbColt.get();
+
List mtbColrsToPick = Stream.of(mtbColt.get().getMtbColr())
.filter(x -> x.getQtaCol().floatValue() > 0)
.toList();
@@ -257,36 +258,66 @@ public class VersamentoMerceViewModel {
BarcodeManager.enable();
if(destNewMtbColr != null && destNewMtbColr.size() > 0){
- MtbColt clonedTestata = (MtbColt) destMtbColt.clone();
- ObservableArrayList mtbColrObservableField = new ObservableArrayList<>();
+ MtbColt clonedSourceTestata = (MtbColt) sourceMtbColt.clone();
+ MtbColt clonedDestTestata = (MtbColt) destMtbColt.clone();
+
+ ObservableArrayList mtbColrSourceObservableField = new ObservableArrayList<>();
+ ObservableArrayList mtbColrDestObservableField = new ObservableArrayList<>();
for(int i = 0; i < destNewMtbColr.size(); i++) {
MtbColr cloneMtbColr = (MtbColr) destNewMtbColr.get(i).clone();
- cloneMtbColr
- .setGestioneRif(cloneMtbColr.getGestione())
- .setGestione(null);
+ boolean destroyMtbColrReferences = false;
+
+ //Se le gestioni sono uguali faccio uno storno sulla sorgente e non lavoro con
+ //i riferimenti
+ if(sourceMtbColt.getGestioneEnum() == destMtbColt.getGestioneEnum()){
+ destroyMtbColrReferences = true;
+
+ MtbColr stornoSourceMtbColr = (MtbColr) destNewMtbColr.get(i).clone();
+
+ stornoSourceMtbColr
+ .setGestione(null)
+ .setNumCollo(null)
+ .setSerCollo(null)
+ .setDataCollo(null)
+ .setGestioneRif(null)
+ .setNumColloRif(null)
+ .setSerColloRif(null)
+ .setDataColloRif((String) null)
+
+ .setQtaCol(stornoSourceMtbColr.getQtaCol().multiply(new BigDecimal(-1)));
+
+ mtbColrSourceObservableField.add(stornoSourceMtbColr);
+ }
+
+ if(!destroyMtbColrReferences) {
+ cloneMtbColr
+ .setGestioneRif(cloneMtbColr.getGestione())
+ .setSerColloRif(cloneMtbColr.getSerCollo())
+ .setNumColloRif(cloneMtbColr.getNumCollo())
+ .setDataColloRif(cloneMtbColr.getDataColloS());
+ }
cloneMtbColr
- .setSerColloRif(cloneMtbColr.getSerCollo())
- .setSerCollo(null);
-
- cloneMtbColr
- .setNumColloRif(cloneMtbColr.getNumCollo())
- .setNumCollo(null);
-
- cloneMtbColr
- .setDataColloRif(cloneMtbColr.getDataColloS())
+ .setGestione(null)
+ .setSerCollo(null)
+ .setNumCollo(null)
.setDataCollo(null);
- mtbColrObservableField.add(cloneMtbColr);
+ mtbColrDestObservableField.add(cloneMtbColr);
}
- clonedTestata.setMtbColr(mtbColrObservableField);
+ clonedSourceTestata.setMtbColr(mtbColrSourceObservableField);
+ clonedDestTestata.setMtbColr(mtbColrDestObservableField);
- saveLU(clonedTestata);
+
+ saveLUs(clonedSourceTestata, clonedDestTestata);
}
+ }, () -> {
+ progressDialog.dismiss();
+ BarcodeManager.enable();
});
}, () -> {
@@ -296,7 +327,7 @@ public class VersamentoMerceViewModel {
}
- private void askQuantities(Iterator sourceMtbColrs, List destMtbColr, Runnable onComplete){
+ private void askQuantities(Iterator sourceMtbColrs, List destMtbColr, Runnable onComplete, Runnable onAbort){
if(sourceMtbColrs.hasNext()){
@@ -304,15 +335,15 @@ public class VersamentoMerceViewModel {
destMtbColr.add(mtbColr);
- askQuantities(sourceMtbColrs, destMtbColr, onComplete);
- });
+ askQuantities(sourceMtbColrs, destMtbColr, onComplete, onAbort);
+ }, onAbort);
} else {
onComplete.run();
}
}
- private void askSingleQuantity(MtbColr mtbColr, RunnableArgs onComplete) {
+ private void askSingleQuantity(MtbColr mtbColr, RunnableArgs onComplete, Runnable onAbort) {
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
.setBatchLot(mtbColr.getPartitaMag())
.setDataScad(mtbColr.getDataScadPartitaD())
@@ -333,7 +364,7 @@ public class VersamentoMerceViewModel {
.setDatetimeRow(new Date());
onComplete.run(mtbColr);
- }, null).show();
+ }, onAbort).show();
}
@@ -346,7 +377,7 @@ public class VersamentoMerceViewModel {
private void showWrongGestioneUL() {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
- new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_A_V_not_accepted_message).toString())),
+ new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_V_not_accepted_message).toString())),
null, null).show();
}
@@ -357,15 +388,22 @@ public class VersamentoMerceViewModel {
}
*/
- private void saveLU(MtbColt mtbColt) {
- mtbColt.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+ private void saveLUs(MtbColt mtbColt1, MtbColt mtbColt2) {
- for(int i = 0; i < mtbColt.getMtbColr().size(); i++) {
- mtbColt.getMtbColr().get(i).setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+ ArrayList mtbColts = new ArrayList<>();
+ mtbColts.add(mtbColt1);
+ mtbColts.add(mtbColt2);
+
+ for(MtbColt mtbColt : mtbColts) {
+ mtbColt.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+
+ for (int i = 0; i < mtbColt.getMtbColr().size(); i++) {
+ mtbColt.getMtbColr().get(i).setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
+ }
}
- ColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
+ ColliMagazzinoRESTConsumer.saveColli(mtbColts, value -> {
showDataSavedDialog(() -> {
mOnVersamentoCompleted.run();
});
diff --git a/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java b/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java
index 3f437bb9..3298829d 100644
--- a/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java
@@ -4,9 +4,11 @@ import android.content.Context;
import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
+import android.view.View;
public class DeactivatableViewPager extends ViewPager {
+ private View mCurrentView;
public DeactivatableViewPager(Context context) {
super(context);
@@ -25,4 +27,34 @@ public class DeactivatableViewPager extends ViewPager {
public boolean onInterceptTouchEvent(MotionEvent event) {
return isEnabled() && super.onInterceptTouchEvent(event);
}
+
+
+ @Override
+ public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ if (mCurrentView == null) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ return;
+ }
+ int height = 0;
+ mCurrentView.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+ int h = mCurrentView.getMeasuredHeight();
+ if (h > height) height = h;
+ heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
+
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ }
+
+ public void measureCurrentView(View currentView) {
+ mCurrentView = currentView;
+ requestLayout();
+ }
+
+ public int measureFragment(View view) {
+ if (view == null)
+ return 0;
+
+ view.measure(0, 0);
+ return view.getMeasuredHeight();
+ }
+
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/ui/ElevatedToolbar.java b/app/src/main/java/it/integry/integrywmsnative/ui/ElevatedToolbar.java
index 51f3494c..f4a8b165 100644
--- a/app/src/main/java/it/integry/integrywmsnative/ui/ElevatedToolbar.java
+++ b/app/src/main/java/it/integry/integrywmsnative/ui/ElevatedToolbar.java
@@ -1,67 +1,159 @@
package it.integry.integrywmsnative.ui;
+import android.animation.ObjectAnimator;
+import android.animation.StateListAnimator;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
+import android.view.ViewTreeObserver;
import android.widget.ScrollView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
+import androidx.cardview.widget.CardView;
import androidx.core.view.ViewCompat;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.RecyclerView;
-public class ElevatedToolbar extends Toolbar {
+public class ElevatedToolbar extends CardView {
+
+ private final float CARD_ELEVATION = 50f;
+
+ private RecyclerView mRecyclerView = null;
+ private ScrollView mScrollView = null;
+ private NestedScrollView mNestedScrollView = null;
public ElevatedToolbar(Context context) {
super(context);
+ resetElevation();
}
public ElevatedToolbar(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
+ resetElevation();
}
public ElevatedToolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
+ resetElevation();
}
+ public void resetElevation() {
+ setCardElevation(0f);
+ }
+
+ public void resetAll() {
+ resetElevation();
+
+ removeRecyclerViewScrollListener();
+
+ removeScrollViewScrollListener();
+
+ removeNestedScrollViewListener();
+
+ mRecyclerView = null;
+ mScrollView = null;
+ mNestedScrollView = null;
+
+ }
+
+
+ RecyclerView.OnScrollListener recyclerViewScrollListener = new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
+ super.onScrolled(recyclerView, dx, dy);
+
+ if(!recyclerView.canScrollVertically(-1)) {
+ resetElevation();
+ } else {
+ setCardElevation(CARD_ELEVATION);
+ }
+ }
+ };
+
public void setRecyclerView(RecyclerView recyclerView) {
+ this.mRecyclerView = recyclerView;
+ resetElevation();
- final ElevatedToolbar currentInstance = this;
-
- if(recyclerView != null) {
-
- recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
- @Override
- public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
- super.onScrolled(recyclerView, dx, dy);
-
- if(!recyclerView.canScrollVertically(-1)) {
-// currentInstance.setElevation(0f);
- ViewCompat.setElevation(currentInstance, 0f);
- } else {
-// currentInstance.setElevation(50f);
- ViewCompat.setElevation(currentInstance, 50f);
- }
- }
- });
-
+ if(mRecyclerView != null) {
+ mRecyclerView.setOnScrollListener(recyclerViewScrollListener);
} else {
Log.e("ElevatedToolbar", "RecyclerView is NULL");
}
+ }
+ public void removeRecyclerViewScrollListener(){
+ if(mRecyclerView != null) {
+ mRecyclerView.setOnScrollListener(null);
+ } else {
+ Log.e("ElevatedToolbar", "REMOVE: RecyclerView is NULL");
+ }
}
+
+ private ViewTreeObserver.OnScrollChangedListener scrollViewScrollListener = () -> {
+ if(mScrollView != null) {
+ if(mScrollView.getScrollY() == 0) {
+ resetElevation();
+ } else {
+ setCardElevation(CARD_ELEVATION);
+ }
+ }
+ };
+
public void setScrollView(ScrollView scrollView) {
+ this.mScrollView = scrollView;
+ resetElevation();
+ if(mScrollView != null) {
+ mScrollView.getViewTreeObserver().addOnScrollChangedListener(scrollViewScrollListener);
+ } else {
+ Log.e("ElevatedToolbar", "ScrollView is NULL");
+ }
+ }
+
+ public void removeScrollViewScrollListener(){
+ if(mScrollView != null) {
+ mScrollView.getViewTreeObserver().removeOnScrollChangedListener(scrollViewScrollListener);
+ } else {
+ Log.e("ElevatedToolbar", "REMOVE: ScrollView is NULL");
+ }
}
- public void setNestedScrollView(NestedScrollView nestedScrollView) {
+
+
+ private NestedScrollView.OnScrollChangeListener nestedScrollViewListener = (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
+ if(mNestedScrollView != null) {
+ if(scrollY == 0) {
+ resetElevation();
+ } else {
+ setCardElevation(CARD_ELEVATION);
+ }
+ }
+ };
+
+ public void setNestedScrollView(NestedScrollView nestedScrollView) {
+ this.mNestedScrollView = nestedScrollView;
+ resetElevation();
+
+ if(mNestedScrollView != null) {
+ mNestedScrollView.setOnScrollChangeListener(nestedScrollViewListener);
+ } else {
+ Log.e("ElevatedToolbar", "NestedScrollView is NULL");
+ }
+ }
+
+ public void removeNestedScrollViewListener() {
+ if(mNestedScrollView != null) {
+ mNestedScrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) null);
+ } else {
+ Log.e("ElevatedToolbar", "REMOVE: NestedScrollView is NULL");
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/WrapContentHeightViewPager.java b/app/src/main/java/it/integry/integrywmsnative/view/WrapContentHeightViewPager.java
deleted file mode 100644
index 00b43df7..00000000
--- a/app/src/main/java/it/integry/integrywmsnative/view/WrapContentHeightViewPager.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package it.integry.integrywmsnative.view;
-
-import android.content.Context;
-import androidx.viewpager.widget.ViewPager;
-import android.util.AttributeSet;
-import android.view.View;
-
-public class WrapContentHeightViewPager extends ViewPager {
-
- /**
- * Constructor
- *
- * @param context the context
- */
- public WrapContentHeightViewPager(Context context) {
- super(context);
- }
-
- /**
- * Constructor
- *
- * @param context the context
- * @param attrs the attribute set
- */
- public WrapContentHeightViewPager(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-
- // find the first child view
- View view = getChildAt(0);
- if (view != null) {
- // measure the first child view with the specified measure spec
- view.measure(widthMeasureSpec, heightMeasureSpec);
- }
-
- setMeasuredDimension(getMeasuredWidth(), measureHeight(heightMeasureSpec, view));
- }
-
- /**
- * Determines the height of this view
- *
- * @param measureSpec A measureSpec packed into an int
- * @param view the base view with already measured height
- *
- * @return The height of the view, honoring constraints from measureSpec
- */
- private int measureHeight(int measureSpec, View view) {
- int result = 0;
- int specMode = MeasureSpec.getMode(measureSpec);
- int specSize = MeasureSpec.getSize(measureSpec);
-
- if (specMode == MeasureSpec.EXACTLY) {
- result = specSize;
- } else {
- // set the height from the base view if available
- if (view != null) {
- result = view.getMeasuredHeight();
- }
- if (specMode == MeasureSpec.AT_MOST) {
- result = Math.min(result, specSize);
- }
- }
- return result;
- }
-
-}
\ No newline at end of file
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
index c7f3e85e..5968ec0c 100644
--- 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
@@ -4,10 +4,8 @@ import android.app.ProgressDialog;
import android.content.Context;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.Observable;
-import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableField;
import androidx.databinding.ObservableList;
-import androidx.databinding.ViewDataBinding;
import androidx.annotation.NonNull;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import androidx.appcompat.app.AppCompatActivity;
@@ -18,7 +16,6 @@ import android.view.ViewGroup;
import android.widget.BaseAdapter;
import java.lang.ref.WeakReference;
-import java.math.BigDecimal;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
@@ -32,7 +29,7 @@ import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomShee
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding;
import it.integry.integrywmsnative.view.bottomsheet.ArticoliInColloBottomSheetHelper;
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
public class ArticoliInColloBottomSheetViewModel {
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java
index ef2f27c7..c0cb755b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java
@@ -3,7 +3,8 @@ package it.integry.integrywmsnative.view.dialogs;
import android.app.Dialog;
import android.content.Context;
-import android.content.DialogInterface;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
@@ -24,7 +25,7 @@ public class DialogAskLivelloPosizione {
private Context mContext;
private MtbDepoPosizione mtbDepoPosizione;
- private Dialog mAlert;
+ private Dialog mDialog;
private RunnableArgs onComplete;
private RunnableArgs onFailed;
@@ -34,7 +35,7 @@ public class DialogAskLivelloPosizione {
private boolean completedFLow = false;
public static void make(Context context, MtbDepoPosizione mtbDepoPosizione, boolean canAbort, RunnableArgs onComplete, RunnableArgs onFailed) {
- new DialogAskLivelloPosizione(context, mtbDepoPosizione, canAbort, onComplete, onFailed).mAlert.show();
+ new DialogAskLivelloPosizione(context, mtbDepoPosizione, canAbort, onComplete, onFailed).mDialog.show();
}
@@ -48,15 +49,17 @@ public class DialogAskLivelloPosizione {
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View currentView = inflater.inflate(R.layout.dialog_ask_livello_of_position, null, false);
- mAlert = new Dialog(mContext);
- mAlert.setContentView(currentView);
- mAlert.setCanceledOnTouchOutside(false);
+ mDialog = new Dialog(mContext);
+ mDialog.setContentView(currentView);
+ mDialog.setCanceledOnTouchOutside(false);
+ mDialog.setCancelable(false);
+ mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
- mAlert.setOnDismissListener(dialog -> {
+ mDialog.setOnDismissListener(dialog -> {
if(!completedFLow) onComplete.run(null);
});
- mAlert.setOnShowListener(dialog -> {
+ mDialog.setOnShowListener(dialog -> {
if(!canAbort) currentView.findViewById(R.id.button_abort).setVisibility(View.GONE);
@@ -111,7 +114,7 @@ public class DialogAskLivelloPosizione {
completedFLow = true;
onComplete.run(foundPosizione);
- mAlert.dismiss();
+ mDialog.dismiss();
} else {
@@ -142,7 +145,7 @@ public class DialogAskLivelloPosizione {
private void onLevelAbort() {
completedFLow = true;
onComplete.run(null);
- mAlert.dismiss();
+ mDialog.dismiss();
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogConsts.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogConsts.java
new file mode 100644
index 00000000..93604021
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogConsts.java
@@ -0,0 +1,11 @@
+package it.integry.integrywmsnative.view.dialogs;
+
+public class DialogConsts {
+
+ public enum Results {
+ YES,
+ NO,
+ ABORT
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java
index 23410bc0..836c6bcf 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java
@@ -6,6 +6,9 @@ import android.content.Context;
import androidx.databinding.DataBindingUtil;
import com.google.android.material.textfield.TextInputLayout;
+
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
@@ -73,6 +76,8 @@ public class DialogAskPositionOfLU {
mDialog = new Dialog(mContext);
mDialog.setContentView(mBinding.getRoot());
mDialog.setCanceledOnTouchOutside(false);
+ mDialog.setCancelable(false);
+ mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
mDialog.setOnShowListener(dialog -> {
adapter.getPage(1).findViewById(R.id.button_confirm).setOnClickListener(v -> {
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java
index 8e3dd457..0bcb48d4 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java
@@ -3,6 +3,8 @@ package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
+import it.integry.integrywmsnative.ui.DeactivatableViewPager;
+
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -25,10 +27,6 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter {
this.mDatasetViews = new ArrayList<>();
}
- @Override
- public int getCount() {
- return mDatasetLayout.size();
- }
@Override
public View instantiateItem(ViewGroup container, int position) {
@@ -38,6 +36,9 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter {
container.addView(view);
this.mDatasetViews.add(view);
+ DeactivatableViewPager pager = (DeactivatableViewPager) container;
+ pager.measureCurrentView(view);
+
return view;
}
@@ -56,4 +57,10 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter {
return this.mDatasetViews.get(index);
}
+
+ @Override
+ public int getCount() {
+ return mDatasetLayout.size();
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_should_print/DialogAskShouldPrint.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_should_print/DialogAskShouldPrint.java
index 39e3e521..b5753990 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_should_print/DialogAskShouldPrint.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_should_print/DialogAskShouldPrint.java
@@ -1,10 +1,11 @@
package it.integry.integrywmsnative.view.dialogs.ask_should_print;
+import android.app.Dialog;
import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
-import android.view.View;
-import androidx.appcompat.app.AlertDialog;
import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@@ -12,31 +13,32 @@ import it.integry.integrywmsnative.databinding.DialogAskShouldPrintBinding;
public class DialogAskShouldPrint {
- private AlertDialog currentAlert;
+ private Dialog currentDialog;
- public static AlertDialog make(final Context context, final String nomeEtichetta, RunnableArgs onDialogDismiss) {
- return new DialogAskShouldPrint(context, nomeEtichetta, onDialogDismiss).currentAlert;
+ public static Dialog make(final Context context, final String nomeEtichettaEN, RunnableArgs onDialogDismiss) {
+ return new DialogAskShouldPrint(context, nomeEtichettaEN, onDialogDismiss).currentDialog;
}
- private DialogAskShouldPrint(Context context, String nomeEtichetta, RunnableArgs onDialogDismiss) {
+ private DialogAskShouldPrint(Context context, String nomeEtichettaEN, RunnableArgs onDialogDismiss) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
DialogAskShouldPrintBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_should_print, null, false);
- final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
- .setView(bindings.getRoot());
+ currentDialog = new Dialog(context);
+ currentDialog.setContentView(bindings.getRoot());
- currentAlert = alertDialog.create();
- currentAlert.setCanceledOnTouchOutside(false);
+ currentDialog.setCanceledOnTouchOutside(false);
+ currentDialog.setCancelable(false);
+ currentDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
- bindings.printMessage.setText("La procedura stamperà una " + nomeEtichetta);
+ bindings.descriptionText.setText(String.format(context.getResources().getString(R.string.message_print_packing_list), nomeEtichettaEN));
bindings.buttonConfirm.setOnClickListener(v -> {
- currentAlert.dismiss();
+ currentDialog.dismiss();
onDialogDismiss.run(true);
});
bindings.buttonAbort.setOnClickListener(v -> {
- currentAlert.dismiss();
+ currentDialog.dismiss();
onDialogDismiss.run(false);
});
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogSimpleMessageHelper.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java
similarity index 58%
rename from app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogSimpleMessageHelper.java
rename to app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java
index 0c9a48e3..77723f0b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogSimpleMessageHelper.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java
@@ -1,8 +1,13 @@
-package it.integry.integrywmsnative.view.dialogs;
+package it.integry.integrywmsnative.view.dialogs.base;
+import android.app.Activity;
import android.app.AlertDialog;
+import android.app.Dialog;
import android.content.Context;
import android.content.res.ColorStateList;
+import android.graphics.Color;
+import android.graphics.Rect;
+import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import androidx.annotation.StringRes;
import androidx.core.content.ContextCompat;
@@ -10,13 +15,16 @@ import androidx.appcompat.widget.AppCompatImageView;
import android.text.Spanned;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.Window;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.HashMap;
+import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.databinding.DialogBaseBinding;
/**
* Created by GiuseppeS on 22/03/2018.
@@ -46,20 +54,22 @@ public class DialogSimpleMessageHelper {
}
}
- private static AlertDialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){
+ private static Dialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
int colorBackgroundTitle = -1;
Drawable titleIconRes = null;
+ Dialog dialog = new Dialog(mContext);
+
switch (type){
case INFO:
- colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.colorPrimary);
+ colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.light_blue_300);
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_info_78dp);
break;
case SUCCESS:
- colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.green_500);
+ colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.green_300);
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_done_white_24dp);
break;
@@ -69,27 +79,44 @@ public class DialogSimpleMessageHelper {
break;
case ERROR:
- colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.red_600);
+ colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.red_300);
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_mood_bad_24dp);
break;
}
- //Title VIEW
- View titleView = inflater.inflate(R.layout.dialog_custom_header, null);
- TextView title = titleView.findViewById(R.id.title_text);
- title.setText(titleText);
+ DialogSimpleMessageViewModel viewModel = new DialogSimpleMessageViewModel(dialog);
- AppCompatImageView civ = titleView.findViewById(R.id.title_icon);
- ColorStateList colorStateList = ColorStateList.valueOf(colorBackgroundTitle);
- civ.setImageTintList(colorStateList);
- civ.setImageDrawable(titleIconRes);
+ viewModel
+ .setOnPositive(onPositiveClick)
+ .setOnNeutral(onNeutralClick)
+ .setOnNegative(onNegativeClick);
+
+
+ DialogBaseBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.dialog_base, null, false);
+
+ mBinding.setViewmodel(viewModel);
+
+
+
+ Rect displayRectangle = new Rect();
+ Window window = ((Activity) mContext).getWindow();
+ window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle);
+ mBinding.titleContainer.setMinimumWidth((int)(displayRectangle.width() * 0.8f));
+
+
+
+ //Title VIEW
+ mBinding.titleText.setText(titleText);
+ ColorStateList colorStateList = ColorStateList.valueOf(Color.WHITE);
+ mBinding.titleIcon.setImageTintList(colorStateList);
+ mBinding.titleIcon.setImageDrawable(titleIconRes);
+
+ mBinding.titleContainer.setBackgroundColor(colorBackgroundTitle);
//Content View
- View contentView = inflater.inflate(R.layout.dialog_custom_content, null);
- TextView contentMessage = contentView.findViewById(R.id.dialog_content_main_message);
- contentMessage.setText(messageText);
+ mBinding.descriptionText.setText(messageText);
- LinearLayout hashMapContainer = contentView.findViewById(R.id.dialog_content_hashmap);
+ LinearLayout hashMapContainer = mBinding.dialogContentHashmap;
if(hashmapContent != null) {
for (int i = 0; i < hashmapContent.keySet().size(); i++) {
@@ -104,31 +131,16 @@ public class DialogSimpleMessageHelper {
}
}
+ dialog.setCancelable(false);
+ dialog.setCanceledOnTouchOutside(false);
+ dialog.setContentView(mBinding.getRoot());
+ dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
- AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext)
- .setCustomTitle(titleView)
- .setView(contentView)
-// .setMessage(messageText)
- .setCancelable(false)
- .setPositiveButton(mContext.getText(R.string.ok), (dialog, which) -> {
- if(onPositiveClick != null) onPositiveClick.run();
- });
-
- if(onNeutralClick != null){
- alertDialog.setNeutralButton(rNeutralButtonString, (dialog, which) -> onNeutralClick.run());
- }
- if(onNegativeClick != null){
- alertDialog.setNegativeButton(mContext.getText(R.string.abort), (dialog, which) -> onNegativeClick.run());
- }
-
- AlertDialog alert = alertDialog.create();
- alert.setCanceledOnTouchOutside(false);
-
- return alert;
+ return dialog;
}
- public static AlertDialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){
+ public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){
return makeBase(TYPE.INFO,
mContext,
titleText,
@@ -139,7 +151,7 @@ public class DialogSimpleMessageHelper {
}
- public static AlertDialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){
+ public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){
return makeBase(TYPE.INFO,
mContext,
titleText,
@@ -150,7 +162,7 @@ public class DialogSimpleMessageHelper {
}
- public static AlertDialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){
+ public static Dialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){
return makeBase(TYPE.SUCCESS,
mContext,
titleText,
@@ -161,7 +173,7 @@ public class DialogSimpleMessageHelper {
}
- public static AlertDialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){
+ public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){
return makeBase(TYPE.WARNING,
mContext,
mContext.getText(R.string.warning).toString(),
@@ -172,7 +184,7 @@ public class DialogSimpleMessageHelper {
}
- public static AlertDialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){
+ public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){
return makeBase(TYPE.WARNING,
mContext,
mContext.getText(R.string.warning).toString(),
@@ -182,7 +194,7 @@ public class DialogSimpleMessageHelper {
null, -1, null);
}
- public static AlertDialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){
+ public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){
return makeBase(TYPE.ERROR,
mContext,
@@ -193,7 +205,7 @@ public class DialogSimpleMessageHelper {
null, -1, null);
}
- public static AlertDialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){
+ public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){
return makeBase(TYPE.ERROR,
mContext,
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java
new file mode 100644
index 00000000..2d3ed9e4
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java
@@ -0,0 +1,61 @@
+package it.integry.integrywmsnative.view.dialogs.base;
+
+import android.app.Dialog;
+
+public class DialogSimpleMessageViewModel {
+
+
+ private Dialog mDialog;
+
+ private Runnable onPositive;
+ private Runnable onNeutral;
+ private Runnable onNegative;
+
+
+ public DialogSimpleMessageViewModel(Dialog dialog) {
+ mDialog = dialog;
+ }
+
+ public DialogSimpleMessageViewModel setOnPositive(Runnable onPositive) {
+ this.onPositive = onPositive;
+ return this;
+ }
+
+ public DialogSimpleMessageViewModel setOnNeutral(Runnable onNeutral) {
+ this.onNeutral = onNeutral;
+ return this;
+ }
+
+ public DialogSimpleMessageViewModel setOnNegative(Runnable onNegative) {
+ this.onNegative = onNegative;
+ return this;
+ }
+
+
+
+ public boolean isPositiveVisible() {
+ return onPositive != null;
+ }
+
+ public boolean isNeutralVisible() {
+ return onNeutral != null;
+ }
+
+ public boolean isNegativeVisible() {
+ return onNegative != null;
+ }
+
+
+ public void onPositiveClick() {
+ mDialog.dismiss();
+ if(onPositive != null) onPositive.run();
+ }
+ public void onNeutralClick() {
+ mDialog.dismiss();
+ if(onNeutral != null) onNeutral.run();
+ }
+ public void onNegativeClick() {
+ mDialog.dismiss();
+ if(onNegative != null) onNegative.run();
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArts.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArts.java
index 78d25df7..1812f3ac 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArts.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_art_from_lista_arts/DialogChooseArtFromListaArts.java
@@ -1,11 +1,15 @@
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
+import android.app.Dialog;
import android.content.Context;
import androidx.databinding.DataBindingUtil;
import androidx.core.content.ContextCompat;
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
+
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import java.util.List;
@@ -20,14 +24,14 @@ public class DialogChooseArtFromListaArts {
private Context currentContext;
- private AlertDialog currentAlert;
+ private Dialog mDialog;
private DialogChooseArtFromListaArtsAdapter currentAdapter;
private RunnableArgs mOnItemChoosed;
- public static AlertDialog make(final Context context, List listaArts, RunnableArgs onItemChoosed) {
- return new DialogChooseArtFromListaArts(context, listaArts, onItemChoosed).currentAlert;
+ public static Dialog make(final Context context, List listaArts, RunnableArgs onItemChoosed) {
+ return new DialogChooseArtFromListaArts(context, listaArts, onItemChoosed).mDialog;
}
@@ -36,18 +40,16 @@ public class DialogChooseArtFromListaArts {
mOnItemChoosed = onItemChoosed;
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
- DialogChooseArtFromListaArtBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_choose_art_from_lista_art, null, false);
+ DialogChooseArtFromListaArtBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_choose_art_from_lista_art, null, false);
+ mDialog = new Dialog(context);
- final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
- .setView(binding.getRoot())
- .setPositiveButton(context.getText(R.string.confirm), null)
- .setNegativeButton(context.getText(R.string.abort), null);
+ mDialog.setContentView(bindings.getRoot());
- currentAlert = alertDialog.create();
- currentAlert.setCanceledOnTouchOutside(false);
+ mDialog.setCanceledOnTouchOutside(false);
+ mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
- initRecyclerView(binding, listaArts);
+ initRecyclerView(bindings, listaArts);
}
private void initRecyclerView(DialogChooseArtFromListaArtBinding binding, List dataset) {
@@ -70,7 +72,7 @@ public class DialogChooseArtFromListaArts {
mOnItemChoosed.run(item);
}
- currentAlert.dismiss();
+ mDialog.dismiss();
};
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java
index 32a91c65..bc246264 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArts.java
@@ -1,5 +1,6 @@
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
+import android.app.Dialog;
import android.content.Context;
import androidx.databinding.DataBindingUtil;
@@ -7,6 +8,9 @@ import androidx.core.content.ContextCompat;
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
+
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.View;
@@ -21,15 +25,15 @@ import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsLayo
public class DialogChooseArtsFromListaArts {
private Context currentContext;
- private AlertDialog currentAlert;
+ private Dialog mDialog;
private DialogChooseArtsFromListaArtsAdapter currentAdapter;
private RunnableArgs> mOnItemsChoosed;
private Runnable mOnAbort;
- public static AlertDialog make(final Context context, List listaMtbColr, RunnableArgs> onItemsChoosed, Runnable onAbort) {
- return new DialogChooseArtsFromListaArts(context, listaMtbColr, onItemsChoosed, onAbort).currentAlert;
+ public static Dialog make(final Context context, List listaMtbColr, RunnableArgs> onItemsChoosed, Runnable onAbort) {
+ return new DialogChooseArtsFromListaArts(context, listaMtbColr, onItemsChoosed, onAbort).mDialog;
}
@@ -51,17 +55,22 @@ public class DialogChooseArtsFromListaArts {
binding.emptyView.setVisibility(listaMtbColr != null && listaMtbColr.size() > 0 ? View.GONE : View.VISIBLE);
- final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
- .setView(binding.getRoot())
- .setPositiveButton(context.getText(R.string.confirm), (dialogInterface, i) -> {
- onPositiveClick();
- })
- .setNegativeButton(context.getText(R.string.abort), ((dialogInterface, i) -> {
- onNegativeClick();
- }));
- currentAlert = alertDialog.create();
- currentAlert.setCanceledOnTouchOutside(false);
+ mDialog = new Dialog(context);
+ mDialog.setContentView(binding.getRoot());
+ mDialog.setCanceledOnTouchOutside(false);
+ mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+
+
+ binding.positiveButton.setOnClickListener(v -> {
+ mDialog.dismiss();
+ onPositiveClick();
+ });
+
+ binding.negativeButton.setOnClickListener(v -> {
+ mDialog.dismiss();
+ onNegativeClick();
+ });
initRecyclerView(binding, listaMtbColr);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java
index 7de9ea3f..218f7dc4 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java
@@ -4,11 +4,10 @@ import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.res.ColorStateList;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.Observable;
-import androidx.databinding.ViewDataBinding;
+
import android.os.Handler;
import com.google.android.material.textfield.TextInputLayout;
import androidx.core.content.ContextCompat;
@@ -25,12 +24,10 @@ import android.widget.EditText;
import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal;
-import java.math.RoundingMode;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
-import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback;
@@ -46,7 +43,7 @@ import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogInputQuantityArticoloBinding;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class DialogInputQuantity {
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java
index d3034bb1..bd64ba2b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java
@@ -1,10 +1,13 @@
package it.integry.integrywmsnative.view.dialogs.scan_or_create_lu;
+import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import androidx.databinding.DataBindingUtil;
-import androidx.databinding.ViewDataBinding;
import androidx.appcompat.app.AlertDialog;
+
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
import android.text.SpannableString;
import android.view.LayoutInflater;
import android.view.View;
@@ -27,14 +30,14 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogScanOrCreateLuBinding;
-import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
+import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class DialogScanOrCreateLU {
private Context currentContext;
- private AlertDialog currentAlert;
+ private Dialog mDialog;
private DialogScanOrCreateLuBinding mBinding;
@@ -43,12 +46,12 @@ public class DialogScanOrCreateLU {
private MtbColt currentMtbColt;
- public static AlertDialog make(final Context context, RunnableArgs onDialogDismiss) {
- return new DialogScanOrCreateLU(context, false, onDialogDismiss).currentAlert;
+ public static Dialog make(final Context context, RunnableArgs onDialogDismiss) {
+ return new DialogScanOrCreateLU(context, false, onDialogDismiss).mDialog;
}
- public static AlertDialog make(final Context context, boolean disableCreation, RunnableArgs onDialogDismiss) {
- return new DialogScanOrCreateLU(context, disableCreation, onDialogDismiss).currentAlert;
+ public static Dialog make(final Context context, boolean disableCreation, RunnableArgs onDialogDismiss) {
+ return new DialogScanOrCreateLU(context, disableCreation, onDialogDismiss).mDialog;
}
private DialogScanOrCreateLU(Context context, boolean disableCreation, RunnableArgs onDialogDismiss) {
@@ -63,11 +66,11 @@ public class DialogScanOrCreateLU {
if(disableCreation) mBinding.dialogScanOrCreateLuCreationLayout.setVisibility(View.GONE);
- final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
- .setView(mBinding.getRoot());
-
- currentAlert = alertDialog.create();
- currentAlert.setCanceledOnTouchOutside(false);
+ mDialog = new Dialog(context);
+ mDialog.setContentView(mBinding.getRoot());
+ mDialog.setCanceledOnTouchOutside(false);
+// mDialog.setCancelable(false);
+ mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
init(onDialogDismiss);
initBarcode(context);
@@ -94,7 +97,7 @@ public class DialogScanOrCreateLU {
.setOnScanSuccessfull(onScanSuccessfull)
.setOnScanFailed(ex -> UtilityExceptions.defaultException(context, ex, false)));
- currentAlert.setOnDismissListener(dialog -> {
+ mDialog.setOnDismissListener(dialog -> {
BarcodeManager.removeCallback(barcodeIstanceID);
BarcodeManager.enable();
if(currentMtbColt == null) {
@@ -245,7 +248,7 @@ public class DialogScanOrCreateLU {
private void sendMtbColt(MtbColt mtbColtToSend, ProgressDialog progressDialog) {
currentMtbColt = mtbColtToSend;
progressDialog.dismiss();
- currentAlert.dismiss();
+ mDialog.dismiss();
mOnDialogDismiss.run(mtbColtToSend);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNo.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNo.java
new file mode 100644
index 00000000..1692625b
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNo.java
@@ -0,0 +1,52 @@
+package it.integry.integrywmsnative.view.dialogs.yes_no;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.view.LayoutInflater;
+
+import androidx.databinding.DataBindingUtil;
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.databinding.DialogYesNoBinding;
+import it.integry.integrywmsnative.view.dialogs.DialogConsts;
+
+public class DialogYesNo {
+
+ private Dialog currentDialog;
+
+ public static Dialog make(final Context context, final String title, final String description, RunnableArgs onDialogDismiss) {
+ return new DialogYesNo(context, title, description, onDialogDismiss).currentDialog;
+ }
+
+ private DialogYesNo(Context context, String title, String description, RunnableArgs onDialogDismiss) {
+ LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
+ DialogYesNoBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_yes_no, null, false);
+
+ currentDialog = new Dialog(context);
+
+ currentDialog.setContentView(bindings.getRoot());
+
+ currentDialog.setCancelable(false);
+ currentDialog.setCanceledOnTouchOutside(false);
+ currentDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+
+ bindings.titleText.setText(title);
+ bindings.descriptionText.setText(description);
+
+ bindings.buttonYes.setOnClickListener(v -> {
+ onDialogDismiss.run(DialogConsts.Results.YES);
+ currentDialog.dismiss();
+ });
+
+ bindings.buttonNo.setOnClickListener(v -> {
+ onDialogDismiss.run(DialogConsts.Results.NO);
+ currentDialog.dismiss();
+ });
+
+
+ }
+
+
+}
diff --git a/app/src/main/res/layout/activity_contenuto_bancale.xml b/app/src/main/res/layout/activity_contenuto_bancale.xml
index f7570ca5..1ff6db11 100644
--- a/app/src/main/res/layout/activity_contenuto_bancale.xml
+++ b/app/src/main/res/layout/activity_contenuto_bancale.xml
@@ -25,8 +25,8 @@
android:orientation="vertical"
android:background="@color/full_white">
-
@@ -37,7 +37,7 @@
tools:title="Contenuto bancale"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
-
+ >
-
@@ -22,7 +22,7 @@
android:layout_width="match_parent"
android:layout_height="?actionBarSize"/>
-
+
-
@@ -41,7 +41,7 @@
-
+
-
+
+ android:orientation="vertical">
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu.xml b/app/src/main/res/layout/dialog_ask_position_of_lu.xml
index ecc2bc56..4c30f378 100644
--- a/app/src/main/res/layout/dialog_ask_position_of_lu.xml
+++ b/app/src/main/res/layout/dialog_ask_position_of_lu.xml
@@ -9,32 +9,61 @@
type="android.content.Context" />
-
+
+
+ android:orientation="vertical">
-
+ android:background="@color/light_blue_300"
+ android:gravity="center_horizontal">
-
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml b/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml
index 71e8d0ef..1adb59e9 100644
--- a/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml
+++ b/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml
@@ -2,7 +2,7 @@
diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml
index e421bc3e..c7ef9e8e 100644
--- a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml
+++ b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml
@@ -3,7 +3,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="wrap_content"
+ android:layout_margin="16dp">
diff --git a/app/src/main/res/layout/dialog_ask_should_print.xml b/app/src/main/res/layout/dialog_ask_should_print.xml
index 66e92ec5..e819a4dd 100644
--- a/app/src/main/res/layout/dialog_ask_should_print.xml
+++ b/app/src/main/res/layout/dialog_ask_should_print.xml
@@ -1,87 +1,177 @@
-
+
-
-
-
-
+ android:layout_gravity="center_horizontal"
+ app:cardCornerRadius="12dp"
+ app:cardElevation="0dp">
-
+ android:orientation="vertical">
+
+
+
+
+
+
+
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingTop="24dp"
+ android:paddingLeft="24dp"
+ android:paddingRight="24dp">
-
+ android:layout_height="wrap_content"
+ style="@style/TextViewMaterial.DialogTitle"
+ android:text="@string/action_print"
+ android:gravity="center_horizontal"/>
-
+
+
+
+
+
-
-
-
-
-
-
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.5"/>
+ android:layout_marginLeft="8dp"
+ android:layout_marginRight="8dp"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/center_buttons_guideline"
+ android:text="@string/no"/>
-
+ android:layout_marginLeft="8dp"
+ android:layout_marginRight="8dp"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="@id/center_buttons_guideline"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:text="@string/yes"/>
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_base.xml b/app/src/main/res/layout/dialog_base.xml
new file mode 100644
index 00000000..99ac0787
--- /dev/null
+++ b/app/src/main/res/layout/dialog_base.xml
@@ -0,0 +1,238 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml b/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml
index 86941912..642fca76 100644
--- a/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml
+++ b/app/src/main/res/layout/dialog_choose_art_from_lista_art.xml
@@ -2,34 +2,65 @@
-
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ app:cardCornerRadius="12dp"
+ app:cardElevation="0dp">
+ android:orientation="vertical">
-
-
-
-
+ android:layout_height="wrap_content"
+ android:background="@color/light_blue_300"
+ android:gravity="center_horizontal">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml
index f01baf5b..119938a2 100644
--- a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml
+++ b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts__item_model.xml
@@ -23,7 +23,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
app:checked="@{checkableMtbColr.checked}"/>
@@ -93,7 +92,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="12dp"
- android:paddingEnd="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
diff --git a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml
index 977f87db..01167f17 100644
--- a/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml
+++ b/app/src/main/res/layout/dialog_choose_arts_from_lista_arts_layout.xml
@@ -2,64 +2,135 @@
-
-
-
-
-
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ app:cardCornerRadius="12dp"
+ app:cardElevation="0dp">
-
-
-
+ android:orientation="vertical">
+ android:layout_height="wrap_content"
+ android:background="@color/light_blue_300"
+ android:gravity="center_horizontal">
-
-
-
-
-
-
-
-
+ android:src="@drawable/ic_error_white_24dp"
+ android:layout_margin="24dp"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_exception.xml b/app/src/main/res/layout/dialog_exception.xml
index edd4c9de..6cd10b60 100644
--- a/app/src/main/res/layout/dialog_exception.xml
+++ b/app/src/main/res/layout/dialog_exception.xml
@@ -46,7 +46,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial"
- android:text="L'errore è stato comunicato allo sviluppatore. Verrà analizzato e risolto al più presto"
+ android:text="L'errore è stato comunicato al team di supporto. Verrà analizzato e risolto al più presto"
android:gravity="left"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp" />
diff --git a/app/src/main/res/layout/dialog_input_quantity_articolo.xml b/app/src/main/res/layout/dialog_input_quantity_articolo.xml
index 8567a50a..d4f772fb 100644
--- a/app/src/main/res/layout/dialog_input_quantity_articolo.xml
+++ b/app/src/main/res/layout/dialog_input_quantity_articolo.xml
@@ -230,6 +230,7 @@
android:layout_height="wrap_content"
android:enabled="@{quantityViewModel.canPartitaMagBeChanged}"
app:hintTextAppearance="@style/hint_text"
+ app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/guideline_partita_data"
android:nextFocusRight="@+id/input_data_scad">
@@ -239,6 +240,7 @@
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:hint="@string/batch_lot"
+ android:textAllCaps="true"
app:binding="@{quantityViewModel.batchLot}"/>
diff --git a/app/src/main/res/layout/dialog_scan_or_create_lu.xml b/app/src/main/res/layout/dialog_scan_or_create_lu.xml
index a0049a81..6b736a18 100644
--- a/app/src/main/res/layout/dialog_scan_or_create_lu.xml
+++ b/app/src/main/res/layout/dialog_scan_or_create_lu.xml
@@ -1,68 +1,138 @@
-
-
+
+
+ android:layout_gravity="center_horizontal"
+ app:cardCornerRadius="12dp"
+ app:cardElevation="0dp">
+
+
+
+
+
+
+
+
+
+
+ android:padding="24dp">
-
+ style="@style/TextViewMaterial.DialogTitle"
+ android:text="@string/title_open_lu"
+ android:gravity="center_horizontal"/>
-
-
-
-
-
-
-
-
-
+ android:orientation="vertical"
+ android:layout_marginTop="16dp">
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/dialog_yes_no.xml b/app/src/main/res/layout/dialog_yes_no.xml
new file mode 100644
index 00000000..230d60b8
--- /dev/null
+++ b/app/src/main/res/layout/dialog_yes_no.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_picking_libero.xml b/app/src/main/res/layout/fragment_picking_libero.xml
index 761633d3..a010a489 100644
--- a/app/src/main/res/layout/fragment_picking_libero.xml
+++ b/app/src/main/res/layout/fragment_picking_libero.xml
@@ -26,8 +26,8 @@
android:orientation="vertical"
android:background="@color/full_white">
-
@@ -48,7 +48,7 @@
-
+
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 19361543..54444e20 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -185,8 +185,14 @@
Attendi qualche istante
-
Stampante Accettazione
Stampante Vendita
+ Si
+ No
+
+ Posizionamento
+ Verrà stampata una %s
+ Crea nuova UL
+ Apri UL
\ No newline at end of file
diff --git a/app/src/main/res/values/buttons_style.xml b/app/src/main/res/values/buttons_style.xml
index 3a524e4c..332ccf13 100644
--- a/app/src/main/res/values/buttons_style.xml
+++ b/app/src/main/res/values/buttons_style.xml
@@ -21,4 +21,29 @@
- @color/colorPrimary
- @android:color/white
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index a5441545..212e02ae 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -31,6 +31,8 @@
#795548
+ #81c784
+ #66bb6a
#884CAF50
#4CAF50
#43A047
@@ -48,6 +50,10 @@
#303F9F
+
+ #4fc3f7
+
+
#88FB8C00
#FB8C00
#F57C00
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index aa7803ff..9d344e1e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -192,5 +192,12 @@
Check In printer
Check Out printer
+ Yes
+ No
+
+ Placement
+ A %s will be printed
+ Create new LU
+ Open LU
diff --git a/build.gradle b/build.gradle
index 525955e1..66ddbd98 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,8 +2,7 @@
buildscript {
ext{
- kotlin_version = '1.3.11'
- gradle_version = '3.2.1'
+ kotlin_version = '1.3.21'
}
repositories {
@@ -15,7 +14,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.3.1'
+ classpath 'com.android.tools.build:gradle:3.3.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0'
classpath 'com.google.firebase:firebase-plugins:1.1.5'
diff --git a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
index 2ef1e817..82cb0836 100644
--- a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
+++ b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java
@@ -18,8 +18,6 @@ public class OrdiniVendita implements IOrdiniVendita {
@Override
public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed) {
-
-
String codMdepOrder = testateOrdini.get(0).ordini.get(0).getCodMdep();
//Se il deposito del collo è diverso dal deposito dell'utente allora sto "evadendo" la merce per una vendita presente
diff --git a/pointmobilescannerlibrary/build.gradle b/pointmobilescannerlibrary/build.gradle
index 20849513..7e740b20 100644
--- a/pointmobilescannerlibrary/build.gradle
+++ b/pointmobilescannerlibrary/build.gradle
@@ -26,7 +26,7 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
- implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
+ implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
diff --git a/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java b/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java
index 0e21237a..89525723 100644
--- a/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java
+++ b/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java
@@ -27,9 +27,6 @@ public class PointMobileBarcodeReader implements BarcodeReaderInterface {
private static String TAG = PointMobileBarcodeReader.class.getName();
-
- private int mBackupResultType = ScanConst.ResultType.DCD_RESULT_COPYPASTE;
-
public PointMobileBarcodeReader(Context context) {
this.mContext = context;
@@ -51,8 +48,7 @@ public class PointMobileBarcodeReader implements BarcodeReaderInterface {
public void init() throws BarcodeAdapterNotFoundException {
if(isRightAdapter()){
try{
-
- mBackupResultType = mScanManager.aDecodeGetResultType();
+ mScanManager.aDecodeSetTerminator(ScanConst.Terminator.DCD_TERMINATOR_NONE);
mScanManager.aDecodeSetResultType(ScanConst.ResultType.DCD_RESULT_USERMSG);
} catch (Exception ex) {
throw new BarcodeAdapterNotFoundException(getAdapterName());
diff --git a/settings.gradle b/settings.gradle
index 2a55bf37..9f78635f 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':app', ':pointmobilescannerlibrary', ':waterfall_toolbar', ':barcode_base_library', ':dynamic_vgalimenti', ':dynamic__base'
+include ':app', ':pointmobilescannerlibrary', ':barcode_base_library', ':dynamic_vgalimenti', ':dynamic__base'