Implementazioni varie

This commit is contained in:
2018-11-08 17:25:04 +01:00
parent 0e81cc3371
commit 90dbe35bd0
81 changed files with 3284 additions and 216 deletions

View File

@@ -12,6 +12,7 @@ import com.orhanobut.logger.Logger;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.settings.Stash;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
@@ -30,6 +31,7 @@ public class MainApplication extends Application {
SettingsManager.init(this);
ServerStatusChecker.init();
// UtilityExceptions.init(this);
UtilityResources.init(this);
Logger.addLogAdapter(new AndroidLogAdapter());

View File

@@ -25,6 +25,8 @@ public class CommonRESTException {
return "Errore di comunicazione con il server remoto. Riprova.";
} else if(ex instanceof SocketTimeoutException){
return "Errore di timeout durante la comunicazione con il server remoto. Riprova.";
} else if(ex.getMessage().startsWith("Printer not found")){
return "Stampante non configurata";
} else {
return null;
}

View File

@@ -1,5 +1,7 @@
package it.integry.integrywmsnative.core.REST;
import java.util.concurrent.TimeUnit;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
@@ -15,11 +17,20 @@ public class RESTBuilder {
// return getService(service, "192.168.2.13", 8080);
return getService(service, SettingsManager.i().server.host, SettingsManager.i().server.port, true);
}
public static <T> T getService(final Class<T> service, long timeout) {
// return getService(service, "192.168.2.13", 8080);
return getService(service, SettingsManager.i().server.host, SettingsManager.i().server.port, true);
}
public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors){
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
clientBuilder.connectTimeout(30, TimeUnit.SECONDS);
clientBuilder.readTimeout(30, TimeUnit.SECONDS);
clientBuilder.writeTimeout(30, TimeUnit.SECONDS);
if(addInterceptors) clientBuilder.addInterceptor(new HttpInterceptor());
OkHttpClient client = clientBuilder.build();

View File

@@ -0,0 +1,35 @@
package it.integry.integrywmsnative.core.REST.consumers;
import java.util.List;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.MtbDepo;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.generated.callback.Runnable;
public class DepositoRESTConsumer {
public static void getDepoByCodMdep(String codMdep, RunnableArgs<MtbDepo> onComplete) {
MtbDepo mtbDepo = new MtbDepo();
mtbDepo.setCodMdep(codMdep);
mtbDepo.setOperation(CommonModelConsts.OPERATION.SELECT);
mtbDepo.setOnlyPkMaster(false);
EntityRESTConsumer.selectEntity(mtbDepo, new ISimpleOperationCallback<List<MtbDepo>>() {
@Override
public void onSuccess(List<MtbDepo> value) {
if(value != null && value.size() > 0) {
onComplete.run(value.get(0));
}
}
@Override
public void onFailed(Exception ex) {
UtilityLogger.errorMe(ex);
}
}, MtbDepo.class);
}
}

View File

@@ -6,6 +6,8 @@ import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.core.REST.RESTBuilder;
import it.integry.integrywmsnative.core.REST.model.EsitoType;
@@ -18,7 +20,7 @@ import retrofit2.Response;
public class EntityRESTConsumer {
public static <T extends EntityBase> void processEntity(T entityToSave, final ISimpleOperationCallback<T> callback, final Type clazzType){
public static <T extends EntityBase> void processEntity(T entityToSave, final ISimpleOperationCallback<T> callback, Class<T> type){
EntityRESTConsumerService service = RESTBuilder.getService(EntityRESTConsumerService.class);
Call<ServiceRESTResponse<Object>> request = service.processEntity(entityToSave);
@@ -30,9 +32,66 @@ public class EntityRESTConsumer {
if(response.body() != null) {
if(response.body().getEsito() == EsitoType.OK) {
Gson gson = new Gson();
//Type fooType = new TypeToken<T>() {}.getType();
String json = gson.toJson(response.body().getEntity());
callback.onSuccess(gson.fromJson(json, clazzType));
callback.onSuccess(gson.fromJson(json, type));
} else {
Log.e("EntityRESTConsumer", response.body().getErrorMessage());
callback.onFailed(new Exception(response.body().getErrorMessage()));
}
} 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<ServiceRESTResponse<Object>> call, Throwable t) {
Log.e("EntityRESTConsumer", t.toString());
callback.onFailed(new Exception(t));
}
});
}
public static <T extends EntityBase> void selectEntity(T entityToSave, final ISimpleOperationCallback<List<T>> callback, Class type){
EntityRESTConsumerService service = RESTBuilder.getService(EntityRESTConsumerService.class);
Call<ServiceRESTResponse<Object>> request = service.processEntity(entityToSave);
request.enqueue(new Callback<ServiceRESTResponse<Object>>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
if(response.isSuccessful()) {
if(response.body() != null) {
if(response.body().getEsito() == EsitoType.OK) {
Gson gson = new Gson();
String json = gson.toJson(response.body().getEntityList());
List<T> newList = new ArrayList<T>();
Type fooType = new TypeToken<ArrayList<T>>() {}.getType();
List<T> oldList = gson.fromJson(json, fooType);
if(oldList != null) {
for (int i = 0; i < oldList.size(); i ++){
String jsonTmp = gson.toJson(oldList.get(i));
newList.add((T) gson.fromJson(jsonTmp, type));
}
}
callback.onSuccess(newList);
} else {
Log.e("EntityRESTConsumer", response.body().getErrorMessage());
callback.onFailed(new Exception(response.body().getErrorMessage()));

View File

@@ -0,0 +1,72 @@
package it.integry.integrywmsnative.core.REST.consumers;
import android.util.Log;
import it.integry.integrywmsnative.core.REST.RESTBuilder;
import it.integry.integrywmsnative.core.REST.model.GestSetupDTO;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.generated.callback.Runnable;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class GestSetupRESTConsumer extends _BaseRESTConsumer {
public static void getValue(String gestName, String sectionName, String keySection, RunnableArgs<GestSetupDTO> onComplete, RunnableArgs<Exception> onFailed) {
GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
service.getGestSetupValue(gestName, sectionName, keySection).enqueue(new Callback<ServiceRESTResponse<GestSetupDTO>>() {
@Override
public void onResponse(Call<ServiceRESTResponse<GestSetupDTO>> call, Response<ServiceRESTResponse<GestSetupDTO>> response) {
analyzeAnswer(response, "GestSetup", onComplete, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) {
Log.e("PrintCollo", t.toString());
UtilityLogger.errorMe(new Exception(t));
if(onFailed != null) onFailed.run(new Exception(t));
}
});
}
public static void getBooleanValue(String gestName, String sectionName, String keySection, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
getValue(gestName, sectionName, keySection, value -> {
if(value != null){
onComplete.run("S".equalsIgnoreCase(value.value));
} else onComplete.run(false);
}, ex -> {
if(onFailed != null) onFailed.run(ex);
});
}
public static void getValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs<GestSetupDTO> onComplete, RunnableArgs<Exception> onFailed) {
GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
service.getGestSetupValue(gestName, sectionName, keySection, codMdep).enqueue(new Callback<ServiceRESTResponse<GestSetupDTO>>() {
@Override
public void onResponse(Call<ServiceRESTResponse<GestSetupDTO>> call, Response<ServiceRESTResponse<GestSetupDTO>> response) {
analyzeAnswer(response, "GestSetup", onComplete, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) {
Log.e("PrintCollo", t.toString());
UtilityLogger.errorMe(new Exception(t));
if(onFailed != null) onFailed.run(new Exception(t));
}
});
}
public static void getBooleanValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
getValue(gestName, sectionName, keySection, codMdep, value -> {
if(value != null){
onComplete.run("S".equalsIgnoreCase(value.value));
} else onComplete.run(false);
}, ex -> {
if(onFailed != null) onFailed.run(ex);
});
}
}

View File

@@ -0,0 +1,27 @@
package it.integry.integrywmsnative.core.REST.consumers;
import java.util.List;
import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.REST.model.GestSetupDTO;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface GestSetupRESTConsumerService {
@GET("gestSetup")
Call<ServiceRESTResponse<GestSetupDTO>> getGestSetupValue(
@Query("gestName") String gestName,
@Query("section") String section,
@Query("keySection") String keySection);
@GET("gestSetup")
Call<ServiceRESTResponse<GestSetupDTO>> getGestSetupValue(
@Query("gestName") String gestName,
@Query("section") String section,
@Query("keySection") String keySection,
@Query("codMdep") String codMdep);
}

View File

@@ -3,17 +3,22 @@ package it.integry.integrywmsnative.core.REST.consumers;
import android.util.Log;
import java.util.List;
import java.util.stream.Stream;
import it.integry.integrywmsnative.core.REST.CommonRESTException;
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.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityString;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import static br.com.zbra.androidlinq.Linq.stream;
public class PrinterRESTConsumer extends _BaseRESTConsumer {
public enum Type {
@@ -44,12 +49,24 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
printerService.getAvailablePrinters(codMdep).enqueue(new Callback<ServiceRESTResponse<List<String>>>() {
@Override
public void onResponse(Call<ServiceRESTResponse<List<String>>> call, Response<ServiceRESTResponse<List<String>>> response) {
analyzeAnswer(response, "GetAvailablePrinters", callback);
analyzeAnswer(response, "GetAvailablePrinters", new ISimpleOperationCallback<List<String>>() {
@Override
public void onSuccess(List<String> value) {
callback.onSuccess(value != null ? stream(value).where(x -> x != null).toList() : null);
}
@Override
public void onFailed(Exception ex) {
callback.onFailed(ex);
}
});
}
@Override
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, Throwable t) {
Log.e("GetAvailablePrinters", t.toString());
UtilityLogger.errorMe(new Exception(t));
callback.onFailed(new Exception(t));
}
});
}
@@ -66,12 +83,14 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
@Override
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, Throwable t) {
Log.e("GetAvailablePrinters", t.toString());
UtilityLogger.errorMe(new Exception(t));
callback.onFailed(new Exception(t));
}
});
}
public static void printCollo(String printerName, MtbColt testataColloToPrint, int quantity, String reportName, final ISimpleOperationCallback<Object> callback) {
public static void printCollo(String printerName, MtbColt testataColloToPrint, int quantity, String reportName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
printerService.printCollo(
@@ -86,13 +105,14 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
.enqueue(new Callback<ServiceRESTResponse<Object>>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
analyzeAnswer(response, "PrintCollo", callback);
analyzeAnswer(response, "PrintCollo", data -> {
onComplete.run();
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
Log.e("PrintCollo", t.toString());
callback.onFailed(new Exception(t));
onFailed.run(new Exception(t));
}
});

View File

@@ -5,6 +5,8 @@ import java.util.List;
import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
@@ -22,12 +24,13 @@ public interface PrinterRESTConsumerService {
@POST("pkgPrintLabel")
@FormUrlEncoded
Call<ServiceRESTResponse<Object>> printCollo(
@Query("printerName") String printerName,
@Query("dataCollo") String dataCollo,
@Query("gestione") String gestione,
@Query("serCollo") String serCollo,
@Query("numCollo") int numCollo,
@Field("dataCollo") String dataCollo,
@Field("gestione") String gestione,
@Field("serCollo") String serCollo,
@Field("numCollo") int numCollo,
@Query("printQuantity") int printQuantity,
@Query("reportName") String reportName
);

View File

@@ -2,27 +2,73 @@ package it.integry.integrywmsnative.core.REST.consumers;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import com.google.gson.Gson;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.lang.reflect.Type;
import java.util.List;
import java.util.logging.Logger;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.RESTBuilder;
import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.REST.model.MailDTO;
import it.integry.integrywmsnative.core.REST.model.MailRequestDTO;
import it.integry.integrywmsnative.core.REST.model.NativeSqlRequestDTO;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.generated.callback.Runnable;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class SystemRESTConsumer extends _BaseRESTConsumer {
public static <T> void processSql(String nativeSql, final Type clazz, final ISimpleOperationCallback<T> callback) {
NativeSqlRequestDTO nativeSqlDTO = new NativeSqlRequestDTO();
nativeSqlDTO.nativeSql = nativeSql;
SystemRESTConsumerService service = RESTBuilder.getService(SystemRESTConsumerService.class);
service.processSql(nativeSqlDTO).enqueue(new Callback<ServiceRESTResponse<Object>>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
analyzeAnswer(response, "ProcessSql", new ISimpleOperationCallback<Object>() {
@Override
public void onSuccess(Object value) {
Gson gson = new Gson();
String json = gson.toJson(value);
InputStream ims = new ByteArrayInputStream(json.getBytes());
Reader reader = new InputStreamReader(ims);
T gsonObj = gson.fromJson(reader, clazz);
callback.onSuccess(gsonObj);
}
@Override
public void onFailed(Exception ex) {
callback.onFailed(ex);
}
});
}
@Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
Log.e("ProcessSql", t.toString());
callback.onFailed(new Exception(t));
UtilityLogger.errorMe(new Exception(t));
}
});
}
public static void getAvailableProfiles(final ISimpleOperationCallback<List<String>> callback){
SystemRESTConsumerService service = RESTBuilder.getService(SystemRESTConsumerService.class);
@@ -36,6 +82,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, final Throwable t) {
Log.e("ProfilesAvailable", t.toString());
callback.onFailed(new Exception(t));
UtilityLogger.errorMe(new Exception(t));
}
});
@@ -59,10 +106,9 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
public void onFailure(Call<ServiceRESTResponse<List<AvailableCodMdepsDTO>>> call, final Throwable t) {
Log.e("CodMdepsAvailable", t.toString());
callback.onFailed(new Exception(t));
UtilityLogger.errorMe(new Exception(t));
}
});
}
@@ -71,7 +117,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
String currentAzienda = UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB) ? "" : " [" + SettingsManager.i().userSession.profileDB + "]";
MailDTO mailDTO = new MailDTO()
MailRequestDTO mailDTO = new MailRequestDTO()
.setFrom("sender@integry.it")
.setFromName("WMS Android")
.setTo(TextUtils.join(";", CommonConst.Mail.forErrors))
@@ -85,7 +131,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
}
public static void sendMail(MailDTO mailDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
public static void sendMail(MailRequestDTO mailDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
SystemRESTConsumerService service = RESTBuilder.getService(SystemRESTConsumerService.class);
service.sendMail(mailDTO).enqueue(new Callback<ServiceRESTResponse<String>>() {

View File

@@ -3,7 +3,8 @@ package it.integry.integrywmsnative.core.REST.consumers;
import java.util.List;
import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.REST.model.MailDTO;
import it.integry.integrywmsnative.core.REST.model.MailRequestDTO;
import it.integry.integrywmsnative.core.REST.model.NativeSqlRequestDTO;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import retrofit2.Call;
import retrofit2.http.Body;
@@ -13,6 +14,9 @@ import retrofit2.http.Query;
public interface SystemRESTConsumerService {
@POST("processSql")
Call<ServiceRESTResponse<Object>> processSql(@Body NativeSqlRequestDTO nativeSqlDTO);
@GET("getAvailableProfiles")
Call<ServiceRESTResponse<List<String>>> getAvailableProfiles(@Query("username") String username, @Query("password") String password);
@@ -20,6 +24,6 @@ public interface SystemRESTConsumerService {
Call<ServiceRESTResponse<List<AvailableCodMdepsDTO>>> getAvailableCodMdeps();
@POST("sendEmail")
Call<ServiceRESTResponse<String>> sendMail(@Body MailDTO mailDto);
Call<ServiceRESTResponse<String>> sendMail(@Body MailRequestDTO mailDto);
}

View File

@@ -4,6 +4,7 @@ import android.util.Log;
import it.integry.integrywmsnative.core.REST.model.EsitoType;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityString;
import retrofit2.Response;
@@ -29,7 +30,20 @@ public class _BaseRESTConsumer {
Log.e(logTitle, "Status " + response.code() + ": " + response.message());
callback.onFailed(new Exception("Status " + response.code() + ": " + response.message()));
}
}
public static <T> void analyzeAnswer(Response<ServiceRESTResponse<T>> response, String logTitle, RunnableArgs<T> onComplete, RunnableArgs<Exception> onFailed){
analyzeAnswer(response, logTitle, new ISimpleOperationCallback<T>() {
@Override
public void onSuccess(T value) {
onComplete.run(value);
}
@Override
public void onFailed(Exception ex) {
onFailed.run(ex);
}
});
}
}

View File

@@ -0,0 +1,6 @@
package it.integry.integrywmsnative.core.REST.model;
public class GestSetupDTO {
public String value;
}

View File

@@ -1,6 +1,6 @@
package it.integry.integrywmsnative.core.REST.model;
public class MailDTO {
public class MailRequestDTO {
private String from;
private String fromName;
@@ -18,7 +18,7 @@ public class MailDTO {
return from;
}
public MailDTO setFrom(String from) {
public MailRequestDTO setFrom(String from) {
this.from = from;
return this;
}
@@ -27,7 +27,7 @@ public class MailDTO {
return fromName;
}
public MailDTO setFromName(String fromName) {
public MailRequestDTO setFromName(String fromName) {
this.fromName = fromName;
return this;
}
@@ -36,7 +36,7 @@ public class MailDTO {
return to;
}
public MailDTO setTo(String to) {
public MailRequestDTO setTo(String to) {
this.to = to;
return this;
}
@@ -45,7 +45,7 @@ public class MailDTO {
return replyTo;
}
public MailDTO setReplyTo(String replyTo) {
public MailRequestDTO setReplyTo(String replyTo) {
this.replyTo = replyTo;
return this;
}
@@ -54,7 +54,7 @@ public class MailDTO {
return replyToName;
}
public MailDTO setReplyToName(String replyToName) {
public MailRequestDTO setReplyToName(String replyToName) {
this.replyToName = replyToName;
return this;
}
@@ -63,7 +63,7 @@ public class MailDTO {
return cc;
}
public MailDTO setCc(String cc) {
public MailRequestDTO setCc(String cc) {
this.cc = cc;
return this;
}
@@ -72,7 +72,7 @@ public class MailDTO {
return ccn;
}
public MailDTO setCcn(String ccn) {
public MailRequestDTO setCcn(String ccn) {
this.ccn = ccn;
return this;
}
@@ -81,7 +81,7 @@ public class MailDTO {
return subject;
}
public MailDTO setSubject(String subject) {
public MailRequestDTO setSubject(String subject) {
this.subject = subject;
return this;
}
@@ -90,7 +90,7 @@ public class MailDTO {
return msgText;
}
public MailDTO setMsgText(String msgText) {
public MailRequestDTO setMsgText(String msgText) {
this.msgText = msgText;
return this;
}
@@ -99,7 +99,7 @@ public class MailDTO {
return isHtml;
}
public MailDTO setHtml(boolean html) {
public MailRequestDTO setHtml(boolean html) {
isHtml = html;
return this;
}
@@ -108,7 +108,7 @@ public class MailDTO {
return isDebug;
}
public MailDTO setDebug(boolean debug) {
public MailRequestDTO setDebug(boolean debug) {
isDebug = debug;
return this;
}

View File

@@ -0,0 +1,7 @@
package it.integry.integrywmsnative.core.REST.model;
public class NativeSqlRequestDTO {
public String nativeSql;
}

View File

@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.REST.model;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* Created by GiuseppeS on 06/03/2018.
@@ -17,6 +18,7 @@ public class ServiceRESTResponse<T> {
private T dto;
private T entity;
private List<T> entityList;
public EsitoType getEsito() {
return EsitoType.fromIntValue(esito);
@@ -46,4 +48,8 @@ public class ServiceRESTResponse<T> {
public T getEntity() {
return entity;
}
public List<T> getEntityList() {
return entityList;
}
}

View File

@@ -32,9 +32,9 @@ public class RecyclerViewAdapterBinders {
//// .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//// for (int i = 0; i < entries.size(); i++) {
//// T entry = entries.get(i);
//// ViewDataBinding binding = DataBindingUtil
//// ViewDataBinding bindings = DataBindingUtil
//// .inflate(inflater, layoutId, viewGroup, true);
//// binding.setVariable(BR.data, entry);
//// bindings.setVariable(BR.data, entry);
//// }
//// }
// }

View File

@@ -0,0 +1,5 @@
package it.integry.integrywmsnative.core.interfaces;
public interface IRecyclerItemClicked<T> {
void onItemClick(T item, int position);
}

View File

@@ -1,11 +1,14 @@
package it.integry.integrywmsnative.core.model;
import android.os.Parcel;
import android.os.Parcelable;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MtbColr extends EntityBase{
public class MtbColr extends EntityBase implements Parcelable {
private String gestione;
@@ -35,13 +38,181 @@ public class MtbColr extends EntityBase{
private String mtbPartitaMag_descrizione;
private String dataScadPartita;
private String descrizione;
private String untMis;
public MtbColr() {
type = "mtb_colr";
}
protected MtbColr(Parcel in) {
type = "mtb_colr";
gestione = in.readString();
serCollo = in.readString();
if (in.readByte() == 0) {
numCollo = null;
} else {
numCollo = in.readInt();
}
if (in.readByte() == 0) {
riga = null;
} else {
riga = in.readInt();
}
if (in.readByte() == 0) {
rigaOrd = null;
} else {
rigaOrd = in.readInt();
}
codMart = in.readString();
codBarre = in.readString();
codCol = in.readString();
codTagl = in.readString();
partitaMag = in.readString();
gestioneRif = in.readString();
serColloRif = in.readString();
note = in.readString();
dataOrd = in.readString();
dataColloRif = in.readString();
if (in.readByte() == 0) {
numOrd = null;
} else {
numOrd = in.readInt();
}
if (in.readByte() == 0) {
numEtich = null;
} else {
numEtich = in.readInt();
}
if (in.readByte() == 0) {
numColloRif = null;
} else {
numColloRif = in.readInt();
}
datetimeRow = in.readString();
codJcom = in.readString();
insPartitaMag = in.readString();
mtbPartitaMag_descrizione = in.readString();
dataScadPartita = in.readString();
descrizione = in.readString();
untMis = in.readString();
if (in.readByte() == 0) {
qtaCnf = null;
} else {
qtaCnf = new BigDecimal(in.readFloat());
}
if (in.readByte() == 0) {
qtaCol = null;
} else {
qtaCol = new BigDecimal(in.readFloat());
}
if (in.readByte() == 0) {
numCnf = null;
} else {
numCnf = new BigDecimal(in.readFloat());
}
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(gestione);
dest.writeString(serCollo);
if (numCollo == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(numCollo);
}
if (riga == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(riga);
}
if (rigaOrd == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(rigaOrd);
}
dest.writeString(codMart);
dest.writeString(codBarre);
dest.writeString(codCol);
dest.writeString(codTagl);
dest.writeString(partitaMag);
dest.writeString(gestioneRif);
dest.writeString(serColloRif);
dest.writeString(note);
dest.writeString(dataOrd);
dest.writeString(dataColloRif);
if (numOrd == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(numOrd);
}
if (numEtich == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(numEtich);
}
if (numColloRif == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(numColloRif);
}
dest.writeString(datetimeRow);
dest.writeString(codJcom);
dest.writeString(insPartitaMag);
dest.writeString(mtbPartitaMag_descrizione);
dest.writeString(dataScadPartita);
dest.writeString(descrizione);
dest.writeString(untMis);
if (qtaCnf == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeFloat(qtaCnf.floatValue());
}
if (qtaCol == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeFloat(qtaCol.floatValue());
}
if (numCnf == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeFloat(numCnf.floatValue());
}
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<MtbColr> CREATOR = new Creator<MtbColr>() {
@Override
public MtbColr createFromParcel(Parcel in) {
return new MtbColr(in);
}
@Override
public MtbColr[] newArray(int size) {
return new MtbColr[size];
}
};
public String getGestione() {
return gestione;
}
@@ -344,4 +515,15 @@ public class MtbColr extends EntityBase{
this.descrizione = descrizione;
return this;
}
public String getUntMis() {
return untMis;
}
public MtbColr setUntMis(String untMis) {
this.untMis = untMis;
return this;
}
}

View File

@@ -1,21 +1,25 @@
package it.integry.integrywmsnative.core.model;
import android.databinding.ObservableArrayList;
import android.os.Parcel;
import android.os.Parcelable;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
/**
* Created by GiuseppeS on 06/03/2018.
*/
public class MtbColt extends EntityBase{
public class MtbColt extends EntityBase implements Parcelable {
private String gestione;
private String dataCollo;
private String serCollo;
@@ -50,6 +54,196 @@ public class MtbColt extends EntityBase{
private BigDecimal larghezzaCm;
private BigDecimal altezzaCm;
protected MtbColt(Parcel in) {
type = "mtb_colt";
gestione = in.readString();
dataCollo = in.readString();
serCollo = in.readString();
if (in.readByte() == 0) {
numCollo = null;
} else {
numCollo = in.readInt();
}
rifOrd = in.readString();
codAnag = in.readString();
codVdes = in.readString();
codMdep = in.readString();
codVlis = in.readString();
codDtip = in.readString();
codTcol = in.readString();
serDoc = in.readString();
filtroOrdini = in.readString();
preparatoDa = in.readString();
annotazioni = in.readString();
posizione = in.readString();
codDtipProvv = in.readString();
serDocProvv = in.readString();
codJfas = in.readString();
dataOrd = in.readString();
dataDoc = in.readString();
oraInizPrep = in.readString();
oraFinePrep = in.readString();
dataDocProvv = in.readString();
dataVers = in.readString();
if (in.readByte() == 0) {
segno = null;
} else {
segno = in.readInt();
}
if (in.readByte() == 0) {
numOrd = null;
} else {
numOrd = in.readInt();
}
if (in.readByte() == 0) {
numDoc = null;
} else {
numDoc = in.readInt();
}
if (in.readByte() == 0) {
numDocProvv = null;
} else {
numDocProvv = in.readInt();
}
if (in.readByte() == 0) {
pesoKg = null;
} else {
pesoKg = new BigDecimal(in.readFloat());
}
if (in.readByte() == 0) {
lunghezzaCm = null;
} else {
lunghezzaCm = new BigDecimal(in.readFloat());
}
if (in.readByte() == 0) {
larghezzaCm = null;
} else {
larghezzaCm = new BigDecimal(in.readFloat());
}
if (in.readByte() == 0) {
altezzaCm = null;
} else {
altezzaCm = new BigDecimal(in.readFloat());
}
in.readTypedList(mtbColr, MtbColr.CREATOR);
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(gestione);
dest.writeString(dataCollo);
dest.writeString(serCollo);
if (numCollo == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(numCollo);
}
dest.writeString(rifOrd);
dest.writeString(codAnag);
dest.writeString(codVdes);
dest.writeString(codMdep);
dest.writeString(codVlis);
dest.writeString(codDtip);
dest.writeString(codTcol);
dest.writeString(serDoc);
dest.writeString(filtroOrdini);
dest.writeString(preparatoDa);
dest.writeString(annotazioni);
dest.writeString(posizione);
dest.writeString(codDtipProvv);
dest.writeString(serDocProvv);
dest.writeString(codJfas);
dest.writeString(dataOrd);
dest.writeString(dataDoc);
dest.writeString(oraInizPrep);
dest.writeString(oraFinePrep);
dest.writeString(dataDocProvv);
dest.writeString(dataVers);
if (segno == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(segno);
}
if (numOrd == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(numOrd);
}
if (numDoc == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(numDoc);
}
if (numDocProvv == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeInt(numDocProvv);
}
if (pesoKg == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeFloat(pesoKg.floatValue());
}
if (lunghezzaCm == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeFloat(lunghezzaCm.floatValue());
}
if (larghezzaCm == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeFloat(larghezzaCm.floatValue());
}
if (altezzaCm == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
dest.writeFloat(altezzaCm.floatValue());
}
dest.writeTypedList(mtbColr);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<MtbColt> CREATOR = new Creator<MtbColt>() {
@Override
public MtbColt createFromParcel(Parcel in) {
return new MtbColt(in);
}
@Override
public MtbColt[] newArray(int size) {
return new MtbColt[size];
}
};
public void generaFiltroOrdine() throws Exception {
if (this.gestione == null) {
@@ -104,6 +298,19 @@ public class MtbColt extends EntityBase{
return this;
}
public String getDataColloHumanLong() {
Date dataColloD = null;
try {
dataColloD = getDataColloD();
} catch (ParseException ex){
UtilityLogger.errorMe(ex);
}
if(dataColloD != null){
return UtilityDate.formatDate(dataColloD, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN_LONG);
} else return null;
}
public String getDataColloS() {
return dataCollo;
}
@@ -408,4 +615,8 @@ public class MtbColt extends EntityBase{
this.altezzaCm = altezzaCm;
return this;
}
}

View File

@@ -0,0 +1,360 @@
package it.integry.integrywmsnative.core.model;
import android.os.Parcel;
import android.os.Parcelable;
import java.math.BigDecimal;
public class MtbDepo extends EntityBase implements Parcelable {
private String codMdep;
private String descrizione;
private String flagVal;
private String codAnag;
private BigDecimal percDepo;
private BigDecimal valDepo;
private String indirizzo;
private String cap;
private String citta;
private String prov;
private String tel;
private String nazione;
private String fax;
private String eMail;
private String sitoWeb;
private String codVdes;
private String serie;
private String flagMovimentabile;
private String codJfas;
private String codVlis;
private String codCcau;
private String codCcon;
private String codDtip;
private String codDtipFat;
private String flagContoVendita;
private String flagTipoNegozio;
private String codMdepReso;
public MtbDepo() {
type = "mtb_depo";
}
protected MtbDepo(Parcel in) {
type = "mtb_depo";
codMdep = in.readString();
descrizione = in.readString();
flagVal = in.readString();
codAnag = in.readString();
indirizzo = in.readString();
cap = in.readString();
citta = in.readString();
prov = in.readString();
tel = in.readString();
nazione = in.readString();
fax = in.readString();
eMail = in.readString();
sitoWeb = in.readString();
codVdes = in.readString();
serie = in.readString();
flagMovimentabile = in.readString();
codJfas = in.readString();
codVlis = in.readString();
codCcau = in.readString();
codCcon = in.readString();
codDtip = in.readString();
codDtipFat = in.readString();
flagContoVendita = in.readString();
flagTipoNegozio = in.readString();
codMdepReso = in.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(codMdep);
dest.writeString(descrizione);
dest.writeString(flagVal);
dest.writeString(codAnag);
dest.writeString(indirizzo);
dest.writeString(cap);
dest.writeString(citta);
dest.writeString(prov);
dest.writeString(tel);
dest.writeString(nazione);
dest.writeString(fax);
dest.writeString(eMail);
dest.writeString(sitoWeb);
dest.writeString(codVdes);
dest.writeString(serie);
dest.writeString(flagMovimentabile);
dest.writeString(codJfas);
dest.writeString(codVlis);
dest.writeString(codCcau);
dest.writeString(codCcon);
dest.writeString(codDtip);
dest.writeString(codDtipFat);
dest.writeString(flagContoVendita);
dest.writeString(flagTipoNegozio);
dest.writeString(codMdepReso);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<MtbDepo> CREATOR = new Creator<MtbDepo>() {
@Override
public MtbDepo createFromParcel(Parcel in) {
return new MtbDepo(in);
}
@Override
public MtbDepo[] newArray(int size) {
return new MtbDepo[size];
}
};
public String getCodMdep() {
return codMdep;
}
public MtbDepo setCodMdep(String codMdep) {
this.codMdep = codMdep;
return this;
}
public String getDescrizione() {
return descrizione;
}
public MtbDepo setDescrizione(String descrizione) {
this.descrizione = descrizione;
return this;
}
public String getFlagVal() {
return flagVal;
}
public MtbDepo setFlagVal(String flagVal) {
this.flagVal = flagVal;
return this;
}
public String getCodAnag() {
return codAnag;
}
public MtbDepo setCodAnag(String codAnag) {
this.codAnag = codAnag;
return this;
}
public BigDecimal getPercDepo() {
return percDepo;
}
public MtbDepo setPercDepo(BigDecimal percDepo) {
this.percDepo = percDepo;
return this;
}
public BigDecimal getValDepo() {
return valDepo;
}
public MtbDepo setValDepo(BigDecimal valDepo) {
this.valDepo = valDepo;
return this;
}
public String getIndirizzo() {
return indirizzo;
}
public MtbDepo setIndirizzo(String indirizzo) {
this.indirizzo = indirizzo;
return this;
}
public String getCap() {
return cap;
}
public MtbDepo setCap(String cap) {
this.cap = cap;
return this;
}
public String getCitta() {
return citta;
}
public MtbDepo setCitta(String citta) {
this.citta = citta;
return this;
}
public String getProv() {
return prov;
}
public MtbDepo setProv(String prov) {
this.prov = prov;
return this;
}
public String getTel() {
return tel;
}
public MtbDepo setTel(String tel) {
this.tel = tel;
return this;
}
public String getNazione() {
return nazione;
}
public MtbDepo setNazione(String nazione) {
this.nazione = nazione;
return this;
}
public String getFax() {
return fax;
}
public MtbDepo setFax(String fax) {
this.fax = fax;
return this;
}
public String geteMail() {
return eMail;
}
public MtbDepo seteMail(String eMail) {
this.eMail = eMail;
return this;
}
public String getSitoWeb() {
return sitoWeb;
}
public MtbDepo setSitoWeb(String sitoWeb) {
this.sitoWeb = sitoWeb;
return this;
}
public String getCodVdes() {
return codVdes;
}
public MtbDepo setCodVdes(String codVdes) {
this.codVdes = codVdes;
return this;
}
public String getSerie() {
return serie;
}
public MtbDepo setSerie(String serie) {
this.serie = serie;
return this;
}
public String getFlagMovimentabile() {
return flagMovimentabile;
}
public MtbDepo setFlagMovimentabile(String flagMovimentabile) {
this.flagMovimentabile = flagMovimentabile;
return this;
}
public String getCodJfas() {
return codJfas;
}
public MtbDepo setCodJfas(String codJfas) {
this.codJfas = codJfas;
return this;
}
public String getCodVlis() {
return codVlis;
}
public MtbDepo setCodVlis(String codVlis) {
this.codVlis = codVlis;
return this;
}
public String getCodCcau() {
return codCcau;
}
public MtbDepo setCodCcau(String codCcau) {
this.codCcau = codCcau;
return this;
}
public String getCodCcon() {
return codCcon;
}
public MtbDepo setCodCcon(String codCcon) {
this.codCcon = codCcon;
return this;
}
public String getCodDtip() {
return codDtip;
}
public MtbDepo setCodDtip(String codDtip) {
this.codDtip = codDtip;
return this;
}
public String getCodDtipFat() {
return codDtipFat;
}
public MtbDepo setCodDtipFat(String codDtipFat) {
this.codDtipFat = codDtipFat;
return this;
}
public String getFlagContoVendita() {
return flagContoVendita;
}
public MtbDepo setFlagContoVendita(String flagContoVendita) {
this.flagContoVendita = flagContoVendita;
return this;
}
public String getFlagTipoNegozio() {
return flagTipoNegozio;
}
public MtbDepo setFlagTipoNegozio(String flagTipoNegozio) {
this.flagTipoNegozio = flagTipoNegozio;
return this;
}
public String getCodMdepReso() {
return codMdepReso;
}
public MtbDepo setCodMdepReso(String codMdepReso) {
this.codMdepReso = codMdepReso;
return this;
}
}

View File

@@ -0,0 +1,37 @@
package it.integry.integrywmsnative.core.report;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.generated.callback.Runnable;
public class ReportManager {
public static void getRightReportNameByMtbColt(MtbColt mtbColt, RunnableArgs<String> onComplete, RunnableArgs<Exception> onFailed) throws Exception{
if(mtbColt != null){
GestioneEnum gestione = GestioneEnum.fromString(mtbColt.getGestione());
switch (gestione) {
case ACQUISTO:
onComplete.run("EtichettaBancale");
break;
case LAVORAZIONE:
onFailed.run(new Exception("Etichetta non definita"));
break;
case VENDITA:
onFailed.run(new Exception("Etichetta non definita"));
break;
}
} else {
throw new Exception("mtbColt cannot be NULL");
}
}
}

View File

@@ -18,6 +18,7 @@ public class SettingsModel {
public static class User {
public String username;
public String password;
public String fullname;
}
public static class UserSession {

View File

@@ -0,0 +1,35 @@
package it.integry.integrywmsnative.core.utility;
import java.text.SimpleDateFormat;
import java.util.Date;
public class UtilityDB {
public static String valueToString(Object value) {
String valueString;
SimpleDateFormat dateFormatFile = new SimpleDateFormat("yyyy-MM-dd");
if (value == null) {
valueString = "NULL";
} else {
valueString = value.toString();
if(value instanceof String) {
if(UtilityString.isNullOrEmpty((String) value)){
valueString = "NULL";
} else {
valueString = "'" + valueString.replaceAll("'","''") + "'";
}
} else if (value instanceof Date){
valueString = "'" + dateFormatFile.format(value) + "'";
} else if (value instanceof Integer) {
} else {
valueString = null;
}
}
return valueString;
}
}

View File

@@ -17,6 +17,7 @@ public class UtilityDate {
public static final String DMY_HUMAN = "dd MMM yyyy";
public static final String DMY_HUMAN_LONG = "dd MMMM yyyy";
}
public static Date recognizeDate(String dateString) throws Exception{

View File

@@ -0,0 +1,32 @@
package it.integry.integrywmsnative.core.utility;
import android.app.ProgressDialog;
import android.content.Context;
import android.text.SpannableString;
import android.util.Log;
import com.orhanobut.logger.Logger;
import it.integry.integrywmsnative.core.REST.CommonRESTException;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
public class UtilityExceptions {
public static void defaultException(Context context, Exception ex, ProgressDialog progressDialog){
progressDialog.dismiss();
defaultException(context, ex);
}
public static void defaultException(Context context, Exception ex){
Logger.e(ex, ex.getMessage());
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
if(errorMessage == null) errorMessage = ex.getMessage();
DialogSimpleMessageHelper.makeErrorDialog(context, new SpannableString(errorMessage), null, null).show();
UtilityLogger.errorMe(ex);
}
}

View File

@@ -1,5 +1,7 @@
package it.integry.integrywmsnative.core.utility;
import android.util.Log;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -14,11 +16,23 @@ import okhttp3.internal.Util;
public class UtilityLogger {
public static void logMe(String message){
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
String caller = "UtilityLogger";
for(int i = 0; i < stackTraceElements.length; i++){
if(stackTraceElements[i].getMethodName().equalsIgnoreCase("logMe")){
caller = stackTraceElements[i+1].getFileName() + "->" + stackTraceElements[i+1].getMethodName();
}
}
Log.d("WMS LOGGER", caller + ": " + message);
}
public static void errorMe(Exception ex) {
ex.printStackTrace(); //Default log
String message = UtilityResources.readRawTextFile(R.raw.error_mail);

View File

@@ -0,0 +1,33 @@
package it.integry.integrywmsnative.core.utility;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
public class UtilityNumber {
public static String decimalToString(BigDecimal bigDecimal){
if(bigDecimal == null) return "0";
return decimalToString(bigDecimal, 2);
}
public static String decimalToString(BigDecimal bigDecimal, int decimal){
if(bigDecimal == null) return "0";
return decimalToString(bigDecimal.floatValue(), decimal);
}
public static String decimalToString(float floatValue, int decimal) {
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.getDefault());
otherSymbols.setDecimalSeparator('.');
otherSymbols.setGroupingSeparator(',');
final DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.setMaximumFractionDigits(decimal);
decimalFormat.setDecimalFormatSymbols(otherSymbols);
decimalFormat.setGroupingUsed(false);
return decimalFormat.format(floatValue);
}
}

View File

@@ -251,7 +251,7 @@ public class MainAccettazioneFragment extends Fragment implements ICheckBoxCallb
AtomicInteger artsCounter = new AtomicInteger();
Stream.of(ordini).forEach(x -> {
artsCounter.addAndGet((int) Stream.of(x.ordini).filter(y -> y.getQtaDaEvadere() > 0).count());
artsCounter.addAndGet((int) Stream.of(x.ordini).filter(y -> y.getQtaDaEvadere().floatValue() > 0).count());
});
List<String> ordersKeys = new ArrayList<>();

View File

@@ -12,6 +12,7 @@ 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.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback;
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadPickingListCallback;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
@@ -110,7 +111,8 @@ public class AccettazioneHelper {
@Override
public void onFailure(Call<ServiceRESTResponse<List<OrdineAccettazioneDTO>>> call, Throwable t) {
Log.e("Accettazione", t.getCause().toString());
Log.e("Accettazione", t.toString());
UtilityLogger.errorMe(new Exception(t));
callback.onLoadFail(new Exception(t));
}
});

View File

@@ -4,6 +4,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.util.Log;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@@ -54,21 +55,21 @@ public class OrdineAccettazioneDTO implements Parcelable {
public String dataCons;
public Float getQtaDaEvadere() {
return this.getQtaOrd() - this.getQtaEvasa() - this.getQtaRiservate();
public BigDecimal getQtaDaEvadere() {
return this.getQtaOrd().subtract(this.getQtaEvasa()).subtract(this.getQtaRiservate());
}
public Float getQtaOrd() {
return qtaOrd != null ? qtaOrd : 0;
public BigDecimal getQtaOrd() {
return qtaOrd != null ? new BigDecimal(qtaOrd) : BigDecimal.ZERO;
}
public Float getQtaRiservate() {
return qtaRiservate != null ? qtaRiservate : 0;
public BigDecimal getQtaRiservate() {
return qtaRiservate != null ? new BigDecimal(qtaRiservate) : BigDecimal.ZERO;
}
public Float getQtaEvasa() {
return qtaEvasa != null ? qtaEvasa : 0;
public BigDecimal getQtaEvasa() {
return qtaEvasa != null ? new BigDecimal(qtaEvasa) : BigDecimal.ZERO;
}
public int getRigaOrd() {

View File

@@ -6,6 +6,7 @@ import android.databinding.ObservableArrayList;
import com.annimon.stream.Stream;
import com.orhanobut.logger.Logger;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -85,7 +86,7 @@ public class AccettazioneOrdineInevasoHelper {
List<OrdineAccettazioneDTO.Riga> tmpList = Stream.of(mDataset).filter(x -> x.getCodArtFor() != null && x.getCodArtFor().equalsIgnoreCase(codArtForn)).toList();
for(int i = 0; i < tmpList.size(); i++){
if(tmpList.get(i).getQtaDaEvadere() <= 0){
if(tmpList.get(i).getQtaDaEvadere().floatValue() <= 0){
tmpList.remove(i);
i--;
}
@@ -119,7 +120,7 @@ public class AccettazioneOrdineInevasoHelper {
List<OrdineAccettazioneDTO.Riga> tmpList = Stream.of(mDataset).filter(x -> x.getDescrizioneEstesa() != null && x.getDescrizioneEstesa().equalsIgnoreCase(descrArtForn)).toList();
for(int i = 0; i < tmpList.size(); i++){
if(tmpList.get(i).getQtaDaEvadere() <= 0){
if(tmpList.get(i).getQtaDaEvadere().floatValue() <= 0){
tmpList.remove(i);
i--;
}
@@ -179,7 +180,7 @@ public class AccettazioneOrdineInevasoHelper {
List<OrdineAccettazioneDTO.Riga> tmpList = Stream.of(mDataset).filter(x -> x.getCodJcom().equalsIgnoreCase(dto.codJcom)).toList();
for(int i = 0; i < tmpList.size(); i++){
if(tmpList.get(i).getQtaDaEvadere() <= 0){
if(tmpList.get(i).getQtaDaEvadere().floatValue() <= 0){
tmpList.remove(i);
i--;
}
@@ -205,7 +206,6 @@ public class AccettazioneOrdineInevasoHelper {
List<AccettazioneOrdineInevasoListViewModel> listModel = new ArrayList<>();
DecimalFormat decimalFormat = new DecimalFormat("#.#");
for(int i = 0; i < groupedRighe.size(); i++){
AccettazioneOrdineInevasoListViewModel itemModel = new AccettazioneOrdineInevasoListViewModel();
@@ -217,16 +217,16 @@ public class AccettazioneOrdineInevasoHelper {
final OrdineAccettazioneDTO.Riga rowItem = groupedRighe.get(i).get(k);
final AccettazioneOrdineInevasoListViewModel.SubItem rowModel = new AccettazioneOrdineInevasoListViewModel.SubItem();
rowModel.badge1 = rowItem.codJcom != null ? rowItem.codJcom : CommonConst.Config.COMMESSA_MAG;
rowModel.badge2 = String.valueOf(rowItem.numOrd);
rowModel.setBadge1(rowItem.codJcom != null ? rowItem.codJcom : CommonConst.Config.COMMESSA_MAG);
rowModel.setBadge2(String.valueOf(rowItem.numOrd));
// rowModel.descrizione = rowItem.ragSocCom;
rowModel.descrizione = rowItem.descrizioneCommessa;
rowModel.setDescrizione(rowItem.descrizioneCommessa);
rowModel.qtaRiservata = decimalFormat.format(getRigaQuantityEvasa(rowItem, mtbColrs));
rowModel.qtaOrdinata = decimalFormat.format(rowItem.getQtaOrd());
rowModel.setQtaRiservata(getRigaQuantityEvasa(rowItem, mtbColrs));
rowModel.setQtaOrdinata(rowItem.getQtaOrd());
rowModel.originalModel = rowItem;
rowModel.setOriginalModel(rowItem);
itemModel.rows.add(rowModel);
}
@@ -240,7 +240,6 @@ public class AccettazioneOrdineInevasoHelper {
public List<AccettazioneOrdineInevasoListViewModel> getListViewModelPerRagSocCommessa(List<List<OrdineAccettazioneDTO.Riga>> groupedRighe, List<MtbColr> mtbColrs) {
List<AccettazioneOrdineInevasoListViewModel> listModel = new ArrayList<>();
DecimalFormat decimalFormat = new DecimalFormat("#.#");
for(int i = 0; i < groupedRighe.size(); i++){
AccettazioneOrdineInevasoListViewModel itemModel = new AccettazioneOrdineInevasoListViewModel();
@@ -260,16 +259,16 @@ public class AccettazioneOrdineInevasoHelper {
final OrdineAccettazioneDTO.Riga rowItem = groupedRighe.get(i).get(k);
final AccettazioneOrdineInevasoListViewModel.SubItem rowModel = new AccettazioneOrdineInevasoListViewModel.SubItem();
rowModel.badge1 = rowItem.codArtFor;
rowModel.badge2 = String.valueOf(rowItem.numOrd);
rowModel.setBadge1(rowItem.codArtFor);
rowModel.setBadge2(String.valueOf(rowItem.numOrd));
rowModel.descrizione = rowItem.mtbAart.descrizioneEstesa;
rowModel.setDescrizione(rowItem.mtbAart.descrizioneEstesa);
rowModel.qtaRiservata = decimalFormat.format(getRigaQuantityEvasa(rowItem, mtbColrs));
rowModel.setQtaRiservata(getRigaQuantityEvasa(rowItem, mtbColrs));
// rowModel.qtaRiservata = decimalFormat.format(rowItem.qtaRiservate);
rowModel.qtaOrdinata = decimalFormat.format(rowItem.getQtaOrd());
rowModel.setQtaOrdinata(rowItem.getQtaOrd());
rowModel.originalModel = rowItem;
rowModel.setOriginalModel(rowItem);
itemModel.rows.add(rowModel);
}
@@ -281,8 +280,8 @@ public class AccettazioneOrdineInevasoHelper {
private float getRigaQuantityEvasa(OrdineAccettazioneDTO.Riga item, List<MtbColr> mtbColrs){
float currentQtaEvasa = item.getQtaRiservate() + item.getQtaEvasa();
private BigDecimal getRigaQuantityEvasa(OrdineAccettazioneDTO.Riga item, List<MtbColr> mtbColrs){
BigDecimal currentQtaEvasa = item.getQtaRiservate().add(item.getQtaEvasa());
if(mtbColrs != null) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
@@ -296,7 +295,7 @@ public class AccettazioneOrdineInevasoHelper {
for (MtbColr mtbColr : filteredMtbColrs) {
currentQtaEvasa += mtbColr.getQtaCol().floatValue();
currentQtaEvasa = currentQtaEvasa.add(mtbColr.getQtaCol());
}
}

View File

@@ -17,6 +17,7 @@ import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoListViewModel;
@@ -30,8 +31,7 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
protected ObservableArrayList<AccettazioneOrdineInevasoListViewModel> mDataset;
protected IOnOrdineRowDispatchCallback mOrdineRowDispatch;
private static final Pools.SynchronizedPool sPool =
new Pools.SynchronizedPool(200);
private static final Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(200);
public static class ViewHolder extends RecyclerView.ViewHolder {
// each data item is just a string in this case
@@ -130,9 +130,9 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
View groupModelView = groupModelViewPool;
holder.pool.add(groupModelView);
if(Float.parseFloat(rowItem.qtaRiservata) == Float.parseFloat(rowItem.qtaOrdinata)) {
if(rowItem.getQtaRiservata().equals(rowItem.getQtaOrdinata())) {
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
} else if(Float.parseFloat(rowItem.qtaRiservata) > 0) {
} else if(rowItem.getQtaRiservata().floatValue() > 0) {
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
} else if(i % 2 == 1) {
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
@@ -142,15 +142,15 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
final TextView badge1 = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_badge1);
badge1.setText(rowItem.badge1);
badge1.setText(rowItem.getBadge1());
final TextView badge2 = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_badge2);
badge2.setText(rowItem.badge2);
badge2.setText(rowItem.getBadge2());
final TextView descrizione = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_descrizione);
String descrizioneString = rowItem.descrizione;
String descrizioneString = rowItem.getDescrizione();
int descrizioneColor = Color.BLACK;
if(UtilityString.isNullOrEmpty(descrizioneString)) {
@@ -164,15 +164,15 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
descrizione.setTextColor(descrizioneColor);
final TextView qtaEvasa = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_qta_evasa);
qtaEvasa.setText(rowItem.qtaRiservata);
qtaEvasa.setText(UtilityNumber.decimalToString(rowItem.getQtaRiservata()));
final TextView qtaTot = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_qta_tot);
qtaTot.setText(rowItem.qtaOrdinata);
qtaTot.setText(UtilityNumber.decimalToString(rowItem.getQtaOrdinata()));
groupModelView.setOnClickListener(view -> {
if(mOrdineRowDispatch != null){
mOrdineRowDispatch.onOrdineRowDispatch(rowItem.originalModel);
mOrdineRowDispatch.onOrdineRowDispatch(rowItem.getOriginalModel());
}
});

View File

@@ -1,5 +1,6 @@
package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto;
import java.math.BigDecimal;
import java.util.List;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
@@ -15,15 +16,68 @@ public class AccettazioneOrdineInevasoListViewModel {
public static class SubItem {
public String badge1;
public String badge2;
private String badge1;
private String badge2;
public String descrizione;
public String qtaRiservata;
public String qtaOrdinata;
private String descrizione;
private BigDecimal qtaRiservata;
private BigDecimal qtaOrdinata;
public OrdineAccettazioneDTO.Riga originalModel;
private OrdineAccettazioneDTO.Riga originalModel;
public String getBadge1() {
return badge1;
}
public SubItem setBadge1(String badge1) {
this.badge1 = badge1;
return this;
}
public String getBadge2() {
return badge2;
}
public SubItem setBadge2(String badge2) {
this.badge2 = badge2;
return this;
}
public String getDescrizione() {
return descrizione;
}
public SubItem setDescrizione(String descrizione) {
this.descrizione = descrizione;
return this;
}
public BigDecimal getQtaRiservata() {
return qtaRiservata;
}
public SubItem setQtaRiservata(BigDecimal qtaRiservata) {
this.qtaRiservata = qtaRiservata;
return this;
}
public BigDecimal getQtaOrdinata() {
return qtaOrdinata;
}
public SubItem setQtaOrdinata(BigDecimal qtaOrdinata) {
this.qtaOrdinata = qtaOrdinata;
return this;
}
public OrdineAccettazioneDTO.Riga getOriginalModel() {
return originalModel;
}
public SubItem setOriginalModel(OrdineAccettazioneDTO.Riga originalModel) {
this.originalModel = originalModel;
return this;
}
}
}

View File

@@ -0,0 +1,77 @@
package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.rest;
import android.text.TextUtils;
import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
public class OrdineAccettazioneInevasoRESTConsumerService {
public static void getBancaliGiaRegistrati(List<OrdineAccettazioneDTO> ordiniToShow, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) throws Exception {
List<String> colliWhereCond = new ArrayList<>();
Stream.of(ordiniToShow).forEach(x -> {
try {
Date date = UtilityDate.recognizeDate(x.data);
String dateString = UtilityDate.formatDate(date, "yyyy/MM/dd");
if (!colliWhereCond.contains(x.gestione + " " + dateString + " " + x.numero)) {
colliWhereCond.add(x.gestione + " " + dateString + " " + x.numero);
}
} catch (Exception ex){
UtilityLogger.errorMe(ex);
}
});
String colliINCondition = "";
for(int i = 0; i < colliWhereCond.size(); i ++){
colliINCondition += "'" + colliWhereCond.get(i) + "'";
if(i < (colliWhereCond.size()-1)) colliINCondition += ",";
}
String sql = "select distinct mtb_colt.* " +
"from mtb_colt, mtb_colr " +
"where mtb_colt.gestione = mtb_colr.gestione and " +
"mtb_colt.ser_collo = mtb_colr.ser_collo and " +
"mtb_colt.data_collo = mtb_colr.data_collo and " +
"mtb_colt.num_collo = mtb_colr.num_collo AND " +
"mtb_colt.gestione + ' ' + convert(varchar(15), mtb_colr.data_ord, 111) + ' ' + convert(varchar, mtb_colr.num_ord) IN (" + colliINCondition +
") and mtb_colt.data_doc is null ";
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
@Override
public void onSuccess(List<MtbColt> value) {
if(onComplete != null) onComplete.run(value);
}
@Override
public void onFailed(Exception ex) {
if(onFailed != null) onFailed.run(ex);
}
});
}
}

View File

@@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.viewmodel;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.databinding.ObservableArrayList;
import android.databinding.ObservableField;
import android.support.v7.app.AlertDialog;
@@ -21,6 +22,7 @@ import it.integry.integrywmsnative.BR;
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.GestSetupRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
@@ -30,14 +32,19 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.AccettazioneOrdineInevasoHelper;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.IOnOrdineRowDispatchCallback;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.MainListOrdineAccettazioneAdapter;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.rest.OrdineAccettazioneInevasoRESTConsumerService;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.views.NoteAggiuntiveNuovaULDialog;
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.ui.StatusBarAlert;
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
@@ -166,84 +173,90 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
//Add loading dialog here
progress.show();
MtbColt mtbColt = new MtbColt();
mtbColt .setDataCollo(new Date())
.setGestione(GestioneEnum.ACQUISTO)
.setCodMdep(SettingsManager.i().userSession.depo.getCodMdep())
.setPreparatoDa(SettingsManager.i().user.username)
.setOraInizPrep(new Date())
.setAnnotazioni(noteString)
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
List<String> codAnags =
stream(mOrders)
.select(c -> c.codAnag)
.distinct()
.toList();
GestSetupRESTConsumer.getValue("PICKING", "SETUP", "DEFAULT_POSIZIONE_COLLI_ACCETTAZIONE", defaultPosAccettazioneDTO -> {
if(codAnags != null && codAnags.size() == 1){
mtbColt.setCodAnag(codAnags.get(0));
}
String defaultPosAccettazione = "";
if(defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value)) defaultPosAccettazione = defaultPosAccettazioneDTO.value;
List<String> rifOrds =
stream(mOrders)
.select(c -> c.rifOrd)
.distinct()
.toList();
MtbColt mtbColt = new MtbColt();
mtbColt .setDataCollo(new Date())
.setGestione(GestioneEnum.ACQUISTO)
.setCodMdep(SettingsManager.i().userSession.depo.getCodMdep())
.setPreparatoDa(SettingsManager.i().user.fullname)
.setOraInizPrep(new Date())
.setAnnotazioni(noteString)
.setPosizione(defaultPosAccettazione)
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
if(rifOrds != null && rifOrds.size() == 1){
mtbColt.setRifOrd(rifOrds.get(0));
}
List<String> numDataOrds =
stream(mOrders)
.select(value -> ("" + value.numero) + value.data)
.distinct()
.toList();
if(numDataOrds != null && numDataOrds.size() == 1){
mtbColt.setNumOrd(mOrders.get(0).numero);
mtbColt.setDataOrd(mOrders.get(0).data);
try {
mtbColt.generaFiltroOrdine();
} catch (Exception ex) {
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(ex.getMessage()), null, null).show();
return;
}
}
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, new ISimpleOperationCallback<MtbColt>() {
@Override
public void onSuccess(MtbColt value) {
isFabVisible.set(false);
value.setMtbColr(new ObservableArrayList<>());
mArticoliInColloBottomSheetViewModel.mtbColt.set(value);
progress.dismiss();
new StatusBarAlert.Builder(mActivity)
.autoHide(true)
.withDuration(2500)
.showProgress(false)
.withText(R.string.data_saved)
.withAlertColor(R.color.mainGreen)
.build();
List<String> codAnags =
stream(mOrders)
.select(c -> c.codAnag)
.distinct()
.toList();
if(codAnags != null && codAnags.size() == 1){
mtbColt.setCodAnag(codAnags.get(0));
}
@Override
public void onFailed(Exception ex) {
progress.dismiss();
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
List<String> rifOrds =
stream(mOrders)
.select(c -> c.rifOrd)
.distinct()
.toList();
if(errorMessage == null) errorMessage = ex.getMessage();
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(errorMessage), null, null).show();
if(rifOrds != null && rifOrds.size() == 1){
mtbColt.setRifOrd(rifOrds.get(0));
}
});
List<String> numDataOrds =
stream(mOrders)
.select(value -> ("" + value.numero) + value.data)
.distinct()
.toList();
if(numDataOrds != null && numDataOrds.size() == 1){
mtbColt.setNumOrd(mOrders.get(0).numero);
mtbColt.setDataOrd(mOrders.get(0).data);
try {
mtbColt.generaFiltroOrdine();
} catch (Exception ex) {
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(ex.getMessage()), null, null).show();
return;
}
}
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, new ISimpleOperationCallback<MtbColt>() {
@Override
public void onSuccess(MtbColt value) {
isFabVisible.set(false);
value.setMtbColr(new ObservableArrayList<>());
mArticoliInColloBottomSheetViewModel.mtbColt.set(value);
progress.dismiss();
new StatusBarAlert.Builder(mActivity)
.autoHide(true)
.withDuration(2500)
.showProgress(false)
.withText(R.string.data_saved)
.withAlertColor(R.color.mainGreen)
.build();
}
@Override
public void onFailed(Exception ex) {
UtilityExceptions.defaultException(mActivity, ex, progress);
}
});
}, ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
}
@@ -259,7 +272,29 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
//Al click di "Mostra UL già create"
public void showCreatedUL() {
mActivity.bindings.accettazioneOrdineInevasoFab.close(true);
final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting),
mActivity.getText(R.string.loading) + " ...", true);
mActivity.bindings.accettazioneOrdineInevasoFab.close(false);
try {
OrdineAccettazioneInevasoRESTConsumerService.getBancaliGiaRegistrati(mOrders, mtbColts -> {
progress.dismiss();
Intent myIntent = new Intent(mActivity, ListaBancaliActivity.class);
myIntent.putExtra("key", (ArrayList<MtbColt>) mtbColts); //Optional parameters
mActivity.startActivity(myIntent);
}, ex -> {
UtilityExceptions.defaultException(mActivity, ex, progress);
});
} catch (Exception ex) {
UtilityExceptions.defaultException(mActivity, ex, progress);
}
}
@Override
@@ -290,32 +325,24 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
PrinterRESTConsumer.printCollo(
value.get(0),
mArticoliInColloBottomSheetViewModel.mtbColt.get(),
1, "EtichettaBancale", new ISimpleOperationCallback<Object>() {
@Override
public void onSuccess(Object value) {
1, "EtichettaBancale", () ->{
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
isFabVisible.set(true);
isFabVisible.set(true);
progress.dismiss();
progress.dismiss();
}
@Override
public void onFailed(Exception ex) {
progress.dismiss();
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
if (errorMessage == null) errorMessage = ex.getMessage();
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(errorMessage), null, null).show();
}
});
}, ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
} else {
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
isFabVisible.set(true);
progress.dismiss();
String errorMessage = "Nessuna stampante configurata";
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(errorMessage), null, null).show();
DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, null).show();
}
}

View File

@@ -0,0 +1,41 @@
package it.integry.integrywmsnative.gest.contenuto_bancale;
import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.databinding.ActivityContenutoBancaleBinding;
import it.integry.integrywmsnative.gest.contenuto_bancale.viewmodel.ContenutoBancaleViewModel;
public class ContenutoBancaleActivity extends AppCompatActivity {
public ActivityContenutoBancaleBinding bindings;
private ContenutoBancaleViewModel mViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bindings = DataBindingUtil.setContentView(this, R.layout.activity_contenuto_bancale);
MtbColt mtbColt = getIntent().getParcelableExtra("key");
mViewModel = new ContenutoBancaleViewModel(this, mtbColt);
bindings.waterfallToolbar.setNestedScrollView(bindings.scrollView);
setSupportActionBar(this.bindings.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
}

View File

@@ -0,0 +1,108 @@
package it.integry.integrywmsnative.gest.contenuto_bancale.core;
import android.content.Context;
import android.databinding.DataBindingUtil;
import android.databinding.ObservableArrayList;
import android.databinding.ObservableList;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.databinding.ListaContenutoBancaleListModelBinding;
public class ContenutoBancaleListAdapter extends RecyclerView.Adapter<ContenutoBancaleListAdapter.ViewHolder> {
protected Context mContext;
protected ObservableArrayList<MtbColr> mDataset;
private IRecyclerItemClicked<MtbColr> mOnItemClickListener;
public static class ViewHolder extends RecyclerView.ViewHolder {
protected ListaContenutoBancaleListModelBinding mViewDataBinding;
public ViewHolder(ListaContenutoBancaleListModelBinding v) {
super(v.getRoot());
mViewDataBinding = v;
}
public void bind(MtbColr mtbColr) {
mViewDataBinding.setMtbColr(mtbColr);
mViewDataBinding.executePendingBindings();
}
}
public ContenutoBancaleListAdapter(Context context, ObservableArrayList<MtbColr> myDataset, IRecyclerItemClicked<MtbColr> onItemClickListener) {
mContext = context;
mDataset = myDataset;
mOnItemClickListener = onItemClickListener;
myDataset.addOnListChangedCallback(onListChangedCallback);
}
@Override
public ContenutoBancaleListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// create a new view
ListaContenutoBancaleListModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.lista_contenuto_bancale_list_model, parent, false);
return new ViewHolder(viewDataBinding);
}
@Override
public void onBindViewHolder(ContenutoBancaleListAdapter.ViewHolder holder, int position) {
MtbColr item = mDataset.get(position);
holder.bind(item);
holder.mViewDataBinding.getRoot().setOnClickListener(x -> {
if(mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(item, position);
}
});
}
@Override
public void onViewRecycled(ContenutoBancaleListAdapter.ViewHolder holder) {
super.onViewRecycled(holder);
}
@Override
public int getItemCount() {
return mDataset.size();
}
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<MtbColr>>(){
@Override
public void onChanged(ObservableList<MtbColr> sender) {
notifyDataSetChanged();
}
@Override
public void onItemRangeChanged(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
notifyDataSetChanged();
}
@Override
public void onItemRangeInserted(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
notifyDataSetChanged();
}
@Override
public void onItemRangeMoved(ObservableList<MtbColr> sender, int fromPosition, int toPosition, int itemCount) {
notifyDataSetChanged();
}
@Override
public void onItemRangeRemoved(ObservableList<MtbColr> sender, int positionStart, int itemCount) {
notifyDataSetChanged();
}
};
}

View File

@@ -0,0 +1,31 @@
package it.integry.integrywmsnative.gest.contenuto_bancale.ui;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.andrefrsousa.superbottomsheet.SuperBottomSheetFragment;
import it.integry.integrywmsnative.R;
public class ContenutoBancaleBottomPanel extends SuperBottomSheetFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.fragment_contenuto_bancale, container, false);
}
public float getCornerRadius() {
if(getContext() != null) return getContext().getResources().getDimension(R.dimen.bottom_sheet_round16);
return 0;
}
@Override
public int getStatusBarColor() {
return Color.RED;
}
}

View File

@@ -0,0 +1,138 @@
package it.integry.integrywmsnative.gest.contenuto_bancale.viewmodel;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.res.Resources;
import android.databinding.ObservableField;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.text.SpannableString;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.DepositoRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.di.BindableString;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.report.ReportManager;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
import it.integry.integrywmsnative.gest.contenuto_bancale.core.ContenutoBancaleListAdapter;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
public class ContenutoBancaleViewModel implements IRecyclerItemClicked<MtbColr> {
private ContenutoBancaleActivity mContext;
public ObservableField<MtbColt> mtbColt;
public BindableString descrizioneDepo = new BindableString();
public ObservableField<Boolean> isFabVisible = new ObservableField<>();
private ContenutoBancaleListAdapter mAdapter;
public ContenutoBancaleViewModel(ContenutoBancaleActivity context, MtbColt mtbColt){
mContext = context;
this.mtbColt = new ObservableField<>(mtbColt);
this.isFabVisible.set(true);
mContext.bindings.setViewModel(this);
initRecyclerView();
initColloInfo();
}
private void initRecyclerView() {
mContext.bindings.contenutoBancaleMainList.setNestedScrollingEnabled(false);
mContext.bindings.contenutoBancaleMainList.setHasFixedSize(true);
mContext.bindings.contenutoBancaleMainList.setLayoutManager(new LinearLayoutManager(mContext));
DividerItemDecoration itemDecorator = new DividerItemDecoration(mContext, DividerItemDecoration.VERTICAL);
itemDecorator.setDrawable(ContextCompat.getDrawable(mContext, R.drawable.divider));
mContext.bindings.contenutoBancaleMainList.addItemDecoration(itemDecorator);
mAdapter = new ContenutoBancaleListAdapter(mContext, mtbColt.get().getMtbColr(), this);
mContext.bindings.contenutoBancaleMainList.setAdapter(mAdapter);
// mContext.bindings.waterfallToolbar.setRecyclerView(mContext.bindings.contenutoBancaleMainList);
}
private void initColloInfo() {
DepositoRESTConsumer.getDepoByCodMdep(mtbColt.get().getCodMdep(), depo -> {
descrizioneDepo.set("(" + depo.getDescrizione() + ")");
});
}
@Override
public void onItemClick(MtbColr item, int position) {
}
public void recoverUL(){
}
public void printUL() {
mContext.bindings.contenutoBancaleFab.close(true);
final ProgressDialog progress = ProgressDialog.show(mContext, mContext.getText(R.string.waiting),
mContext.getText(R.string.loading) + " ...", true);
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), new ISimpleOperationCallback<List<String>>() {
@Override
public void onSuccess(List<String> value) {
if(value.size() > 0) {
try {
ReportManager.getRightReportNameByMtbColt(mtbColt.get(), reportName -> {
PrinterRESTConsumer.printCollo(value.get(0),
mtbColt.get(),
1,
reportName,
() -> {
progress.dismiss();
Resources res = mContext.getResources();
String errorMessage = res.getText(R.string.alert_print_completed_message).toString();
DialogSimpleMessageHelper.makeSuccessDialog(mContext, res.getText(R.string.completed).toString(), new SpannableString(errorMessage), null, null).show();
}, ex -> UtilityExceptions.defaultException(mContext,ex, progress));
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress)
);
} catch (Exception ex){
UtilityExceptions.defaultException(mContext, ex, progress);
}
} else {
progress.dismiss();
String errorMessage = "Nessuna stampante configurata";
DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(errorMessage), null, null).show();
}
}
@Override
public void onFailed(Exception ex) {
UtilityExceptions.defaultException(mContext, ex, progress);
}
});
}
}

View File

@@ -0,0 +1,41 @@
package it.integry.integrywmsnative.gest.lista_bancali;
import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.databinding.ActivityListaBancaliBinding;
import it.integry.integrywmsnative.gest.lista_bancali.viewmodel.ListaBancaliViewModel;
public class ListaBancaliActivity extends AppCompatActivity {
public ActivityListaBancaliBinding bindings;
private ListaBancaliViewModel mViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bindings = DataBindingUtil.setContentView(this, R.layout.activity_lista_bancali);
List<MtbColt> mtbColts = (ArrayList<MtbColt>)getIntent().getSerializableExtra("key");
mViewModel = new ListaBancaliViewModel(this, mtbColts);
setSupportActionBar(this.bindings.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
}

View File

@@ -0,0 +1,111 @@
package it.integry.integrywmsnative.gest.lista_bancali.core;
import android.content.Context;
import android.databinding.DataBindingUtil;
import android.databinding.ObservableArrayList;
import android.databinding.ObservableList;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.view.View;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.databinding.ListaBancaliListModelBinding;
public class MainListListaColliAdapter extends RecyclerView.Adapter<MainListListaColliAdapter.ViewHolder> {
protected Context mContext;
protected ObservableArrayList<MtbColt> mDataset;
private IRecyclerItemClicked<MtbColt> mOnItemClickListener;
public static class ViewHolder extends RecyclerView.ViewHolder {
protected ListaBancaliListModelBinding mViewDataBinding;
public ViewHolder(ListaBancaliListModelBinding v) {
super(v.getRoot());
mViewDataBinding = v;
}
public void bind(MtbColt mtbColt) {
mViewDataBinding.setMtbColt(mtbColt);
mViewDataBinding.executePendingBindings();
}
}
public MainListListaColliAdapter(Context context, ObservableArrayList<MtbColt> myDataset, IRecyclerItemClicked<MtbColt> onItemClickListener) {
mContext = context;
mDataset = myDataset;
mOnItemClickListener = onItemClickListener;
myDataset.addOnListChangedCallback(onListChangedCallback);
}
@Override
public MainListListaColliAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// create a new view
ListaBancaliListModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.lista_bancali_list_model, parent, false);
return new ViewHolder(viewDataBinding);
}
@Override
public void onBindViewHolder(MainListListaColliAdapter.ViewHolder holder, int position) {
MtbColt item = mDataset.get(position);
holder.bind(item);
holder.mViewDataBinding.getRoot().setOnClickListener(x -> {
if(mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(item, position);
}
});
}
@Override
public void onViewRecycled(MainListListaColliAdapter.ViewHolder holder) {
super.onViewRecycled(holder);
}
@Override
public int getItemCount() {
return mDataset.size();
}
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<MtbColt>>() {
@Override
public void onChanged(ObservableList<MtbColt> sender) {
notifyDataSetChanged();
}
@Override
public void onItemRangeChanged(ObservableList<MtbColt> sender, int positionStart, int itemCount) {
notifyDataSetChanged();
}
@Override
public void onItemRangeInserted(ObservableList<MtbColt> sender, int positionStart, int itemCount) {
notifyDataSetChanged();
}
@Override
public void onItemRangeMoved(ObservableList<MtbColt> sender, int fromPosition, int toPosition, int itemCount) {
notifyDataSetChanged();
}
@Override
public void onItemRangeRemoved(ObservableList<MtbColt> sender, int positionStart, int itemCount) {
notifyDataSetChanged();
}
};
}

View File

@@ -0,0 +1,112 @@
package it.integry.integrywmsnative.gest.lista_bancali.viewmodel;
import android.app.ProgressDialog;
import android.content.Intent;
import android.databinding.ObservableArrayList;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
import it.integry.integrywmsnative.gest.lista_bancali.core.MainListListaColliAdapter;
public class ListaBancaliViewModel implements IRecyclerItemClicked<MtbColt> {
private ListaBancaliActivity mContext;
private ObservableArrayList<MtbColt> mMtbColts;
private MainListListaColliAdapter mAdapter;
public ListaBancaliViewModel(ListaBancaliActivity context, List<MtbColt> mtbColts){
mContext = context;
mMtbColts = new ObservableArrayList<>();
mMtbColts.addAll(mtbColts);
initRecyclerView();
}
public void initRecyclerView() {
mContext.bindings.listaColliMainList.setHasFixedSize(true);
mContext.bindings.listaColliMainList.setLayoutManager(new LinearLayoutManager(mContext));
DividerItemDecoration itemDecorator = new DividerItemDecoration(mContext, DividerItemDecoration.VERTICAL);
itemDecorator.setDrawable(ContextCompat.getDrawable(mContext, R.drawable.divider));
mContext.bindings.listaColliMainList.addItemDecoration(itemDecorator);
mAdapter = new MainListListaColliAdapter(mContext, mMtbColts, this);
mContext.bindings.listaColliMainList.setAdapter(mAdapter);
mContext.bindings.waterfallToolbar.setRecyclerView(mContext.bindings.listaColliMainList);
}
@Override
public void onItemClick(MtbColt item, int position) {
final ProgressDialog progress = ProgressDialog.show(mContext, mContext.getText(R.string.waiting),
mContext.getText(R.string.loading) + " ...", true);
try {
String sql = "SELECT *, mtb_aart.descrizione, mtb_aart.unt_mis " +
"FROM mtb_colr " +
"LEFT OUTER JOIN mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart " +
"WHERE " +
"mtb_colr.data_collo = " + UtilityDB.valueToString(item.getDataColloD()) + " AND " +
"mtb_colr.ser_collo = " + UtilityDB.valueToString(item.getSerCollo()) + " AND " +
"mtb_colr.num_collo = " + UtilityDB.valueToString(item.getNumCollo()) + " AND " +
"mtb_colr.gestione = " + UtilityDB.valueToString(item.getGestione());
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColr>>() {}.getType();
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColr>>() {
@Override
public void onSuccess(List<MtbColr> value) {
ObservableArrayList<MtbColr> mtbColrObservableArrayList = new ObservableArrayList<>();
mtbColrObservableArrayList.addAll(value);
item.setMtbColr(mtbColrObservableArrayList);
progress.dismiss();
Intent myIntent = new Intent(mContext, ContenutoBancaleActivity.class);
myIntent.putExtra("key", item); //Optional parameters
mContext.startActivity(myIntent);
}
@Override
public void onFailed(Exception ex) {
UtilityExceptions.defaultException(mContext, ex, progress);
}
});
} catch (ParseException e) {
e.printStackTrace();
UtilityExceptions.defaultException(mContext, e, progress);
}
}
}

View File

@@ -116,6 +116,7 @@ public class LoginViewModel {
public void onSuccess(final LoginDTO loginDTO) {
SettingsManager.iDB().setAvailableProfiles(loginDTO.availableProfiles);
SettingsManager.i().user.fullname = loginDTO.full_name;
mActivity.runOnUiThread(() -> onLoginSuccess(
@@ -150,7 +151,11 @@ public class LoginViewModel {
}
private void loadDepo(Runnable onComplete) {
private void loadDepo(String host, int port, Runnable onComplete) {
SettingsManager.i().server.codAzienda = codAzienda.get();
SettingsManager.i().server.host = host;
SettingsManager.i().server.port = port;
SettingsManager.i().user.username = username.get();
SettingsManager.i().user.password = password.get();
@@ -212,9 +217,7 @@ public class LoginViewModel {
builder.setItems(profiles, (dialog, which) -> {
SettingsManager.i().userSession.profileDB = availableProfiles.get(which);
loadDepo(() -> {
onLoginCompleted(host, port);
});
loadDepo(host, port, this::onLoginCompleted);
});
// create and show the alert dialog
@@ -222,14 +225,10 @@ public class LoginViewModel {
dialog.show();
}
public void onLoginCompleted(String host, int port) {
public void onLoginCompleted() {
loginButtonEnabled.set(true);
SettingsManager.i().server.codAzienda = codAzienda.get();
SettingsManager.i().server.host = host;
SettingsManager.i().server.port = port;
SettingsManager.update();
Intent myIntent = new Intent(mActivity, MainActivity.class);