Finish v1_0_39(42)

This commit is contained in:
Giuseppe Scorrano 2019-03-22 19:17:25 +01:00
commit f733e590cd
75 changed files with 1817 additions and 645 deletions

43
.githooks/commit-msg Normal file
View File

@ -0,0 +1,43 @@
#!/bin/sh
#
# An example hook script to check the commit log message.
# Called by "git commit" with one argument, the name of the file
# that has the commit message. The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit. The hook is allowed to edit the commit message file.
#
# To enable this hook, rename this file to "commit-msg".
# Uncomment the below to add a Signed-off-by line to the message.
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
# hook is more suited to it.
#
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
# This example catches duplicate Signed-off-by lines.
USER_EMAIL=$(git log -1 --format=format:%ae HEAD)
USER_NAME=$(git log -1 --format=format:%an HEAD)
COMMIT_MESSAGE=$(cat $1)
if [[ $COMMIT_MESSAGE == "#"* ]];
then
ACTIVITY_ID=$(echo $COMMIT_MESSAGE | awk '{print $1;}')
ACTIVITY_ID=$(echo $ACTIVITY_ID | tr -d : | tr -d "#")
echo "Riconosciuta attivita: " $ACTIVITY_ID
curl -X POST "http://192.168.2.215:8080/ems-api/activity/createFromCommit?profileDb=INTEGRY&committerEmail=$USER_EMAIL" \
-d "commitMessage=$COMMIT_MESSAGE"
fi
#echo "TESTO: " $COMMIT_MESSAGE
#test "" = "$(grep '^Signed-off-by: ' "$1" |
# sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
# echo >&2 Duplicate Signed-off-by lines.
# exit 1
#}

Binary file not shown.

1
.idea/gradle.xml generated
View File

@ -13,7 +13,6 @@
<option value="$PROJECT_DIR$/dynamic__base" /> <option value="$PROJECT_DIR$/dynamic__base" />
<option value="$PROJECT_DIR$/dynamic_vgalimenti" /> <option value="$PROJECT_DIR$/dynamic_vgalimenti" />
<option value="$PROJECT_DIR$/pointmobilescannerlibrary" /> <option value="$PROJECT_DIR$/pointmobilescannerlibrary" />
<option value="$PROJECT_DIR$/waterfall_toolbar" />
</set> </set>
</option> </option>
<option name="resolveModulePerSourceSet" value="false" /> <option name="resolveModulePerSourceSet" value="false" />

1
.idea/modules.xml generated
View File

@ -8,7 +8,6 @@
<module fileurl="file://$PROJECT_DIR$/dynamic__base/dynamic__base.iml" filepath="$PROJECT_DIR$/dynamic__base/dynamic__base.iml" /> <module fileurl="file://$PROJECT_DIR$/dynamic__base/dynamic__base.iml" filepath="$PROJECT_DIR$/dynamic__base/dynamic__base.iml" />
<module fileurl="file://$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" filepath="$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" /> <module fileurl="file://$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" filepath="$PROJECT_DIR$/dynamic_vgalimenti/dynamic_vgalimenti.iml" />
<module fileurl="file://$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" filepath="$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" /> <module fileurl="file://$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" filepath="$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" />
<module fileurl="file://$PROJECT_DIR$/waterfall_toolbar/waterfall_toolbar.iml" filepath="$PROJECT_DIR$/waterfall_toolbar/waterfall_toolbar.iml" />
</modules> </modules>
</component> </component>
</project> </project>

View File

@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
android { android {
def appVersionCode = 41 def appVersionCode = 42
def appVersionName = '1.0.38' def appVersionName = '1.0.39'
signingConfigs { signingConfigs {
release { release {
@ -95,25 +95,25 @@ dependencies {
}) })
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.orhanobut:logger:2.2.0' implementation 'com.orhanobut:logger:2.2.0'
implementation 'com.google.firebase:firebase-core:16.0.7' implementation 'com.google.firebase:firebase-core:16.0.8'
implementation 'com.google.firebase:firebase-crash:16.2.1' implementation 'com.google.firebase:firebase-crash:16.2.1'
implementation 'com.google.firebase:firebase-perf:16.2.3' implementation 'com.google.firebase:firebase-perf:16.2.4'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9' implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
implementation 'androidx.appcompat:appcompat:1.1.0-alpha02' implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.1.0-alpha03' implementation 'com.google.android.material:material:1.1.0-alpha04'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha02' implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha03'
implementation 'androidx.preference:preference:1.1.0-alpha03' implementation 'androidx.preference:preference:1.1.0-alpha04'
implementation 'com.squareup.okhttp3:okhttp:3.12.1' implementation 'com.squareup.okhttp3:okhttp:3.12.1'
implementation 'com.squareup.retrofit2:retrofit:2.3.0' implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.0.0' implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.annimon:stream:1.2.1' implementation 'com.annimon:stream:1.2.1'
implementation 'androidx.lifecycle:lifecycle-runtime:2.0.0' implementation 'androidx.lifecycle:lifecycle-runtime:2.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
implementation 'androidx.lifecycle:lifecycle-common-java8:2.0.0' implementation 'androidx.lifecycle:lifecycle-common-java8:2.0.0'
kapt "androidx.lifecycle:lifecycle-compiler:2.0.0" //kapt "androidx.lifecycle:lifecycle-compiler:2.0.0"
implementation 'com.danielpuiu:ghostfish:2.0.0' implementation 'com.danielpuiu:ghostfish:2.0.0'
annotationProcessor "com.danielpuiu:ghostfish-compiler:2.0.0" annotationProcessor "com.danielpuiu:ghostfish-compiler:2.0.0"
//MVVM //MVVM
@ -138,7 +138,6 @@ dependencies {
implementation 'com.fede987:status-bar-alert:1.0.1' implementation 'com.fede987:status-bar-alert:1.0.1'
implementation 'com.fxn769:stash:1.2' implementation 'com.fxn769:stash:1.2'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
implementation project(':waterfall_toolbar')
implementation 'com.mikhaellopez:lazydatepicker:1.0.0' implementation 'com.mikhaellopez:lazydatepicker:1.0.0'
implementation 'com.github.demoNo:AutoScrollViewPager:v1.0.2' implementation 'com.github.demoNo:AutoScrollViewPager:v1.0.2'
//AppUpdate //AppUpdate

View File

@ -121,7 +121,7 @@ public class MainActivity extends AppCompatActivity
@Override @Override
public boolean onNavigationItemSelected(MenuItem item) { public boolean onNavigationItemSelected(MenuItem item) {
// mBinding.appBarMain.waterfallToolbar.resetAll(); mBinding.appBarMain.elevatedToolbar.resetAll();
// Handle navigation view item clicks here. // Handle navigation view item clicks here.
Fragment fragment = null; Fragment fragment = null;
@ -181,10 +181,12 @@ public class MainActivity extends AppCompatActivity
mBinding.appBarMain.mainSearch.setVisibility(View.VISIBLE); mBinding.appBarMain.mainSearch.setVisibility(View.VISIBLE);
mBinding.appBarMain.mainSearch.setOnSearchClickListener(v -> { mBinding.appBarMain.mainSearch.setOnSearchClickListener(v -> {
((ISearcableFragment) fragment).onSearchEnabled(); ((ISearcableFragment) fragment).onSearchEnabled();
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.GONE);
}); });
mBinding.appBarMain.mainSearch.setOnCloseListener(() -> { mBinding.appBarMain.mainSearch.setOnCloseListener(() -> {
((ISearcableFragment) fragment).onSearchDisabled(); ((ISearcableFragment) fragment).onSearchDisabled();
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.VISIBLE);
return false; return false;
}); });
} else { } else {
@ -206,7 +208,6 @@ public class MainActivity extends AppCompatActivity
if(fragment instanceof IScrollableFragment) { if(fragment instanceof IScrollableFragment) {
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar); ((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
// ((IScrollableFragment) fragment).setWaterfallToolbar(mBinding.appBarMain.waterfallToolbar);
} }
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) { if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) {
@ -236,7 +237,7 @@ public class MainActivity extends AppCompatActivity
if(addToBackStack) ft.addToBackStack(fragment.getTag()); if(addToBackStack) ft.addToBackStack(fragment.getTag());
ft.commit(); ft.commit();
// fragmentManager.executePendingTransactions(); //fragmentManager.executePendingTransactions();
} }
} }

View File

@ -13,14 +13,12 @@ import java.util.List;
import androidx.appcompat.app.AppCompatActivity; 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.context.MainContext; import it.integry.integrywmsnative.core.context.MainContext;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.expansion.RunnableArgsss; import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.PermissionsHelper; import it.integry.integrywmsnative.core.utility.PermissionsHelper;
import it.integry.integrywmsnative.gest.login.LoginActivity; import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class SplashActivity extends AppCompatActivity { public class SplashActivity extends AppCompatActivity {

View File

@ -74,6 +74,23 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
} }
public static void saveColli(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed){
EntityRESTConsumer.processEntityList(mtbColtsToSave, 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);
}
}, true);
}
public static void saveRigaCollo(MtbColr mtbColrToSave, RunnableArgs<MtbColr> onComplete, RunnableArgs<Exception> onFailed){ public static void saveRigaCollo(MtbColr mtbColrToSave, RunnableArgs<MtbColr> onComplete, RunnableArgs<Exception> onFailed){
EntityRESTConsumer.processEntity(mtbColrToSave, new ISimpleOperationCallback<MtbColr>() { EntityRESTConsumer.processEntity(mtbColrToSave, new ISimpleOperationCallback<MtbColr>() {

View File

@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.REST.consumers;
import android.util.Log; import android.util.Log;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
@ -59,6 +60,53 @@ public class EntityRESTConsumer {
} }
public static <T extends EntityBase> void processEntityList(List<T> entitiesToSave, final ISimpleOperationCallback<List<T>> callback, boolean singleTransaction){
EntityRESTConsumerService service = RESTBuilder.getService(EntityRESTConsumerService.class);
Call<List<ServiceRESTResponse<JsonObject>>> request = service.processEntityList(singleTransaction, entitiesToSave);
request.enqueue(new Callback<List<ServiceRESTResponse<JsonObject>>>() {
@Override
public void onResponse(Call<List<ServiceRESTResponse<JsonObject>>> call, Response<List<ServiceRESTResponse<JsonObject>>> response) {
if(response.isSuccessful()) {
if(response.body() != null) {
ArrayList<T> responseList = new ArrayList<>();
Gson gson = new Gson();
Type typeOfObjectsList = new TypeToken<T>() {}.getType();
for(ServiceRESTResponse<JsonObject> jsonSingleObject : response.body()) {
if (jsonSingleObject.getEsito() == EsitoType.OK) {
responseList.add(gson.fromJson(jsonSingleObject.getEntity(), typeOfObjectsList));
} else {
Log.e("EntityRESTConsumer", jsonSingleObject.getErrorMessage());
callback.onFailed(new Exception(jsonSingleObject.getErrorMessage()));
return;
}
}
callback.onSuccess(responseList);
} else {
Log.e("EntityRESTConsumer", response.message());
callback.onFailed(new Exception(response.message()));
}
} else {
Log.e("EntityRESTConsumer", "Status " + response.code() + ": " + response.message());
callback.onFailed(new Exception("Status " + response.code() + ": " + response.message()));
}
}
@Override
public void onFailure(Call<List<ServiceRESTResponse<JsonObject>>> call, Throwable t) {
Log.e("EntityRESTConsumer", t.toString());
callback.onFailed(new Exception(t));
}
});
}

View File

@ -3,15 +3,21 @@ package it.integry.integrywmsnative.core.REST.consumers;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import java.util.List;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.model.EntityBase; import it.integry.integrywmsnative.core.model.EntityBase;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.http.Body; import retrofit2.http.Body;
import retrofit2.http.POST; import retrofit2.http.POST;
import retrofit2.http.Query;
public interface EntityRESTConsumerService { public interface EntityRESTConsumerService {
@POST("processEntity") @POST("processEntity")
Call<ServiceRESTResponse<JsonObject>> processEntity(@Body Object entity); Call<ServiceRESTResponse<JsonObject>> processEntity(@Body Object entity);
@POST("processEntityList")
Call<List<ServiceRESTResponse<JsonObject>>> processEntityList(@Query("forceTransaction") boolean singleTransaction, @Body Object entity);
} }

View File

@ -40,7 +40,6 @@ public class ServerStatusChecker {
public void addCallback(RunnableArgs<Boolean> callback){ public void addCallback(RunnableArgs<Boolean> callback){
this.mCallback.add(callback); this.mCallback.add(callback);
} }
public void removeCallback(RunnableArgs<Boolean> callback){ public void removeCallback(RunnableArgs<Boolean> callback){

View File

@ -1,7 +1,6 @@
package it.integry.integrywmsnative.core.barcode_reader; package it.integry.integrywmsnative.core.barcode_reader;
import android.content.Context; import android.content.Context;
import android.text.SpannableString;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.ArrayList; import java.util.ArrayList;
@ -9,7 +8,6 @@ import java.util.List;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException; import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException;
import it.integry.plugins.barcode_base_library.interfaces.BarcodeReaderInterface; import it.integry.plugins.barcode_base_library.interfaces.BarcodeReaderInterface;
import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader; import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader;

View File

@ -10,7 +10,7 @@ import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.class_router.ClassRouter; import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class MainContext { public class MainContext {

View File

@ -15,6 +15,7 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityLogger;
@ -673,10 +674,10 @@ public class MtbColt extends EntityBase implements Parcelable {
public void generaFiltroOrdineFromDTO(List<FiltroOrdineDTO> filtroOrdineDtos) { public void generaFiltroOrdineFromDTO(List<FiltroOrdineDTO> filtroOrdineDtos) {
String xmlPrefix = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ROOT><FILTER>"; String xmlPrefix = "{\"whereCond\": \"";
String xmlSuffix = "</FILTER></ROOT>"; String xmlSuffix = "\"}";
StringBuilder xmlContent = new StringBuilder(); StringBuilder whereCond = new StringBuilder();
if(filtroOrdineDtos != null && filtroOrdineDtos.size() > 0) { if(filtroOrdineDtos != null && filtroOrdineDtos.size() > 0) {
@ -684,7 +685,16 @@ public class MtbColt extends EntityBase implements Parcelable {
FiltroOrdineDTO x = filtroOrdineDtos.get(i); FiltroOrdineDTO x = filtroOrdineDtos.get(i);
try { try {
xmlContent.append("<DTB_ORDT COND=\"OR\"><GESTIONE type=\"V\">" + x.getGestioneOrd() + "</GESTIONE><DATA_ORD type=\"D\">" + UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) + "</DATA_ORD><NUM_ORD type=\"N\">" + x.getNumOrd() + "</NUM_ORD></DTB_ORDT>"); whereCond.append(String.format("(dtb_ordt.gestione = %s AND dtb_ordt.data_ord = %s and dtb_ordt.num_ord = %s)",
UtilityDB.valueToString(x.getGestioneOrd()),
UtilityDB.valueToString(UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)),
UtilityDB.valueToString(x.getNumOrd())));
if(i < filtroOrdineDtos.size()-1) {
whereCond.append(" OR ");
}
//whereCond.append("<DTB_ORDT COND=\"OR\"><GESTIONE type=\"V\">" + x.getGestioneOrd() + "</GESTIONE><DATA_ORD type=\"D\">" + UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH) + "</DATA_ORD><NUM_ORD type=\"N\">" + x.getNumOrd() + "</NUM_ORD></DTB_ORDT>");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -692,7 +702,7 @@ public class MtbColt extends EntityBase implements Parcelable {
} }
this.filtroOrdini = xmlPrefix + xmlContent + xmlSuffix; this.filtroOrdini = xmlPrefix + whereCond + xmlSuffix;
} }

View File

@ -41,7 +41,7 @@ public class UtilityBarcode {
} }
return barcodeScanDTO != null && isPosizione; return isPosizione;
} }
public static boolean isEanPeso(BarcodeScanDTO barcodeScanDTO) { public static boolean isEanPeso(BarcodeScanDTO barcodeScanDTO) {
@ -51,7 +51,9 @@ public class UtilityBarcode {
public static Integer getNumColloFromULAnonima(String barcode) { public static Integer getNumColloFromULAnonima(String barcode) {
if(barcode != null){ if(!UtilityString.isNullOrEmpty(barcode)) {
barcode = barcode.trim();
return Integer.parseInt(barcode.substring(3)); return Integer.parseInt(barcode.substring(3));
} else } else
return null; return null;

View File

@ -3,14 +3,13 @@ package it.integry.integrywmsnative.core.utility;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.text.SpannableString; import android.text.SpannableString;
import android.util.Log;
import com.crashlytics.android.Crashlytics; import com.crashlytics.android.Crashlytics;
import com.orhanobut.logger.Logger; import com.orhanobut.logger.Logger;
import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.REST.CommonRESTException;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class UtilityExceptions { public class UtilityExceptions {

View File

@ -6,7 +6,6 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import androidx.appcompat.widget.AppCompatTextView; import androidx.appcompat.widget.AppCompatTextView;
import androidx.appcompat.widget.Toolbar;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import android.os.Bundle; import android.os.Bundle;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
@ -30,7 +29,6 @@ import butterknife.OnClick;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.REST.CommonRESTException;
import it.integry.integrywmsnative.core.coollection.Coollection;
import it.integry.integrywmsnative.core.data_cache.DataCache; import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment; import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
@ -47,7 +45,7 @@ import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroup
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity; import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment { public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
@ -147,8 +145,6 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
private void groupOrdiniAndMakeRecycler(List<OrdineAccettazioneInevasoDTO> ordini){ private void groupOrdiniAndMakeRecycler(List<OrdineAccettazioneInevasoDTO> ordini){
String prevCodAnag = "";
for(OrdineAccettazioneInevasoDTO ordine : ordini){ for(OrdineAccettazioneInevasoDTO ordine : ordini){
if(UtilityString.isNullOrEmpty(ordine.codJcom) || ordine.codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){ if(UtilityString.isNullOrEmpty(ordine.codJcom) || ordine.codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){
ordine.codJcom = CommonConst.Config.COMMESSA_MAG; ordine.codJcom = CommonConst.Config.COMMESSA_MAG;
@ -159,84 +155,75 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
groupedOrdiniInevasi = new ArrayList<>(); groupedOrdiniInevasi = new ArrayList<>();
//Splitto gli ordini per codAnagClie //Splitto gli ordini per codAnagClie
for(int i = 0; i < ordini.size(); i++){ List<OrdineAccettazioneGroupedInevasoDTO> groupedOrdini = Stream.of(ordini)
if(prevCodAnag.equalsIgnoreCase(ordini.get(i).codAnagOrd)) continue; .map(x -> {
else prevCodAnag = ordini.get(i).codAnagOrd;
OrdineAccettazioneGroupedInevasoDTO groupedOrdine = new OrdineAccettazioneGroupedInevasoDTO(); OrdineAccettazioneGroupedInevasoDTO groupedOrdine = new OrdineAccettazioneGroupedInevasoDTO();
groupedOrdine.codAnagForn = ordini.get(i).codAnagOrd; groupedOrdine.codAnagForn = x.codAnagOrd;
groupedOrdine.nomeFornitore = ordini.get(i).ragSocOrd; groupedOrdine.nomeFornitore = x.ragSocOrd;
groupedOrdine.ordini = new ArrayList<>(); groupedOrdine.ordini = new ArrayList<>();
List<OrdineAccettazioneInevasoDTO> filteredByCodAnagOrders = return groupedOrdine;
Coollection })
.from(ordini) .distinctBy(x -> x.codAnagForn + "_" + x.nomeFornitore)
.where("codAnagOrd", Coollection.eq(ordini.get(i).codAnagOrd)).all(); .toList();
int prevNumOrd = -1; Stream.of(groupedOrdini).forEach(groupedOrdine -> {
String prevDataOrd = "";
//Splitto gli ordini di ogni fornitore per data e numero //Splitto gli ordini di ogni fornitore per data e numero
for(int j = 0; j < filteredByCodAnagOrders.size(); j++) { List<OrdineAccettazioneGroupedInevasoDTO.Ordine> tmpOrd = Stream.of(ordini)
if( prevNumOrd == filteredByCodAnagOrders.get(j).numero && .filter(x -> x.codAnagOrd.equals(groupedOrdine.codAnagForn))
prevDataOrd.equalsIgnoreCase(filteredByCodAnagOrders.get(j).data)) continue; .map(x -> {
else {
prevNumOrd = filteredByCodAnagOrders.get(j).numero;
prevDataOrd = filteredByCodAnagOrders.get(j).data;
}
OrdineAccettazioneGroupedInevasoDTO.Ordine rigaOrdine = new OrdineAccettazioneGroupedInevasoDTO.Ordine(); OrdineAccettazioneGroupedInevasoDTO.Ordine rigaOrdine = new OrdineAccettazioneGroupedInevasoDTO.Ordine();
rigaOrdine.data = filteredByCodAnagOrders.get(j).data; rigaOrdine.data = x.data;
rigaOrdine.numero = filteredByCodAnagOrders.get(j).numero; rigaOrdine.numero = x.numero;
rigaOrdine.codAnagOrd = filteredByCodAnagOrders.get(j).codAnagOrd; rigaOrdine.codAnagOrd = x.codAnagOrd;
rigaOrdine.ragSocOrd = filteredByCodAnagOrders.get(j).ragSocOrd; rigaOrdine.ragSocOrd = x.ragSocOrd;
rigaOrdine.pesoTotale = filteredByCodAnagOrders.get(j).pesoTotale; rigaOrdine.pesoTotale = x.pesoTotale;
rigaOrdine.barcode = filteredByCodAnagOrders.get(j).barcode; rigaOrdine.barcode = x.barcode;
rigaOrdine.termCons = filteredByCodAnagOrders.get(j).termCons; rigaOrdine.termCons = x.termCons;
rigaOrdine.dataCons = filteredByCodAnagOrders.get(j).dataCons; rigaOrdine.dataCons = x.dataCons;
rigaOrdine.rifOrd = filteredByCodAnagOrders.get(j).rifOrd; rigaOrdine.rifOrd = x.rifOrd;
rigaOrdine.clienti = new ArrayList<>(); rigaOrdine.clienti = new ArrayList<>();
return rigaOrdine;
})
.distinctBy(x -> x.barcode)
.toList();
List<OrdineAccettazioneInevasoDTO> filteredByCodAnagAndDateAndNumberOrders = Stream.of(tmpOrd)
Coollection .forEach(rigaOrdine -> {
.from(ordini)
.where("codAnagOrd", Coollection.eq(filteredByCodAnagOrders.get(j).codAnagOrd))
.and("numero", Coollection.eq(filteredByCodAnagOrders.get(j).numero))
.and("data", Coollection.eq(filteredByCodAnagOrders.get(j).data)).all();
String prevCodJcomAndDataCons = "";
//Splitto gli ordini per codJcom e dataCons
for(int k = 0; k < filteredByCodAnagAndDateAndNumberOrders.size(); k++) {
if(prevCodJcomAndDataCons.equalsIgnoreCase(filteredByCodAnagAndDateAndNumberOrders.get(k).codJcom + "_" + filteredByCodAnagAndDateAndNumberOrders.get(k).dataCons)) continue;
else prevCodJcomAndDataCons = filteredByCodAnagAndDateAndNumberOrders.get(k).codJcom + "_" + filteredByCodAnagAndDateAndNumberOrders.get(k).dataCons;
Stream.of(ordini)
.filter(x ->
x.codAnagOrd.equals(rigaOrdine.codAnagOrd) &&
x.numero == rigaOrdine.numero &&
x.data.equals(rigaOrdine.data))
.forEach(x -> {
OrdineAccettazioneGroupedInevasoDTO.Cliente cliente = new OrdineAccettazioneGroupedInevasoDTO.Cliente(); OrdineAccettazioneGroupedInevasoDTO.Cliente cliente = new OrdineAccettazioneGroupedInevasoDTO.Cliente();
cliente.codJcom = filteredByCodAnagAndDateAndNumberOrders.get(k).codJcom; cliente.codJcom = x.codJcom;
cliente.ragSocCom = filteredByCodAnagAndDateAndNumberOrders.get(k).ragSocCom; cliente.ragSocCom = x.ragSocCom;
cliente.descrCom = filteredByCodAnagAndDateAndNumberOrders.get(k).descrizioneCom; cliente.descrCom = x.descrizioneCom;
cliente.dataCons = filteredByCodAnagAndDateAndNumberOrders.get(k).dataCons; cliente.dataCons = x.dataCons;
cliente.numCnf = filteredByCodAnagAndDateAndNumberOrders.get(k).numCnf; cliente.numCnf = x.numCnf;
cliente.rifOrd = filteredByCodAnagAndDateAndNumberOrders.get(k).rifOrd; cliente.rifOrd = x.rifOrd;
rigaOrdine.clienti.add(cliente); rigaOrdine.clienti.add(cliente);
} });
groupedOrdine.ordini.add(rigaOrdine); groupedOrdine.ordini.add(rigaOrdine);
}
});
groupedOrdiniInevasi.add(groupedOrdine); groupedOrdiniInevasi.add(groupedOrdine);
} });
mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged); mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged);
mBinding.accettazioneMainList.setAdapter(mAdapter); mBinding.accettazioneMainList.setAdapter(mAdapter);

View File

@ -12,6 +12,7 @@ import java.util.List;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
/** /**
* Created by GiuseppeS on 06/03/2018. * Created by GiuseppeS on 06/03/2018.
@ -129,6 +130,10 @@ public class OrdineAccettazioneDTO implements Parcelable {
return gestioneOrd; return gestioneOrd;
} }
public GestioneEnum getGestioneOrdEnum() {
return GestioneEnum.fromString(gestioneOrd);
}
public String getDataCons() { public String getDataCons() {
return dataCons; return dataCons;
} }

View File

@ -110,7 +110,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){ public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){
Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, true, PrinterRESTConsumer.Type.SECONDARIA); Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, false, PrinterRESTConsumer.Type.SECONDARIA);
this.startActivityForResult(myIntent, PICK_UL_REQUEST); this.startActivityForResult(myIntent, PICK_UL_REQUEST);
} }

View File

@ -49,10 +49,9 @@ import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.MainLis
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy; import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.rest.OrdineAccettazioneInevasoRESTConsumerService; 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.accettazione_ordine_inevaso.views.NoteAggiuntiveNuovaULDialog;
import it.integry.integrywmsnative.ui.StatusBarAlert;
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback; import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel; import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO; import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
@ -75,6 +74,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR; private AccettazioneOrdineInevasoOrderBy.Enum currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.COD_ART_FOR;
private MainListOrdineAccettazioneAdapter mAdapter; private MainListOrdineAccettazioneAdapter mAdapter;
private GestioneEnum defaultGestioneOfUL = null;
public AccettazioneOnOrdineAccettazioneInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<OrdineAccettazioneDTO> orders) { public AccettazioneOnOrdineAccettazioneInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<OrdineAccettazioneDTO> orders) {
this.mActivity = activity; this.mActivity = activity;
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel; this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
@ -102,6 +103,18 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
groupedRighe = helper.getOrdiniRaggruppatiPerCodArtForn(groupedOrdini, true); groupedRighe = helper.getOrdiniRaggruppatiPerCodArtForn(groupedOrdini, true);
initRecyclerView(groupedRighe); initRecyclerView(groupedRighe);
//Definizione della gestione collo di default
List<GestioneEnum> foundGestioni = Stream.of(groupedOrdini)
.map(OrdineAccettazioneDTO.Riga::getGestioneOrdEnum)
.withoutNulls()
.distinctBy(x -> x)
.toList();
if(foundGestioni != null && foundGestioni.size() == 1){
defaultGestioneOfUL = foundGestioni.get(0);
}
} }
@ -396,7 +409,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
if(defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value)) defaultPosAccettazione = defaultPosAccettazioneDTO.value; if(defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value)) defaultPosAccettazione = defaultPosAccettazioneDTO.value;
MtbColt mtbColt = new MtbColt(); MtbColt mtbColt = new MtbColt();
mtbColt .setGestione(GestioneEnum.ACQUISTO) mtbColt
.setGestione(defaultGestioneOfUL)
.setPreparatoDa(SettingsManager.i().user.fullname) .setPreparatoDa(SettingsManager.i().user.fullname)
.setAnnotazioni(noteString) .setAnnotazioni(noteString)
.setPosizione(defaultPosAccettazione) .setPosizione(defaultPosAccettazione)
@ -667,6 +681,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
MtbColr currentRow = mtbColt.getMtbColr().get(i); MtbColr currentRow = mtbColt.getMtbColr().get(i);
if(currentRow.getRigaOrd() != null) {
Stream.of(this.groupedOrdini) Stream.of(this.groupedOrdini)
.filter(x -> .filter(x ->
x.getQtaDaEvadere().floatValue() > 0 && x.getQtaDaEvadere().floatValue() > 0 &&
@ -679,6 +695,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
.forEach(x -> x.setQtaRiservate(x.getQtaRiservate().add(currentRow.getQtaCol()))); .forEach(x -> x.setQtaRiservate(x.getQtaRiservate().add(currentRow.getQtaCol())));
} }
}
} }
removeListFilter(); removeListFilter();

View File

@ -51,7 +51,7 @@ public class ContenutoBancaleActivity extends AppCompatActivity {
mViewModel = new ContenutoBancaleViewModel(this, mtbColt, canRecoverUL, mPrinterType); mViewModel = new ContenutoBancaleViewModel(this, mtbColt, canRecoverUL, mPrinterType);
bindings.waterfallToolbar.setNestedScrollView(bindings.scrollView); bindings.elevatedToolbar.setNestedScrollView(bindings.scrollView);
setSupportActionBar(this.bindings.toolbar); setSupportActionBar(this.bindings.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);

View File

@ -24,7 +24,7 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity; import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
import it.integry.integrywmsnative.gest.contenuto_bancale.core.ContenutoBancaleListAdapter; import it.integry.integrywmsnative.gest.contenuto_bancale.core.ContenutoBancaleListAdapter;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import static android.app.Activity.RESULT_OK; import static android.app.Activity.RESULT_OK;

View File

@ -46,7 +46,7 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked<MtbColt> {
mAdapter = new MainListListaColliAdapter(mContext, mMtbColts, this, mContext.bindings.listaBancaliEmptyView); mAdapter = new MainListListaColliAdapter(mContext, mMtbColts, this, mContext.bindings.listaBancaliEmptyView);
mContext.bindings.listaColliMainList.setAdapter(mAdapter); mContext.bindings.listaColliMainList.setAdapter(mAdapter);
mContext.bindings.waterfallToolbar.setRecyclerView(mContext.bindings.listaColliMainList); mContext.bindings.elevatedToolbar.setRecyclerView(mContext.bindings.listaColliMainList);
} }
@ -69,37 +69,6 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked<MtbColt> {
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress)); }, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
/*String sql = "SELECT *, mtb_aart.descrizione, mtb_aart.unt_mis " +
"FROM mtb_colr " +
"LEFT OUTER JOIN mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart " +
"WHERE " +
"mtb_colr.data_collo = " + UtilityDB.valueToString(item.getDataColloD()) + " AND " +
"mtb_colr.ser_collo = " + UtilityDB.valueToString(item.getSerCollo()) + " AND " +
"mtb_colr.num_collo = " + UtilityDB.valueToString(item.getNumCollo()) + " AND " +
"mtb_colr.gestione = " + UtilityDB.valueToString(item.getGestione());
Type typeOfObjectsList = new TypeToken<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();
mContext.startContenutoBancaleActivity(item);
}
@Override
public void onFailed(Exception ex) {
UtilityExceptions.defaultException(mContext, ex, progress);
}
});
*/
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();

View File

@ -27,7 +27,7 @@ import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.gest.login.core.LoginHelper; import it.integry.integrywmsnative.gest.login.core.LoginHelper;
import it.integry.integrywmsnative.gest.login.dto.LoginAziendaDTO; import it.integry.integrywmsnative.gest.login.dto.LoginAziendaDTO;
import it.integry.integrywmsnative.gest.login.dto.LoginDTO; import it.integry.integrywmsnative.gest.login.dto.LoginDTO;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class LoginViewModel { public class LoginViewModel {

View File

@ -145,7 +145,13 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
cyclicRecover(sessionsIterator, onComplete, onFailed); cyclicRecover(sessionsIterator, onComplete, onFailed);
}, ex -> { }, ex -> {
if(ex.getMessage().contains("Dati collo non corretti")) {
ColliDataRecover.closeSession(recoveredMtbColtID);
} else {
onFailed.run(ex); onFailed.run(ex);
}
cyclicRecover(sessionsIterator, onComplete, onFailed); cyclicRecover(sessionsIterator, onComplete, onFailed);
}); });
} else { } else {

View File

@ -77,7 +77,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment {
.setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false))); .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
mBindings.waterfallToolbar.setNestedScrollView(mBindings.scrollView); mBindings.elevatedToolbar.setNestedScrollView(mBindings.scrollView);
return mBindings.getRoot(); return mBindings.getRoot();
} }

View File

@ -2,7 +2,6 @@ package it.integry.integrywmsnative.gest.picking_libero.viewmodel;
import android.app.Activity; import android.app.Activity;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.Context;
import android.text.SpannableString; import android.text.SpannableString;
import android.view.View; import android.view.View;
@ -17,7 +16,6 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.AppCompatTextView; import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.databinding.Observable; import androidx.databinding.Observable;
@ -46,8 +44,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding; import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper; import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter; import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter;
import it.integry.integrywmsnative.ui.StatusBarAlert; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts; import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;

View File

@ -24,13 +24,14 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import it.integry.integrywmsnative.MainActivity;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.REST.CommonRESTException;
import it.integry.integrywmsnative.core.REST.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.REST.model.Ean128Model;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.di.BindableBoolean; import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@ -43,6 +44,8 @@ import it.integry.integrywmsnative.core.model.MtbCols;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.report.ReportManager; import it.integry.integrywmsnative.core.report.ReportManager;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityNumber;
@ -53,13 +56,13 @@ import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenz
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.AutoCompleteFornitoreAdapter; import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.AutoCompleteFornitoreAdapter;
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.RettificaGiacenzeMainListAdapter; import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.RettificaGiacenzeMainListAdapter;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
import it.integry.integrywmsnative.ui.StatusBarAlert; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU; import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts; import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO; import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
import it.integry.plugins.barcode_base_library.model.BarcodeType; import it.integry.plugins.barcode_base_library.model.BarcodeType;
@ -160,15 +163,78 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
BarcodeManager.disable(); BarcodeManager.disable();
ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
if(data.getType() == BarcodeType.EAN8 || data.getType() == BarcodeType.EAN13 || data.getType() == BarcodeType.UPCA){ if(data.getType() == BarcodeType.EAN8 || data.getType() == BarcodeType.EAN13 || data.getType() == BarcodeType.UPCA){
searchArtInt(data.getStringValue()); searchArtInt(data.getStringValue(), progressDialog);
} else if(UtilityBarcode.isEtichetta128(data)) {
this.executeEtichettaEan128(data, progressDialog);
} else { } else {
BarcodeManager.enable(); BarcodeManager.enable();
progressDialog.dismiss();
} }
}; };
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, ProgressDialog progressDialog) {
BarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
String barcodeProd = null;
if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
if(!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
if(!UtilityString.isNullOrEmpty(ean128Model.Content)) barcodeProd = ean128Model.Content;
if(!UtilityString.isNullOrEmpty(barcodeProd)) {
if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
barcodeProd = barcodeProd.substring(1, barcodeProd.length());
}
this.loadBarcodeArticolo(barcodeProd, ean128Model, progressDialog);
} else {
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
progressDialog.dismiss();
BarcodeManager.enable();
}
}, ex-> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
BarcodeManager.enable();
});
}
private void loadBarcodeArticolo(String barcodeProd, Ean128Model ean128Model, ProgressDialog progressDialog) {
if(barcodeProd.length() == 14) {
// barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd);
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
}
ArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
if(mtbAartList != null && mtbAartList.size() > 0) {
this.dispatchArt(mtbAartList.get(0), ean128Model);
BarcodeManager.enable();
progressDialog.dismiss();
} else {
BarcodeManager.enable();
progressDialog.dismiss();
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(mContext.getResources().getText(R.string.no_result_from_barcode)),
null, null)
.show();
}
}, ex -> {
BarcodeManager.enable();
UtilityExceptions.defaultException(mContext, ex, progressDialog);
});
}
public void setupSearchFornitori(ArrayList<FornitoreDTO> listaFornitori) { public void setupSearchFornitori(ArrayList<FornitoreDTO> listaFornitori) {
AutoCompleteFornitoreAdapter autoCompleteFornitoreAdapter = new AutoCompleteFornitoreAdapter(mContext, listaFornitori); AutoCompleteFornitoreAdapter autoCompleteFornitoreAdapter = new AutoCompleteFornitoreAdapter(mContext, listaFornitori);
mBinding.autoCompleteFornitori.setAdapter(autoCompleteFornitoreAdapter); mBinding.autoCompleteFornitori.setAdapter(autoCompleteFornitoreAdapter);
@ -205,7 +271,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
return true; return true;
} }
searchArtInt(mBinding.inputCodArtDescrInt.getText().toString()); searchArtInt(mBinding.inputCodArtDescrInt.getText().toString(), UtilityProgress.createDefaultProgressDialog(mContext));
return true; return true;
} }
return false; return false;
@ -248,8 +314,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
}, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog)); }, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog));
} }
private void searchArtInt(String queryText) { private void searchArtInt(String queryText, ProgressDialog progressDialog) {
final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
//progressDialog.show(); //progressDialog.show();
mHelper.searchArtInt(queryText, listaArts -> { mHelper.searchArtInt(queryText, listaArts -> {
@ -269,9 +334,9 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
if(articoloFornitoreDTOS.size() == 0) { if(articoloFornitoreDTOS.size() == 0) {
showNoArtsFound(); showNoArtsFound();
} else if(articoloFornitoreDTOS.size() == 1) { } else if(articoloFornitoreDTOS.size() == 1) {
dispatchArt(articoloFornitoreDTOS.get(0)); dispatchArt(articoloFornitoreDTOS.get(0), null);
} else { } else {
DialogChooseArtFromListaArts.make(mContext, articoloFornitoreDTOS, this::dispatchArt).show(); DialogChooseArtFromListaArts.make(mContext, articoloFornitoreDTOS, mtbAart -> this.dispatchArt(mtbAart, null)).show();
} }
} else { } else {
showNoArtsFound(); showNoArtsFound();
@ -285,7 +350,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
} }
private void dispatchArt(MtbAart mtbAart){ private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model){
DialogInputQuantity.DTO qtaDto = new DialogInputQuantity.DTO(); DialogInputQuantity.DTO qtaDto = new DialogInputQuantity.DTO();
qtaDto.setMtbAart(mtbAart); qtaDto.setMtbAart(mtbAart);
@ -301,6 +366,41 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
qtaDto.setCanDataScadBeChanged(true); qtaDto.setCanDataScadBeChanged(true);
if(ean128Model != null){
if(!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) {
qtaDto.setBatchLot(ean128Model.BatchLot);
qtaDto.setCanPartitaMagBeChanged(false);
}
try {
if(!UtilityString.isNullOrEmpty(ean128Model.BestBefore)){
qtaDto.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore));
qtaDto.setCanDataScadBeChanged(false);
} else if(!UtilityString.isNullOrEmpty(ean128Model.Expiry)) {
qtaDto.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry));
qtaDto.setCanDataScadBeChanged(false);
}
} catch (Exception e) {
UtilityLogger.errorMe(e);
}
if(ean128Model.Count != null && ean128Model.Count > 0) {
qtaDto.setNumCnf(ean128Model.Count);
}
if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0) {
qtaDto.setQtaTot(new BigDecimal(ean128Model.NetWeightKg));
} else {
qtaDto.setQtaTot(qtaDto.getQtaCnf().multiply(new BigDecimal(qtaDto.getNumCnf())));
}
qtaDto.setShouldAskDataScad(true);
}
DialogInputQuantity.makeBase(mContext, qtaDto, true, (quantityDTO) -> { DialogInputQuantity.makeBase(mContext, qtaDto, true, (quantityDTO) -> {
onPostDispatch(mtbAart, quantityDTO); onPostDispatch(mtbAart, quantityDTO);
}, null).show(); }, null).show();
@ -469,6 +569,11 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
} }
private void posizionaCollo(Runnable onComplete, Runnable onAbort, RunnableArgs<Exception> onFailed) { private void posizionaCollo(Runnable onComplete, Runnable onAbort, RunnableArgs<Exception> onFailed) {
DialogYesNo.make(mContext, "Posiziona UL", "Vuoi cambiare la posizione della UL corrente?", result -> {
switch (result){
case YES:
DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), mtbDepoPosizione -> { DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), mtbDepoPosizione -> {
if(mtbDepoPosizione != null && mtbColt.get() != null) { if(mtbDepoPosizione != null && mtbColt.get() != null) {
Objects.requireNonNull(mtbColt.get()).setPosizione(mtbDepoPosizione.getPosizione()); Objects.requireNonNull(mtbColt.get()).setPosizione(mtbDepoPosizione.getPosizione());
@ -479,6 +584,16 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
}, onFailed).show(); }, onFailed).show();
break;
case NO:
onAbort.run();
break;
}
}).show();
} }
private void onItemEdit(MtbColr mtbColrToEdit, int index) { private void onItemEdit(MtbColr mtbColrToEdit, int index) {

View File

@ -51,7 +51,7 @@ import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita.viewmodel.VenditaViewModel; import it.integry.integrywmsnative.gest.vendita.viewmodel.VenditaViewModel;
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity; import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class MainVenditaFragment extends Fragment implements ITitledFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment { public class MainVenditaFragment extends Fragment implements ITitledFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment {

View File

@ -5,14 +5,12 @@ import android.app.ProgressDialog;
import android.text.Html; import android.text.Html;
import android.text.SpannableString; import android.text.SpannableString;
import com.annimon.stream.Collectors;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
@ -21,18 +19,14 @@ import it.integry.integrywmsnative.core.model.DtbOrdt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.core.utility.UtilityToast; import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding; import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding;
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment; import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper; import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper;
import it.integry.integrywmsnative.gest.vendita.dialogs.DialogVenditaFiltroAvanzatoViewModel;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO; import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class VenditaViewModel { public class VenditaViewModel {

View File

@ -96,9 +96,11 @@ public class VenditaOrdineInevasoHelper {
final PickingObjectDTO currentItem = currentGroup.get(k); final PickingObjectDTO currentItem = currentGroup.get(k);
final VenditaOrdineInevasoListViewModel.SubItem rowModel = new VenditaOrdineInevasoListViewModel.SubItem(); final VenditaOrdineInevasoListViewModel.SubItem rowModel = new VenditaOrdineInevasoListViewModel.SubItem();
String badge1 = "";
badge1 += !UtilityString.isNullOrEmpty(currentItem.getCodAlis()) ? (currentItem.getCodAlis() + " - ") : "";
badge1 += (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart());
String badge1 = currentItem.getCodAlis() + " - " + (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart());
rowModel.setBadge1(badge1); rowModel.setBadge1(badge1);
rowModel.setBadge2(UtilityString.isNullOrEmpty(currentItem.getCodJcom()) ? null : currentItem.getCodJcom()); rowModel.setBadge2(UtilityString.isNullOrEmpty(currentItem.getCodJcom()) ? null : currentItem.getCodJcom());

View File

@ -54,7 +54,7 @@ import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.core.interfaces.I
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback; import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel; import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint; import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO; import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;

View File

@ -16,7 +16,6 @@ import java.util.Date;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.MainActivity;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
@ -38,7 +37,7 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentMainVersamentoMerceBinding; import it.integry.integrywmsnative.databinding.FragmentMainVersamentoMerceBinding;
import it.integry.integrywmsnative.gest.versamento_merce.core.VersamentoMerceHelper; import it.integry.integrywmsnative.gest.versamento_merce.core.VersamentoMerceHelper;
import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione; import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts; import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
@ -185,7 +184,7 @@ public class VersamentoMerceViewModel {
showNoULFound(); showNoULFound();
BarcodeManager.enable(); BarcodeManager.enable();
progressDialog.dismiss(); progressDialog.dismiss();
} else if(mtbColt != null && (mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.VENDITA)) { } else if(mtbColt != null && (/*mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO ||*/ mtbColt.getGestioneEnum() == GestioneEnum.VENDITA)) {
showWrongGestioneUL(); showWrongGestioneUL();
BarcodeManager.enable(); BarcodeManager.enable();
progressDialog.dismiss(); progressDialog.dismiss();
@ -243,6 +242,8 @@ public class VersamentoMerceViewModel {
private void pickMerceULtoUL(MtbColt destMtbColt, ProgressDialog progressDialog) { private void pickMerceULtoUL(MtbColt destMtbColt, ProgressDialog progressDialog) {
MtbColt sourceMtbColt = mtbColt.get();
List<MtbColr> mtbColrsToPick = Stream.of(mtbColt.get().getMtbColr()) List<MtbColr> mtbColrsToPick = Stream.of(mtbColt.get().getMtbColr())
.filter(x -> x.getQtaCol().floatValue() > 0) .filter(x -> x.getQtaCol().floatValue() > 0)
.toList(); .toList();
@ -257,36 +258,66 @@ public class VersamentoMerceViewModel {
BarcodeManager.enable(); BarcodeManager.enable();
if(destNewMtbColr != null && destNewMtbColr.size() > 0){ if(destNewMtbColr != null && destNewMtbColr.size() > 0){
MtbColt clonedTestata = (MtbColt) destMtbColt.clone(); MtbColt clonedSourceTestata = (MtbColt) sourceMtbColt.clone();
ObservableArrayList<MtbColr> mtbColrObservableField = new ObservableArrayList<>(); MtbColt clonedDestTestata = (MtbColt) destMtbColt.clone();
ObservableArrayList<MtbColr> mtbColrSourceObservableField = new ObservableArrayList<>();
ObservableArrayList<MtbColr> mtbColrDestObservableField = new ObservableArrayList<>();
for(int i = 0; i < destNewMtbColr.size(); i++) { for(int i = 0; i < destNewMtbColr.size(); i++) {
MtbColr cloneMtbColr = (MtbColr) destNewMtbColr.get(i).clone(); MtbColr cloneMtbColr = (MtbColr) destNewMtbColr.get(i).clone();
boolean destroyMtbColrReferences = false;
//Se le gestioni sono uguali faccio uno storno sulla sorgente e non lavoro con
//i riferimenti
if(sourceMtbColt.getGestioneEnum() == destMtbColt.getGestioneEnum()){
destroyMtbColrReferences = true;
MtbColr stornoSourceMtbColr = (MtbColr) destNewMtbColr.get(i).clone();
stornoSourceMtbColr
.setGestione(null)
.setNumCollo(null)
.setSerCollo(null)
.setDataCollo(null)
.setGestioneRif(null)
.setNumColloRif(null)
.setSerColloRif(null)
.setDataColloRif((String) null)
.setQtaCol(stornoSourceMtbColr.getQtaCol().multiply(new BigDecimal(-1)));
mtbColrSourceObservableField.add(stornoSourceMtbColr);
}
if(!destroyMtbColrReferences) {
cloneMtbColr cloneMtbColr
.setGestioneRif(cloneMtbColr.getGestione()) .setGestioneRif(cloneMtbColr.getGestione())
.setGestione(null);
cloneMtbColr
.setSerColloRif(cloneMtbColr.getSerCollo()) .setSerColloRif(cloneMtbColr.getSerCollo())
.setSerCollo(null);
cloneMtbColr
.setNumColloRif(cloneMtbColr.getNumCollo()) .setNumColloRif(cloneMtbColr.getNumCollo())
.setNumCollo(null); .setDataColloRif(cloneMtbColr.getDataColloS());
}
cloneMtbColr cloneMtbColr
.setDataColloRif(cloneMtbColr.getDataColloS()) .setGestione(null)
.setSerCollo(null)
.setNumCollo(null)
.setDataCollo(null); .setDataCollo(null);
mtbColrObservableField.add(cloneMtbColr); mtbColrDestObservableField.add(cloneMtbColr);
} }
clonedTestata.setMtbColr(mtbColrObservableField); clonedSourceTestata.setMtbColr(mtbColrSourceObservableField);
clonedDestTestata.setMtbColr(mtbColrDestObservableField);
saveLU(clonedTestata);
saveLUs(clonedSourceTestata, clonedDestTestata);
} }
}, () -> {
progressDialog.dismiss();
BarcodeManager.enable();
}); });
}, () -> { }, () -> {
@ -296,7 +327,7 @@ public class VersamentoMerceViewModel {
} }
private void askQuantities(Iterator<MtbColr> sourceMtbColrs, List<MtbColr> destMtbColr, Runnable onComplete){ private void askQuantities(Iterator<MtbColr> sourceMtbColrs, List<MtbColr> destMtbColr, Runnable onComplete, Runnable onAbort){
if(sourceMtbColrs.hasNext()){ if(sourceMtbColrs.hasNext()){
@ -304,15 +335,15 @@ public class VersamentoMerceViewModel {
destMtbColr.add(mtbColr); destMtbColr.add(mtbColr);
askQuantities(sourceMtbColrs, destMtbColr, onComplete); askQuantities(sourceMtbColrs, destMtbColr, onComplete, onAbort);
}); }, onAbort);
} else { } else {
onComplete.run(); onComplete.run();
} }
} }
private void askSingleQuantity(MtbColr mtbColr, RunnableArgs<MtbColr> onComplete) { private void askSingleQuantity(MtbColr mtbColr, RunnableArgs<MtbColr> onComplete, Runnable onAbort) {
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO() DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
.setBatchLot(mtbColr.getPartitaMag()) .setBatchLot(mtbColr.getPartitaMag())
.setDataScad(mtbColr.getDataScadPartitaD()) .setDataScad(mtbColr.getDataScadPartitaD())
@ -333,7 +364,7 @@ public class VersamentoMerceViewModel {
.setDatetimeRow(new Date()); .setDatetimeRow(new Date());
onComplete.run(mtbColr); onComplete.run(mtbColr);
}, null).show(); }, onAbort).show();
} }
@ -346,7 +377,7 @@ public class VersamentoMerceViewModel {
private void showWrongGestioneUL() { private void showWrongGestioneUL() {
DialogSimpleMessageHelper.makeWarningDialog(mContext, DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_A_V_not_accepted_message).toString())), new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_V_not_accepted_message).toString())),
null, null).show(); null, null).show();
} }
@ -357,15 +388,22 @@ public class VersamentoMerceViewModel {
} }
*/ */
private void saveLU(MtbColt mtbColt) { private void saveLUs(MtbColt mtbColt1, MtbColt mtbColt2) {
ArrayList<MtbColt> mtbColts = new ArrayList<>();
mtbColts.add(mtbColt1);
mtbColts.add(mtbColt2);
for(MtbColt mtbColt : mtbColts) {
mtbColt.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); mtbColt.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
for(int i = 0; i < mtbColt.getMtbColr().size(); i++) { for (int i = 0; i < mtbColt.getMtbColr().size(); i++) {
mtbColt.getMtbColr().get(i).setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); mtbColt.getMtbColr().get(i).setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
} }
}
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> { ColliMagazzinoRESTConsumer.saveColli(mtbColts, value -> {
showDataSavedDialog(() -> { showDataSavedDialog(() -> {
mOnVersamentoCompleted.run(); mOnVersamentoCompleted.run();
}); });

View File

@ -4,9 +4,11 @@ import android.content.Context;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View;
public class DeactivatableViewPager extends ViewPager { public class DeactivatableViewPager extends ViewPager {
private View mCurrentView;
public DeactivatableViewPager(Context context) { public DeactivatableViewPager(Context context) {
super(context); super(context);
@ -25,4 +27,34 @@ public class DeactivatableViewPager extends ViewPager {
public boolean onInterceptTouchEvent(MotionEvent event) { public boolean onInterceptTouchEvent(MotionEvent event) {
return isEnabled() && super.onInterceptTouchEvent(event); return isEnabled() && super.onInterceptTouchEvent(event);
} }
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (mCurrentView == null) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
return;
}
int height = 0;
mCurrentView.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = mCurrentView.getMeasuredHeight();
if (h > height) height = h;
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
public void measureCurrentView(View currentView) {
mCurrentView = currentView;
requestLayout();
}
public int measureFragment(View view) {
if (view == null)
return 0;
view.measure(0, 0);
return view.getMeasuredHeight();
}
} }

View File

@ -1,67 +1,159 @@
package it.integry.integrywmsnative.ui; package it.integry.integrywmsnative.ui;
import android.animation.ObjectAnimator;
import android.animation.StateListAnimator;
import android.content.Context; import android.content.Context;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.Log; import android.util.Log;
import android.view.ViewTreeObserver;
import android.widget.ScrollView; import android.widget.ScrollView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.cardview.widget.CardView;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
import androidx.core.widget.NestedScrollView; import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
public class ElevatedToolbar extends Toolbar { public class ElevatedToolbar extends CardView {
private final float CARD_ELEVATION = 50f;
private RecyclerView mRecyclerView = null;
private ScrollView mScrollView = null;
private NestedScrollView mNestedScrollView = null;
public ElevatedToolbar(Context context) { public ElevatedToolbar(Context context) {
super(context); super(context);
resetElevation();
} }
public ElevatedToolbar(Context context, @Nullable AttributeSet attrs) { public ElevatedToolbar(Context context, @Nullable AttributeSet attrs) {
super(context, attrs); super(context, attrs);
resetElevation();
} }
public ElevatedToolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { public ElevatedToolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr); super(context, attrs, defStyleAttr);
resetElevation();
} }
public void setRecyclerView(RecyclerView recyclerView) { public void resetElevation() {
setCardElevation(0f);
}
final ElevatedToolbar currentInstance = this; public void resetAll() {
resetElevation();
if(recyclerView != null) { removeRecyclerViewScrollListener();
recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { removeScrollViewScrollListener();
removeNestedScrollViewListener();
mRecyclerView = null;
mScrollView = null;
mNestedScrollView = null;
}
RecyclerView.OnScrollListener recyclerViewScrollListener = new RecyclerView.OnScrollListener() {
@Override @Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy); super.onScrolled(recyclerView, dx, dy);
if(!recyclerView.canScrollVertically(-1)) { if(!recyclerView.canScrollVertically(-1)) {
// currentInstance.setElevation(0f); resetElevation();
ViewCompat.setElevation(currentInstance, 0f);
} else { } else {
// currentInstance.setElevation(50f); setCardElevation(CARD_ELEVATION);
ViewCompat.setElevation(currentInstance, 50f);
} }
} }
}); };
public void setRecyclerView(RecyclerView recyclerView) {
this.mRecyclerView = recyclerView;
resetElevation();
if(mRecyclerView != null) {
mRecyclerView.setOnScrollListener(recyclerViewScrollListener);
} else { } else {
Log.e("ElevatedToolbar", "RecyclerView is NULL"); Log.e("ElevatedToolbar", "RecyclerView is NULL");
} }
}
public void removeRecyclerViewScrollListener(){
if(mRecyclerView != null) {
mRecyclerView.setOnScrollListener(null);
} else {
Log.e("ElevatedToolbar", "REMOVE: RecyclerView is NULL");
}
} }
private ViewTreeObserver.OnScrollChangedListener scrollViewScrollListener = () -> {
if(mScrollView != null) {
if(mScrollView.getScrollY() == 0) {
resetElevation();
} else {
setCardElevation(CARD_ELEVATION);
}
}
};
public void setScrollView(ScrollView scrollView) { public void setScrollView(ScrollView scrollView) {
this.mScrollView = scrollView;
resetElevation();
if(mScrollView != null) {
mScrollView.getViewTreeObserver().addOnScrollChangedListener(scrollViewScrollListener);
} else {
Log.e("ElevatedToolbar", "ScrollView is NULL");
}
}
public void removeScrollViewScrollListener(){
if(mScrollView != null) {
mScrollView.getViewTreeObserver().removeOnScrollChangedListener(scrollViewScrollListener);
} else {
Log.e("ElevatedToolbar", "REMOVE: ScrollView is NULL");
}
} }
public void setNestedScrollView(NestedScrollView nestedScrollView) {
private NestedScrollView.OnScrollChangeListener nestedScrollViewListener = (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
if(mNestedScrollView != null) {
if(scrollY == 0) {
resetElevation();
} else {
setCardElevation(CARD_ELEVATION);
}
}
};
public void setNestedScrollView(NestedScrollView nestedScrollView) {
this.mNestedScrollView = nestedScrollView;
resetElevation();
if(mNestedScrollView != null) {
mNestedScrollView.setOnScrollChangeListener(nestedScrollViewListener);
} else {
Log.e("ElevatedToolbar", "NestedScrollView is NULL");
}
}
public void removeNestedScrollViewListener() {
if(mNestedScrollView != null) {
mNestedScrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) null);
} else {
Log.e("ElevatedToolbar", "REMOVE: NestedScrollView is NULL");
}
} }

View File

@ -1,70 +0,0 @@
package it.integry.integrywmsnative.view;
import android.content.Context;
import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet;
import android.view.View;
public class WrapContentHeightViewPager extends ViewPager {
/**
* Constructor
*
* @param context the context
*/
public WrapContentHeightViewPager(Context context) {
super(context);
}
/**
* Constructor
*
* @param context the context
* @param attrs the attribute set
*/
public WrapContentHeightViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// find the first child view
View view = getChildAt(0);
if (view != null) {
// measure the first child view with the specified measure spec
view.measure(widthMeasureSpec, heightMeasureSpec);
}
setMeasuredDimension(getMeasuredWidth(), measureHeight(heightMeasureSpec, view));
}
/**
* Determines the height of this view
*
* @param measureSpec A measureSpec packed into an int
* @param view the base view with already measured height
*
* @return The height of the view, honoring constraints from measureSpec
*/
private int measureHeight(int measureSpec, View view) {
int result = 0;
int specMode = MeasureSpec.getMode(measureSpec);
int specSize = MeasureSpec.getSize(measureSpec);
if (specMode == MeasureSpec.EXACTLY) {
result = specSize;
} else {
// set the height from the base view if available
if (view != null) {
result = view.getMeasuredHeight();
}
if (specMode == MeasureSpec.AT_MOST) {
result = Math.min(result, specSize);
}
}
return result;
}
}

View File

@ -4,10 +4,8 @@ import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.Observable; import androidx.databinding.Observable;
import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableField; import androidx.databinding.ObservableField;
import androidx.databinding.ObservableList; import androidx.databinding.ObservableList;
import androidx.databinding.ViewDataBinding;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetBehavior;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
@ -18,7 +16,6 @@ import android.view.ViewGroup;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.math.BigDecimal;
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;
@ -32,7 +29,7 @@ import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomShee
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding; import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding;
import it.integry.integrywmsnative.view.bottomsheet.ArticoliInColloBottomSheetHelper; import it.integry.integrywmsnative.view.bottomsheet.ArticoliInColloBottomSheetHelper;
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback; import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
public class ArticoliInColloBottomSheetViewModel { public class ArticoliInColloBottomSheetViewModel {

View File

@ -3,7 +3,8 @@ package it.integry.integrywmsnative.view.dialogs;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -24,7 +25,7 @@ public class DialogAskLivelloPosizione {
private Context mContext; private Context mContext;
private MtbDepoPosizione mtbDepoPosizione; private MtbDepoPosizione mtbDepoPosizione;
private Dialog mAlert; private Dialog mDialog;
private RunnableArgs<MtbDepoPosizione> onComplete; private RunnableArgs<MtbDepoPosizione> onComplete;
private RunnableArgs<Exception> onFailed; private RunnableArgs<Exception> onFailed;
@ -34,7 +35,7 @@ public class DialogAskLivelloPosizione {
private boolean completedFLow = false; private boolean completedFLow = false;
public static void make(Context context, MtbDepoPosizione mtbDepoPosizione, boolean canAbort, RunnableArgs<MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) { public static void make(Context context, MtbDepoPosizione mtbDepoPosizione, boolean canAbort, RunnableArgs<MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
new DialogAskLivelloPosizione(context, mtbDepoPosizione, canAbort, onComplete, onFailed).mAlert.show(); new DialogAskLivelloPosizione(context, mtbDepoPosizione, canAbort, onComplete, onFailed).mDialog.show();
} }
@ -48,15 +49,17 @@ public class DialogAskLivelloPosizione {
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View currentView = inflater.inflate(R.layout.dialog_ask_livello_of_position, null, false); View currentView = inflater.inflate(R.layout.dialog_ask_livello_of_position, null, false);
mAlert = new Dialog(mContext); mDialog = new Dialog(mContext);
mAlert.setContentView(currentView); mDialog.setContentView(currentView);
mAlert.setCanceledOnTouchOutside(false); mDialog.setCanceledOnTouchOutside(false);
mDialog.setCancelable(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
mAlert.setOnDismissListener(dialog -> { mDialog.setOnDismissListener(dialog -> {
if(!completedFLow) onComplete.run(null); if(!completedFLow) onComplete.run(null);
}); });
mAlert.setOnShowListener(dialog -> { mDialog.setOnShowListener(dialog -> {
if(!canAbort) currentView.findViewById(R.id.button_abort).setVisibility(View.GONE); if(!canAbort) currentView.findViewById(R.id.button_abort).setVisibility(View.GONE);
@ -111,7 +114,7 @@ public class DialogAskLivelloPosizione {
completedFLow = true; completedFLow = true;
onComplete.run(foundPosizione); onComplete.run(foundPosizione);
mAlert.dismiss(); mDialog.dismiss();
} else { } else {
@ -142,7 +145,7 @@ public class DialogAskLivelloPosizione {
private void onLevelAbort() { private void onLevelAbort() {
completedFLow = true; completedFLow = true;
onComplete.run(null); onComplete.run(null);
mAlert.dismiss(); mDialog.dismiss();
} }

View File

@ -0,0 +1,11 @@
package it.integry.integrywmsnative.view.dialogs;
public class DialogConsts {
public enum Results {
YES,
NO,
ABORT
}
}

View File

@ -6,6 +6,9 @@ import android.content.Context;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import com.google.android.material.textfield.TextInputLayout; import com.google.android.material.textfield.TextInputLayout;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -73,6 +76,8 @@ public class DialogAskPositionOfLU {
mDialog = new Dialog(mContext); mDialog = new Dialog(mContext);
mDialog.setContentView(mBinding.getRoot()); mDialog.setContentView(mBinding.getRoot());
mDialog.setCanceledOnTouchOutside(false); mDialog.setCanceledOnTouchOutside(false);
mDialog.setCancelable(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
mDialog.setOnShowListener(dialog -> { mDialog.setOnShowListener(dialog -> {
adapter.getPage(1).findViewById(R.id.button_confirm).setOnClickListener(v -> { adapter.getPage(1).findViewById(R.id.button_confirm).setOnClickListener(v -> {

View File

@ -3,6 +3,8 @@ package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.PagerAdapter;
import it.integry.integrywmsnative.ui.DeactivatableViewPager;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -25,10 +27,6 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter {
this.mDatasetViews = new ArrayList<>(); this.mDatasetViews = new ArrayList<>();
} }
@Override
public int getCount() {
return mDatasetLayout.size();
}
@Override @Override
public View instantiateItem(ViewGroup container, int position) { public View instantiateItem(ViewGroup container, int position) {
@ -38,6 +36,9 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter {
container.addView(view); container.addView(view);
this.mDatasetViews.add(view); this.mDatasetViews.add(view);
DeactivatableViewPager pager = (DeactivatableViewPager) container;
pager.measureCurrentView(view);
return view; return view;
} }
@ -56,4 +57,10 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter {
return this.mDatasetViews.get(index); return this.mDatasetViews.get(index);
} }
@Override
public int getCount() {
return mDatasetLayout.size();
}
} }

View File

@ -1,10 +1,11 @@
package it.integry.integrywmsnative.view.dialogs.ask_should_print; package it.integry.integrywmsnative.view.dialogs.ask_should_print;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View;
import androidx.appcompat.app.AlertDialog;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@ -12,31 +13,32 @@ import it.integry.integrywmsnative.databinding.DialogAskShouldPrintBinding;
public class DialogAskShouldPrint { public class DialogAskShouldPrint {
private AlertDialog currentAlert; private Dialog currentDialog;
public static AlertDialog make(final Context context, final String nomeEtichetta, RunnableArgs<Boolean> onDialogDismiss) { public static Dialog make(final Context context, final String nomeEtichettaEN, RunnableArgs<Boolean> onDialogDismiss) {
return new DialogAskShouldPrint(context, nomeEtichetta, onDialogDismiss).currentAlert; return new DialogAskShouldPrint(context, nomeEtichettaEN, onDialogDismiss).currentDialog;
} }
private DialogAskShouldPrint(Context context, String nomeEtichetta, RunnableArgs<Boolean> onDialogDismiss) { private DialogAskShouldPrint(Context context, String nomeEtichettaEN, RunnableArgs<Boolean> onDialogDismiss) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
DialogAskShouldPrintBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_should_print, null, false); DialogAskShouldPrintBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_should_print, null, false);
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context) currentDialog = new Dialog(context);
.setView(bindings.getRoot()); currentDialog.setContentView(bindings.getRoot());
currentAlert = alertDialog.create(); currentDialog.setCanceledOnTouchOutside(false);
currentAlert.setCanceledOnTouchOutside(false); currentDialog.setCancelable(false);
currentDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
bindings.printMessage.setText("La procedura stamperà una " + nomeEtichetta); bindings.descriptionText.setText(String.format(context.getResources().getString(R.string.message_print_packing_list), nomeEtichettaEN));
bindings.buttonConfirm.setOnClickListener(v -> { bindings.buttonConfirm.setOnClickListener(v -> {
currentAlert.dismiss(); currentDialog.dismiss();
onDialogDismiss.run(true); onDialogDismiss.run(true);
}); });
bindings.buttonAbort.setOnClickListener(v -> { bindings.buttonAbort.setOnClickListener(v -> {
currentAlert.dismiss(); currentDialog.dismiss();
onDialogDismiss.run(false); onDialogDismiss.run(false);
}); });

View File

@ -1,8 +1,13 @@
package it.integry.integrywmsnative.view.dialogs; package it.integry.integrywmsnative.view.dialogs.base;
import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
@ -10,13 +15,16 @@ import androidx.appcompat.widget.AppCompatImageView;
import android.text.Spanned; import android.text.Spanned;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.Window;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import java.util.HashMap; import java.util.HashMap;
import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.databinding.DialogBaseBinding;
/** /**
* Created by GiuseppeS on 22/03/2018. * Created by GiuseppeS on 22/03/2018.
@ -46,20 +54,22 @@ public class DialogSimpleMessageHelper {
} }
} }
private static AlertDialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){ private static Dialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
int colorBackgroundTitle = -1; int colorBackgroundTitle = -1;
Drawable titleIconRes = null; Drawable titleIconRes = null;
Dialog dialog = new Dialog(mContext);
switch (type){ switch (type){
case INFO: case INFO:
colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.colorPrimary); colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.light_blue_300);
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_info_78dp); titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_info_78dp);
break; break;
case SUCCESS: case SUCCESS:
colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.green_500); colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.green_300);
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_done_white_24dp); titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_done_white_24dp);
break; break;
@ -69,27 +79,44 @@ public class DialogSimpleMessageHelper {
break; break;
case ERROR: case ERROR:
colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.red_600); colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.red_300);
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_mood_bad_24dp); titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_mood_bad_24dp);
break; break;
} }
//Title VIEW DialogSimpleMessageViewModel viewModel = new DialogSimpleMessageViewModel(dialog);
View titleView = inflater.inflate(R.layout.dialog_custom_header, null);
TextView title = titleView.findViewById(R.id.title_text);
title.setText(titleText);
AppCompatImageView civ = titleView.findViewById(R.id.title_icon); viewModel
ColorStateList colorStateList = ColorStateList.valueOf(colorBackgroundTitle); .setOnPositive(onPositiveClick)
civ.setImageTintList(colorStateList); .setOnNeutral(onNeutralClick)
civ.setImageDrawable(titleIconRes); .setOnNegative(onNegativeClick);
DialogBaseBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.dialog_base, null, false);
mBinding.setViewmodel(viewModel);
Rect displayRectangle = new Rect();
Window window = ((Activity) mContext).getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle);
mBinding.titleContainer.setMinimumWidth((int)(displayRectangle.width() * 0.8f));
//Title VIEW
mBinding.titleText.setText(titleText);
ColorStateList colorStateList = ColorStateList.valueOf(Color.WHITE);
mBinding.titleIcon.setImageTintList(colorStateList);
mBinding.titleIcon.setImageDrawable(titleIconRes);
mBinding.titleContainer.setBackgroundColor(colorBackgroundTitle);
//Content View //Content View
View contentView = inflater.inflate(R.layout.dialog_custom_content, null); mBinding.descriptionText.setText(messageText);
TextView contentMessage = contentView.findViewById(R.id.dialog_content_main_message);
contentMessage.setText(messageText);
LinearLayout hashMapContainer = contentView.findViewById(R.id.dialog_content_hashmap); LinearLayout hashMapContainer = mBinding.dialogContentHashmap;
if(hashmapContent != null) { if(hashmapContent != null) {
for (int i = 0; i < hashmapContent.keySet().size(); i++) { for (int i = 0; i < hashmapContent.keySet().size(); i++) {
@ -104,31 +131,16 @@ public class DialogSimpleMessageHelper {
} }
} }
dialog.setCancelable(false);
dialog.setCanceledOnTouchOutside(false);
dialog.setContentView(mBinding.getRoot());
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext) return dialog;
.setCustomTitle(titleView)
.setView(contentView)
// .setMessage(messageText)
.setCancelable(false)
.setPositiveButton(mContext.getText(R.string.ok), (dialog, which) -> {
if(onPositiveClick != null) onPositiveClick.run();
});
if(onNeutralClick != null){
alertDialog.setNeutralButton(rNeutralButtonString, (dialog, which) -> onNeutralClick.run());
}
if(onNegativeClick != null){
alertDialog.setNegativeButton(mContext.getText(R.string.abort), (dialog, which) -> onNegativeClick.run());
}
AlertDialog alert = alertDialog.create();
alert.setCanceledOnTouchOutside(false);
return alert;
} }
public static AlertDialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){ public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){
return makeBase(TYPE.INFO, return makeBase(TYPE.INFO,
mContext, mContext,
titleText, titleText,
@ -139,7 +151,7 @@ public class DialogSimpleMessageHelper {
} }
public static AlertDialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){ public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){
return makeBase(TYPE.INFO, return makeBase(TYPE.INFO,
mContext, mContext,
titleText, titleText,
@ -150,7 +162,7 @@ public class DialogSimpleMessageHelper {
} }
public static AlertDialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){ public static Dialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){
return makeBase(TYPE.SUCCESS, return makeBase(TYPE.SUCCESS,
mContext, mContext,
titleText, titleText,
@ -161,7 +173,7 @@ public class DialogSimpleMessageHelper {
} }
public static AlertDialog makeWarningDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){ public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){
return makeBase(TYPE.WARNING, return makeBase(TYPE.WARNING,
mContext, mContext,
mContext.getText(R.string.warning).toString(), mContext.getText(R.string.warning).toString(),
@ -172,7 +184,7 @@ public class DialogSimpleMessageHelper {
} }
public static AlertDialog makeWarningDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){ public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){
return makeBase(TYPE.WARNING, return makeBase(TYPE.WARNING,
mContext, mContext,
mContext.getText(R.string.warning).toString(), mContext.getText(R.string.warning).toString(),
@ -182,7 +194,7 @@ public class DialogSimpleMessageHelper {
null, -1, null); null, -1, null);
} }
public static AlertDialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){ public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick){
return makeBase(TYPE.ERROR, return makeBase(TYPE.ERROR,
mContext, mContext,
@ -193,7 +205,7 @@ public class DialogSimpleMessageHelper {
null, -1, null); null, -1, null);
} }
public static AlertDialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){ public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap<String, String> hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){
return makeBase(TYPE.ERROR, return makeBase(TYPE.ERROR,
mContext, mContext,

View File

@ -0,0 +1,61 @@
package it.integry.integrywmsnative.view.dialogs.base;
import android.app.Dialog;
public class DialogSimpleMessageViewModel {
private Dialog mDialog;
private Runnable onPositive;
private Runnable onNeutral;
private Runnable onNegative;
public DialogSimpleMessageViewModel(Dialog dialog) {
mDialog = dialog;
}
public DialogSimpleMessageViewModel setOnPositive(Runnable onPositive) {
this.onPositive = onPositive;
return this;
}
public DialogSimpleMessageViewModel setOnNeutral(Runnable onNeutral) {
this.onNeutral = onNeutral;
return this;
}
public DialogSimpleMessageViewModel setOnNegative(Runnable onNegative) {
this.onNegative = onNegative;
return this;
}
public boolean isPositiveVisible() {
return onPositive != null;
}
public boolean isNeutralVisible() {
return onNeutral != null;
}
public boolean isNegativeVisible() {
return onNegative != null;
}
public void onPositiveClick() {
mDialog.dismiss();
if(onPositive != null) onPositive.run();
}
public void onNeutralClick() {
mDialog.dismiss();
if(onNeutral != null) onNeutral.run();
}
public void onNegativeClick() {
mDialog.dismiss();
if(onNegative != null) onNegative.run();
}
}

View File

@ -1,11 +1,15 @@
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts; package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import java.util.List; import java.util.List;
@ -20,14 +24,14 @@ public class DialogChooseArtFromListaArts {
private Context currentContext; private Context currentContext;
private AlertDialog currentAlert; private Dialog mDialog;
private DialogChooseArtFromListaArtsAdapter currentAdapter; private DialogChooseArtFromListaArtsAdapter currentAdapter;
private RunnableArgs<MtbAart> mOnItemChoosed; private RunnableArgs<MtbAart> mOnItemChoosed;
public static AlertDialog make(final Context context, List<MtbAart> listaArts, RunnableArgs<MtbAart> onItemChoosed) { public static Dialog make(final Context context, List<MtbAart> listaArts, RunnableArgs<MtbAart> onItemChoosed) {
return new DialogChooseArtFromListaArts(context, listaArts, onItemChoosed).currentAlert; return new DialogChooseArtFromListaArts(context, listaArts, onItemChoosed).mDialog;
} }
@ -36,18 +40,16 @@ public class DialogChooseArtFromListaArts {
mOnItemChoosed = onItemChoosed; mOnItemChoosed = onItemChoosed;
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
DialogChooseArtFromListaArtBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_choose_art_from_lista_art, null, false); DialogChooseArtFromListaArtBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_choose_art_from_lista_art, null, false);
mDialog = new Dialog(context);
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context) mDialog.setContentView(bindings.getRoot());
.setView(binding.getRoot())
.setPositiveButton(context.getText(R.string.confirm), null)
.setNegativeButton(context.getText(R.string.abort), null);
currentAlert = alertDialog.create(); mDialog.setCanceledOnTouchOutside(false);
currentAlert.setCanceledOnTouchOutside(false); mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
initRecyclerView(binding, listaArts); initRecyclerView(bindings, listaArts);
} }
private void initRecyclerView(DialogChooseArtFromListaArtBinding binding, List<MtbAart> dataset) { private void initRecyclerView(DialogChooseArtFromListaArtBinding binding, List<MtbAart> dataset) {
@ -70,7 +72,7 @@ public class DialogChooseArtFromListaArts {
mOnItemChoosed.run(item); mOnItemChoosed.run(item);
} }
currentAlert.dismiss(); mDialog.dismiss();
}; };
} }

View File

@ -1,5 +1,6 @@
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts; package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
@ -7,6 +8,9 @@ import androidx.core.content.ContextCompat;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -21,15 +25,15 @@ import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsLayo
public class DialogChooseArtsFromListaArts { public class DialogChooseArtsFromListaArts {
private Context currentContext; private Context currentContext;
private AlertDialog currentAlert; private Dialog mDialog;
private DialogChooseArtsFromListaArtsAdapter currentAdapter; private DialogChooseArtsFromListaArtsAdapter currentAdapter;
private RunnableArgs<List<MtbColr>> mOnItemsChoosed; private RunnableArgs<List<MtbColr>> mOnItemsChoosed;
private Runnable mOnAbort; private Runnable mOnAbort;
public static AlertDialog make(final Context context, List<MtbColr> listaMtbColr, RunnableArgs<List<MtbColr>> onItemsChoosed, Runnable onAbort) { public static Dialog make(final Context context, List<MtbColr> listaMtbColr, RunnableArgs<List<MtbColr>> onItemsChoosed, Runnable onAbort) {
return new DialogChooseArtsFromListaArts(context, listaMtbColr, onItemsChoosed, onAbort).currentAlert; return new DialogChooseArtsFromListaArts(context, listaMtbColr, onItemsChoosed, onAbort).mDialog;
} }
@ -51,17 +55,22 @@ public class DialogChooseArtsFromListaArts {
binding.emptyView.setVisibility(listaMtbColr != null && listaMtbColr.size() > 0 ? View.GONE : View.VISIBLE); binding.emptyView.setVisibility(listaMtbColr != null && listaMtbColr.size() > 0 ? View.GONE : View.VISIBLE);
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
.setView(binding.getRoot())
.setPositiveButton(context.getText(R.string.confirm), (dialogInterface, i) -> {
onPositiveClick();
})
.setNegativeButton(context.getText(R.string.abort), ((dialogInterface, i) -> {
onNegativeClick();
}));
currentAlert = alertDialog.create(); mDialog = new Dialog(context);
currentAlert.setCanceledOnTouchOutside(false); mDialog.setContentView(binding.getRoot());
mDialog.setCanceledOnTouchOutside(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
binding.positiveButton.setOnClickListener(v -> {
mDialog.dismiss();
onPositiveClick();
});
binding.negativeButton.setOnClickListener(v -> {
mDialog.dismiss();
onNegativeClick();
});
initRecyclerView(binding, listaMtbColr); initRecyclerView(binding, listaMtbColr);
} }

View File

@ -4,11 +4,10 @@ import android.app.AlertDialog;
import android.app.DatePickerDialog; import android.app.DatePickerDialog;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.Observable; import androidx.databinding.Observable;
import androidx.databinding.ViewDataBinding;
import android.os.Handler; import android.os.Handler;
import com.google.android.material.textfield.TextInputLayout; import com.google.android.material.textfield.TextInputLayout;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
@ -25,12 +24,10 @@ import android.widget.EditText;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback;
@ -46,7 +43,7 @@ import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogInputQuantityArticoloBinding; import it.integry.integrywmsnative.databinding.DialogInputQuantityArticoloBinding;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class DialogInputQuantity { public class DialogInputQuantity {

View File

@ -1,10 +1,13 @@
package it.integry.integrywmsnative.view.dialogs.scan_or_create_lu; package it.integry.integrywmsnative.view.dialogs.scan_or_create_lu;
import android.app.Dialog;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.text.SpannableString; import android.text.SpannableString;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -27,14 +30,14 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogScanOrCreateLuBinding; import it.integry.integrywmsnative.databinding.DialogScanOrCreateLuBinding;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class DialogScanOrCreateLU { public class DialogScanOrCreateLU {
private Context currentContext; private Context currentContext;
private AlertDialog currentAlert; private Dialog mDialog;
private DialogScanOrCreateLuBinding mBinding; private DialogScanOrCreateLuBinding mBinding;
@ -43,12 +46,12 @@ public class DialogScanOrCreateLU {
private MtbColt currentMtbColt; private MtbColt currentMtbColt;
public static AlertDialog make(final Context context, RunnableArgs<MtbColt> onDialogDismiss) { public static Dialog make(final Context context, RunnableArgs<MtbColt> onDialogDismiss) {
return new DialogScanOrCreateLU(context, false, onDialogDismiss).currentAlert; return new DialogScanOrCreateLU(context, false, onDialogDismiss).mDialog;
} }
public static AlertDialog make(final Context context, boolean disableCreation, RunnableArgs<MtbColt> onDialogDismiss) { public static Dialog make(final Context context, boolean disableCreation, RunnableArgs<MtbColt> onDialogDismiss) {
return new DialogScanOrCreateLU(context, disableCreation, onDialogDismiss).currentAlert; return new DialogScanOrCreateLU(context, disableCreation, onDialogDismiss).mDialog;
} }
private DialogScanOrCreateLU(Context context, boolean disableCreation, RunnableArgs<MtbColt> onDialogDismiss) { private DialogScanOrCreateLU(Context context, boolean disableCreation, RunnableArgs<MtbColt> onDialogDismiss) {
@ -63,11 +66,11 @@ public class DialogScanOrCreateLU {
if(disableCreation) mBinding.dialogScanOrCreateLuCreationLayout.setVisibility(View.GONE); if(disableCreation) mBinding.dialogScanOrCreateLuCreationLayout.setVisibility(View.GONE);
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context) mDialog = new Dialog(context);
.setView(mBinding.getRoot()); mDialog.setContentView(mBinding.getRoot());
mDialog.setCanceledOnTouchOutside(false);
currentAlert = alertDialog.create(); // mDialog.setCancelable(false);
currentAlert.setCanceledOnTouchOutside(false); mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
init(onDialogDismiss); init(onDialogDismiss);
initBarcode(context); initBarcode(context);
@ -94,7 +97,7 @@ public class DialogScanOrCreateLU {
.setOnScanSuccessfull(onScanSuccessfull) .setOnScanSuccessfull(onScanSuccessfull)
.setOnScanFailed(ex -> UtilityExceptions.defaultException(context, ex, false))); .setOnScanFailed(ex -> UtilityExceptions.defaultException(context, ex, false)));
currentAlert.setOnDismissListener(dialog -> { mDialog.setOnDismissListener(dialog -> {
BarcodeManager.removeCallback(barcodeIstanceID); BarcodeManager.removeCallback(barcodeIstanceID);
BarcodeManager.enable(); BarcodeManager.enable();
if(currentMtbColt == null) { if(currentMtbColt == null) {
@ -245,7 +248,7 @@ public class DialogScanOrCreateLU {
private void sendMtbColt(MtbColt mtbColtToSend, ProgressDialog progressDialog) { private void sendMtbColt(MtbColt mtbColtToSend, ProgressDialog progressDialog) {
currentMtbColt = mtbColtToSend; currentMtbColt = mtbColtToSend;
progressDialog.dismiss(); progressDialog.dismiss();
currentAlert.dismiss(); mDialog.dismiss();
mOnDialogDismiss.run(mtbColtToSend); mOnDialogDismiss.run(mtbColtToSend);
} }

View File

@ -0,0 +1,52 @@
package it.integry.integrywmsnative.view.dialogs.yes_no;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.databinding.DialogYesNoBinding;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
public class DialogYesNo {
private Dialog currentDialog;
public static Dialog make(final Context context, final String title, final String description, RunnableArgs<DialogConsts.Results> onDialogDismiss) {
return new DialogYesNo(context, title, description, onDialogDismiss).currentDialog;
}
private DialogYesNo(Context context, String title, String description, RunnableArgs<DialogConsts.Results> onDialogDismiss) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
DialogYesNoBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_yes_no, null, false);
currentDialog = new Dialog(context);
currentDialog.setContentView(bindings.getRoot());
currentDialog.setCancelable(false);
currentDialog.setCanceledOnTouchOutside(false);
currentDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
bindings.titleText.setText(title);
bindings.descriptionText.setText(description);
bindings.buttonYes.setOnClickListener(v -> {
onDialogDismiss.run(DialogConsts.Results.YES);
currentDialog.dismiss();
});
bindings.buttonNo.setOnClickListener(v -> {
onDialogDismiss.run(DialogConsts.Results.NO);
currentDialog.dismiss();
});
}
}

View File

@ -25,8 +25,8 @@
android:orientation="vertical" android:orientation="vertical"
android:background="@color/full_white"> android:background="@color/full_white">
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar <it.integry.integrywmsnative.ui.ElevatedToolbar
android:id="@+id/waterfall_toolbar" android:id="@+id/elevated_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@ -37,7 +37,7 @@
tools:title="Contenuto bancale" tools:title="Contenuto bancale"
app:popupTheme="@style/AppTheme.PopupOverlay"/> app:popupTheme="@style/AppTheme.PopupOverlay"/>
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar> </it.integry.integrywmsnative.ui.ElevatedToolbar>>
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
android:id="@+id/scroll_view" android:id="@+id/scroll_view"

View File

@ -12,8 +12,8 @@
android:orientation="vertical" android:orientation="vertical"
android:background="@color/full_white"> android:background="@color/full_white">
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar <it.integry.integrywmsnative.ui.ElevatedToolbar
android:id="@+id/waterfall_toolbar" android:id="@+id/elevated_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@ -22,7 +22,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?actionBarSize"/> android:layout_height="?actionBarSize"/>
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar> </it.integry.integrywmsnative.ui.ElevatedToolbar>
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -19,8 +19,8 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar <it.integry.integrywmsnative.ui.ElevatedToolbar
android:id="@+id/waterfall_toolbar" android:id="@+id/elevated_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@ -41,7 +41,7 @@
</androidx.appcompat.widget.Toolbar> </androidx.appcompat.widget.Toolbar>
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar> </it.integry.integrywmsnative.ui.ElevatedToolbar>
<fragment <fragment
android:id="@+id/top_fragment" android:id="@+id/top_fragment"

View File

@ -9,23 +9,48 @@
type="android.content.Context" /> type="android.content.Context" />
</data> </data>
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/light_blue_300"
android:gravity="center_horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp"
android:layout_margin="24dp"/>
</RelativeLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp" android:paddingTop="24dp"
android:layout_gravity="center"> android:paddingLeft="24dp"
android:paddingRight="24dp">
<androidx.appcompat.widget.AppCompatTextView <TextView
android:id="@+id/title_text"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Posizionamento"
style="@style/TextViewMaterial.DialogTitle" style="@style/TextViewMaterial.DialogTitle"
android:text="@string/placement"
android:gravity="center_horizontal"/> android:gravity="center_horizontal"/>
@ -33,6 +58,11 @@
layout="@layout/dialog_ask_position_of_lu__page2" /> layout="@layout/dialog_ask_position_of_lu__page2" />
</LinearLayout> </LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
</layout> </layout>

View File

@ -9,34 +9,63 @@
type="android.content.Context" /> type="android.content.Context" />
</data> </data>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android" <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/light_blue_300"
android:gravity="center_horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp"
android:layout_margin="24dp"/>
</RelativeLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp" android:paddingTop="24dp"
android:layout_gravity="center"> android:paddingLeft="24dp"
android:paddingRight="24dp">
<androidx.appcompat.widget.AppCompatTextView <TextView
android:id="@+id/title_text"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Posizionamento"
style="@style/TextViewMaterial.DialogTitle" style="@style/TextViewMaterial.DialogTitle"
android:text="@string/placement"
android:gravity="center_horizontal"/> android:gravity="center_horizontal"/>
<it.integry.integrywmsnative.ui.DeactivatableViewPager <it.integry.integrywmsnative.ui.DeactivatableViewPager
android:id="@+id/viewpager" android:id="@+id/viewpager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="180dp" android:layout_height="wrap_content">
class="it.integry.integrywmsnative.view.WrapContentHeightViewPager">
</it.integry.integrywmsnative.ui.DeactivatableViewPager> </it.integry.integrywmsnative.ui.DeactivatableViewPager>
</LinearLayout> </LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
</layout> </layout>

View File

@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:layout_margin="16dp"> android:layout_margin="16dp">

View File

@ -3,7 +3,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="wrap_content"
android:layout_margin="16dp">
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/level_number_layout" android:id="@+id/level_number_layout"
@ -30,6 +31,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingTop="8dp" android:paddingTop="8dp"
android:paddingBottom="8dp"
android:gravity="bottom|center_horizontal"> android:gravity="bottom|center_horizontal">

View File

@ -1,87 +1,177 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout> <layout xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_gravity="center_horizontal"
xmlns:tools="http://schemas.android.com/tools"> app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical">
android:padding="16dp"
android:layout_gravity="center">
<androidx.appcompat.widget.AppCompatTextView <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/action_print" android:background="@color/light_blue_300"
style="@style/TextViewMaterial.DialogTitle"
android:gravity="center_horizontal"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_horizontal"> android:gravity="center_horizontal">
<androidx.appcompat.widget.AppCompatTextView <ImageView
android:id="@+id/print_message"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="16dp" android:src="@drawable/ic_error_white_24dp"
style="@style/TextInputLayout.OutlinePrimary" android:layout_margin="24dp"/>
android:textColor="#5F6368"
android:textSize="16sp"
android:layout_gravity="center"
android:gravity="center_horizontal"
tools:text="La procedura stamperà una packing list"/>
</LinearLayout> </RelativeLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="vertical"
android:paddingTop="8dp" android:paddingTop="24dp"
android:gravity="bottom|center_horizontal"> android:paddingLeft="24dp"
android:paddingRight="24dp">
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.DialogTitle"
android:text="@string/action_print"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/description_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial"
android:text="@string/message_print_packing_list"
android:gravity="left"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/center_buttons_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"/>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/button_abort" android:id="@+id/button_abort"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline" style="@style/Button.PrimaryOutline"
app:icon="@drawable/ic_clear_24dp" android:layout_marginLeft="8dp"
android:layout_marginEnd="8dp" android:layout_marginRight="8dp"
android:text="@android:string/no"/> app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/center_buttons_guideline"
android:text="@string/no"/>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/button_confirm" android:id="@+id/button_confirm"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Button.PrimaryFull" style="@style/Button.PrimaryFull"
app:icon="@drawable/ic_print_24dp" android:layout_marginLeft="8dp"
android:text="@android:string/yes"/> android:layout_marginRight="8dp"
</LinearLayout> app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/center_buttons_guideline"
app:layout_constraintEnd_toEndOf="parent"
android:text="@string/yes"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</androidx.cardview.widget.CardView>
</androidx.cardview.widget.CardView>
<!--<androidx.appcompat.widget.AppCompatTextView-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:text="@string/action_print"-->
<!--style="@style/TextViewMaterial.DialogTitle"-->
<!--android:gravity="center_horizontal"/>-->
<!--<LinearLayout-->
<!--android:orientation="vertical"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:padding="16dp">-->
<!--<LinearLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:orientation="horizontal"-->
<!--android:gravity="center_horizontal">-->
<!--<androidx.appcompat.widget.AppCompatTextView-->
<!--android:id="@+id/print_message"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_margin="16dp"-->
<!--style="@style/TextInputLayout.OutlinePrimary"-->
<!--android:textColor="#5F6368"-->
<!--android:textSize="16sp"-->
<!--android:layout_gravity="center"-->
<!--android:gravity="center_horizontal"-->
<!--tools:text="La procedura stamperà una packing list"/>-->
<!--</LinearLayout>-->
<!--<LinearLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:orientation="horizontal"-->
<!--android:paddingTop="8dp"-->
<!--android:gravity="bottom|center_horizontal">-->
<!--<com.google.android.material.button.MaterialButton-->
<!--android:id="@+id/button_abort"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--style="@style/Button.PrimaryOutline"-->
<!--app:icon="@drawable/ic_clear_24dp"-->
<!--android:layout_marginEnd="8dp"-->
<!--android:text="@android:string/no"/>-->
<!--<com.google.android.material.button.MaterialButton-->
<!--android:id="@+id/button_confirm"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--style="@style/Button.PrimaryFull"-->
<!--app:icon="@drawable/ic_print_24dp"-->
<!--android:text="@android:string/yes"/>-->
<!--</LinearLayout>-->
<!--</LinearLayout>-->
<!--</LinearLayout>-->
<!--</androidx.cardview.widget.CardView>-->
</layout> </layout>

View File

@ -0,0 +1,238 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="viewmodel"
type="it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageViewModel" />
</data>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/base_root"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/title_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/green_300"
android:gravity="center_horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/title_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp"
android:layout_margin="24dp"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="24dp"
android:paddingLeft="24dp"
android:paddingRight="24dp">
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.DialogTitle"
android:text="Title here"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/description_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial"
android:text="Description here"
android:gravity="left"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp" />
<LinearLayout
android:id="@+id/dialog_content_hashmap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:layout_marginTop="12dp">
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:visibility="@{viewmodel.neutralVisible ? View.VISIBLE : View.GONE}">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/left_buttons_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.33"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/right_buttons_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.66"/>
<com.google.android.material.button.MaterialButton
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.DangerFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/left_buttons_guideline"
android:onClick="@{() -> viewmodel.onNegativeClick()}"
android:text="@string/no"/>
<com.google.android.material.button.MaterialButton
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/left_buttons_guideline"
app:layout_constraintEnd_toStartOf="@id/right_buttons_guideline"
android:onClick="@{() -> viewmodel.onNeutralClick()}"
android:text="@string/abort"/>
<com.google.android.material.button.MaterialButton
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/right_buttons_guideline"
app:layout_constraintEnd_toEndOf="parent"
android:onClick="@{() -> viewmodel.onPositiveClick()}"
android:text="@string/yes"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:visibility="@{viewmodel.negativeVisible &amp;&amp; !viewmodel.neutralVisible ? View.VISIBLE : View.GONE}">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/center_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"/>
<com.google.android.material.button.MaterialButton
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/center_guideline"
android:onClick="@{() -> viewmodel.onNegativeClick()}"
android:text="@string/no"/>
<com.google.android.material.button.MaterialButton
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/center_guideline"
app:layout_constraintEnd_toEndOf="parent"
android:onClick="@{() -> viewmodel.onPositiveClick()}"
android:text="@string/yes"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:visibility="@{!viewmodel.negativeVisible &amp;&amp; !viewmodel.neutralVisible ? View.VISIBLE : View.GONE}">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/ok_left_buttons_guideline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.25"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/ok_right_buttons_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.75"/>
<com.google.android.material.button.MaterialButton
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/ok_left_buttons_guideline"
app:layout_constraintEnd_toEndOf="@id/ok_right_buttons_guideline"
android:onClick="@{() -> viewmodel.onPositiveClick()}"
android:text="@string/ok"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</layout>

View File

@ -2,26 +2,52 @@
<layout xmlns:app="http://schemas.android.com/apk/res-auto" <layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/base_root"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/title_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/light_blue_300"
android:gravity="center_horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/title_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp"
android:layout_margin="24dp"/>
</RelativeLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_margin="16dp"> android:padding="24dp">
<androidx.appcompat.widget.AppCompatTextView <TextView
android:layout_width="wrap_content" android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="22sp" style="@style/TextViewMaterial.DialogTitle"
android:text="@string/dialog_choose_art_from_lista_art" android:text="@string/dialog_choose_art_from_lista_art"
android:textStyle="normal" android:gravity="center_horizontal"/>
android:textColor="@android:color/black"
android:layout_marginBottom="12dp"/>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
@ -31,5 +57,10 @@
</LinearLayout> </LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
</layout> </layout>

View File

@ -23,7 +23,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
app:checked="@{checkableMtbColr.checked}"/> app:checked="@{checkableMtbColr.checked}"/>
@ -93,7 +92,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="12dp" android:paddingStart="12dp"
android:paddingEnd="12dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"> app:layout_constraintBottom_toBottomOf="parent">

View File

@ -2,30 +2,52 @@
<layout xmlns:app="http://schemas.android.com/apk/res-auto" <layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<data>
</data>
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/base_root"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/title_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/light_blue_300"
android:gravity="center_horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/title_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp"
android:layout_margin="24dp"/>
</RelativeLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_margin="16dp"> android:padding="24dp">
<androidx.appcompat.widget.AppCompatTextView <TextView
android:layout_width="wrap_content" android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="22sp" style="@style/TextViewMaterial.DialogTitle"
android:text="@string/dialog_choose_arts_from_lista_art" android:text="@string/dialog_choose_arts_from_lista_art"
android:textStyle="normal" android:gravity="center_horizontal"/>
android:textColor="@android:color/black"
android:layout_marginBottom="12dp"/>
<RelativeLayout <RelativeLayout
@ -60,6 +82,55 @@
</RelativeLayout> </RelativeLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/center_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/negative_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constrainedHeight="true"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/center_guideline"
android:text="@string/abort"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/positive_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constrainedHeight="true"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/center_guideline"
app:layout_constraintEnd_toEndOf="parent"
android:text="@string/confirm"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout> </LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
</layout> </layout>

View File

@ -46,7 +46,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/TextViewMaterial" style="@style/TextViewMaterial"
android:text="L'errore è stato comunicato allo sviluppatore. Verrà analizzato e risolto al più presto" android:text="L'errore è stato comunicato al team di supporto. Verrà analizzato e risolto al più presto"
android:gravity="left" android:gravity="left"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginBottom="16dp" /> android:layout_marginBottom="16dp" />

View File

@ -230,6 +230,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:enabled="@{quantityViewModel.canPartitaMagBeChanged}" android:enabled="@{quantityViewModel.canPartitaMagBeChanged}"
app:hintTextAppearance="@style/hint_text" app:hintTextAppearance="@style/hint_text"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/guideline_partita_data" app:layout_constraintEnd_toStartOf="@id/guideline_partita_data"
android:nextFocusRight="@+id/input_data_scad"> android:nextFocusRight="@+id/input_data_scad">
@ -239,6 +240,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:inputType="textNoSuggestions" android:inputType="textNoSuggestions"
android:hint="@string/batch_lot" android:hint="@string/batch_lot"
android:textAllCaps="true"
app:binding="@{quantityViewModel.batchLot}"/> app:binding="@{quantityViewModel.batchLot}"/>

View File

@ -1,16 +1,59 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout> <layout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.cardview.widget.CardView
android:id="@+id/base_root"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"> android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/title_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/light_blue_300"
android:gravity="center_horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/title_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp"
android:layout_margin="24dp"/>
</RelativeLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_margin="16dp"> android:padding="24dp">
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.DialogTitle"
android:text="@string/title_open_lu"
android:gravity="center_horizontal"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="16dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -42,27 +85,54 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:layout_marginBottom="12dp"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:layout_gravity="center_vertical" android:layout_gravity="center_horizontal"
android:text="OPPURE" android:text="OPPURE" />
tools:text="OPPURE"/>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/create_new_lu_button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/ok_left_buttons_guideline"
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:orientation="vertical"
android:text="Crea nuova UL" app:layout_constraintGuide_percent="0.15"/>
android:textStyle="bold"
android:textColor="@android:color/white" <androidx.constraintlayout.widget.Guideline
android:backgroundTint="@color/blue_700"/> android:id="@+id/ok_right_buttons_guideline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.85"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/create_new_lu_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constrainedHeight="true"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/ok_left_buttons_guideline"
app:layout_constraintEnd_toEndOf="@id/ok_right_buttons_guideline"
android:text="@string/button_create_new_ul"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/green_300"
android:gravity="center_horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp"
android:layout_margin="24dp"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="24dp"
android:paddingLeft="24dp"
android:paddingRight="24dp">
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.DialogTitle"
android:text="Title here"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/description_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial"
android:text="Description here"
android:gravity="left"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/center_buttons_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/button_no"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/center_buttons_guideline"
android:text="@string/no"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/button_yes"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/center_buttons_guideline"
app:layout_constraintEnd_toEndOf="parent"
android:text="@string/yes"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</layout>

View File

@ -26,8 +26,8 @@
android:orientation="vertical" android:orientation="vertical"
android:background="@color/full_white"> android:background="@color/full_white">
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar <it.integry.integrywmsnative.ui.ElevatedToolbar
android:id="@+id/waterfall_toolbar" android:id="@+id/elevated_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@ -48,7 +48,7 @@
</androidx.appcompat.widget.Toolbar> </androidx.appcompat.widget.Toolbar>
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar> </it.integry.integrywmsnative.ui.ElevatedToolbar>

View File

@ -185,8 +185,14 @@
<string name="wait_a_moment">Attendi qualche istante</string> <string name="wait_a_moment">Attendi qualche istante</string>
<string name="check_in_printer">Stampante Accettazione</string> <string name="check_in_printer">Stampante Accettazione</string>
<string name="check_out_printer">Stampante Vendita</string> <string name="check_out_printer">Stampante Vendita</string>
<string name="yes">Si</string>
<string name="no">No</string>
<string name="placement">Posizionamento</string>
<string name="message_print_packing_list">Verrà stampata una %s</string>
<string name="button_create_new_ul">Crea nuova UL</string>
<string name="title_open_lu">Apri UL</string>
</resources> </resources>

View File

@ -21,4 +21,29 @@
<item name="backgroundTint">@color/colorPrimary</item> <item name="backgroundTint">@color/colorPrimary</item>
<item name="iconTint">@android:color/white</item> <item name="iconTint">@android:color/white</item>
</style> </style>
<style name="Button.DangerOutline" parent="Widget.MaterialComponents.Button.OutlinedButton">
<item name="fontFamily">@font/open_sans_regular</item> <!-- target android sdk versions < 26 and > 14 if theme other than AppCompat -->
<item name="android:textStyle">bold</item>
<item name="android:textAllCaps">false</item>
<item name="android:textColor">@color/red_400</item>
<item name="android:paddingTop">8dp</item>
<item name="android:paddingBottom">8dp</item>
<item name="backgroundTint">@android:color/white</item>
<item name="iconTint">@color/red_400</item>
</style>
<style name="Button.DangerFull" parent="Widget.MaterialComponents.Button.UnelevatedButton">
<item name="fontFamily">@font/open_sans_regular</item> <!-- target android sdk versions < 26 and > 14 if theme other than AppCompat -->
<item name="android:textStyle">bold</item>
<item name="android:textAllCaps">false</item>
<item name="android:paddingTop">8dp</item>
<item name="android:paddingBottom">8dp</item>
<item name="backgroundTint">@color/red_400</item>
<item name="iconTint">@android:color/white</item>
</style>
</resources> </resources>

View File

@ -31,6 +31,8 @@
<color name="brown_500">#795548</color> <color name="brown_500">#795548</color>
<color name="green_300">#81c784</color>
<color name="green_400">#66bb6a</color>
<color name="green_500_with_alpha">#884CAF50</color> <color name="green_500_with_alpha">#884CAF50</color>
<color name="green_500">#4CAF50</color> <color name="green_500">#4CAF50</color>
<color name="green_600">#43A047</color> <color name="green_600">#43A047</color>
@ -48,6 +50,10 @@
<color name="indigo_700">#303F9F</color> <color name="indigo_700">#303F9F</color>
<color name="light_blue_300">#4fc3f7</color>
<color name="orange_600_with_alpha">#88FB8C00</color> <color name="orange_600_with_alpha">#88FB8C00</color>
<color name="orange_600">#FB8C00</color> <color name="orange_600">#FB8C00</color>
<color name="orange_700">#F57C00</color> <color name="orange_700">#F57C00</color>

View File

@ -192,5 +192,12 @@
<string name="check_in_printer">Check In printer</string> <string name="check_in_printer">Check In printer</string>
<string name="check_out_printer">Check Out printer</string> <string name="check_out_printer">Check Out printer</string>
<string name="yes">Yes</string>
<string name="no">No</string>
<string name="placement">Placement</string>
<string name="message_print_packing_list">A %s will be printed</string>
<string name="button_create_new_ul">Create new LU</string>
<string name="title_open_lu">Open LU</string>
</resources> </resources>

View File

@ -2,8 +2,7 @@
buildscript { buildscript {
ext{ ext{
kotlin_version = '1.3.11' kotlin_version = '1.3.21'
gradle_version = '3.2.1'
} }
repositories { repositories {
@ -15,7 +14,7 @@ buildscript {
google() google()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.3.1' classpath 'com.android.tools.build:gradle:3.3.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0' classpath 'com.google.gms:google-services:4.2.0'
classpath 'com.google.firebase:firebase-plugins:1.1.5' classpath 'com.google.firebase:firebase-plugins:1.1.5'

View File

@ -18,8 +18,6 @@ public class OrdiniVendita implements IOrdiniVendita {
@Override @Override
public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List<OrdineVenditaGroupedInevasoDTO> testateOrdini, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) { public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List<OrdineVenditaGroupedInevasoDTO> testateOrdini, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
String codMdepOrder = testateOrdini.get(0).ordini.get(0).getCodMdep(); String codMdepOrder = testateOrdini.get(0).ordini.get(0).getCodMdep();
//Se il deposito del collo è diverso dal deposito dell'utente allora sto "evadendo" la merce per una vendita presente //Se il deposito del collo è diverso dal deposito dell'utente allora sto "evadendo" la merce per una vendita presente

View File

@ -26,7 +26,7 @@ android {
dependencies { dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01' implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

View File

@ -27,9 +27,6 @@ public class PointMobileBarcodeReader implements BarcodeReaderInterface {
private static String TAG = PointMobileBarcodeReader.class.getName(); private static String TAG = PointMobileBarcodeReader.class.getName();
private int mBackupResultType = ScanConst.ResultType.DCD_RESULT_COPYPASTE;
public PointMobileBarcodeReader(Context context) { public PointMobileBarcodeReader(Context context) {
this.mContext = context; this.mContext = context;
@ -51,8 +48,7 @@ public class PointMobileBarcodeReader implements BarcodeReaderInterface {
public void init() throws BarcodeAdapterNotFoundException { public void init() throws BarcodeAdapterNotFoundException {
if(isRightAdapter()){ if(isRightAdapter()){
try{ try{
mScanManager.aDecodeSetTerminator(ScanConst.Terminator.DCD_TERMINATOR_NONE);
mBackupResultType = mScanManager.aDecodeGetResultType();
mScanManager.aDecodeSetResultType(ScanConst.ResultType.DCD_RESULT_USERMSG); mScanManager.aDecodeSetResultType(ScanConst.ResultType.DCD_RESULT_USERMSG);
} catch (Exception ex) { } catch (Exception ex) {
throw new BarcodeAdapterNotFoundException(getAdapterName()); throw new BarcodeAdapterNotFoundException(getAdapterName());

View File

@ -1 +1 @@
include ':app', ':pointmobilescannerlibrary', ':waterfall_toolbar', ':barcode_base_library', ':dynamic_vgalimenti', ':dynamic__base' include ':app', ':pointmobilescannerlibrary', ':barcode_base_library', ':dynamic_vgalimenti', ':dynamic__base'