From 1d291e44207e60eef5313cb441c00c46abd3e0fc Mon Sep 17 00:00:00 2001 From: Giuseppe Scorrano Date: Fri, 30 Mar 2018 12:36:59 +0200 Subject: [PATCH] Aggiornato Gradle --- .idea/caches/build_file_checksums.ser | Bin 0 -> 541 bytes .idea/codeStyles/Project.xml | 29 ++ app/build.gradle | 30 +- .../integrywmsnative/MainActivity.java | 10 +- .../consumers/ColliMagazzinoRESTConsumer.java | 14 + .../REST/consumers/EntityRESTConsumer.java | 59 +++ .../consumers/EntityRESTConsumerService.java | 15 + .../consumers/ISimpleOperationCallback.java | 9 + .../core/exception/ExceptionsHandler.java | 382 ++++++++++++++++++ .../core/model/CommonModelConsts.java | 14 + .../core/model/EntityBase.java | 26 ++ .../integrywmsnative/core/model/MtbColt.java | 325 ++++++++++++++- .../core/model/secondary/GestioneEnum.java | 24 ++ .../core/settings/SettingsModel.java | 8 + .../core/utility/UtilityDimension.java | 19 + .../AccettazioneOrdineInevasoActivity.java | 49 ++- .../views/NoteAggiuntiveNuovaULDialog.java | 63 +++ app/src/main/res/layout/content_main.xml | 8 +- app/src/main/res/values-it/strings.xml | 3 + app/src/main/res/values/strings.xml | 3 + build.gradle | 11 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 22 files changed, 1077 insertions(+), 28 deletions(-) create mode 100644 .idea/caches/build_file_checksums.ser create mode 100644 .idea/codeStyles/Project.xml create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumerService.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ISimpleOperationCallback.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/exception/ExceptionsHandler.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/model/CommonModelConsts.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/model/EntityBase.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/model/secondary/GestioneEnum.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDimension.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/views/NoteAggiuntiveNuovaULDialog.java diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser new file mode 100644 index 0000000000000000000000000000000000000000..d69cfe29c9c8bf12b8347a0cafe37aab1a5b50df GIT binary patch literal 541 zcmZ4UmVvdnh`~NNKUXg?FQq6yGexf?KR>5fFEb@IQ7^qHF(oHeub?PDD>b=9F91S2 zm1gFoxMk*~I%lLNXBU^|7Q2L-Ts|(GuF1r} zK_Ic9ASMaqbf~vVix`-qoz{F7|G~x)@_>nf0c16Ufc9Lr{NKgmN0|=(*LTSNCnFXQnJ*EnyJE + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index f0711ee2..7d7e3264 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 25 - buildToolsVersion "27.0.0" + buildToolsVersion '27.0.3' defaultConfig { applicationId "it.integry.integrywmsnative" minSdkVersion 21 @@ -20,25 +20,25 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + implementation fileTree(dir: 'libs', include: ['*.jar']) + androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'com.android.support:appcompat-v7:25.3.1' - compile 'com.android.support:support-v4:25.3.1' - compile 'com.android.support:design:25.3.1' - compile 'com.android.support.constraint:constraint-layout:1.0.2' - compile 'com.android.support:cardview-v7:25.3.1' - compile 'com.android.support:recyclerview-v7:25.3.1' + implementation 'com.android.support:appcompat-v7:25.4.0' + implementation 'com.android.support:support-v4:25.4.0' + implementation 'com.android.support:design:25.4.0' + implementation 'com.android.support.constraint:constraint-layout:1.0.2' + implementation 'com.android.support:cardview-v7:25.4.0' + implementation 'com.android.support:recyclerview-v7:25.4.0' - compile 'com.squareup.retrofit2:retrofit:2.3.0' - compile 'com.squareup.retrofit2:converter-gson:2.0.0' + implementation 'com.squareup.retrofit2:retrofit:2.3.0' + implementation 'com.squareup.retrofit2:converter-gson:2.0.0' - compile 'com.jakewharton:butterknife:8.8.1' + implementation 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' - //compile 'com.getbase:floatingactionbutton:1.10.1' - compile 'com.github.clans:fab:1.6.4' + //implementation 'com.getbase:floatingactionbutton:1.10.1' + implementation 'com.github.clans:fab:1.6.4' - testCompile 'junit:junit:4.12' + testImplementation 'junit:junit:4.12' } diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index 1131dda7..594bdb8b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -1,16 +1,11 @@ package it.integry.integrywmsnative; -import android.graphics.Color; -import android.graphics.ColorMatrixColorFilter; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.support.annotation.ColorRes; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.design.widget.NavigationView; -import android.support.v4.content.ContextCompat; -import android.support.v4.graphics.drawable.DrawableCompat; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; @@ -23,8 +18,11 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; +import org.xml.sax.ErrorHandler; + import butterknife.BindView; import butterknife.ButterKnife; +import it.integry.integrywmsnative.core.exception.ExceptionsHandler; import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment; import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ITitledFragment; @@ -38,6 +36,8 @@ public class MainActivity extends AppCompatActivity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); +// ExceptionsHandler.toCatch(this); + setContentView(R.layout.activity_main); ButterKnife.bind(this); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java new file mode 100644 index 00000000..84614701 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ColliMagazzinoRESTConsumer.java @@ -0,0 +1,14 @@ +package it.integry.integrywmsnative.core.REST.consumers; + +import it.integry.integrywmsnative.core.model.MtbColt; + +public class ColliMagazzinoRESTConsumer { + + + public static void saveCollo(MtbColt mtbColtToSave, final ISimpleOperationCallback callback){ + + EntityRESTConsumer.processEntity(mtbColtToSave, callback, MtbColt.class); + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java new file mode 100644 index 00000000..4f0f3ed0 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java @@ -0,0 +1,59 @@ +package it.integry.integrywmsnative.core.REST.consumers; + +import android.util.Log; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; + +import it.integry.integrywmsnative.core.REST.RESTBuilder; +import it.integry.integrywmsnative.core.REST.model.EsitoType; +import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.model.EntityBase; +import it.integry.integrywmsnative.core.model.MtbColt; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public class EntityRESTConsumer { + + public static void processEntity(T entityToSave, final ISimpleOperationCallback callback, final Type clazzType){ + + EntityRESTConsumerService service = RESTBuilder.getService(EntityRESTConsumerService.class); + Call> request = service.processEntity(entityToSave); + request.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if(response.isSuccessful()) { + + if(response.body() != null) { + if(response.body().getEsito() == EsitoType.OK) { + Gson gson = new Gson(); + //Type fooType = new TypeToken() {}.getType(); + String json = gson.toJson(response.body().getEntity()); + callback.onSuccess((T) gson.fromJson(json, clazzType)); + } else { + Log.e("EntityRESTConsumer", response.body().getErrorMessage()); + callback.onFailed(new Exception(response.message())); + } + } else { + Log.e("EntityRESTConsumer", response.message()); + callback.onFailed(new Exception(response.message())); + } + } else { + Log.e("EntityRESTConsumer", "Status " + response.code() + ": " + response.message()); + callback.onFailed(new Exception("Status " + response.code() + ": " + response.message())); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + Log.e("EntityRESTConsumer", t.toString()); + callback.onFailed(new Exception(t)); + } + }); + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumerService.java new file mode 100644 index 00000000..d388fb60 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumerService.java @@ -0,0 +1,15 @@ +package it.integry.integrywmsnative.core.REST.consumers; + + +import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.model.EntityBase; +import retrofit2.Call; +import retrofit2.http.Body; +import retrofit2.http.POST; + +public interface EntityRESTConsumerService { + + @POST("processEntity") + Call> processEntity(@Body Object entity); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ISimpleOperationCallback.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ISimpleOperationCallback.java new file mode 100644 index 00000000..3c61004f --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/ISimpleOperationCallback.java @@ -0,0 +1,9 @@ +package it.integry.integrywmsnative.core.REST.consumers; + +public interface ISimpleOperationCallback { + + void onSuccess(T value); + + void onFailed(Exception ex ); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/exception/ExceptionsHandler.java b/app/src/main/java/it/integry/integrywmsnative/core/exception/ExceptionsHandler.java new file mode 100644 index 00000000..c87d9a82 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/exception/ExceptionsHandler.java @@ -0,0 +1,382 @@ +package it.integry.integrywmsnative.core.exception; + +import android.app.Activity; +import android.app.ActivityManager; +import android.app.ApplicationErrorReport; +import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.os.Build; +import android.os.Debug; +import android.support.annotation.NonNull; +import android.util.Log; + +import java.io.PrintWriter; +import java.io.StringWriter; + +public class ExceptionsHandler implements Thread.UncaughtExceptionHandler{ + + + private ExceptionsHandler(Activity activity){ + + mPackageName = getPackageName(activity); + } + + + + public static ExceptionsHandler getINSTANCE(Activity activity){ + + if (mExceptionsHandler == null){ + + mExceptionsHandler = new ExceptionsHandler(activity); + } + + return mExceptionsHandler; + } + + + private static String getPackageName(Context pContext){ + + String packageName = ""; + + try{ + + ActivityManager activityManager = (ActivityManager) pContext + .getSystemService(Context.ACTIVITY_SERVICE); + + if (Build.VERSION.SDK_INT > 20){ + + packageName = activityManager.getRunningAppProcesses().get(0).processName; + }else{ + + // + packageName = activityManager.getRunningTasks(1).get(0).topActivity + .getPackageName(); + } + + // There is a limit to the tag length of 23. + packageName = packageName + .substring(0, packageName.length() > 22 ? 22 : packageName.length()); + + }catch (Exception ex){ + } + + if (packageName.isEmpty()){ + packageName = pContext.getPackageName(); + } + + return packageName; + } + + + + + public static void toCatch(Activity activity){ + + Thread.setDefaultUncaughtExceptionHandler(getINSTANCE(activity)); + } + + + + + + + + public static void logError(String message){ + + if (message.isEmpty()){ + + return; + } + + logError(new Throwable(message.trim())); + } + + + + + public static void logError(Throwable exception){ + + try{ + + logCrash(exception); + + }catch (Exception e){ + + Log.e(mPackageName, e.getMessage()); + } + } + + + + // Return the last error message + public static String getErrorMessage(){ + + return mErrorMessage; + } + + + + + public static void setErrorMessage(String errMsg){ + + mErrorMessage = errMsg; + } + + + + // Return the last crash information + public static ApplicationErrorReport.CrashInfo crashInfo(){ + + return mCrashInfo; + } + + + + + private static String getAppLabel(Context pContext){ + + PackageManager lPackageManager = pContext.getPackageManager(); + + ApplicationInfo lApplicationInfo = null; + + try{ + + lApplicationInfo = lPackageManager + .getApplicationInfo(pContext.getApplicationInfo().packageName, 0); + + }catch (final PackageManager.NameNotFoundException e){ + } + + return (String) (lApplicationInfo != null ? lPackageManager + .getApplicationLabel(lApplicationInfo) : "Unknown"); + } + + + + public static boolean inDebugger(){ + + // If in Debugger Environment + boolean debugging = Debug.isDebuggerConnected(); + + return debugging; + } + + + @NonNull + private static String errorMsg(Throwable exception, String exceptError){ + + if (!exceptError.contains("error")){ + + mReportBuilder.append(reportError(exception)); + } + + if (!exceptError.contains("callstack")){ + + mReportBuilder.append(reportCallStack(exception)); + } + + if (!exceptError.contains("deviceinfo")){ + + mReportBuilder.append(reportDeviceInfo()); + } + + if (!exceptError.contains("firmware")){ + + mReportBuilder.append(reportFirmware()); + } + + return mReportBuilder.toString(); + } + + + + + private static String reportError(Throwable exception){ + + mCrashInfo = new ApplicationErrorReport.CrashInfo(exception); + + if (mCrashInfo.exceptionMessage == null){ + + mErrorMessage = ""; + }else{ + + mErrorMessage = mCrashInfo.exceptionMessage + .replace(": " + mCrashInfo.exceptionClassName, ""); + } + + String throwFile = mCrashInfo.throwFileName == null ? "" + : mCrashInfo.throwFileName; + + return "\n************ " + mCrashInfo.exceptionClassName + " ************\n" + + mErrorMessage + LINE_SEPARATOR + + "\n File: " + throwFile + + "\n Method: " + mCrashInfo.throwMethodName + "()" + + "\n Line No.: " + Integer.toString(mCrashInfo.throwLineNumber) + + LINE_SEPARATOR; + // + "Class: " + crashInfo.throwClassName + LINE_SEPARATOR + } + + + + + private static String reportCallStack(Throwable exception){ + + StringWriter stackTrace = new StringWriter(); + + exception.printStackTrace(new PrintWriter(stackTrace)); + + String callStack = stackTrace.toString(); + + String errMsg = exception.toString(); + + return "\n************ CALLSTACK ************\n" + + callStack.replace(errMsg, "") + + LINE_SEPARATOR; + } + + + + + private static String reportDeviceInfo(){ + + return "\n************ DEVICE INFORMATION ***********\n" + + "Brand: " + + Build.BRAND + + LINE_SEPARATOR + + "Device: " + + Build.DEVICE + + LINE_SEPARATOR + + "Model: " + + Build.MODEL + + LINE_SEPARATOR + + "Id: " + + Build.ID + + LINE_SEPARATOR + + "Product: " + + Build.PRODUCT + + LINE_SEPARATOR; + } + + + + + private static String reportFirmware(){ + + return "\n************ FIRMWARE ************\n" + + "SDK: " + + Build.VERSION.SDK_INT + + LINE_SEPARATOR + + "Release: " + + Build.VERSION.RELEASE + + LINE_SEPARATOR + + "Incremental: " + + Build.VERSION.INCREMENTAL + + LINE_SEPARATOR; + } + + + + + // Empty the report as it is begin re-populated. + private static void reportEmptied(){ + + // No need to empty + if (mReportBuilder.length() == 0){ + + return; + } + + mReportBuilder.setLength(0); + + mReportBuilder.trimToSize(); + } + + + + + @Override + public void uncaughtException(Thread thread, Throwable exception){ + + // Don't re-enter -- avoid infinite loops if crash-reporting crashes. + if (mCrashing) return; + + mCrashing = true; + + catchException(thread, exception); + + defaultExceptionHandler(thread, exception); + } + + + + + public String catchException(Thread thread, Throwable exception){ + + String errorMsg = ""; + + try{ + + errorMsg = logCrash(exception); + + }catch (Exception ex){ + + Log.e(mPackageName, ex.getMessage()); + } + + return errorMsg; + } + + + + + public static void defaultExceptionHandler(Thread thread, Throwable exception){ + + try{ + + // Execute the old handler. + if (mOldHandler != null){ + + mOldHandler.uncaughtException(thread, exception); + } + + }catch (Exception ex){ + + Log.e(mPackageName, ex.getMessage()); + } + } + + + + + public static String logCrash(Throwable exception){ + + return errorMsg(exception, "deviceinfo firmware"); + } + + + + + public void onDestroy(){ + + mExceptionsHandler = null; + } + + // Prevents infinite loops. + private static volatile boolean mCrashing = false; + + private static final StringBuilder mReportBuilder = new StringBuilder(); + + private static final String LINE_SEPARATOR = "\n"; + + private static final Thread.UncaughtExceptionHandler mOldHandler = Thread + .getDefaultUncaughtExceptionHandler(); + + private static ExceptionsHandler mExceptionsHandler; + + private static String mPackageName; + + private static ApplicationErrorReport.CrashInfo mCrashInfo; + + private static String mErrorMessage = ""; +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/CommonModelConsts.java b/app/src/main/java/it/integry/integrywmsnative/core/model/CommonModelConsts.java new file mode 100644 index 00000000..28e80be5 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/CommonModelConsts.java @@ -0,0 +1,14 @@ +package it.integry.integrywmsnative.core.model; + +public class CommonModelConsts { + + public static class OPERATION { + public static String INSERT_OR_UPDATE = "INSERT_OR_UPDATE"; + public static String INSERT = "INSERT"; + public static String UPDATE = "UPDATE"; + public static String SELECT = "SELECT"; + public static String SELECT_OBJECT = "SELECT_OBJECT"; + public static String SUBSTITUTE = "SUBSTITUTE"; + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/EntityBase.java b/app/src/main/java/it/integry/integrywmsnative/core/model/EntityBase.java new file mode 100644 index 00000000..3dc36fb4 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/EntityBase.java @@ -0,0 +1,26 @@ +package it.integry.integrywmsnative.core.model; + +public abstract class EntityBase { + + public String operation; + public String type; + public boolean onlyPkMaster = false; + + public String getOperation() { + return operation; + } + + public EntityBase setOperation(String operation) { + this.operation = operation; + return this; + } + + public boolean isOnlyPkMaster() { + return onlyPkMaster; + } + + public EntityBase setOnlyPkMaster(boolean onlyPkMaster) { + this.onlyPkMaster = onlyPkMaster; + return this; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java index 14a131fd..63cbc049 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java @@ -1,13 +1,16 @@ package it.integry.integrywmsnative.core.model; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.Date; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; + /** * Created by GiuseppeS on 06/03/2018. */ -public class MtbColt { +public class MtbColt extends EntityBase{ private String gestione; private String dataCollo; private String serCollo; @@ -41,5 +44,323 @@ public class MtbColt { private BigDecimal lunghezzaCm; private BigDecimal larghezzaCm; private BigDecimal altezzaCm; - + + public MtbColt(){ + type = "mtb_colt"; + } + + + public String getGestione() { + return gestione; + } + + public MtbColt setGestione(String gestione) { + this.gestione = gestione; + return this; + } + + public MtbColt setGestione(GestioneEnum gestione) { + this.gestione = gestione.getText(); + return this; + } + + public String getDataCollo() { + return dataCollo; + } + + public MtbColt setDataCollo(String dataCollo) { + this.dataCollo = dataCollo; + return this; + } + + public MtbColt setDataCollo(Date dataCollo) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + this.dataCollo = sdf.format(dataCollo); + return this; + } + + public String getSerCollo() { + return serCollo; + } + + public MtbColt setSerCollo(String serCollo) { + this.serCollo = serCollo; + return this; + } + + public Integer getNumCollo() { + return numCollo; + } + + public MtbColt setNumCollo(Integer numCollo) { + this.numCollo = numCollo; + return this; + } + + public String getRifOrd() { + return rifOrd; + } + + public MtbColt setRifOrd(String rifOrd) { + this.rifOrd = rifOrd; + return this; + } + + public String getCodAnag() { + return codAnag; + } + + public MtbColt setCodAnag(String codAnag) { + this.codAnag = codAnag; + return this; + } + + public String getCodVdes() { + return codVdes; + } + + public MtbColt setCodVdes(String codVdes) { + this.codVdes = codVdes; + return this; + } + + public String getCodMdep() { + return codMdep; + } + + public MtbColt setCodMdep(String codMdep) { + this.codMdep = codMdep; + return this; + } + + public String getCodVlis() { + return codVlis; + } + + public MtbColt setCodVlis(String codVlis) { + this.codVlis = codVlis; + return this; + } + + public String getCodDtip() { + return codDtip; + } + + public MtbColt setCodDtip(String codDtip) { + this.codDtip = codDtip; + return this; + } + + public String getCodTcol() { + return codTcol; + } + + public MtbColt setCodTcol(String codTcol) { + this.codTcol = codTcol; + return this; + } + + public String getSerDoc() { + return serDoc; + } + + public MtbColt setSerDoc(String serDoc) { + this.serDoc = serDoc; + return this; + } + + public String getFiltroOrdini() { + return filtroOrdini; + } + + public MtbColt setFiltroOrdini(String filtroOrdini) { + this.filtroOrdini = filtroOrdini; + return this; + } + + public String getPreparatoDa() { + return preparatoDa; + } + + public MtbColt setPreparatoDa(String preparatoDa) { + this.preparatoDa = preparatoDa; + return this; + } + + public String getAnnotazioni() { + return annotazioni; + } + + public MtbColt setAnnotazioni(String annotazioni) { + this.annotazioni = annotazioni; + return this; + } + + public String getPosizione() { + return posizione; + } + + public MtbColt setPosizione(String posizione) { + this.posizione = posizione; + return this; + } + + public String getCodDtipProvv() { + return codDtipProvv; + } + + public MtbColt setCodDtipProvv(String codDtipProvv) { + this.codDtipProvv = codDtipProvv; + return this; + } + + public String getSerDocProvv() { + return serDocProvv; + } + + public MtbColt setSerDocProvv(String serDocProvv) { + this.serDocProvv = serDocProvv; + return this; + } + + public String getCodJfas() { + return codJfas; + } + + public MtbColt setCodJfas(String codJfas) { + this.codJfas = codJfas; + return this; + } + + public String getDataOrd() { + return dataOrd; + } + + public MtbColt setDataOrd(String dataOrd) { + this.dataOrd = dataOrd; + return this; + } + + public String getDataDoc() { + return dataDoc; + } + + public MtbColt setDataDoc(String dataDoc) { + this.dataDoc = dataDoc; + return this; + } + + public String getOraInizPrep() { + return oraInizPrep; + } + + public MtbColt setOraInizPrep(String oraInizPrep) { + this.oraInizPrep = oraInizPrep; + return this; + } + + public MtbColt setOraInizPrep(Date oraInizPrep) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + this.oraInizPrep = sdf.format(oraInizPrep); + return this; + } + + public String getOraFinePrep() { + return oraFinePrep; + } + + public MtbColt setOraFinePrep(String oraFinePrep) { + this.oraFinePrep = oraFinePrep; + return this; + } + + public String getDataDocProvv() { + return dataDocProvv; + } + + public MtbColt setDataDocProvv(String dataDocProvv) { + this.dataDocProvv = dataDocProvv; + return this; + } + + public String getDataVers() { + return dataVers; + } + + public MtbColt setDataVers(String dataVers) { + this.dataVers = dataVers; + return this; + } + + public Integer getSegno() { + return segno; + } + + public MtbColt setSegno(Integer segno) { + this.segno = segno; + return this; + } + + public Integer getNumOrd() { + return numOrd; + } + + public MtbColt setNumOrd(Integer numOrd) { + this.numOrd = numOrd; + return this; + } + + public Integer getNumDoc() { + return numDoc; + } + + public MtbColt setNumDoc(Integer numDoc) { + this.numDoc = numDoc; + return this; + } + + public Integer getNumDocProvv() { + return numDocProvv; + } + + public MtbColt setNumDocProvv(Integer numDocProvv) { + this.numDocProvv = numDocProvv; + return this; + } + + public BigDecimal getPesoKg() { + return pesoKg; + } + + public MtbColt setPesoKg(BigDecimal pesoKg) { + this.pesoKg = pesoKg; + return this; + } + + public BigDecimal getLunghezzaCm() { + return lunghezzaCm; + } + + public MtbColt setLunghezzaCm(BigDecimal lunghezzaCm) { + this.lunghezzaCm = lunghezzaCm; + return this; + } + + public BigDecimal getLarghezzaCm() { + return larghezzaCm; + } + + public MtbColt setLarghezzaCm(BigDecimal larghezzaCm) { + this.larghezzaCm = larghezzaCm; + return this; + } + + public BigDecimal getAltezzaCm() { + return altezzaCm; + } + + public MtbColt setAltezzaCm(BigDecimal altezzaCm) { + this.altezzaCm = altezzaCm; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/GestioneEnum.java b/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/GestioneEnum.java new file mode 100644 index 00000000..42e804eb --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/GestioneEnum.java @@ -0,0 +1,24 @@ +package it.integry.integrywmsnative.core.model.secondary; + +public enum GestioneEnum { + + ACQUISTO("A"), + LAVORAZIONE("L"), + VENDITA("V"); + + private String text; + GestioneEnum(String text) { + this.text = text; + } + public String getText() { + return this.text; + } + + public static GestioneEnum fromString(String text) { + for (GestioneEnum b : GestioneEnum.values()) { + if (b.text.equalsIgnoreCase(text)) return b; + } + return null; + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java new file mode 100644 index 00000000..9e56beab --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsModel.java @@ -0,0 +1,8 @@ +package it.integry.integrywmsnative.core.settings; + +public class SettingsModel { + + public static String currentUserCodMdep = "01"; + public static String currentUsername = "Magazzino"; + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDimension.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDimension.java new file mode 100644 index 00000000..c2004065 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityDimension.java @@ -0,0 +1,19 @@ +package it.integry.integrywmsnative.core.utility; + +import android.content.Context; +import android.content.res.Resources; +import android.util.TypedValue; + +public class UtilityDimension { + + public static int convertSizeToDP(Context mContext, int size){ + Resources r = mContext.getResources(); + return (int) TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, + size, + r.getDisplayMetrics() + ); + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java index e2e61ea6..48c1312e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/AccettazioneOrdineInevasoActivity.java @@ -1,7 +1,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso; +import android.content.Context; import android.content.DialogInterface; -import android.support.design.widget.Snackbar; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; @@ -17,16 +17,25 @@ import com.github.clans.fab.FloatingActionButton; import com.github.clans.fab.FloatingActionMenu; import java.util.ArrayList; +import java.util.Date; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.REST.CommonRESTException; +import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; +import it.integry.integrywmsnative.core.model.CommonModelConsts; +import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; +import it.integry.integrywmsnative.core.settings.SettingsModel; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO; import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.AccettazioneOrdineInevasoHelper; import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.MainListOrdineAccettazioneAdapter; import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy; +import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.views.NoteAggiuntiveNuovaULDialog; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; public class AccettazioneOrdineInevasoActivity extends AppCompatActivity { @@ -50,6 +59,9 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity { private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR; + + private Context mContext = this; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -184,7 +196,40 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity { fab.close(true); -// Snackbar.make(AccettazioneOrdineInevasoActivity.this, "Creato nuovo collo", 3000).show(); + NoteAggiuntiveNuovaULDialog.show(this, new NoteAggiuntiveNuovaULDialog.Callback() { + @Override + public void onSuccess(String noteString) { + + MtbColt mtbColt = new MtbColt(); + mtbColt .setDataCollo(new Date()) + .setGestione(GestioneEnum.ACQUISTO) + .setCodMdep(SettingsModel.currentUserCodMdep) + .setPreparatoDa(SettingsModel.currentUsername) + .setOraInizPrep(new Date()) + .setAnnotazioni(noteString) + .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + + + + + ColliMagazzinoRESTConsumer.saveCollo(mtbColt, new ISimpleOperationCallback() { + @Override + public void onSuccess(MtbColt value) { + DialogSimpleMessageHelper.makeInfoDialog(mContext, "Salvataggio", "Salvataggio collo avvenuto con successo\nNumero collo: " + value.getNumCollo(), null).show(); + } + + @Override + public void onFailed(Exception ex) { + String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex); + + if(errorMessage == null) errorMessage = ex.getMessage(); + DialogSimpleMessageHelper.makeErrorDialog(mContext, errorMessage, null).show(); + } + }); + + } + }); + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/views/NoteAggiuntiveNuovaULDialog.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/views/NoteAggiuntiveNuovaULDialog.java new file mode 100644 index 00000000..67fa62f3 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/views/NoteAggiuntiveNuovaULDialog.java @@ -0,0 +1,63 @@ +package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.views; + +import android.app.ActionBar; +import android.content.Context; +import android.content.DialogInterface; +import android.support.design.widget.TextInputEditText; +import android.support.v7.app.AlertDialog; +import android.view.ViewGroup; +import android.widget.RelativeLayout; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.utility.UtilityDimension; + +public class NoteAggiuntiveNuovaULDialog { + + public interface Callback { + void onSuccess(String noteString); + } + + + public static void show(Context mContext, final Callback callback){ + + RelativeLayout relativeLayout = new RelativeLayout(mContext); + + relativeLayout.setLayoutParams( + new RelativeLayout.LayoutParams( + RelativeLayout.LayoutParams.MATCH_PARENT, + RelativeLayout.LayoutParams.MATCH_PARENT)); + + relativeLayout.setPadding(UtilityDimension.convertSizeToDP(mContext, 22), + UtilityDimension.convertSizeToDP(mContext, 8), + UtilityDimension.convertSizeToDP(mContext, 24), + 0); + + final TextInputEditText mTextInputEditText = new TextInputEditText(mContext); + mTextInputEditText.setHint(R.string.hint_additional_notes); + + ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT); + + mTextInputEditText.setLayoutParams(layoutParams); + + relativeLayout.addView(mTextInputEditText); + + AlertDialog dialog = new AlertDialog.Builder(mContext) + .setTitle(mContext.getText(R.string.action_create_ul)) + .setMessage(R.string.dialog_message_additional_notes) + + .setView(relativeLayout) + + .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + callback.onSuccess(mTextInputEditText.getText().toString()); + } + }) + .setNegativeButton(R.string.abort, null) + .create(); + dialog.show(); + } + +} diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index dadc681c..4601ffe4 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -11,6 +11,12 @@ + android:layout_height="match_parent" > + + + diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 00478a0f..70b4b36f 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -20,4 +20,7 @@ Ordina Crea nuova UL Mostra UL giĆ  create + Conferma + Note Aggiuntive + Inserisci eventuali note aggiuntive della tua UL \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 410453ef..04b0103a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -27,5 +27,8 @@ Order Create new LU Show already created UL + Confirm + Additional notes + Enter any additional notes in your logistics unit diff --git a/build.gradle b/build.gradle index a47fa4bb..e9645bb7 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,14 @@ buildscript { repositories { jcenter() + maven { + url 'https://maven.google.com/' + name 'Google' + } + google() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:3.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -15,6 +20,10 @@ buildscript { allprojects { repositories { jcenter() + maven { + url 'https://maven.google.com/' + name 'Google' + } } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c9881c15..53116a02 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Feb 19 12:16:03 CET 2018 +#Thu Mar 29 10:39:25 CEST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip