Compare commits
35 Commits
v1.30.10(3
...
v1.31.1(33
| Author | SHA1 | Date | |
|---|---|---|---|
| 79add4f60a | |||
| 975763f400 | |||
| 5eac3f14cc | |||
| bed5b36ade | |||
| 7678ce1a50 | |||
| b3faf38455 | |||
| 283cb59d42 | |||
| 1867ac8742 | |||
| d210e3b3e0 | |||
| 8bb2f48090 | |||
| 15b4d728e6 | |||
| 3018123110 | |||
| b02eaf02a8 | |||
| ad9795a3a3 | |||
| 170411383f | |||
| 9e87130d6c | |||
| 0f6a9cdae2 | |||
| 79ec6430f6 | |||
| 0c46fb09c1 | |||
| 8aad7337bf | |||
| c49197d002 | |||
| 16f611c147 | |||
| 7b623913d8 | |||
| 0a8997f30b | |||
| 702d0a7348 | |||
| f4ae1fbed3 | |||
| 8c0639be9b | |||
| c9ea13a1d2 | |||
| bef5423a06 | |||
| 22b072aff7 | |||
| 50acee47e9 | |||
| ba041d1133 | |||
| 21c26ab3ad | |||
| 5288ad8bb0 | |||
| 0ccff458f7 |
6
.idea/kotlinc.xml
generated
Normal file
6
.idea/kotlinc.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="KotlinJpsPluginSettings">
|
||||
<option name="version" value="1.8.0" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -1,6 +1,6 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="app_base" type="AndroidRunConfigurationType" factoryName="Android App" activateToolWindowBeforeRun="false">
|
||||
<module name="WMS.app" />
|
||||
<configuration default="false" name="app" type="AndroidRunConfigurationType" factoryName="Android App">
|
||||
<module name="WMS.app.main" />
|
||||
<option name="DEPLOY" value="true" />
|
||||
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
||||
<option name="DEPLOY_AS_INSTANT" value="false" />
|
||||
@@ -8,13 +8,12 @@
|
||||
<option name="PM_INSTALL_OPTIONS" value="" />
|
||||
<option name="ALL_USERS" value="false" />
|
||||
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
|
||||
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="WMS.dynamic_vgalimenti" />
|
||||
<option name="CLEAR_APP_STORAGE" value="false" />
|
||||
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="WMS.dynamic__base,WMS.dynamic_vgalimenti" />
|
||||
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
||||
<option name="MODE" value="default_activity" />
|
||||
<option name="CLEAR_LOGCAT" value="true" />
|
||||
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
|
||||
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
|
||||
<option name="FORCE_STOP_RUNNING_APP" value="true" />
|
||||
<option name="CLEAR_LOGCAT" value="false" />
|
||||
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
|
||||
<option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
|
||||
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
|
||||
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
|
||||
@@ -46,7 +45,7 @@
|
||||
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
|
||||
<option name="STARTUP_PROFILING_ENABLED" value="false" />
|
||||
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
|
||||
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Callstack Sample" />
|
||||
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Java/Kotlin Method Sample (legacy)" />
|
||||
<option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" />
|
||||
<option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" />
|
||||
</Profilers>
|
||||
61
.idea/runConfigurations/app_vglimenti.xml
generated
61
.idea/runConfigurations/app_vglimenti.xml
generated
@@ -1,61 +0,0 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="app_vglimenti" type="AndroidRunConfigurationType" factoryName="Android App" activateToolWindowBeforeRun="false">
|
||||
<module name="WMS.app" />
|
||||
<option name="DEPLOY" value="true" />
|
||||
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
||||
<option name="DEPLOY_AS_INSTANT" value="false" />
|
||||
<option name="ARTIFACT_NAME" value="" />
|
||||
<option name="PM_INSTALL_OPTIONS" value="" />
|
||||
<option name="ALL_USERS" value="false" />
|
||||
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
|
||||
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="WMS.dynamic__base" />
|
||||
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
||||
<option name="MODE" value="default_activity" />
|
||||
<option name="CLEAR_LOGCAT" value="true" />
|
||||
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
|
||||
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
|
||||
<option name="FORCE_STOP_RUNNING_APP" value="true" />
|
||||
<option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
|
||||
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
|
||||
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
|
||||
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
|
||||
<option name="DEBUGGER_TYPE" value="Auto" />
|
||||
<Auto>
|
||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
||||
<option name="SHOW_STATIC_VARS" value="true" />
|
||||
<option name="WORKING_DIR" value="" />
|
||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||
</Auto>
|
||||
<Hybrid>
|
||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
||||
<option name="SHOW_STATIC_VARS" value="true" />
|
||||
<option name="WORKING_DIR" value="" />
|
||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||
</Hybrid>
|
||||
<Java />
|
||||
<Native>
|
||||
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
|
||||
<option name="SHOW_STATIC_VARS" value="true" />
|
||||
<option name="WORKING_DIR" value="" />
|
||||
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
|
||||
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
|
||||
</Native>
|
||||
<Profilers>
|
||||
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
|
||||
<option name="STARTUP_PROFILING_ENABLED" value="false" />
|
||||
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
|
||||
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Callstack Sample" />
|
||||
<option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" />
|
||||
<option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" />
|
||||
</Profilers>
|
||||
<option name="DEEP_LINK" value="" />
|
||||
<option name="ACTIVITY_CLASS" value="" />
|
||||
<option name="SEARCH_ACTIVITY_IN_GLOBAL_SCOPE" value="false" />
|
||||
<option name="SKIP_ACTIVITY_VALIDATION" value="false" />
|
||||
<method v="2">
|
||||
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
||||
|
||||
android {
|
||||
|
||||
def appVersionCode = 328
|
||||
def appVersionName = '1.30.10'
|
||||
def appVersionCode = 335
|
||||
def appVersionName = '1.31.1'
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
@@ -62,11 +62,12 @@ android {
|
||||
}
|
||||
|
||||
android.buildFeatures.dataBinding true
|
||||
android.buildFeatures.buildConfig true
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_11
|
||||
targetCompatibility JavaVersion.VERSION_11
|
||||
//coreLibraryDesugaringEnabled true
|
||||
coreLibraryDesugaringEnabled true
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
@@ -85,9 +86,6 @@ android {
|
||||
options.compilerArgs << "-Xmaxerrs" << "10000"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti"]
|
||||
lint {
|
||||
abortOnError false
|
||||
}
|
||||
@@ -97,6 +95,7 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.2'
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0', {
|
||||
exclude group: 'com.android.support', module: 'support-annotations'
|
||||
@@ -115,7 +114,7 @@ dependencies {
|
||||
implementation 'com.google.android.gms:play-services-basement:18.1.0'
|
||||
|
||||
|
||||
implementation 'androidx.appcompat:appcompat:1.6.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.6.1'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
implementation 'com.google.android.material:material:1.8.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||
@@ -188,7 +187,6 @@ dependencies {
|
||||
// RxJava is also required.
|
||||
implementation 'io.reactivex.rxjava2:rxjava:2.1.12'
|
||||
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
|
||||
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
package it.integry.integrywmsnative.core.class_router;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityHashMap;
|
||||
|
||||
public class BaseCustomConfiguration implements ICustomConfiguration {
|
||||
|
||||
|
||||
public static class Keys {
|
||||
public static int FLAG_SHOW_COD_FORN_IN_SPEDIZIONE = 1;
|
||||
public static int CUSTOM_DYNAMIC_VERSION_PATH = 2;
|
||||
public static int FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC = 3;
|
||||
}
|
||||
|
||||
protected HashMap<Integer, Object> configurations = new HashMap<>() {{
|
||||
put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, true);
|
||||
put(Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC, false);
|
||||
}};
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public <T> T getConfig(int key) {
|
||||
return UtilityHashMap.getValue(configurations, key);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
package it.integry.integrywmsnative.core.class_router;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Pair;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ClassRouter {
|
||||
|
||||
public enum PATH {
|
||||
FILTRO_ORDINI_VENDITA,
|
||||
ORDINI_VENDITA,
|
||||
CUSTOM_CONFIGURATION,
|
||||
BARCODE_CUSTOMIZATION
|
||||
}
|
||||
|
||||
private static Context context;
|
||||
|
||||
private static List<Pair<PATH, Object>> mRouteClasses = new ArrayList<>();
|
||||
|
||||
public static void init() {
|
||||
// ClassRouter.context = context;
|
||||
}
|
||||
|
||||
private static boolean checkIClassExists(PATH path) {
|
||||
boolean methodAlreadyDeclared = false;
|
||||
|
||||
for(int i = 0; i < mRouteClasses.size() && !methodAlreadyDeclared; i++) {
|
||||
if(mRouteClasses.get(i).first == path) methodAlreadyDeclared = true;
|
||||
}
|
||||
|
||||
return methodAlreadyDeclared;
|
||||
}
|
||||
|
||||
|
||||
private static int getClassIndex(PATH path) {
|
||||
for(int i = 0; i < mRouteClasses.size(); i++) {
|
||||
if(mRouteClasses.get(i).first == path) return i;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static void registerPath(PATH path, Class clazz) {
|
||||
if(checkIClassExists(path)) {
|
||||
//throw new MethodPathAlreadyDeclaredException(path);
|
||||
}
|
||||
|
||||
try {
|
||||
mRouteClasses.add(new Pair<>(path, clazz.newInstance()));
|
||||
} catch (IllegalAccessException | InstantiationException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void deregisterPath(PATH path) {
|
||||
if(checkIClassExists(path)) {
|
||||
mRouteClasses.remove(getClassIndex(path));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static <T> T getInstance(PATH path) {
|
||||
try {
|
||||
|
||||
if (!checkIClassExists(path)) {
|
||||
// throw new MethodPathNotRegisteredException(path);
|
||||
}
|
||||
|
||||
Object instance = mRouteClasses.get(getClassIndex(path)).second;
|
||||
|
||||
return (T)instance;
|
||||
|
||||
} catch (Exception ex) {
|
||||
// UtilityExceptions.defaultException(null, ex, true);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package it.integry.integrywmsnative.core.class_router.exceptions;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
|
||||
public class MethodPathNotRegisteredException extends Exception {
|
||||
|
||||
public MethodPathNotRegisteredException(ClassRouter.PATH path) {
|
||||
super(String.format("Path %s is not registered", path.toString()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package it.integry.integrywmsnative.core.class_router.interfaces;
|
||||
|
||||
public interface IBarcodeCustomization {
|
||||
|
||||
boolean shouldForceToEan13(String barcode);
|
||||
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package it.integry.integrywmsnative.core.class_router.interfaces;
|
||||
|
||||
public interface ICustomConfiguration {
|
||||
|
||||
<T>T getConfig(int key);
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package it.integry.integrywmsnative.core.class_router.interfaces;
|
||||
|
||||
public interface IFiltroOrdiniVendita {
|
||||
|
||||
boolean shoudShowCodMdepFilter();
|
||||
|
||||
boolean shoudShowIdViaggioFilter();
|
||||
|
||||
boolean shoudShowAgenteFilter();
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package it.integry.integrywmsnative.core.class_router.interfaces;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||
|
||||
public interface OrdiniVenditaInterface {
|
||||
|
||||
boolean isTrasfOrder(List<OrdineUscitaInevasoDTO> testateOrdini);
|
||||
|
||||
}
|
||||
@@ -6,13 +6,11 @@ import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.SpannedString;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.ConnectException;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
|
||||
import it.integry.integrywmsnative.core.menu.MenuService;
|
||||
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
|
||||
@@ -44,8 +42,7 @@ public class MainContext {
|
||||
|
||||
this.initDBData(() -> {
|
||||
this.initMenu(() -> {
|
||||
|
||||
this.initReflections();
|
||||
|
||||
if (mListener != null) mListener.onContextInitialized();
|
||||
});
|
||||
});
|
||||
@@ -103,30 +100,6 @@ public class MainContext {
|
||||
});
|
||||
}
|
||||
|
||||
private void initReflections() {
|
||||
ClassRouter.init();
|
||||
|
||||
try {
|
||||
String initMethod = "init";
|
||||
|
||||
Class dynamicContextClass = Class.forName("it.integry.wms.dynamic_customization.DynamicContext");
|
||||
|
||||
Method[] methods = dynamicContextClass.getMethods();
|
||||
for (Method m : methods) {
|
||||
if (initMethod.equals(m.getName())) {
|
||||
// for static methods we can use null as instance of class
|
||||
final Object newInstance = dynamicContextClass.newInstance();
|
||||
|
||||
m.invoke(newInstance, applicationContext);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
// UtilityExceptions.defaultException(mContext, e, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public MainContext setListener(Listener listener) {
|
||||
this.mListener = listener;
|
||||
|
||||
@@ -59,20 +59,17 @@ public class RESTBuilder {
|
||||
|
||||
String endpoint = "http://" + host + ":" + port + "/" + (addEmsApi ? "ems-api/" : "");
|
||||
|
||||
|
||||
Gson gson = new GsonBuilder()
|
||||
.setDateFormat("dd/MM/yyyy HH:mm:ss")
|
||||
.excludeFieldsWithModifiers(Modifier.TRANSIENT)
|
||||
.registerTypeAdapter(LocalDate.class, new LocalDateDeserializer())
|
||||
.registerTypeAdapter(LocalDate.class, new LocalDateSerializer())
|
||||
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeDeserializer())
|
||||
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
|
||||
.excludeFieldsWithModifiers(Modifier.TRANSIENT)
|
||||
.create();
|
||||
|
||||
Retrofit retrofit = new Retrofit.Builder()
|
||||
.addConverterFactory(GsonConverterFactory.create(gson))
|
||||
.baseUrl(endpoint)
|
||||
.client(client)
|
||||
.build();
|
||||
Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson)).baseUrl(endpoint).client(client).build();
|
||||
|
||||
return retrofit.create(service);
|
||||
}
|
||||
|
||||
@@ -3,8 +3,6 @@ package it.integry.integrywmsnative.core.rest.consumers;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.IBarcodeCustomization;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||
@@ -18,15 +16,6 @@ public class BarcodeRESTConsumer extends _BaseRESTConsumer {
|
||||
|
||||
public void decodeEan128(BarcodeScanDTO barcodeObj, RunnableArgs<Ean128Model> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
|
||||
IBarcodeCustomization barcodeCustomization = ClassRouter.getInstance(ClassRouter.PATH.BARCODE_CUSTOMIZATION);
|
||||
|
||||
if (barcodeCustomization != null && barcodeCustomization.shouldForceToEan13(barcodeObj.getStringValue())) {
|
||||
Ean128Model ean128Model = new Ean128Model();
|
||||
ean128Model.Gtin = barcodeObj.getStringValue();
|
||||
onComplete.run(ean128Model);
|
||||
return;
|
||||
}
|
||||
|
||||
String ean128 = barcodeObj.getStringValue().replaceAll("" + ((char) 29), "|");
|
||||
|
||||
BarcodeRESTConsumerService barcodeRESTConsumerService = RESTBuilder.getService(BarcodeRESTConsumerService.class);
|
||||
|
||||
@@ -5,7 +5,6 @@ import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
public class CloseUDSRequestDTO {
|
||||
|
||||
private boolean printSSCC;
|
||||
private boolean enableTransferLogic;
|
||||
private String orderCodMdep;
|
||||
private MtbColt mtbColt;
|
||||
|
||||
@@ -18,15 +17,6 @@ public class CloseUDSRequestDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isEnableTransferLogic() {
|
||||
return enableTransferLogic;
|
||||
}
|
||||
|
||||
public CloseUDSRequestDTO setEnableTransferLogic(boolean enableTransferLogic) {
|
||||
this.enableTransferLogic = enableTransferLogic;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getOrderCodMdep() {
|
||||
return orderCodMdep;
|
||||
}
|
||||
|
||||
@@ -53,6 +53,9 @@ public class DBSettingsModel {
|
||||
private String codDtipOrdTrasfV;
|
||||
private boolean notifyLotStatus = false;
|
||||
|
||||
private boolean groupShippingByCommodityGroup = true;
|
||||
private boolean showCodFornSpedizione = true;
|
||||
|
||||
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
||||
return flagSpedizioneEnableFakeGiacenza;
|
||||
}
|
||||
@@ -386,4 +389,22 @@ public class DBSettingsModel {
|
||||
this.notifyLotStatus = notifyLotStatus;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isGroupShippingByCommodityGroup() {
|
||||
return groupShippingByCommodityGroup;
|
||||
}
|
||||
|
||||
public DBSettingsModel setGroupShippingByCommodityGroup(boolean groupShippingByCommodityGroup) {
|
||||
this.groupShippingByCommodityGroup = groupShippingByCommodityGroup;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isShowCodFornSpedizione() {
|
||||
return showCodFornSpedizione;
|
||||
}
|
||||
|
||||
public DBSettingsModel setShowCodFornSpedizione(boolean showCodFornSpedizione) {
|
||||
this.showCodFornSpedizione = showCodFornSpedizione;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -341,6 +341,14 @@ public class SettingsManager {
|
||||
.setGestName("PICKING")
|
||||
.setSection("SPEDIZIONE")
|
||||
.setKeySection("FLAG_NOTIFICA_STATO_PARTITA"));
|
||||
stbGestSetupList.add(new StbGestSetup()
|
||||
.setGestName("PICKING")
|
||||
.setSection("SPEDIZIONE")
|
||||
.setKeySection("FLAG_SHOW_COD_FORN"));
|
||||
stbGestSetupList.add(new StbGestSetup()
|
||||
.setGestName("PICKING")
|
||||
.setSection("SPEDIZIONE")
|
||||
.setKeySection("FLAG_GROUP_BY_GRP_MERC"));
|
||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||
|
||||
mGestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> {
|
||||
@@ -372,6 +380,8 @@ public class SettingsManager {
|
||||
dbSettingsModelIstance.setFilterFornitoreProd(getValueFromList(list, "PRODUZIONE", "FILTER_FORNTIORE_PROD", String.class));
|
||||
dbSettingsModelIstance.setCodDtipOrdTrasfV(getValueFromList(list, "SPEDIZIONE", "COD_DTIP_ORD_TRASF", String.class));
|
||||
dbSettingsModelIstance.setNotifyLotStatus(getValueFromList(list, "SPEDIZIONE", "FLAG_NOTIFICA_STATO_PARTITA", Boolean.class));
|
||||
dbSettingsModelIstance.setShowCodFornSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_SHOW_COD_FORN", Boolean.class, Boolean.TRUE));
|
||||
dbSettingsModelIstance.setGroupShippingByCommodityGroup(getValueFromList(list, "SPEDIZIONE", "FLAG_GROUP_BY_GRP_MERC", Boolean.class, Boolean.FALSE));
|
||||
|
||||
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
|
||||
if (notePerdita != null)
|
||||
@@ -392,6 +402,10 @@ public class SettingsManager {
|
||||
|
||||
|
||||
public static <T> T getValueFromList(List<StbGestSetup> stbGestSetupList, String section, String keySectionName, Class<T> clazz) {
|
||||
return getValueFromList(stbGestSetupList, section, keySectionName, clazz, null);
|
||||
}
|
||||
|
||||
public static <T> T getValueFromList(List<StbGestSetup> stbGestSetupList, String section, String keySectionName, Class<T> clazz, T defaultValue) {
|
||||
|
||||
StbGestSetup value = Stream.of(stbGestSetupList)
|
||||
.filter(x -> x.getSection().equalsIgnoreCase(section) && x.getKeySection().equalsIgnoreCase(keySectionName))
|
||||
@@ -403,7 +417,7 @@ public class SettingsManager {
|
||||
return clazz.cast("S".equalsIgnoreCase(value.getValue()));
|
||||
} else if (clazz == Integer.class && value.getValue() != null) {
|
||||
return clazz.cast(Integer.parseInt(value.getValue()));
|
||||
} else return null;
|
||||
} else return defaultValue;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -15,9 +15,6 @@ import java.io.File;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.FileDownloader;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
|
||||
@@ -30,19 +27,9 @@ public class UpdatesManager {
|
||||
public void init(AppCompatActivity activityContext) {
|
||||
this.mContext = activityContext;
|
||||
|
||||
String suffix;
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
try {
|
||||
suffix = customConfiguration.getConfig(BaseCustomConfiguration.Keys.CUSTOM_DYNAMIC_VERSION_PATH);
|
||||
if (suffix == null) {
|
||||
suffix = "";
|
||||
}
|
||||
} catch (Exception e) {
|
||||
suffix = "";
|
||||
}
|
||||
|
||||
String currentVersionUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/currentVersion";
|
||||
String currentDownloadUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/android-release" + suffix + ".apk";
|
||||
String currentDownloadUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/android-release.apk";
|
||||
|
||||
|
||||
AppUpdater appUpdater = new AppUpdater(mContext)
|
||||
|
||||
@@ -43,10 +43,10 @@ public class UtilityDate {
|
||||
public static final String DMY_HUMAN_LONG = "dd MMMM yyyy";
|
||||
}
|
||||
|
||||
public static Date recognizeDateWithExceptionHandler(String dateString) {
|
||||
try{
|
||||
public static Date recognizeDateWithExceptionHandler(String dateString) {
|
||||
try {
|
||||
return UtilityDate.recognizeDate(dateString);
|
||||
} catch (ParseException | DateNotRecognizedException | TimeNotRecognizedException pex){
|
||||
} catch (ParseException | DateNotRecognizedException | TimeNotRecognizedException pex) {
|
||||
UtilityLogger.error(pex);
|
||||
return null;
|
||||
}
|
||||
@@ -64,9 +64,9 @@ public class UtilityDate {
|
||||
char dateSeparator;
|
||||
|
||||
String onlyDateSubstring = dateString.substring(0, 10);
|
||||
if(onlyDateSubstring.contains("/")) dateSeparator = '/';
|
||||
else if(onlyDateSubstring.contains("-")) dateSeparator = '-';
|
||||
else if(onlyDateSubstring.contains(".")) dateSeparator = '.';
|
||||
if (onlyDateSubstring.contains("/")) dateSeparator = '/';
|
||||
else if (onlyDateSubstring.contains("-")) dateSeparator = '-';
|
||||
else if (onlyDateSubstring.contains(".")) dateSeparator = '.';
|
||||
else throw new DateNotRecognizedException(dateString);
|
||||
|
||||
String dateFormatString = (dateString.charAt(2) == dateSeparator)
|
||||
@@ -74,13 +74,13 @@ public class UtilityDate {
|
||||
: "yyyy" + dateSeparator + "MM" + dateSeparator + "dd";
|
||||
|
||||
|
||||
if(dateString.length() > 10){
|
||||
if (dateString.length() > 10) {
|
||||
|
||||
char timeSeparator;
|
||||
|
||||
String onlyTimeSubstring = dateString.substring(10, 14);
|
||||
if(onlyTimeSubstring.contains("-")) timeSeparator = '-';
|
||||
else if(onlyTimeSubstring.contains(":")) timeSeparator = ':';
|
||||
if (onlyTimeSubstring.contains("-")) timeSeparator = '-';
|
||||
else if (onlyTimeSubstring.contains(":")) timeSeparator = ':';
|
||||
else throw new TimeNotRecognizedException(dateString);
|
||||
|
||||
String timeFormatString = "HH" + timeSeparator + "mm" + timeSeparator + "ss";
|
||||
@@ -99,12 +99,11 @@ public class UtilityDate {
|
||||
|
||||
|
||||
public static String formatDate(Date dateToFormat, String format) {
|
||||
if(dateToFormat != null) {
|
||||
if (dateToFormat != null) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(format);
|
||||
//sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
return sdf.format(dateToFormat);
|
||||
}
|
||||
else return null;
|
||||
} else return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -116,7 +115,7 @@ public class UtilityDate {
|
||||
public static Date getDateInstance(boolean removeTime) {
|
||||
var calendar = getCalendarInstance();
|
||||
|
||||
if(removeTime) {
|
||||
if (removeTime) {
|
||||
calendar.set(Calendar.HOUR_OF_DAY, 0);
|
||||
calendar.set(Calendar.MINUTE, 0);
|
||||
calendar.set(Calendar.SECOND, 0);
|
||||
@@ -131,8 +130,6 @@ public class UtilityDate {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static String formatDate(LocalDate dateToFormat, String format) {
|
||||
if (dateToFormat != null) {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
|
||||
@@ -185,7 +182,6 @@ public class UtilityDate {
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static LocalDate getNow() {
|
||||
return Instant.now()
|
||||
.atZone(currentZone)
|
||||
@@ -197,6 +193,7 @@ public class UtilityDate {
|
||||
.atZone(currentZone)
|
||||
.toLocalDateTime();
|
||||
}
|
||||
|
||||
public static LocalDate timeToLocalDate(long time, @Nullable String timezone) {
|
||||
return Instant.ofEpochSecond(time)
|
||||
.atZone(timezone == null ? currentZone : ZoneId.of(timezone))
|
||||
@@ -210,7 +207,6 @@ public class UtilityDate {
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static long localDateTimeToTime(LocalDateTime localDateTime, @Nullable String timezone) {
|
||||
return localDateTime
|
||||
.atZone(timezone == null ? currentZone : ZoneId.of(timezone))
|
||||
|
||||
@@ -335,13 +335,11 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle item selection
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_filter:
|
||||
showOrderByDialog();
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
if (item.getItemId() == R.id.action_filter) {
|
||||
showOrderByDialog();
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void initVars() {
|
||||
@@ -752,11 +750,11 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
||||
public void onLUPrintError(Exception ex, Runnable onComplete) {
|
||||
this.onLoadingEnded();
|
||||
DialogSimpleMessageView.makeErrorDialog(
|
||||
new SpannableString(ex.getMessage()),
|
||||
null,
|
||||
null,
|
||||
R.string.button_ignore_print,
|
||||
onComplete)
|
||||
new SpannableString(ex.getMessage()),
|
||||
null,
|
||||
null,
|
||||
R.string.button_ignore_print,
|
||||
onComplete)
|
||||
.show(getSupportFragmentManager(), "tag");
|
||||
}
|
||||
|
||||
|
||||
@@ -27,10 +27,8 @@ import javax.inject.Inject;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.context.MainContext;
|
||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
@@ -181,23 +179,16 @@ public class MainActivity extends BaseActivity
|
||||
fragment = menuItem.getFragmentFactory().run();
|
||||
this.adaptViewToFragment(fragment);
|
||||
} else {
|
||||
switch (id) {
|
||||
case R.id.nav_home:
|
||||
this.pop();
|
||||
break;
|
||||
|
||||
case R.id.nav_settings:
|
||||
fragment = new MainSettingsFragment();
|
||||
this.adaptViewToFragment(fragment);
|
||||
break;
|
||||
|
||||
case R.id.nav_logout:
|
||||
ServerStatusChecker.dispose();
|
||||
this.mainContext.logout(() -> {
|
||||
startLoginActivity();
|
||||
});
|
||||
|
||||
break;
|
||||
if (id == R.id.nav_home) {
|
||||
this.pop();
|
||||
} else if (id == R.id.nav_settings) {
|
||||
fragment = new MainSettingsFragment();
|
||||
this.adaptViewToFragment(fragment);
|
||||
} else if (id == R.id.nav_logout) {
|
||||
ServerStatusChecker.dispose();
|
||||
this.mainContext.logout(() -> {
|
||||
startLoginActivity();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,7 +217,7 @@ public class MainActivity extends BaseActivity
|
||||
|
||||
for (MenuConfiguration.MenuItem menuItem : menuGroup.getItems()) {
|
||||
|
||||
if(menuService.isItemEnabled(menuItem)) {
|
||||
if (menuService.isItemEnabled(menuItem)) {
|
||||
subMenu
|
||||
.add(menuGroup.getGroupId(), menuItem.getID(), 0, menuItem.getTitleText())
|
||||
.setIcon(menuItem.getDrawerIcon());
|
||||
@@ -248,7 +239,6 @@ public class MainActivity extends BaseActivity
|
||||
}
|
||||
|
||||
private MenuConfiguration.MenuItem getMenuItem(@IdRes int menuId) {
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
BaseMenuConfiguration menuConfiguration = new MenuConfiguration();
|
||||
List<MenuConfiguration.MenuGroup> menuGroups = menuConfiguration.getGroups();
|
||||
|
||||
|
||||
@@ -27,10 +27,8 @@ import javax.inject.Inject;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.OrdiniVenditaInterface;
|
||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverDTO;
|
||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
@@ -212,14 +210,10 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
|
||||
(recoveredMtbColt.getGestioneEnum() == GestioneEnum.VENDITA ||
|
||||
recoveredMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE)) {
|
||||
|
||||
OrdiniVenditaInterface ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
|
||||
boolean isTransferLogicEnabled = ordiniVendita != null && ordiniVendita.isTrasfOrder(recoveredMtbColtDto.getTestateOrdini());
|
||||
|
||||
var closeUDSRequestDto = new CloseUDSRequestDTO()
|
||||
.setMtbColt(recoveredMtbColt)
|
||||
//.setPrintSSCC(shouldPrint)
|
||||
.setOrderCodMdep(recoveredMtbColtDto.getTestateOrdini().get(0).getCodMdep())
|
||||
.setEnableTransferLogic(isTransferLogicEnabled);
|
||||
.setOrderCodMdep(recoveredMtbColtDto.getTestateOrdini().get(0).getCodMdep());
|
||||
|
||||
RunnableArgs<CloseUDSResponseDTO> onRequestComplete = closeUDSResponseDto -> {
|
||||
colliDataRecoverService.closeSession(recoveredMtbColtID);
|
||||
|
||||
@@ -915,8 +915,6 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private void initJtbComtCache(Runnable onComplete) {
|
||||
if (this.mViewModel.getOrderList().getValue() == null) {
|
||||
this.jtbComtCache = new ArrayList<>();
|
||||
@@ -925,8 +923,15 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
||||
}
|
||||
var jtbComts = Stream.of(Objects.requireNonNull(this.mViewModel.getOrderList().getValue()))
|
||||
.flatMap(x -> Stream.of(x.getCodJcom()))
|
||||
.distinct().withoutNulls()
|
||||
.toList();
|
||||
|
||||
if (jtbComts.isEmpty()) {
|
||||
this.jtbComtCache = new ArrayList<>();
|
||||
onComplete.run();
|
||||
return;
|
||||
}
|
||||
|
||||
this.mCommessaRESTConsumer.getJtbComts(jtbComts, jtbComtCache -> {
|
||||
this.jtbComtCache = jtbComtCache;
|
||||
onComplete.run();
|
||||
|
||||
@@ -1,459 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs;
|
||||
|
||||
import android.app.DatePickerDialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.MultiAutoCompleteTextView;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.IFiltroOrdiniVendita;
|
||||
import it.integry.integrywmsnative.core.di.BindableString;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.databinding.DialogVenditaFiltroAvanzatoBinding;
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
|
||||
|
||||
|
||||
public class DialogVenditaFiltroAvanzatoView {
|
||||
|
||||
|
||||
private final AlertDialog currentAlert;
|
||||
private final Context currentContext;
|
||||
|
||||
private final RunnableArgs<DialogVenditaFiltroAvanzatoViewModel> currentOnFilterDone;
|
||||
|
||||
|
||||
|
||||
public BindableString deposito = new BindableString();
|
||||
public BindableString idViaggio = new BindableString();
|
||||
public BindableString numOrds = new BindableString();
|
||||
public BindableString cliente = new BindableString();
|
||||
public BindableString dataConsegna = new BindableString();
|
||||
public BindableString terminiConsegna = new BindableString();
|
||||
public BindableString agente = new BindableString();
|
||||
public BindableString vettore = new BindableString();
|
||||
public BindableString automezzo = new BindableString();
|
||||
public BindableString paese = new BindableString();
|
||||
|
||||
public Date dataConsegnaDate;
|
||||
|
||||
private ArrayAdapter<String> arrayAdapterCodMdep;
|
||||
private ArrayAdapter<String> arrayAdapterIdViaggio;
|
||||
private ArrayAdapter<String> arrayAdapterNumOrds;
|
||||
private ArrayAdapter<String> arrayAdapterCliente;
|
||||
private ArrayAdapter<String> arrayAdapterTermCons;
|
||||
private ArrayAdapter<String> arrayAdapterVettore;
|
||||
private ArrayAdapter<String> arrayAdapterAgente;
|
||||
private ArrayAdapter<String> arrayAdapterAutomezzo;
|
||||
private ArrayAdapter<String> arrayAdapterPaese;
|
||||
|
||||
private final DialogVenditaFiltroAvanzatoViewModel viewModel;
|
||||
|
||||
public static AlertDialog make(final Context context,
|
||||
final List<OrdiniUscitaElencoDTO> ordersList,
|
||||
DialogVenditaFiltroAvanzatoViewModel baseViewModel,
|
||||
RunnableArgs<DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||
return new DialogVenditaFiltroAvanzatoView(context, ordersList, baseViewModel, onDismiss).currentAlert;
|
||||
}
|
||||
|
||||
private DialogVenditaFiltroAvanzatoView(final Context context, final List<OrdiniUscitaElencoDTO> ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgs<DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||
currentContext = context;
|
||||
currentOnFilterDone = onDismiss;
|
||||
|
||||
viewModel = baseViewModel != null ? baseViewModel : new DialogVenditaFiltroAvanzatoViewModel();
|
||||
viewModel.init(ordersList);
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||
|
||||
DialogVenditaFiltroAvanzatoBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_vendita_filtro_avanzato, null, false);
|
||||
|
||||
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
|
||||
.setView(binding.getRoot());
|
||||
|
||||
binding.setView(this);
|
||||
binding.setViewmodel(viewModel);
|
||||
initViewModel(viewModel);
|
||||
initView(binding);
|
||||
|
||||
currentAlert = alertDialog.create();
|
||||
currentAlert.setCanceledOnTouchOutside(false);
|
||||
|
||||
currentAlert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
currentAlert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
binding.positiveBtn.setOnClickListener(view -> {
|
||||
currentAlert.dismiss();
|
||||
});
|
||||
|
||||
binding.neutralBtn.setOnClickListener(view -> {
|
||||
resetAll();
|
||||
});
|
||||
|
||||
|
||||
currentAlert.setOnDismissListener(dialogInterface -> {
|
||||
if(currentOnFilterDone != null) currentOnFilterDone.run(viewModel);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void initView(DialogVenditaFiltroAvanzatoBinding bindings) {
|
||||
IFiltroOrdiniVendita filtroOrdiniVendita = ClassRouter.getInstance(ClassRouter.PATH.FILTRO_ORDINI_VENDITA);
|
||||
|
||||
// bindings.filledExposedDropdownDataCons.setOnFocusChangeListener((v, hasFocus) -> {
|
||||
// bindings.filledExposedDropdownDataCons.callOnClick();
|
||||
// });
|
||||
|
||||
bindings.filledExposedDropdownDataCons.setOnClickListener(view -> {
|
||||
Calendar c = UtilityDate.getCalendarInstance();
|
||||
|
||||
if(dataConsegnaDate != null) {
|
||||
c.setTime(dataConsegnaDate);
|
||||
}
|
||||
|
||||
int mYear = c.get(Calendar.YEAR);
|
||||
int mMonth = c.get(Calendar.MONTH);
|
||||
int mDay = c.get(Calendar.DAY_OF_MONTH);
|
||||
|
||||
DatePickerDialog datePickerDialog = new DatePickerDialog(currentContext,
|
||||
(view2, year, month, day) -> {
|
||||
|
||||
dataConsegnaDate = new GregorianCalendar(year, month, day).getTime();
|
||||
dataConsegna.set(UtilityDate.formatDate(dataConsegnaDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||
|
||||
}, mYear, mMonth, mDay);
|
||||
datePickerDialog.show();
|
||||
});
|
||||
|
||||
|
||||
arrayAdapterCodMdep = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(false));
|
||||
bindings.inputCodMdepNew.setVisibility(filtroOrdiniVendita.shoudShowCodMdepFilter() ? View.VISIBLE : View.GONE);
|
||||
bindings.filledExposedDropdownCodMdep.setAdapter(arrayAdapterCodMdep);
|
||||
|
||||
arrayAdapterIdViaggio = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(false));
|
||||
bindings.inputIdViaggio.setVisibility(filtroOrdiniVendita.shoudShowIdViaggioFilter() ? View.VISIBLE : View.GONE);
|
||||
bindings.filledExposedDropdownIdViaggio.setAdapter(arrayAdapterIdViaggio);
|
||||
|
||||
arrayAdapterAgente = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterAgente.addAll(getAvailableAgente(false));
|
||||
bindings.inputAgente.setVisibility(filtroOrdiniVendita.shoudShowAgenteFilter() ? View.VISIBLE : View.GONE);
|
||||
bindings.filledExposedDropdownAgente.setAdapter(arrayAdapterAgente);
|
||||
|
||||
arrayAdapterNumOrds = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterNumOrds.addAll(getAvailableNumOrds(false));
|
||||
bindings.filledExposedDropdownNumOrds.setAdapter(arrayAdapterNumOrds);
|
||||
bindings.filledExposedDropdownNumOrds.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
|
||||
|
||||
arrayAdapterCliente = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterCliente.addAll(getAvailableCliente(false));
|
||||
bindings.filledExposedDropdownCliente.setAdapter(arrayAdapterCliente);
|
||||
|
||||
arrayAdapterTermCons = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterTermCons.addAll(getAvailableTermCons(false));
|
||||
bindings.filledExposedDropdownTermCons.setAdapter(arrayAdapterTermCons);
|
||||
|
||||
arrayAdapterVettore = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterVettore.addAll(getAvailableVettori(false));
|
||||
bindings.filledExposedDropdownVettore.setAdapter(arrayAdapterVettore);
|
||||
|
||||
arrayAdapterAutomezzo = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(false));
|
||||
bindings.filledExposedDropdownAutomezzo.setAdapter(arrayAdapterAutomezzo);
|
||||
|
||||
arrayAdapterPaese = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterPaese.addAll(getAvailablePaesi(false));
|
||||
bindings.filledExposedDropdownPaese.setAdapter(arrayAdapterPaese);
|
||||
|
||||
|
||||
refreshAll();
|
||||
}
|
||||
|
||||
private void initViewModel(DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
||||
viewModel.applyAllTests();
|
||||
|
||||
BindableString.registerListener(idViaggio, value -> {
|
||||
viewModel.setIDViaggioFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
|
||||
refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
|
||||
refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
|
||||
refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
|
||||
refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
|
||||
refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
|
||||
refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
|
||||
refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
|
||||
});
|
||||
|
||||
BindableString.registerListener(deposito, value -> {
|
||||
viewModel.setDepositoFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
|
||||
refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
|
||||
refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
|
||||
refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
|
||||
refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
|
||||
refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
|
||||
refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
|
||||
refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
|
||||
});
|
||||
|
||||
BindableString.registerListener(numOrds, value -> {
|
||||
viewModel.setNumOrdFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
|
||||
refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
|
||||
refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
|
||||
refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
|
||||
refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
|
||||
refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
|
||||
refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
|
||||
refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
|
||||
});
|
||||
|
||||
BindableString.registerListener(cliente, value -> {
|
||||
viewModel.setClienteFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
|
||||
refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
|
||||
refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
|
||||
refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
|
||||
refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
|
||||
refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
|
||||
refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
|
||||
refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
|
||||
});
|
||||
|
||||
BindableString.registerListener(terminiConsegna, value -> {
|
||||
viewModel.setTerminiConsegnaFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
|
||||
refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
|
||||
refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
|
||||
refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
|
||||
refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
|
||||
refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
|
||||
refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
|
||||
refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
|
||||
});
|
||||
|
||||
BindableString.registerListener(vettore, value -> {
|
||||
viewModel.setVettoreFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
|
||||
refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
|
||||
refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
|
||||
refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
|
||||
refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
|
||||
refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
|
||||
refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
|
||||
refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
|
||||
});
|
||||
|
||||
BindableString.registerListener(automezzo, value -> {
|
||||
viewModel.setAutomezzoFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
|
||||
refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
|
||||
refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
|
||||
refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
|
||||
refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
|
||||
refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
|
||||
refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
|
||||
refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
|
||||
});
|
||||
|
||||
BindableString.resetListeners(dataConsegna);
|
||||
BindableString.registerListener(dataConsegna, value -> {
|
||||
viewModel.setDataConsegnaFilter(dataConsegnaDate);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
|
||||
refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
|
||||
refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
|
||||
refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
|
||||
refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
|
||||
refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
|
||||
refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
|
||||
refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
|
||||
refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
|
||||
});
|
||||
|
||||
BindableString.resetListeners(agente);
|
||||
BindableString.registerListener(agente, value -> {
|
||||
viewModel.setAgenteFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
|
||||
refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
|
||||
refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
|
||||
refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
|
||||
refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
|
||||
refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
|
||||
refreshArrayAdapter(arrayAdapterPaese, getAvailablePaesi(true));
|
||||
refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
|
||||
});
|
||||
|
||||
BindableString.resetListeners(paese);
|
||||
BindableString.registerListener(paese, value -> {
|
||||
viewModel.setPaeseFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterCodMdep, getAvailableCodMdeps(true));
|
||||
refreshArrayAdapter(arrayAdapterIdViaggio, getAvailableIdViaggio(true));
|
||||
refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
|
||||
refreshArrayAdapter(arrayAdapterCliente, getAvailableCliente(true));
|
||||
refreshArrayAdapter(arrayAdapterTermCons, getAvailableTermCons(true));
|
||||
refreshArrayAdapter(arrayAdapterVettore, getAvailableVettori(true));
|
||||
refreshArrayAdapter(arrayAdapterAgente, getAvailableAgente(true));
|
||||
refreshArrayAdapter(arrayAdapterAutomezzo, getAvailableAutomezzi(true));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void refreshArrayAdapter(ArrayAdapter<String> arrayAdapter, List<String> inputList) {
|
||||
arrayAdapter.clear();
|
||||
arrayAdapter.addAll(inputList);
|
||||
arrayAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
private List<String> getAvailableIdViaggio(boolean skipRecalc) {
|
||||
return Stream
|
||||
.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
|
||||
.filter(x -> x.getIdViaggio() != null)
|
||||
.sortBy(x -> -x.getIdViaggio())
|
||||
.map(x -> x.getIdViaggio() != null ? x.getIdViaggio().toString() : null)
|
||||
.distinct()
|
||||
.toList();
|
||||
}
|
||||
|
||||
private List<String> getAvailableAgente(boolean skipRecalc) {
|
||||
return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
|
||||
.map(OrdiniUscitaElencoDTO::getNomeAgente)
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sorted()
|
||||
.toList();
|
||||
}
|
||||
|
||||
private List<String> getAvailableCodMdeps(boolean skipRecalc) {
|
||||
return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
|
||||
.map(OrdiniUscitaElencoDTO::getCodMdep)
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sorted()
|
||||
.toList();
|
||||
}
|
||||
|
||||
private List<String> getAvailableCliente(boolean skipRecalc) {
|
||||
return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
|
||||
.map(OrdiniUscitaElencoDTO::getRagSocOrd)
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sorted()
|
||||
.toList();
|
||||
}
|
||||
|
||||
private List<String> getAvailableNumOrds(boolean skipRecalc) {
|
||||
return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
|
||||
.map(x -> x.getNumOrd().toString())
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sorted()
|
||||
.toList();
|
||||
}
|
||||
|
||||
private List<String> getAvailableTermCons(boolean skipRecalc) {
|
||||
return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
|
||||
.map(OrdiniUscitaElencoDTO::getTermCons)
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sorted()
|
||||
.toList();
|
||||
}
|
||||
|
||||
private List<String> getAvailableVettori(boolean skipRecalc) {
|
||||
return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
|
||||
.filter(x -> x.getCodVvet() != null)
|
||||
.map(x -> x.getCodVvet() + " - " + x.getDescrizioneVettore())
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sorted()
|
||||
.toList();
|
||||
}
|
||||
|
||||
private List<String> getAvailableAutomezzi(boolean skipRecalc) {
|
||||
return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
|
||||
.map(OrdiniUscitaElencoDTO::getDescrizioneAuto)
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sorted()
|
||||
.toList();
|
||||
}
|
||||
|
||||
private List<String> getAvailablePaesi(boolean skipRecalc) {
|
||||
return Stream.of(Objects.requireNonNull(viewModel.getMutableFilteredOrderList().getValue()))
|
||||
.map(OrdiniUscitaElencoDTO::getCitta)
|
||||
.withoutNulls()
|
||||
.distinct()
|
||||
.sorted()
|
||||
.toList();
|
||||
}
|
||||
|
||||
|
||||
public void refreshAll() {
|
||||
deposito.refresh();
|
||||
idViaggio.refresh();
|
||||
numOrds.refresh();
|
||||
cliente.refresh();
|
||||
terminiConsegna.refresh();
|
||||
vettore.refresh();
|
||||
automezzo.refresh();
|
||||
dataConsegna.refresh();
|
||||
agente.refresh();
|
||||
paese.refresh();
|
||||
}
|
||||
|
||||
|
||||
public void resetAll() {
|
||||
deposito.set(null);
|
||||
idViaggio.set(null);
|
||||
numOrds.set(null);
|
||||
cliente.set(null);
|
||||
dataConsegna.set(null);
|
||||
terminiConsegna.set(null);
|
||||
vettore.set(null);
|
||||
automezzo.set(null);
|
||||
agente.set(null);
|
||||
paese.set(null);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,167 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.annimon.stream.function.Predicate;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
|
||||
|
||||
public class DialogVenditaFiltroAvanzatoViewModel {
|
||||
|
||||
private Predicate<OrdiniUscitaElencoDTO> currentDepositoPredicate = null;
|
||||
private Predicate<OrdiniUscitaElencoDTO> currentIdViaggioPredicate = null;
|
||||
private Predicate<OrdiniUscitaElencoDTO> currentNumOrdsPredicate = null;
|
||||
private Predicate<OrdiniUscitaElencoDTO> currentClientePredicate = null;
|
||||
private Predicate<OrdiniUscitaElencoDTO> currentDataConsPredicate = null;
|
||||
private Predicate<OrdiniUscitaElencoDTO> currentTermConsPredicate = null;
|
||||
private Predicate<OrdiniUscitaElencoDTO> currentVettorePredicate = null;
|
||||
private Predicate<OrdiniUscitaElencoDTO> currentAgentePredicate = null;
|
||||
private Predicate<OrdiniUscitaElencoDTO> currentAutomezzoPredicate = null;
|
||||
private Predicate<OrdiniUscitaElencoDTO> currentPaesePredicate = null;
|
||||
|
||||
|
||||
private List<OrdiniUscitaElencoDTO> initialOrderList;
|
||||
private final MutableLiveData<List<OrdiniUscitaElencoDTO>> currentFilteredOrderList = new MutableLiveData<>();
|
||||
|
||||
public void init(List<OrdiniUscitaElencoDTO> initialList) {
|
||||
this.initialOrderList = initialList;
|
||||
this.currentFilteredOrderList.setValue(this.initialOrderList);
|
||||
}
|
||||
|
||||
public MutableLiveData<List<OrdiniUscitaElencoDTO>> getMutableFilteredOrderList() {
|
||||
return this.currentFilteredOrderList;
|
||||
}
|
||||
|
||||
public void setIDViaggioFilter(String idViaggio) {
|
||||
if(UtilityString.isNullOrEmpty(idViaggio)) currentIdViaggioPredicate = null;
|
||||
else {
|
||||
String[] idViaggiSplitted = idViaggio.split("[,\\ ]");
|
||||
|
||||
try{
|
||||
List<Integer> idViaggiInteger = Stream.of(idViaggiSplitted)
|
||||
.filter(x -> !UtilityString.isNullOrEmpty(x))
|
||||
.map(Integer::parseInt).toList();
|
||||
|
||||
currentIdViaggioPredicate = o -> idViaggiInteger.contains(o.getIdViaggio());
|
||||
} catch (NumberFormatException ex) {
|
||||
currentIdViaggioPredicate = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setDepositoFilter(String deposito) {
|
||||
if(UtilityString.isNullOrEmpty(deposito)) currentDepositoPredicate = null;
|
||||
else {
|
||||
currentDepositoPredicate = o -> o.getCodMdep().toLowerCase().equalsIgnoreCase(deposito);
|
||||
}
|
||||
}
|
||||
|
||||
public void setNumOrdFilter(String numOrds) {
|
||||
if(UtilityString.isNullOrEmpty(numOrds)) currentNumOrdsPredicate = null;
|
||||
else {
|
||||
String[] numOrdsSplitted = numOrds.split("[,\\ ]");
|
||||
|
||||
try{
|
||||
List<Integer> numOrdsInteger = Stream.of(numOrdsSplitted)
|
||||
.filter(x -> !UtilityString.isNullOrEmpty(x))
|
||||
.map(Integer::parseInt).toList();
|
||||
|
||||
currentNumOrdsPredicate = o -> numOrdsInteger.contains(o.getNumOrd());
|
||||
} catch (NumberFormatException ex) {
|
||||
currentNumOrdsPredicate = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setClienteFilter(String cliente) {
|
||||
if(UtilityString.isNullOrEmpty(cliente)) currentClientePredicate = null;
|
||||
else {
|
||||
currentClientePredicate = o -> o.getRagSocOrd().toLowerCase().contains(cliente.toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
public void setTerminiConsegnaFilter(String terminiConsegna) {
|
||||
if(UtilityString.isNullOrEmpty(terminiConsegna)) currentTermConsPredicate = null;
|
||||
else {
|
||||
currentTermConsPredicate = o -> !UtilityString.isNullOrEmpty(o.getTermCons()) && o.getTermCons().equalsIgnoreCase(terminiConsegna);
|
||||
}
|
||||
}
|
||||
|
||||
public void setVettoreFilter(String vettore) {
|
||||
if(UtilityString.isNullOrEmpty(vettore)) currentVettorePredicate = null;
|
||||
else {
|
||||
currentVettorePredicate = o -> (o.getCodVvet() + " - " + o.getDescrizioneVettore()).equalsIgnoreCase(vettore);
|
||||
}
|
||||
}
|
||||
|
||||
public void setAutomezzoFilter(String automezzo) {
|
||||
if(UtilityString.isNullOrEmpty(automezzo)) currentAutomezzoPredicate = null;
|
||||
else {
|
||||
currentAutomezzoPredicate = o -> !UtilityString.isNullOrEmpty(o.getDescrizioneAuto()) && (o.getDescrizioneAuto().toLowerCase().contains(automezzo) || o.getDescrizioneAuto().equalsIgnoreCase(automezzo));
|
||||
}
|
||||
}
|
||||
|
||||
public void setDataConsegnaFilter(Date dataConsegna) {
|
||||
if(dataConsegna == null) currentDataConsPredicate = null;
|
||||
else {
|
||||
currentDataConsPredicate = o -> o.getDataConsD().equals(dataConsegna);
|
||||
}
|
||||
}
|
||||
|
||||
public void setAgenteFilter(String agente) {
|
||||
if(UtilityString.isNullOrEmpty(agente)) currentAgentePredicate = null;
|
||||
else {
|
||||
currentAgentePredicate = o -> !UtilityString.isNullOrEmpty(o.getNomeAgente()) && (o.getNomeAgente().toLowerCase().contains(agente) || o.getNomeAgente().equalsIgnoreCase(agente));
|
||||
}
|
||||
}
|
||||
|
||||
public void setPaeseFilter(String paese) {
|
||||
if(UtilityString.isNullOrEmpty(paese)) currentPaesePredicate = null;
|
||||
else {
|
||||
currentPaesePredicate = o -> !UtilityString.isNullOrEmpty(o.getCitta()) && (o.getCitta().toLowerCase().contains(paese) || o.getCitta().equalsIgnoreCase(paese));
|
||||
}
|
||||
}
|
||||
|
||||
public void applyAllTests() {
|
||||
|
||||
List<OrdiniUscitaElencoDTO> returnList = null;
|
||||
|
||||
if (currentNumOrdsPredicate == null &&
|
||||
currentClientePredicate == null &&
|
||||
currentDataConsPredicate == null &&
|
||||
currentTermConsPredicate == null &&
|
||||
currentVettorePredicate == null &&
|
||||
currentAutomezzoPredicate == null &&
|
||||
currentDepositoPredicate == null &&
|
||||
currentIdViaggioPredicate == null &&
|
||||
currentAgentePredicate == null &&
|
||||
currentPaesePredicate == null
|
||||
) {
|
||||
returnList = this.initialOrderList;
|
||||
} else {
|
||||
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(this.initialOrderList)
|
||||
.filter(x ->
|
||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
|
||||
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
|
||||
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
|
||||
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
|
||||
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
|
||||
(currentAgentePredicate == null || (currentAgentePredicate.test(x))) &&
|
||||
(currentPaesePredicate == null || (currentPaesePredicate.test(x)))
|
||||
);
|
||||
|
||||
returnList = tmpStream.toList();
|
||||
}
|
||||
|
||||
this.currentFilteredOrderList.setValue(returnList);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,164 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.MultiAutoCompleteTextView;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.di.BindableString;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.databinding.DialogOrdineProduzioneFiltroAvanzatoBinding;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||
|
||||
public class DialogOrdineProduzioneFiltroAvanzatoView {
|
||||
|
||||
|
||||
private AlertDialog currentAlert;
|
||||
private Context currentContext;
|
||||
|
||||
private RunnableArgs<DialogOrdineProduzioneFiltroAvanzatoViewModel> currentOnFilterDone;
|
||||
|
||||
public BindableString numOrds = new BindableString();
|
||||
public BindableString codJcoms = new BindableString();
|
||||
|
||||
private ArrayAdapter<String> arrayAdapterNumOrds;
|
||||
private ArrayAdapter<String> arrayAdapterCodJcoms;
|
||||
|
||||
private DialogOrdineProduzioneFiltroAvanzatoViewModel mViewModel;
|
||||
|
||||
|
||||
|
||||
public static AlertDialog make(final Context context,
|
||||
final List<OrdineAccettazioneInevasoDTO> ordersList,
|
||||
DialogOrdineProduzioneFiltroAvanzatoViewModel baseViewModel,
|
||||
RunnableArgs<DialogOrdineProduzioneFiltroAvanzatoViewModel> onDismiss) {
|
||||
return new DialogOrdineProduzioneFiltroAvanzatoView(context, ordersList, baseViewModel, onDismiss).currentAlert;
|
||||
}
|
||||
|
||||
|
||||
private DialogOrdineProduzioneFiltroAvanzatoView(final Context context, final List<OrdineAccettazioneInevasoDTO> ordersList, DialogOrdineProduzioneFiltroAvanzatoViewModel baseViewModel, RunnableArgs<DialogOrdineProduzioneFiltroAvanzatoViewModel> onDismiss) {
|
||||
currentContext = context;
|
||||
currentOnFilterDone = onDismiss;
|
||||
|
||||
mViewModel = baseViewModel != null ? baseViewModel : new DialogOrdineProduzioneFiltroAvanzatoViewModel();
|
||||
mViewModel.init(ordersList);
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
|
||||
DialogOrdineProduzioneFiltroAvanzatoBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_ordine_produzione_filtro_avanzato, null, false);
|
||||
|
||||
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
|
||||
.setView(binding.getRoot());
|
||||
|
||||
binding.setView(this);
|
||||
binding.setViewmodel(mViewModel);
|
||||
initViewModel(mViewModel);
|
||||
initView(binding);
|
||||
|
||||
currentAlert = alertDialog.create();
|
||||
currentAlert.setCanceledOnTouchOutside(false);
|
||||
|
||||
currentAlert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
currentAlert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
binding.positiveBtn.setOnClickListener(view -> {
|
||||
currentAlert.dismiss();
|
||||
});
|
||||
|
||||
binding.neutralBtn.setOnClickListener(view -> {
|
||||
resetAll();
|
||||
});
|
||||
|
||||
|
||||
currentAlert.setOnDismissListener(dialogInterface -> {
|
||||
if(currentOnFilterDone != null) currentOnFilterDone.run(mViewModel);
|
||||
});
|
||||
}
|
||||
|
||||
private void initView(DialogOrdineProduzioneFiltroAvanzatoBinding bindings) {
|
||||
|
||||
arrayAdapterNumOrds = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterNumOrds.addAll(getAvailableNumOrds(false));
|
||||
bindings.filledExposedDropdownNumOrds.setAdapter(arrayAdapterNumOrds);
|
||||
bindings.filledExposedDropdownNumOrds.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
|
||||
|
||||
arrayAdapterCodJcoms = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterCodJcoms.addAll(getAvailableCodJcoms(false));
|
||||
bindings.filledExposedDropdownCodJcoms.setAdapter(arrayAdapterCodJcoms);
|
||||
bindings.filledExposedDropdownCodJcoms.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
|
||||
|
||||
|
||||
refreshAll();
|
||||
}
|
||||
|
||||
|
||||
private void initViewModel(DialogOrdineProduzioneFiltroAvanzatoViewModel viewModel) {
|
||||
viewModel.applyAllTests();
|
||||
|
||||
BindableString.registerListener(numOrds, value -> {
|
||||
viewModel.setNumOrdFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterCodJcoms, getAvailableCodJcoms(true));
|
||||
});
|
||||
|
||||
BindableString.registerListener(codJcoms, value -> {
|
||||
viewModel.setCodJcomFilter(value);
|
||||
viewModel.applyAllTests();
|
||||
|
||||
refreshArrayAdapter(arrayAdapterNumOrds, getAvailableNumOrds(true));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void refreshArrayAdapter(ArrayAdapter<String> arrayAdapter, List<String> inputList) {
|
||||
arrayAdapter.clear();
|
||||
arrayAdapter.addAll(inputList);
|
||||
arrayAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
private List<String> getAvailableNumOrds(boolean skipRecalc) {
|
||||
return Stream.of(Objects.requireNonNull(mViewModel.getMutableFilteredOrderList().getValue()))
|
||||
.map(x -> x.getNumero().toString())
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sorted()
|
||||
.toList();
|
||||
}
|
||||
|
||||
|
||||
private List<String> getAvailableCodJcoms(boolean skipRecalc) {
|
||||
return Stream.of(Objects.requireNonNull(mViewModel.getMutableFilteredOrderList().getValue()))
|
||||
.map(OrdineAccettazioneInevasoDTO::getCodJcom)
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sorted()
|
||||
.toList();
|
||||
}
|
||||
|
||||
|
||||
public void refreshAll() {
|
||||
numOrds.refresh();
|
||||
codJcoms.refresh();
|
||||
}
|
||||
|
||||
|
||||
public void resetAll() {
|
||||
numOrds.set(null);
|
||||
codJcoms.set(null);
|
||||
}
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.annimon.stream.function.Predicate;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||
|
||||
public class DialogOrdineProduzioneFiltroAvanzatoViewModel {
|
||||
|
||||
|
||||
private Predicate<OrdineAccettazioneInevasoDTO> currentNumOrdsPredicate = null;
|
||||
private Predicate<OrdineAccettazioneInevasoDTO> currentCodJcomsPredicate = null;
|
||||
|
||||
private List<OrdineAccettazioneInevasoDTO> initialOrderList;
|
||||
private final MutableLiveData<List<OrdineAccettazioneInevasoDTO>> currentFilteredOrderList = new MutableLiveData<>();
|
||||
|
||||
public void init(List<OrdineAccettazioneInevasoDTO> initialList) {
|
||||
this.initialOrderList = initialList;
|
||||
this.currentFilteredOrderList.setValue(this.initialOrderList);
|
||||
}
|
||||
|
||||
public MutableLiveData<List<OrdineAccettazioneInevasoDTO>> getMutableFilteredOrderList() {
|
||||
return this.currentFilteredOrderList;
|
||||
}
|
||||
|
||||
public void setNumOrdFilter(String numOrds) {
|
||||
if(UtilityString.isNullOrEmpty(numOrds)) currentNumOrdsPredicate = null;
|
||||
else {
|
||||
String[] numOrdsSplitted = numOrds.split("[,\\ ]");
|
||||
|
||||
try{
|
||||
List<Integer> numOrdsInteger = Stream.of(numOrdsSplitted)
|
||||
.filter(x -> !UtilityString.isNullOrEmpty(x))
|
||||
.map(Integer::parseInt).toList();
|
||||
|
||||
currentNumOrdsPredicate = o -> numOrdsInteger.contains(o.getNumero());
|
||||
} catch (NumberFormatException ex) {
|
||||
currentNumOrdsPredicate = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setCodJcomFilter(String codJcom) {
|
||||
if(UtilityString.isNullOrEmpty(codJcom)) currentCodJcomsPredicate = null;
|
||||
else {
|
||||
currentCodJcomsPredicate = o -> o.getCodJcom().toLowerCase().equalsIgnoreCase(codJcom);
|
||||
}
|
||||
}
|
||||
|
||||
public void applyAllTests() {
|
||||
|
||||
List<OrdineAccettazioneInevasoDTO> returnList = null;
|
||||
|
||||
if (currentNumOrdsPredicate == null &&
|
||||
currentCodJcomsPredicate == null
|
||||
) {
|
||||
returnList = this.initialOrderList;
|
||||
} else {
|
||||
Stream<OrdineAccettazioneInevasoDTO> tmpStream = Stream.of(this.initialOrderList)
|
||||
.filter(x ->
|
||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||
(currentCodJcomsPredicate == null || (currentCodJcomsPredicate.test(x)))
|
||||
);
|
||||
|
||||
returnList = tmpStream.toList();
|
||||
}
|
||||
|
||||
this.currentFilteredOrderList.setValue(returnList);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -29,9 +29,6 @@ import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
|
||||
@@ -178,10 +175,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
|
||||
setSupportActionBar(mBindings.toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
mFlagShowCodForn = customConfiguration != null ? customConfiguration.getConfig(BaseCustomConfiguration.Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE) : true;
|
||||
mDivideByGrpMerc = customConfiguration != null ? customConfiguration.getConfig(BaseCustomConfiguration.Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC) : false;
|
||||
|
||||
mFlagShowCodForn = SettingsManager.iDB().isShowCodFornSpedizione();
|
||||
mDivideByGrpMerc = SettingsManager.iDB().isGroupShippingByCommodityGroup();
|
||||
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
mEnableQuantityReset = sharedPreferences.getBoolean("picking_uscita_enable_quantity_reset", true);
|
||||
|
||||
@@ -13,14 +13,11 @@ import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.core.CommonConst;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.OrdiniVenditaInterface;
|
||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
||||
import it.integry.integrywmsnative.core.exception.EmptyLUException;
|
||||
import it.integry.integrywmsnative.core.exception.InvalidLUException;
|
||||
@@ -611,15 +608,9 @@ public class SpedizioneViewModel {
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
final List<MtbColr> mtbColrs = Stream.of(pickingObjectDTO.getMtbColts())
|
||||
.filter(x -> x.getPosizione().equalsIgnoreCase(mtbDepoPosizione.getPosizione()))
|
||||
.flatMap(x -> Stream.of(x.getMtbColr()))
|
||||
.filter(x -> x.getCodMart().equalsIgnoreCase(selectedArt.getCodMart()))
|
||||
.toList();
|
||||
|
||||
MagazzinoAutomaticoPickItemRequestDTO itemDto = new MagazzinoAutomaticoPickItemRequestDTO(selectedArt.getCodMart())
|
||||
.setQtaTot(Stream.of(mtbColrs).map(MtbColr::getQtaCol).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||
.setNumCnf(Stream.of(mtbColrs).map(MtbColr::getNumCnf).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||
.setQtaTot(pickingObjectDTO.getSitArtOrdDTO().getQtaOrd())
|
||||
.setNumCnf(pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd())
|
||||
.setUntMis(selectedArt.getUntMis());
|
||||
|
||||
magazzinoAutomaticoPickItemRequestDTOList.add(itemDto);
|
||||
@@ -1200,13 +1191,13 @@ public class SpedizioneViewModel {
|
||||
}
|
||||
|
||||
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
|
||||
final List<CreateUDSRequestOrderDTO> orders = this.mTestateOrdini.stream()
|
||||
final List<CreateUDSRequestOrderDTO> orders = Stream.of(this.mTestateOrdini)
|
||||
.map(x -> new CreateUDSRequestOrderDTO()
|
||||
.setDataCons(UtilityDate.toLocalDate(x.getDataConsD()))
|
||||
.setDataOrd(UtilityDate.toLocalDate(x.getDataOrdD()))
|
||||
.setGestione(x.getGestione())
|
||||
.setNumOrd(x.getNumOrd()))
|
||||
.collect(Collectors.toList());
|
||||
.toList();
|
||||
|
||||
final CreateUDSRequestDTO createUDSRequestDTO = new CreateUDSRequestDTO()
|
||||
.setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
|
||||
@@ -1493,7 +1484,7 @@ public class SpedizioneViewModel {
|
||||
positionedMtbColts -> {
|
||||
|
||||
this.askPrint(shouldPrint, positionedMtbColts, () -> {
|
||||
positionedMtbColts.stream()
|
||||
Stream.of(positionedMtbColts)
|
||||
.filter(x -> !this.mColliRegistrati.contains(x))
|
||||
.forEach(x -> this.mColliRegistrati.add(x));
|
||||
|
||||
@@ -1521,8 +1512,7 @@ public class SpedizioneViewModel {
|
||||
var closeUDSRequestDto = new CloseUDSRequestDTO()
|
||||
.setMtbColt(this.mCurrentMtbColt)
|
||||
//.setPrintSSCC(shouldPrint)
|
||||
.setOrderCodMdep(mTestateOrdini.get(0).getCodMdep())
|
||||
.setEnableTransferLogic(isTrasfOrderLogicEnabled());
|
||||
.setOrderCodMdep(mTestateOrdini.get(0).getCodMdep());
|
||||
|
||||
|
||||
this.mColliSpedizioneRESTConsumer.closeUDS(closeUDSRequestDto, closeResponse -> {
|
||||
@@ -1555,11 +1545,6 @@ public class SpedizioneViewModel {
|
||||
onComplete, this::sendError);
|
||||
}
|
||||
|
||||
private boolean isTrasfOrderLogicEnabled() {
|
||||
OrdiniVenditaInterface ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
|
||||
return ordiniVendita != null && ordiniVendita.isTrasfOrder(mTestateOrdini);
|
||||
}
|
||||
|
||||
private void askPeso(Runnable onComplete) {
|
||||
|
||||
if (mDefaultSegnoCol != -1 || !mShouldAskPesoLU) {
|
||||
@@ -1728,7 +1713,7 @@ public class SpedizioneViewModel {
|
||||
private void postCloseOperations(List<MtbColt> mtbColtList) {
|
||||
if (mTestateOrdini != null) {
|
||||
for (MtbColt mtbColt : mtbColtList) {
|
||||
mTestateOrdini.stream()
|
||||
Stream.of(mTestateOrdini)
|
||||
.filter(x -> x.getNumOrd().equals(mtbColt.getNumOrd()) && x.getDataOrdD().equals(mtbColt.getDataOrdD()) && x.getGestioneEnum() == mtbColt.getGestioneEnum())
|
||||
.forEach(x -> x.setExistColloBoolean(true));
|
||||
}
|
||||
@@ -1764,6 +1749,8 @@ public class SpedizioneViewModel {
|
||||
pickingObjectDTO.setWithdrawMtbColrs(new ArrayList<>());
|
||||
}
|
||||
}
|
||||
|
||||
this.mCurrentMtbColt = null;
|
||||
}
|
||||
|
||||
public void resetMatchedRows() {
|
||||
|
||||
@@ -257,13 +257,15 @@ public class UltimiArriviFornitoreFragment extends BaseFragment implements ITitl
|
||||
|
||||
DialogChooseArtsFromMtbColrList
|
||||
.newInstance(scannedMtbColt.getMtbColr(), items -> {
|
||||
List<MtbAart> mtbAarts = new ArrayList<>();
|
||||
|
||||
List<MtbAart> mtbAarts = Stream.of(items)
|
||||
.map(MtbColr::getMtbAart)
|
||||
.toList();
|
||||
if(items != null && !items.isEmpty()) {
|
||||
mtbAarts = Stream.of(items)
|
||||
.map(MtbColr::getMtbAart)
|
||||
.toList();
|
||||
}
|
||||
|
||||
filterItems(mtbAarts);
|
||||
|
||||
}, null)
|
||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||
}
|
||||
|
||||
@@ -171,7 +171,11 @@ public class VersamentoMerceFragment extends BaseFragment implements ITitledFrag
|
||||
public void onArtsChooseRequired(List<MtbColr> mtbColrList, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort) {
|
||||
this.requireActivity().runOnUiThread(() -> {
|
||||
DialogChooseArtsFromMtbColrList
|
||||
.newInstance(mtbColrList, onComplete, onAbort)
|
||||
.newInstance(mtbColrList, data -> {
|
||||
if(data == null || data.isEmpty()) {
|
||||
onAbort.run();
|
||||
} else onComplete.run(data);
|
||||
}, onAbort)
|
||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||
});
|
||||
}
|
||||
|
||||
@@ -19,8 +19,6 @@ import android.view.animation.Interpolator;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
|
||||
public class ExpandableLayout extends FrameLayout {
|
||||
public interface State {
|
||||
int COLLAPSED = 0;
|
||||
@@ -56,11 +54,11 @@ public class ExpandableLayout extends FrameLayout {
|
||||
super(context, attrs);
|
||||
|
||||
if (attrs != null) {
|
||||
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ExpandableLayout);
|
||||
duration = a.getInt(R.styleable.ExpandableLayout_el_duration, DEFAULT_DURATION);
|
||||
expansion = a.getBoolean(R.styleable.ExpandableLayout_el_expanded, false) ? 1 : 0;
|
||||
orientation = a.getInt(R.styleable.ExpandableLayout_android_orientation, VERTICAL);
|
||||
parallax = a.getFloat(R.styleable.ExpandableLayout_el_parallax, 1);
|
||||
TypedArray a = getContext().obtainStyledAttributes(attrs, net.cachapa.expandablelayout.R.styleable.ExpandableLayout);
|
||||
duration = a.getInt(net.cachapa.expandablelayout.R.styleable.ExpandableLayout_el_duration, DEFAULT_DURATION);
|
||||
expansion = a.getBoolean(net.cachapa.expandablelayout.R.styleable.ExpandableLayout_el_expanded, false) ? 1 : 0;
|
||||
orientation = a.getInt(net.cachapa.expandablelayout.R.styleable.ExpandableLayout_android_orientation, VERTICAL);
|
||||
parallax = a.getFloat(net.cachapa.expandablelayout.R.styleable.ExpandableLayout_el_parallax, 1);
|
||||
a.recycle();
|
||||
|
||||
state = expansion == 0 ? COLLAPSED : EXPANDED;
|
||||
|
||||
@@ -122,10 +122,10 @@ public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment implemen
|
||||
.map(DialogChooseArtsFromMtbColrListItemModel::getMtbColr)
|
||||
.toList();
|
||||
|
||||
if (selectedArts.isEmpty()) {
|
||||
if (this.onAbort != null) this.onAbort.run();
|
||||
return;
|
||||
}
|
||||
// if (selectedArts.isEmpty()) {
|
||||
// if (this.onAbort != null) this.onAbort.run();
|
||||
// return;
|
||||
// }
|
||||
|
||||
if (this.onConfirmed != null)
|
||||
this.onConfirmed.run(selectedArts);
|
||||
|
||||
@@ -217,15 +217,15 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
||||
switch (statoPartitaMag) {
|
||||
case SCADUTO:
|
||||
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
|
||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), R.color.warn_color)));
|
||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.warn_color)));
|
||||
break;
|
||||
case IN_SCADENZA:
|
||||
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_baseline_warning_24);
|
||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), R.color.error_color)));
|
||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.error_color)));
|
||||
break;
|
||||
default:
|
||||
this.mBindings.inputDataScadLayout.setEndIconDrawable(R.drawable.ic_check_white_24dp);
|
||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), R.color.success_color)));
|
||||
this.mBindings.inputDataScadLayout.setEndIconTintList(ColorStateList.valueOf(ContextCompat.getColor(requireContext(), com.tfb.fbtoast.R.color.success_color)));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ import androidx.fragment.app.DialogFragment;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogYesNoBinding;
|
||||
@@ -42,13 +41,13 @@ public class DialogYesNoView extends DialogFragment {
|
||||
var binding = DialogYesNoBinding.inflate(LayoutInflater.from(requireContext()));
|
||||
binding.executePendingBindings();
|
||||
|
||||
if(UtilityString.isNullOrEmpty(title)) {
|
||||
if (UtilityString.isNullOrEmpty(title)) {
|
||||
binding.titleText.setVisibility(View.GONE);
|
||||
binding.descriptionText.setTextAppearance(requireContext(), R.style.TextAppearance_Material3_BodyLarge);
|
||||
binding.descriptionText.setTextAppearance(requireContext(), com.google.android.material.R.style.TextAppearance_Material3_BodyLarge);
|
||||
} else {
|
||||
binding.titleText.setText(title);
|
||||
binding.titleText.setVisibility(View.VISIBLE);
|
||||
binding.descriptionText.setTextAppearance(requireContext(), R.style.TextAppearance_Material3_BodyMedium);
|
||||
binding.descriptionText.setTextAppearance(requireContext(), com.google.android.material.R.style.TextAppearance_Material3_BodyMedium);
|
||||
}
|
||||
|
||||
binding.descriptionText.setText(description);
|
||||
|
||||
@@ -85,7 +85,6 @@
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionNext"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:nextFocusForward="@id/filled_exposed_dropdown_vettore"
|
||||
android:singleLine="true"
|
||||
app:binding="@{view.codTcol}" />
|
||||
|
||||
|
||||
@@ -1,146 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzatoViewModel" />
|
||||
<variable
|
||||
name="view"
|
||||
type="it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzatoView" />
|
||||
|
||||
</data>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/title_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/TextViewMaterial.Dialog.HeadlineText"
|
||||
android:text="@string/dialog_vendita_filtro_avanzato"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginBottom="12dp"/>
|
||||
|
||||
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_num_ords"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/num_ords">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_num_ords"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="number|text"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
app:binding="@{view.numOrds}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_cod_jcoms"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/order_cod_jcoms">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_cod_jcoms"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="text"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
app:binding="@{view.codJcoms}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="24dp"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:layout_marginTop="8dp">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/buttons_guideline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.5"/>
|
||||
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/neutral_btn"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Button.PrimaryOutline"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/buttons_guideline"
|
||||
app:strokeColor="@color/colorPrimary"
|
||||
android:text="@string/reset"/>
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/positive_btn"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Button.PrimaryFull"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/buttons_guideline"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:text="@string/confirm"/>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
|
||||
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
|
||||
|
||||
</layout>
|
||||
@@ -1,314 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs.DialogVenditaFiltroAvanzatoViewModel" />
|
||||
|
||||
<variable
|
||||
name="view"
|
||||
type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs.DialogVenditaFiltroAvanzatoView" />
|
||||
|
||||
</data>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/title_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/TextViewMaterial.Dialog.HeadlineText"
|
||||
android:text="@string/dialog_vendita_filtro_avanzato"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginBottom="12dp"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_cod_mdep_new"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:imeOptions="actionNext"
|
||||
android:nextFocusDown="@id/input_id_viaggio"
|
||||
android:hint="@string/deposit">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_cod_mdep"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionNext"
|
||||
android:nextFocusDown="@id/input_id_viaggio"
|
||||
app:binding="@{view.deposito}" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_id_viaggio"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/travel_id">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_id_viaggio"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionNext"
|
||||
android:nextFocusForward="@id/filled_exposed_dropdown_num_ords"
|
||||
app:binding="@{view.idViaggio}" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_num_ords"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/num_ords">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_num_ords"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="number|text"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionNext"
|
||||
android:nextFocusForward="@id/filled_exposed_dropdown_cliente"
|
||||
app:binding="@{view.numOrds}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_cliente"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/customer">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_cliente"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionNext"
|
||||
android:nextFocusForward="@id/filled_exposed_dropdown_vettore"
|
||||
app:binding="@{view.cliente}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_vettore"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/carrier">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_vettore"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionNext"
|
||||
android:nextFocusForward="@id/filled_exposed_dropdown_automezzo"
|
||||
app:binding="@{view.vettore}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_automezzo"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/vehicle">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_automezzo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionNext"
|
||||
android:nextFocusForward="@id/filled_exposed_dropdown_paese"
|
||||
app:binding="@{view.automezzo}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_paese"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/city">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_paese"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionNext"
|
||||
android:nextFocusForward="@id/filled_exposed_dropdown_agente"
|
||||
app:binding="@{view.paese}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_agente"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/agent">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_agente"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionNext"
|
||||
android:nextFocusForward="@id/filled_exposed_dropdown_term_cons"
|
||||
app:binding="@{view.agente}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_data_cons"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/ship_date">
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/filled_exposed_dropdown_data_cons"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:focusable="false"
|
||||
android:singleLine="true"
|
||||
app:binding="@{view.dataConsegna}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/input_term_cons"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/terms_of_delivery">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||
android:id="@+id/filled_exposed_dropdown_term_cons"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionDone"
|
||||
app:binding="@{view.terminiConsegna}"/>
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="24dp"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:layout_marginTop="8dp">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/buttons_guideline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.5"/>
|
||||
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/neutral_btn"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Button.PrimaryOutline"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/buttons_guideline"
|
||||
app:strokeColor="@color/colorPrimary"
|
||||
android:text="@string/reset"/>
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/positive_btn"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Button.PrimaryFull"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/buttons_guideline"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:text="@string/confirm"/>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
|
||||
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
|
||||
|
||||
</layout>
|
||||
127
build.gradle
127
build.gradle
@@ -3,6 +3,7 @@
|
||||
buildscript {
|
||||
ext {
|
||||
kotlin_version = '1.8.0'
|
||||
agp_version = '8.1.0-alpha04'
|
||||
}
|
||||
|
||||
repositories {
|
||||
@@ -10,7 +11,7 @@ buildscript {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:7.4.1'
|
||||
classpath "com.android.tools.build:gradle:$agp_version"
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
classpath 'com.google.gms:google-services:4.3.15'
|
||||
|
||||
@@ -43,128 +44,4 @@ task clean(type: Delete) {
|
||||
delete rootProject.buildDir
|
||||
}
|
||||
|
||||
task buildBase() {
|
||||
doFirst {
|
||||
copy {
|
||||
from 'dynamic__base/src/main/java/it/integry'
|
||||
into 'app/src/main/java/it/integry'
|
||||
}
|
||||
}
|
||||
|
||||
dependsOn "app:build"
|
||||
|
||||
doLast {
|
||||
copy {
|
||||
from 'app/build/outputs/apk/release'
|
||||
into 'dist/release/_base'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task buildFrudis() {
|
||||
doFirst {
|
||||
copy {
|
||||
from 'dynamic_frudis/src/main/java/it/integry'
|
||||
into 'app/src/main/java/it/integry'
|
||||
}
|
||||
}
|
||||
|
||||
dependsOn "app:build"
|
||||
|
||||
doLast {
|
||||
copy {
|
||||
from 'app/build/outputs/apk/release'
|
||||
into 'dist/release/frudis'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task buildGramm() {
|
||||
doFirst {
|
||||
copy {
|
||||
from 'dynamic_gramm/src/main/java/it/integry'
|
||||
into 'app/src/main/java/it/integry'
|
||||
}
|
||||
}
|
||||
|
||||
dependsOn "app:build"
|
||||
|
||||
doLast {
|
||||
copy {
|
||||
from 'app/build/outputs/apk/release'
|
||||
into 'dist/release/gramm'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task buildIme() {
|
||||
doFirst {
|
||||
copy {
|
||||
from 'dynamic_ime/src/main/java/it/integry'
|
||||
into 'app/src/main/java/it/integry'
|
||||
}
|
||||
}
|
||||
|
||||
dependsOn "app:build"
|
||||
|
||||
doLast {
|
||||
copy {
|
||||
from 'app/build/outputs/apk/release'
|
||||
into 'dist/release/ime'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task buildSaporiVeriPV() {
|
||||
doFirst {
|
||||
copy {
|
||||
from 'dynamic_saporiveri_pv/src/main/java/it/integry'
|
||||
into 'app/src/main/java/it/integry'
|
||||
}
|
||||
}
|
||||
|
||||
dependsOn "app:build"
|
||||
|
||||
doLast {
|
||||
copy {
|
||||
from 'app/build/outputs/apk/release'
|
||||
into 'dist/release/saporiveri_pv'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task buildSaporiVeri() {
|
||||
doFirst {
|
||||
copy {
|
||||
from 'dynamic_saporiveri/src/main/java/it/integry'
|
||||
into 'app/src/main/java/it/integry'
|
||||
}
|
||||
}
|
||||
|
||||
dependsOn "app:build"
|
||||
|
||||
doLast {
|
||||
copy {
|
||||
from 'app/build/outputs/apk/release'
|
||||
into 'dist/release/saporiveri'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task buildVGAlimenti() {
|
||||
doFirst {
|
||||
copy {
|
||||
from 'dynamic_vgalimenti/src/main/java/it/integry'
|
||||
into 'app/src/main/java/it/integry'
|
||||
}
|
||||
}
|
||||
|
||||
dependsOn "app:build"
|
||||
|
||||
doLast {
|
||||
copy {
|
||||
from 'app/build/outputs/apk/release'
|
||||
into 'dist/release/vgalimenti'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
call build_azienda.bat _base
|
||||
call build_azienda.bat vgalimenti
|
||||
@@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
|
||||
SET nome_azienda=%1
|
||||
|
||||
XCOPY dynamic_%nome_azienda%\src\main\java\it\integry app\src\main\java\it\integry\ /E /Y
|
||||
CALL gradlew app:build --stacktrace
|
||||
|
||||
RMDIR app\src\main\java\it\integry\wms\ /S /Q
|
||||
|
||||
MKDIR dist
|
||||
MKDIR dist\release
|
||||
MKDIR dist\release\%nome_azienda%
|
||||
|
||||
MOVE app\build\outputs\apk\release\*.apk dist\release\%nome_azienda%\
|
||||
MOVE app\build\outputs\apk\release\*.txt dist\release\%nome_azienda%\
|
||||
1
dynamic__base/.gitignore
vendored
1
dynamic__base/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
/build
|
||||
@@ -1,26 +0,0 @@
|
||||
plugins {
|
||||
id 'com.android.dynamic-feature'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 33
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_11
|
||||
targetCompatibility JavaVersion.VERSION_11
|
||||
}
|
||||
lint {
|
||||
abortOnError false
|
||||
}
|
||||
namespace 'it.integry.wms.dynamic__base'
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
implementation project(':app')
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:dist="http://schemas.android.com/apk/distribution">
|
||||
|
||||
<dist:module
|
||||
dist:instant="false"
|
||||
dist:onDemand="false"
|
||||
dist:title="@string/title_dynamic__base">
|
||||
<dist:fusing dist:include="true" />
|
||||
</dist:module>
|
||||
</manifest>
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
package it.integry.wms.dynamic_customization;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.wms.dynamic_customization.extensions.CustomConfiguration;
|
||||
import it.integry.wms.dynamic_customization.extensions.FiltroOrdiniVendita;
|
||||
import it.integry.wms.dynamic_customization.extensions.OrdiniVendita;
|
||||
|
||||
public class DynamicContext {
|
||||
|
||||
public void init(Context context) {
|
||||
Log.d("DynamicContext", "Caricamento personalizzazioni per Azienda BASE");
|
||||
|
||||
try {
|
||||
ClassRouter.registerPath(ClassRouter.PATH.FILTRO_ORDINI_VENDITA, FiltroOrdiniVendita.class);
|
||||
ClassRouter.registerPath(ClassRouter.PATH.ORDINI_VENDITA, OrdiniVendita.class);
|
||||
ClassRouter.registerPath(ClassRouter.PATH.CUSTOM_CONFIGURATION, CustomConfiguration.class);
|
||||
} catch (Exception ex) {
|
||||
UtilityExceptions.defaultException(context, ex);
|
||||
}
|
||||
|
||||
Log.d("DynamicContext", "Caricamento personalizzazioni per Azienda BASE COMPLETATO");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package it.integry.wms.dynamic_customization.extensions;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
||||
|
||||
public class CustomConfiguration extends BaseCustomConfiguration implements ICustomConfiguration {
|
||||
|
||||
public CustomConfiguration() {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package it.integry.wms.dynamic_customization.extensions;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.IFiltroOrdiniVendita;
|
||||
|
||||
public class FiltroOrdiniVendita implements IFiltroOrdiniVendita {
|
||||
|
||||
@Override
|
||||
public boolean shoudShowCodMdepFilter() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shoudShowIdViaggioFilter() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shoudShowAgenteFilter() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package it.integry.wms.dynamic_customization.extensions;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.OrdiniVenditaInterface;
|
||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||
|
||||
public class OrdiniVendita implements OrdiniVenditaInterface {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isTrasfOrder(List<OrdineUscitaInevasoDTO> testateOrdini) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
1
dynamic_vgalimenti/.gitignore
vendored
1
dynamic_vgalimenti/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
/build
|
||||
Binary file not shown.
@@ -1,23 +0,0 @@
|
||||
plugins {
|
||||
id 'com.android.dynamic-feature'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 31
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_11
|
||||
targetCompatibility JavaVersion.VERSION_11
|
||||
}
|
||||
namespace 'it.integry.wms.dynamic_customization'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
implementation project(':app')
|
||||
|
||||
implementation 'androidx.appcompat:appcompat:1.6.0'
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:dist="http://schemas.android.com/apk/distribution">
|
||||
|
||||
<dist:module
|
||||
dist:instant="false"
|
||||
dist:onDemand="false"
|
||||
dist:title="@string/title_dynamic_vgalimenti">
|
||||
<dist:fusing dist:include="true" />
|
||||
</dist:module>
|
||||
</manifest>
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
package it.integry.wms.dynamic_customization;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.wms.dynamic_customization.extensions.CustomConfiguration;
|
||||
import it.integry.wms.dynamic_customization.extensions.FiltroOrdiniVendita;
|
||||
import it.integry.wms.dynamic_customization.extensions.OrdiniVendita;
|
||||
|
||||
public class DynamicContext {
|
||||
|
||||
public void init(Context context) {
|
||||
Log.d("DynamicContext", "Caricamento personalizzazioni per VGAlimenti");
|
||||
|
||||
try {
|
||||
ClassRouter.registerPath(ClassRouter.PATH.FILTRO_ORDINI_VENDITA, FiltroOrdiniVendita.class);
|
||||
ClassRouter.registerPath(ClassRouter.PATH.ORDINI_VENDITA, OrdiniVendita.class);
|
||||
ClassRouter.registerPath(ClassRouter.PATH.CUSTOM_CONFIGURATION, CustomConfiguration.class);
|
||||
} catch (Exception ex) {
|
||||
UtilityExceptions.defaultException(context, ex);
|
||||
}
|
||||
|
||||
Log.d("DynamicContext", "Caricamento personalizzazioni per VGAlimenti COMPLETATO");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package it.integry.wms.dynamic_customization.extensions;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
||||
|
||||
public class CustomConfiguration extends BaseCustomConfiguration implements ICustomConfiguration {
|
||||
|
||||
public CustomConfiguration() {
|
||||
configurations.put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, false);
|
||||
configurations.put(Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC, true);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package it.integry.wms.dynamic_customization.extensions;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.IFiltroOrdiniVendita;
|
||||
|
||||
public class FiltroOrdiniVendita implements IFiltroOrdiniVendita {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean shoudShowCodMdepFilter() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shoudShowIdViaggioFilter() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shoudShowAgenteFilter() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package it.integry.wms.dynamic_customization.extensions;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.OrdiniVenditaInterface;
|
||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
|
||||
public class OrdiniVendita implements OrdiniVenditaInterface {
|
||||
|
||||
@Override
|
||||
public boolean isTrasfOrder(List<OrdineUscitaInevasoDTO> testateOrdini) {
|
||||
// Se il deposito del collo è diverso dal deposito dell'utente allora sto "evadendo"
|
||||
// la merce per una vendita presente su un altro deposito
|
||||
|
||||
String codMdepOrder = testateOrdini.get(0).getCodMdep();
|
||||
return !UtilityString.isNullOrEmpty(codMdepOrder) &&
|
||||
!codMdepOrder.equalsIgnoreCase(SettingsManager.i().getUserSession().getDepo().getCodMdep());
|
||||
}
|
||||
}
|
||||
6
gradle/wrapper/gradle-wrapper.properties
vendored
6
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
||||
#Wed Oct 14 10:44:19 CEST 2020
|
||||
#Mon Feb 13 15:14:43 CET 2023
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
include ':app', ':pointmobilescannerlibrary', ':dynamic_vgalimenti', ':dynamic__base', ':zebrascannerlibrary', ':honeywellsdk', ':honeywellscannerlibrary', ':keyobardemulatorscannerlibrary', ':barcode_base_android_library'
|
||||
include ':app', ':pointmobilescannerlibrary', ':zebrascannerlibrary', ':honeywellsdk', ':honeywellscannerlibrary', ':keyobardemulatorscannerlibrary', ':barcode_base_android_library'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user