Finish v1_0_16(19)
This commit is contained in:
commit
f1d9aa74e9
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@ -14,10 +14,11 @@ apply plugin: 'kotlin-android'
|
|||||||
apply plugin: 'kotlin-android-extensions'
|
apply plugin: 'kotlin-android-extensions'
|
||||||
apply plugin: 'com.google.gms.google-services'
|
apply plugin: 'com.google.gms.google-services'
|
||||||
|
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 18
|
def appVersionCode = 19
|
||||||
def appVersionName = '1.0.15'
|
def appVersionName = '1.0.16'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
@ -27,6 +28,13 @@ android {
|
|||||||
storePassword 'inpmiy'
|
storePassword 'inpmiy'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
applicationVariants.all { variant ->
|
||||||
|
variant.outputs.all { output ->
|
||||||
|
output.outputFileName = "android-release_v2.apk"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
compileSdkVersion 28
|
compileSdkVersion 28
|
||||||
buildToolsVersion '28.0.3'
|
buildToolsVersion '28.0.3'
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
|
|||||||
@ -226,23 +226,15 @@ public class MainActivity extends AppCompatActivity
|
|||||||
|
|
||||||
private void init(){
|
private void init(){
|
||||||
|
|
||||||
if(BarcodeManager.getCurrentBarcodeInterface() != null) {
|
initSessionData();
|
||||||
// DialogSimpleMessageHelper.makeInfoDialog(this,
|
|
||||||
// "Lettore barcode",
|
|
||||||
// new SpannableString("Trovato adattatore " + BarcodeManager.getCurrentBarcodeInterface().getAdapterName() + " installato nel sistema"),
|
|
||||||
// null, null).show();
|
|
||||||
}
|
|
||||||
//Preload done in splashPage
|
|
||||||
onDBLoaded();
|
|
||||||
|
|
||||||
ServerStatusChecker.getIstance().addCallback(value -> {
|
ServerStatusChecker.getIstance().addCallback(value -> {
|
||||||
if(value && (!mIsOnline || firstCheckExecution)){
|
if(value && (!mIsOnline || firstCheckExecution)){
|
||||||
|
|
||||||
SettingsManager.reloadDBVariables(() -> {
|
SettingsManager.loadDBVariables(() -> {
|
||||||
mIsOnline = true;
|
mIsOnline = true;
|
||||||
firstCheckExecution = false;
|
firstCheckExecution = false;
|
||||||
|
|
||||||
onDBLoaded();
|
|
||||||
}, ex -> {
|
}, ex -> {
|
||||||
//mNoConnectionLayout.expand(true);
|
//mNoConnectionLayout.expand(true);
|
||||||
if(!mIsOnline) mIsOnline = false;
|
if(!mIsOnline) mIsOnline = false;
|
||||||
@ -257,14 +249,18 @@ public class MainActivity extends AppCompatActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void onDBLoaded() {
|
private void initSessionData() {
|
||||||
LinearLayout headerLayout = (LinearLayout) mBinding.navView.getHeaderView(0);
|
LinearLayout headerLayout = (LinearLayout) mBinding.navView.getHeaderView(0);
|
||||||
|
|
||||||
((TextView) headerLayout.findViewById(R.id.drawer_username)).setText(SettingsManager.i().user.fullname);
|
TextView textViewUsername = headerLayout.findViewById(R.id.drawer_username);
|
||||||
((TextView) headerLayout.findViewById(R.id.drawer_deposito)).setText(SettingsManager.i().userSession.depo.getCodMdep() + " - " + SettingsManager.i().userSession.depo.getDescrizione());
|
textViewUsername.setText(SettingsManager.i().user.fullname);
|
||||||
|
|
||||||
|
TextView textViewDeposito = headerLayout.findViewById(R.id.drawer_deposito);
|
||||||
|
textViewDeposito.setText(String.format("%s - %s", SettingsManager.i().userSession.depo.getCodMdep(), SettingsManager.i().userSession.depo.getDescrizione()));
|
||||||
|
|
||||||
if(SettingsManager.iDB().getDatiAzienda() != null && SettingsManager.iDB().getDatiAzienda().isLogoAvailable()) {
|
if(SettingsManager.iDB().getDatiAzienda() != null && SettingsManager.iDB().getDatiAzienda().isLogoAvailable()) {
|
||||||
((ImageView) headerLayout.findViewById(R.id.drawer_logoAzienda)).setImageBitmap(SettingsManager.iDB().getDatiAzienda().getLogo());
|
ImageView imageViewLogoAzienda = headerLayout.findViewById(R.id.drawer_logoAzienda);
|
||||||
|
imageViewLogoAzienda.setImageBitmap(SettingsManager.iDB().getDatiAzienda().getLogo());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import com.orhanobut.logger.Logger;
|
|||||||
import io.fabric.sdk.android.Fabric;
|
import io.fabric.sdk.android.Fabric;
|
||||||
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.context.AppContext;
|
||||||
import it.integry.integrywmsnative.core.exception.ExceptionsHandler;
|
import it.integry.integrywmsnative.core.exception.ExceptionsHandler;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.settings.Stash;
|
import it.integry.integrywmsnative.core.settings.Stash;
|
||||||
@ -28,7 +29,8 @@ import it.integry.integrywmsnative.view.dialogs.exception.DialogException;
|
|||||||
public class MainApplication extends Application {
|
public class MainApplication extends Application {
|
||||||
|
|
||||||
public static Resources res;
|
public static Resources res;
|
||||||
public static Context Context;
|
|
||||||
|
private AppContext appContext = new AppContext(this);
|
||||||
|
|
||||||
|
|
||||||
// Called when the application is starting, before any other application objects have been created.
|
// Called when the application is starting, before any other application objects have been created.
|
||||||
@ -37,39 +39,11 @@ public class MainApplication extends Application {
|
|||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
|
|
||||||
if(!BuildConfig.DEBUG) {
|
appContext.init();
|
||||||
Fabric.with(this, new Crashlytics());
|
|
||||||
|
|
||||||
if(SettingsManager.i() != null &&
|
//Stash.init(this);
|
||||||
(SettingsManager.i().userSession != null && !UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB)) &&
|
|
||||||
(SettingsManager.i().user != null && !UtilityString.isNullOrEmpty(SettingsManager.i().user.fullname))) {
|
|
||||||
|
|
||||||
Crashlytics.setString("user_fullname", SettingsManager.i().user.fullname);
|
|
||||||
Crashlytics.setString("profile_db", SettingsManager.i().userSession.profileDB);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(SettingsManager.i() != null &&
|
|
||||||
(SettingsManager.i().userSession != null && !UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB)) &&
|
|
||||||
(SettingsManager.i().user != null && !UtilityString.isNullOrEmpty(SettingsManager.i().user.fullname))) {
|
|
||||||
|
|
||||||
Crashlytics.setString("user_fullname", SettingsManager.i().user.fullname);
|
|
||||||
Crashlytics.setString("profile_db", "[DEBUG] " + SettingsManager.i().userSession.profileDB);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Stash.init(this);
|
|
||||||
|
|
||||||
SettingsManager.init(this);
|
|
||||||
ServerStatusChecker.init();
|
|
||||||
BarcodeManager.init(this);
|
|
||||||
|
|
||||||
// UtilityExceptions.init(this);
|
|
||||||
UtilityResources.init(this);
|
|
||||||
|
|
||||||
Logger.addLogAdapter(new AndroidLogAdapter());
|
|
||||||
|
|
||||||
res = getResources();
|
res = getResources();
|
||||||
Context = this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called by the system when the device configuration changes while your component is running.
|
// Called by the system when the device configuration changes while your component is running.
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
||||||
|
import it.integry.integrywmsnative.core.context.MainContext;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
@ -26,6 +27,8 @@ public class SplashActivity extends AppCompatActivity {
|
|||||||
@BindView(R.id.app_version_textview)
|
@BindView(R.id.app_version_textview)
|
||||||
TextView appVersionTextView;
|
TextView appVersionTextView;
|
||||||
|
|
||||||
|
private MainContext mainContext = new MainContext(this);
|
||||||
|
|
||||||
private RunnableArgsss<Integer, String[], List<Integer>> onRequestPermissionResult;
|
private RunnableArgsss<Integer, String[], List<Integer>> onRequestPermissionResult;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -38,8 +41,6 @@ public class SplashActivity extends AppCompatActivity {
|
|||||||
initAppVersion();
|
initAppVersion();
|
||||||
|
|
||||||
initPermissions(this::init);
|
initPermissions(this::init);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initPermissions(Runnable onComplete) {
|
private void initPermissions(Runnable onComplete) {
|
||||||
@ -62,29 +63,25 @@ public class SplashActivity extends AppCompatActivity {
|
|||||||
try {
|
try {
|
||||||
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
|
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
|
||||||
String version = pInfo.versionName;
|
String version = pInfo.versionName;
|
||||||
appVersionTextView.setText("v" + version);
|
|
||||||
|
String debugText = "";
|
||||||
|
|
||||||
|
if(BuildConfig.DEBUG) debugText += "\n[DEBUG VERSION]";
|
||||||
|
|
||||||
|
appVersionTextView.setText("v" + version + debugText);
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
if(SettingsManager.i().user.username == null && SettingsManager.i().user.password == null){
|
if(!SettingsManager.i().isUserLoggedIn()){
|
||||||
startLoginActivity();
|
startLoginActivity();
|
||||||
} else {
|
} else {
|
||||||
initFirstData(this::startMainActivity);
|
mainContext.init(this::startMainActivity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initFirstData(Runnable onComplete) {
|
|
||||||
|
|
||||||
SettingsManager.reloadDBVariables(onComplete, ex -> {
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(this,
|
|
||||||
new SpannableString(ex.getMessage()), null, this::finish).show();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,11 @@
|
|||||||
package it.integry.integrywmsnative.core.REST.consumers;
|
package it.integry.integrywmsnative.core.REST.consumers;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -178,7 +180,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void distribuisciCollo(MtbColt mtbColtToDistribute, DistribuzioneColloDTO.CriterioDistribuzione criterioDistribuzione, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
public static void distribuisciCollo(MtbColt mtbColtToDistribute, DistribuzioneColloDTO.CriterioDistribuzione criterioDistribuzione, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
DistribuzioneColloDTO distribuzioneColloDTO = new DistribuzioneColloDTO()
|
DistribuzioneColloDTO distribuzioneColloDTO = new DistribuzioneColloDTO()
|
||||||
.setCriterioDistribuzione(criterioDistribuzione)
|
.setCriterioDistribuzione(criterioDistribuzione)
|
||||||
@ -192,7 +194,24 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
|||||||
.enqueue(new Callback<ServiceRESTResponse<JsonObject>>() {
|
.enqueue(new Callback<ServiceRESTResponse<JsonObject>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
|
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
|
||||||
analyzeAnswer(response, "DistribuzioneCollo", obj -> onComplete.run(), onFailed);
|
analyzeAnswerList(response, "DistribuzioneCollo", obj -> {
|
||||||
|
|
||||||
|
Gson gson = new Gson();
|
||||||
|
List<JsonObject> jsons = response.body().getEntityList();
|
||||||
|
|
||||||
|
List<MtbColt> newList = new ArrayList<>();
|
||||||
|
|
||||||
|
if(jsons != null) {
|
||||||
|
for (int i = 0; i < jsons.size(); i ++){
|
||||||
|
JsonObject jsonTmp = jsons.get(i);
|
||||||
|
|
||||||
|
newList.add(gson.fromJson(jsonTmp, MtbColt.class));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
onComplete.run(newList);
|
||||||
|
}, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.REST.consumers;
|
|||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.REST.model.EsitoType;
|
import it.integry.integrywmsnative.core.REST.model.EsitoType;
|
||||||
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
@ -17,7 +19,14 @@ public class _BaseRESTConsumer {
|
|||||||
if(response.body().getEsito() == EsitoType.OK) {
|
if(response.body().getEsito() == EsitoType.OK) {
|
||||||
if(!UtilityString.isNullOrEmpty(response.body().getErrorMessage())){
|
if(!UtilityString.isNullOrEmpty(response.body().getErrorMessage())){
|
||||||
callback.onFailed(new Exception(response.body().getErrorMessage()));
|
callback.onFailed(new Exception(response.body().getErrorMessage()));
|
||||||
} else callback.onSuccess(response.body().getDto());
|
} else {
|
||||||
|
|
||||||
|
T dataObj = response.body().getDto() != null ?
|
||||||
|
response.body().getDto() :
|
||||||
|
response.body().getEntity();
|
||||||
|
|
||||||
|
callback.onSuccess(dataObj);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.e(logTitle, response.body().getErrorMessage());
|
Log.e(logTitle, response.body().getErrorMessage());
|
||||||
callback.onFailed(new Exception(response.body().getErrorMessage()));
|
callback.onFailed(new Exception(response.body().getErrorMessage()));
|
||||||
@ -46,4 +55,45 @@ public class _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static <T> void analyzeAnswerList(Response<ServiceRESTResponse<T>> response, String logTitle, final ISimpleOperationCallback<List<T>> callback){
|
||||||
|
if(response.isSuccessful()) {
|
||||||
|
if(response.body() != null) {
|
||||||
|
if(response.body().getEsito() == EsitoType.OK) {
|
||||||
|
if(!UtilityString.isNullOrEmpty(response.body().getErrorMessage())){
|
||||||
|
callback.onFailed(new Exception(response.body().getErrorMessage()));
|
||||||
|
} else {
|
||||||
|
|
||||||
|
List<T> dataObj = response.body().getEntityList();
|
||||||
|
|
||||||
|
callback.onSuccess(dataObj);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e(logTitle, response.body().getErrorMessage());
|
||||||
|
callback.onFailed(new Exception(response.body().getErrorMessage()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e(logTitle, response.message());
|
||||||
|
callback.onFailed(new Exception(response.message()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e(logTitle, "Status " + response.code() + ": " + response.message());
|
||||||
|
callback.onFailed(new Exception("Status " + response.code() + ": " + response.message()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> void analyzeAnswerList(Response<ServiceRESTResponse<T>> response, String logTitle, RunnableArgs<List<T>> onComplete, RunnableArgs<Exception> onFailed){
|
||||||
|
analyzeAnswerList(response, logTitle, new ISimpleOperationCallback<List<T>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<T> value) {
|
||||||
|
onComplete.run(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,81 @@
|
|||||||
package it.integry.integrywmsnative.core.context;
|
package it.integry.integrywmsnative.core.context;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import com.crashlytics.android.Crashlytics;
|
||||||
|
import com.orhanobut.logger.AndroidLogAdapter;
|
||||||
|
import com.orhanobut.logger.Logger;
|
||||||
|
|
||||||
|
import io.fabric.sdk.android.Fabric;
|
||||||
|
import it.integry.integrywmsnative.BuildConfig;
|
||||||
|
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.settings.Stash;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||||
|
|
||||||
public class AppContext {
|
public class AppContext {
|
||||||
|
|
||||||
public AppContext() {
|
//Note: this is the Application Context NOT the Activity Context
|
||||||
|
private final Context mContext;
|
||||||
|
|
||||||
|
public AppContext(Context context) {
|
||||||
|
this.mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void init() {
|
||||||
|
this.initSettings();
|
||||||
|
|
||||||
|
this.initCrashlytics();
|
||||||
|
|
||||||
|
this.initServerStatusChecker();
|
||||||
|
|
||||||
|
this.initBarcode();
|
||||||
|
|
||||||
|
this.initUtilities();
|
||||||
|
|
||||||
|
this.initLogger();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initSettings() {
|
||||||
|
Stash.init(mContext);
|
||||||
|
SettingsManager.init(mContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initCrashlytics() {
|
||||||
|
if(!BuildConfig.DEBUG) {
|
||||||
|
Fabric.with(mContext, new Crashlytics());
|
||||||
|
|
||||||
|
if( SettingsManager.isInstanceAvailable() &&
|
||||||
|
(SettingsManager.i().userSession != null && !UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB)) &&
|
||||||
|
(SettingsManager.i().user != null && !UtilityString.isNullOrEmpty(SettingsManager.i().user.fullname))) {
|
||||||
|
|
||||||
|
Crashlytics.setString("user_fullname", SettingsManager.i().user.fullname);
|
||||||
|
Crashlytics.setString("profile_db", SettingsManager.i().userSession.profileDB);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initServerStatusChecker() {
|
||||||
|
ServerStatusChecker.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initBarcode() {
|
||||||
|
BarcodeManager.init(mContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initUtilities() {
|
||||||
|
UtilityResources.init(mContext);
|
||||||
|
UtilityToast.init(mContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initLogger() {
|
||||||
|
Logger.addLogAdapter(new AndroidLogAdapter());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,33 @@
|
|||||||
|
package it.integry.integrywmsnative.core.context;
|
||||||
|
|
||||||
|
import android.text.SpannableString;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
|
public class MainContext {
|
||||||
|
|
||||||
|
private final AppCompatActivity mContext;
|
||||||
|
|
||||||
|
public MainContext(AppCompatActivity context) {
|
||||||
|
this.mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void init(Runnable onContextInitialized) {
|
||||||
|
this.initDBData(() -> {
|
||||||
|
onContextInitialized.run();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initDBData(Runnable onComplete) {
|
||||||
|
SettingsManager.loadDBVariables(onComplete, ex -> {
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(mContext,
|
||||||
|
new SpannableString(ex.getMessage()), null, mContext::finish).show();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -57,6 +57,9 @@ public class SettingsManager {
|
|||||||
public static boolean isFirstStart(){
|
public static boolean isFirstStart(){
|
||||||
return firstStart;
|
return firstStart;
|
||||||
}
|
}
|
||||||
|
public static boolean isInstanceAvailable(){
|
||||||
|
return i() != null;
|
||||||
|
}
|
||||||
|
|
||||||
public static void update(){
|
public static void update(){
|
||||||
Stash.put(TAG, settingsModelIstance);
|
Stash.put(TAG, settingsModelIstance);
|
||||||
@ -68,10 +71,10 @@ public class SettingsManager {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void reloadDBVariables(Runnable onComplete, RunnableArgs<Exception> onFailed){
|
public static void loadDBVariables(Runnable onComplete, RunnableArgs<Exception> onFailed){
|
||||||
dbSettingsModelIstance = new DBSettingsModel();
|
dbSettingsModelIstance = new DBSettingsModel();
|
||||||
|
|
||||||
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_reload_vars");
|
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_vars");
|
||||||
perfTrace.start();
|
perfTrace.start();
|
||||||
|
|
||||||
Runnable tmpOnComplete = () -> {
|
Runnable tmpOnComplete = () -> {
|
||||||
|
|||||||
@ -8,6 +8,15 @@ public class SettingsModel {
|
|||||||
public User user;
|
public User user;
|
||||||
public UserSession userSession;
|
public UserSession userSession;
|
||||||
|
|
||||||
|
public boolean isUserLoggedIn() {
|
||||||
|
return user != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createUserSession() {
|
||||||
|
this.user = new User();
|
||||||
|
this.userSession = new UserSession();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static class Server {
|
public static class Server {
|
||||||
public String codAzienda;
|
public String codAzienda;
|
||||||
|
|||||||
@ -7,9 +7,14 @@ import java.util.Locale;
|
|||||||
|
|
||||||
public class UtilityNumber {
|
public class UtilityNumber {
|
||||||
|
|
||||||
|
public static String decimalToString(Float bigDecimal){
|
||||||
|
if(bigDecimal == null) return "0";
|
||||||
|
return decimalToString(bigDecimal, 3);
|
||||||
|
}
|
||||||
|
|
||||||
public static String decimalToString(BigDecimal bigDecimal){
|
public static String decimalToString(BigDecimal bigDecimal){
|
||||||
if(bigDecimal == null) return "0";
|
if(bigDecimal == null) return "0";
|
||||||
return decimalToString(bigDecimal, 2);
|
return decimalToString(bigDecimal, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String decimalToString(BigDecimal bigDecimal, int decimal){
|
public static String decimalToString(BigDecimal bigDecimal, int decimal){
|
||||||
|
|||||||
@ -7,8 +7,8 @@ public class UtilitySettings {
|
|||||||
|
|
||||||
|
|
||||||
public static void logout(){
|
public static void logout(){
|
||||||
SettingsManager.i().user = new SettingsModel.User();
|
SettingsManager.i().user = null;
|
||||||
SettingsManager.i().userSession = new SettingsModel.UserSession();
|
SettingsManager.i().userSession = null;
|
||||||
|
|
||||||
SettingsManager.update();
|
SettingsManager.update();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,20 @@
|
|||||||
package it.integry.integrywmsnative.core.utility;
|
package it.integry.integrywmsnative.core.utility;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.MainApplication;
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
|
||||||
public class UtilityToast {
|
public class UtilityToast {
|
||||||
|
|
||||||
|
private static Context context;
|
||||||
|
|
||||||
|
public static void init(Context context) {
|
||||||
|
UtilityToast.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
public static void showToast(String message) {
|
public static void showToast(String message) {
|
||||||
Toast.makeText(MainApplication.Context, message, Toast.LENGTH_LONG).show();
|
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -89,8 +89,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
|
|||||||
|
|
||||||
private void init(){
|
private void init(){
|
||||||
mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
|
mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
|
||||||
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback(() -> this.refreshOrderBy(false));
|
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback((deletedItem) -> this.refreshOrderBy(false));
|
||||||
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback(() -> this.refreshOrderBy(false));
|
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback((originalItem, editedItem) -> this.refreshOrderBy(false));
|
||||||
|
|
||||||
groupedOrdini = new ArrayList<>();
|
groupedOrdini = new ArrayList<>();
|
||||||
for (OrdineAccettazioneDTO ordine : mOrders){
|
for (OrdineAccettazioneDTO ordine : mOrders){
|
||||||
|
|||||||
@ -5,12 +5,14 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.context.MainContext;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityWindow;
|
import it.integry.integrywmsnative.core.utility.UtilityWindow;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityLoginBinding;
|
import it.integry.integrywmsnative.databinding.ActivityLoginBinding;
|
||||||
import it.integry.integrywmsnative.gest.login.viewmodel.LoginViewModel;
|
import it.integry.integrywmsnative.gest.login.viewmodel.LoginViewModel;
|
||||||
|
|
||||||
public class LoginActivity extends AppCompatActivity {
|
public class LoginActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
private MainContext mainContext = new MainContext(this);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -18,7 +20,7 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
UtilityWindow.maximizeToFullScreen(this);
|
UtilityWindow.maximizeToFullScreen(this);
|
||||||
|
|
||||||
ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
|
ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
|
||||||
LoginViewModel loginViewModel = new LoginViewModel(this);
|
LoginViewModel loginViewModel = new LoginViewModel(this, mainContext);
|
||||||
binding.setLoginViewModel(loginViewModel);
|
binding.setLoginViewModel(loginViewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import it.integry.integrywmsnative.R;
|
|||||||
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
||||||
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
|
import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
|
||||||
|
import it.integry.integrywmsnative.core.context.MainContext;
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
import it.integry.integrywmsnative.core.di.BindableString;
|
import it.integry.integrywmsnative.core.di.BindableString;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
@ -28,7 +29,6 @@ import it.integry.integrywmsnative.gest.login.dto.LoginDTO;
|
|||||||
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
public class LoginViewModel {
|
public class LoginViewModel {
|
||||||
private static final String TAG = LoginViewModel.class.getSimpleName();
|
|
||||||
|
|
||||||
public BindableString username = new BindableString();
|
public BindableString username = new BindableString();
|
||||||
public BindableString password = new BindableString();
|
public BindableString password = new BindableString();
|
||||||
@ -47,11 +47,13 @@ public class LoginViewModel {
|
|||||||
|
|
||||||
|
|
||||||
private LoginActivity mActivity;
|
private LoginActivity mActivity;
|
||||||
|
private MainContext mMainContext;
|
||||||
|
|
||||||
private ProgressDialog mProgress;
|
private ProgressDialog mProgress;
|
||||||
|
|
||||||
public LoginViewModel(LoginActivity activity) {
|
public LoginViewModel(LoginActivity activity, MainContext mainContext) {
|
||||||
this.mActivity = activity;
|
this.mActivity = activity;
|
||||||
|
this.mMainContext = mainContext;
|
||||||
|
|
||||||
loginButtonEnabled.set(true);
|
loginButtonEnabled.set(true);
|
||||||
|
|
||||||
@ -115,6 +117,8 @@ public class LoginViewModel {
|
|||||||
public void onSuccess(final LoginDTO loginDTO) {
|
public void onSuccess(final LoginDTO loginDTO) {
|
||||||
|
|
||||||
SettingsManager.iDB().setAvailableProfiles(loginDTO.availableProfiles);
|
SettingsManager.iDB().setAvailableProfiles(loginDTO.availableProfiles);
|
||||||
|
|
||||||
|
SettingsManager.i().createUserSession();
|
||||||
SettingsManager.i().user.fullname = loginDTO.full_name;
|
SettingsManager.i().user.fullname = loginDTO.full_name;
|
||||||
|
|
||||||
|
|
||||||
@ -237,19 +241,14 @@ public class LoginViewModel {
|
|||||||
SettingsManager.update();
|
SettingsManager.update();
|
||||||
|
|
||||||
ProgressDialog loadingProgress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
ProgressDialog loadingProgress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
||||||
SettingsManager.reloadDBVariables(() -> {
|
mMainContext.init(() -> {
|
||||||
loadingProgress.dismiss();
|
loadingProgress.dismiss();
|
||||||
mActivity.finish();
|
mActivity.finish();
|
||||||
|
|
||||||
Intent myIntent = new Intent(mActivity, MainActivity.class);
|
Intent myIntent = new Intent(mActivity, MainActivity.class);
|
||||||
mActivity.startActivity(myIntent);
|
mActivity.startActivity(myIntent);
|
||||||
|
});
|
||||||
|
|
||||||
},ex -> {
|
|
||||||
loadingProgress.dismiss();
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(mActivity,
|
|
||||||
new SpannableString(ex.getMessage()), null, null).show();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -228,6 +228,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
|||||||
//Cerco tramite etichetta ean 128 (che può indicarmi una UL)
|
//Cerco tramite etichetta ean 128 (che può indicarmi una UL)
|
||||||
this.executeEtichettaEan128(data, progressDialog);
|
this.executeEtichettaEan128(data, progressDialog);
|
||||||
} else {
|
} else {
|
||||||
|
progressDialog.dismiss();
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -78,11 +78,17 @@ public class RettificaGiacenzeHelper {
|
|||||||
|
|
||||||
public void searchArtInt(String codMartOrBarcodeOrDescr, RunnableArgs<ArrayList<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void searchArtInt(String codMartOrBarcodeOrDescr, RunnableArgs<ArrayList<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
String sql = "SELECT DISTINCT mtb_aart.* " +
|
String sql = "SELECT DISTINCT mtb_aart.* " +
|
||||||
"FROM mtb_aart, mvw_barcode " +
|
"FROM mtb_aart " +
|
||||||
"WHERE (case when len(mvw_barcode.cod_barre) > 13 " +
|
"LEFT OUTER JOIN mvw_barcode on mtb_aart.cod_mart = mvw_barcode.cod_mart " +
|
||||||
"then mvw_barcode.cod_barre " +
|
"WHERE CASE" +
|
||||||
"else Replicate('0', 13 - len(mvw_barcode.cod_barre))+ mvw_barcode.cod_barre end LIKE '%' + case when len('" + codMartOrBarcodeOrDescr + "') > 13 then '" + codMartOrBarcodeOrDescr + "' else Replicate('0', 13 - len('" + codMartOrBarcodeOrDescr + "')) + '" + codMartOrBarcodeOrDescr + "'" +
|
" WHEN LEN(mvw_barcode.cod_barre) > 13 THEN mvw_barcode.cod_barre " +
|
||||||
"end OR mtb_aart.cod_mart = '" + codMartOrBarcodeOrDescr + "' OR mtb_aart.descrizione_estesa LIKE '%" + codMartOrBarcodeOrDescr + "%') AND mtb_aart.cod_mart = mvw_barcode.cod_mart";
|
" ELSE Replicate('0', 13 - len(mvw_barcode.cod_barre))+ mvw_barcode.cod_barre " +
|
||||||
|
"END LIKE '%' + CASE " +
|
||||||
|
" WHEN LEN('" + codMartOrBarcodeOrDescr + "') > 13 THEN '" + codMartOrBarcodeOrDescr + "' " +
|
||||||
|
" ELSE Replicate('0', 13 - len('" + codMartOrBarcodeOrDescr + "')) + '" + codMartOrBarcodeOrDescr + "'" +
|
||||||
|
" END " +
|
||||||
|
"OR mtb_aart.cod_mart = '" + codMartOrBarcodeOrDescr + "' " +
|
||||||
|
"OR mtb_aart.descrizione_estesa LIKE '%" + codMartOrBarcodeOrDescr + "%'";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAart>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbAart>>() {}.getType();
|
||||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbAart>>() {
|
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbAart>>() {
|
||||||
|
|||||||
@ -91,8 +91,16 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
|
|
||||||
private void init(){
|
private void init(){
|
||||||
mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
|
mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
|
||||||
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback(() -> this.refreshOrderBy(false));
|
|
||||||
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback(() -> this.refreshOrderBy(false));
|
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback((deletedItem) -> {
|
||||||
|
this.onRowItemDeleted(deletedItem);
|
||||||
|
this.refreshOrderBy(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback((originalItem, editedItem) -> {
|
||||||
|
this.onRowItemEdited(originalItem, editedItem);
|
||||||
|
this.refreshOrderBy(false);
|
||||||
|
});
|
||||||
|
|
||||||
mHelper = new VenditaOrdineInevasoHelper(mActivity);
|
mHelper = new VenditaOrdineInevasoHelper(mActivity);
|
||||||
|
|
||||||
@ -203,6 +211,37 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void onRowItemEdited(MtbColr originalItem, MtbColr editedItem) {
|
||||||
|
|
||||||
|
for(int i = 0; i < mPickingList.size(); i++) {
|
||||||
|
|
||||||
|
int foundIndex = mPickingList.get(i).getWithdrawRows().indexOf(originalItem);
|
||||||
|
|
||||||
|
if(foundIndex >= 0){
|
||||||
|
mPickingList.get(i).getWithdrawRows().set(foundIndex, editedItem);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onRowItemDeleted(MtbColr deletedItem) {
|
||||||
|
|
||||||
|
for(int i = 0; i < mPickingList.size(); i++) {
|
||||||
|
|
||||||
|
int foundIndex = mPickingList.get(i).getWithdrawRows().indexOf(deletedItem);
|
||||||
|
|
||||||
|
if(foundIndex >= 0){
|
||||||
|
mPickingList.get(i).getWithdrawRows().remove(foundIndex);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void refreshOrderBy(boolean forceHiddenCheck){
|
public void refreshOrderBy(boolean forceHiddenCheck){
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -656,7 +695,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
progress.show();
|
progress.show();
|
||||||
|
|
||||||
if(thereIsAnyRowInUL()) {
|
if(thereIsAnyRowInUL()) {
|
||||||
updateDataFine(progress, () -> distribuisciCollo(progress, () -> printCollo(progress)));
|
updateDataFine(progress, () -> distribuisciCollo(progress, (generatedMtbColts) -> printCollo(progress)));
|
||||||
} else {
|
} else {
|
||||||
deleteCollo(progress);
|
deleteCollo(progress);
|
||||||
}
|
}
|
||||||
@ -685,17 +724,16 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void distribuisciCollo(ProgressDialog progress, Runnable onComplete) {
|
private void distribuisciCollo(ProgressDialog progress, RunnableArgs<List<MtbColt>> onComplete) {
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.distribuisciCollo(cloneMtbColt, DistribuzioneColloDTO.CriterioDistribuzione.UPDATE, onComplete,
|
ColliMagazzinoRESTConsumer.distribuisciCollo(cloneMtbColt, DistribuzioneColloDTO.CriterioDistribuzione.SPLIT_ORDINE, onComplete,
|
||||||
ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
|
ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void printCollo(ProgressDialog progress) {
|
private void printCollo(ProgressDialog progress) {
|
||||||
|
|
||||||
|
|
||||||
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.SECONDARY,new ISimpleOperationCallback<List<String>>() {
|
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.SECONDARY,new ISimpleOperationCallback<List<String>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<String> value) {
|
public void onSuccess(List<String> value) {
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import it.integry.integrywmsnative.BR;
|
|||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
@ -48,8 +49,8 @@ public class ArticoliInColloBottomSheetViewModel {
|
|||||||
|
|
||||||
private BottomSheetBehavior mBottomSheetBehavior;
|
private BottomSheetBehavior mBottomSheetBehavior;
|
||||||
|
|
||||||
private Runnable mOnItemDeletedCallback;
|
private RunnableArgs<MtbColr> mOnItemDeletedCallback;
|
||||||
private Runnable mOnItemEditedCallback;
|
private RunnableArgss<MtbColr, MtbColr> mOnItemEditedCallback;
|
||||||
|
|
||||||
|
|
||||||
public ArticoliInColloBottomSheetViewModel(AppCompatActivity context, final FragmentArticoliInColloBottomSheetBinding bindings){
|
public ArticoliInColloBottomSheetViewModel(AppCompatActivity context, final FragmentArticoliInColloBottomSheetBinding bindings){
|
||||||
@ -86,11 +87,11 @@ public class ArticoliInColloBottomSheetViewModel {
|
|||||||
initBottomSheetActions();
|
initBottomSheetActions();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnItemEditedCallback(Runnable onItemEditedCallback) {
|
public void setOnItemEditedCallback(RunnableArgss<MtbColr, MtbColr> onItemEditedCallback) {
|
||||||
this.mOnItemEditedCallback = onItemEditedCallback;
|
this.mOnItemEditedCallback = onItemEditedCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnItemDeletedCallback(Runnable onItemDeletedCallback) {
|
public void setOnItemDeletedCallback(RunnableArgs<MtbColr> onItemDeletedCallback) {
|
||||||
this.mOnItemDeletedCallback = onItemDeletedCallback;
|
this.mOnItemDeletedCallback = onItemDeletedCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,6 +157,9 @@ public class ArticoliInColloBottomSheetViewModel {
|
|||||||
|
|
||||||
MtbColr itemToEdit = mtbColt.get().getMtbColr().get(position);
|
MtbColr itemToEdit = mtbColt.get().getMtbColr().get(position);
|
||||||
|
|
||||||
|
MtbColr originalItem = (MtbColr) itemToEdit.clone();
|
||||||
|
|
||||||
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||||
|
|
||||||
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
||||||
@ -180,7 +184,7 @@ public class ArticoliInColloBottomSheetViewModel {
|
|||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
mtbColt.get().getMtbColr().set(position, itemToEdit);
|
mtbColt.get().getMtbColr().set(position, itemToEdit);
|
||||||
|
|
||||||
if(mOnItemEditedCallback != null) mOnItemEditedCallback.run();
|
if(mOnItemEditedCallback != null) mOnItemEditedCallback.run(originalItem, itemToEdit);
|
||||||
},
|
},
|
||||||
ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
||||||
|
|
||||||
@ -205,7 +209,7 @@ public class ArticoliInColloBottomSheetViewModel {
|
|||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
mtbColt.get().getMtbColr().remove(position);
|
mtbColt.get().getMtbColr().remove(position);
|
||||||
|
|
||||||
if(this.mOnItemDeletedCallback != null) this.mOnItemDeletedCallback.run();
|
if(this.mOnItemDeletedCallback != null) this.mOnItemDeletedCallback.run(itemToDelete);
|
||||||
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
||||||
}, null).show();
|
}, null).show();
|
||||||
|
|
||||||
|
|||||||
@ -553,7 +553,7 @@ public class DialogInputQuantity {
|
|||||||
if(isError){
|
if(isError){
|
||||||
textInputLayout.setErrorEnabled(true);
|
textInputLayout.setErrorEnabled(true);
|
||||||
textInputLayout.setError(" ");
|
textInputLayout.setError(" ");
|
||||||
textInputLayout.getEditText().setTextColor(ContextCompat.getColor(MainApplication.Context, R.color.red_600));
|
textInputLayout.getEditText().setTextColor(ContextCompat.getColor(currentContext, R.color.red_600));
|
||||||
textInputLayout.setHintTextAppearance(R.style.ErrorFloatingLabel);
|
textInputLayout.setHintTextAppearance(R.style.ErrorFloatingLabel);
|
||||||
|
|
||||||
if (textInputLayout.getChildCount() == 2) {
|
if (textInputLayout.getChildCount() == 2) {
|
||||||
|
|||||||
@ -64,6 +64,7 @@
|
|||||||
android:id="@+id/app_version_textview"
|
android:id="@+id/app_version_textview"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
tools:text="v 1.0.0"
|
tools:text="v 1.0.0"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
|||||||
@ -23,6 +23,7 @@
|
|||||||
<import type="android.graphics.Color" />
|
<import type="android.graphics.Color" />
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
@ -114,15 +115,14 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:visibility="@{viewmodel.qtaOrd == null ? View.GONE : View.VISIBLE}"
|
android:visibility="@{viewmodel.qtaOrd == null ? View.GONE : View.VISIBLE}"
|
||||||
android:text="@string/ordered"
|
android:text="@string/ordered_abbr"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp" />
|
||||||
tools:text="Ordinati" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:visibility="@{viewmodel.qtaOrd == null ? View.GONE : View.VISIBLE}"
|
android:visibility="@{viewmodel.qtaOrd == null ? View.GONE : View.VISIBLE}"
|
||||||
android:text='@{String.format("%.2f", viewmodel.qtaOrd)}'
|
android:text='@{UtilityNumber.decimalToString(viewmodel.qtaOrd)}'
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:paddingLeft="4dp"
|
android:paddingLeft="4dp"
|
||||||
@ -132,15 +132,14 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="12dp"
|
android:layout_marginStart="12dp"
|
||||||
android:text="@string/dispatched"
|
android:text="@string/dispatched_abbr"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:visibility="@{quantityViewModel.qtaEvasa.get() == 0 ? View.GONE : View.VISIBLE}"
|
android:visibility="@{quantityViewModel.qtaEvasa.get() == 0 ? View.GONE : View.VISIBLE}" />
|
||||||
tools:text="Evasi" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text='@{String.format("%.2f", quantityViewModel.qtaEvasa.get())}'
|
android:text='@{UtilityNumber.decimalToString(quantityViewModel.qtaEvasa.get())}'
|
||||||
android:visibility="@{quantityViewModel.qtaEvasa.get() == 0 ? View.GONE : View.VISIBLE}"
|
android:visibility="@{quantityViewModel.qtaEvasa.get() == 0 ? View.GONE : View.VISIBLE}"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
@ -163,14 +162,13 @@
|
|||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/to_dispatch"
|
android:text="@string/to_dispatch_abbr"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp" />
|
||||||
tools:text="Da evadere" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text='@{String.format("%.2f", quantityViewModel.qtaDaEvadere.get())}'
|
android:text='@{UtilityNumber.decimalToString(quantityViewModel.qtaDaEvadere.get())}'
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:paddingLeft="4dp"
|
android:paddingLeft="4dp"
|
||||||
@ -194,14 +192,13 @@
|
|||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/available"
|
android:text="@string/available_abbr"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp" />
|
||||||
tools:text="Disponibile" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text='@{String.format("%.2f", quantityViewModel.qtaDisponibile.get())}'
|
android:text='@{UtilityNumber.decimalToString(quantityViewModel.qtaDisponibile.get())}'
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:paddingStart="4dp"
|
android:paddingStart="4dp"
|
||||||
|
|||||||
@ -28,20 +28,6 @@
|
|||||||
android:paddingRight="6dp"
|
android:paddingRight="6dp"
|
||||||
android:textStyle="bold"/>
|
android:textStyle="bold"/>
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_badge2"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="BADGE 2"
|
|
||||||
android:background="@drawable/badge2_round_corner"
|
|
||||||
android:textColor="@android:color/white"
|
|
||||||
android:paddingTop="2dp"
|
|
||||||
android:paddingBottom="2dp"
|
|
||||||
android:paddingLeft="6dp"
|
|
||||||
android:paddingRight="6dp"
|
|
||||||
android:layout_marginStart="8dp"
|
|
||||||
android:textStyle="bold"/>
|
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -97,19 +83,54 @@
|
|||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
tools:text="DESCRIZIONE"/>
|
tools:text="DESCRIZIONE"/>
|
||||||
|
|
||||||
<TextView
|
<RelativeLayout
|
||||||
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_subdescrizione1"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
android:layout_height="wrap_content">
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textSize="14sp"
|
<LinearLayout
|
||||||
tools:text="SUB DESCRIZIONE"/>
|
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_subdescrizione_layout"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:layout_toStartOf="@+id/vendita_ordine_inevaso_main_list_group_item_badge2">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_subdescrizione1"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="14sp"
|
||||||
|
tools:text="SUB DESCRIZIONE"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_subdescrizione2"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="14sp"
|
||||||
|
tools:text="SUB DESCRIZIONE"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_badge2"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="BADGE 2"
|
||||||
|
android:background="@drawable/badge2_round_corner"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:paddingTop="2dp"
|
||||||
|
android:paddingBottom="2dp"
|
||||||
|
android:paddingLeft="6dp"
|
||||||
|
android:paddingRight="6dp"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:layout_alignParentEnd="true"/>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/vendita_ordine_inevaso_main_list_group_item_subdescrizione2"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textSize="14sp"
|
|
||||||
tools:text="SUB DESCRIZIONE"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
<string name="ok">OK</string>
|
<string name="ok">OK</string>
|
||||||
<string name="abort">Annulla</string>
|
<string name="abort">Annulla</string>
|
||||||
<string name="reset">Resetta</string>
|
<string name="reset">Resetta</string>
|
||||||
<string name="dispatched">Evasi</string>
|
<string name="dispatched_abbr">Evasi</string>
|
||||||
|
|
||||||
<string name="permission_request_message">Questi permessi sono necessari al funzionamento dell\'app</string>
|
<string name="permission_request_message">Questi permessi sono necessari al funzionamento dell\'app</string>
|
||||||
|
|
||||||
@ -97,9 +97,9 @@
|
|||||||
|
|
||||||
<string name="quantity_short">Qtà</string>
|
<string name="quantity_short">Qtà</string>
|
||||||
|
|
||||||
<string name="ordered">Ordinati</string>
|
<string name="ordered_abbr">Ord</string>
|
||||||
<string name="to_dispatch">Da evadere</string>
|
<string name="to_dispatch_abbr">Da ev</string>
|
||||||
<string name="available">Disponibile</string>
|
<string name="available_abbr">Disp</string>
|
||||||
|
|
||||||
<string name="batch_lot">Lotto</string>
|
<string name="batch_lot">Lotto</string>
|
||||||
<string name="batch_lot_text"><![CDATA[Lotto: <b>%s</b>]]></string>
|
<string name="batch_lot_text"><![CDATA[Lotto: <b>%s</b>]]></string>
|
||||||
|
|||||||
@ -31,7 +31,7 @@
|
|||||||
<string name="ok">OK</string>
|
<string name="ok">OK</string>
|
||||||
<string name="abort">Abort</string>
|
<string name="abort">Abort</string>
|
||||||
<string name="reset">Reset</string>
|
<string name="reset">Reset</string>
|
||||||
<string name="dispatched">Dispatched</string>
|
<string name="dispatched_abbr">Dspch</string>
|
||||||
<string name="no_description">No description</string>
|
<string name="no_description">No description</string>
|
||||||
<string name="description">Description</string>
|
<string name="description">Description</string>
|
||||||
<string name="stock">Stock</string>
|
<string name="stock">Stock</string>
|
||||||
@ -96,9 +96,9 @@
|
|||||||
|
|
||||||
<string name="quantity_short">Qty</string>
|
<string name="quantity_short">Qty</string>
|
||||||
|
|
||||||
<string name="ordered">Ordered</string>
|
<string name="ordered_abbr">Ord</string>
|
||||||
<string name="to_dispatch">To dispatch</string>
|
<string name="to_dispatch_abbr">To disp</string>
|
||||||
<string name="available">Available</string>
|
<string name="available_abbr">Avbl</string>
|
||||||
|
|
||||||
<string name="batch_lot">Batch lot</string>
|
<string name="batch_lot">Batch lot</string>
|
||||||
<string name="level">Level</string>
|
<string name="level">Level</string>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user