Compare commits

...

37 Commits

Author SHA1 Message Date
a3598fab56 Merge branch 'release/v1.29.13(317)' 2022-10-21 17:56:41 +02:00
7dc77bf1f9 -> v1.29.13 (317) 2022-10-21 17:56:26 +02:00
66f2bda370 Refactoring dialog ask posizione 2022-10-21 17:55:02 +02:00
600258228b Rimossa gestione MtbCols 2022-10-21 11:48:34 +02:00
19cc9f5016 Finish v1.29.12(316) 2022-10-20 17:36:22 +02:00
0dcb8c6af4 Finish v1.29.12(316) 2022-10-20 17:36:22 +02:00
9974deaf69 -> v1.29.12 (316) 2022-10-20 17:36:16 +02:00
fe081897e7 bugfix
la gestione approvv. linee prod crasha a fine caricamento
2022-10-20 12:03:35 +02:00
b0de2dda40 Finish v1.29.11(315) 2022-10-19 18:40:07 +02:00
dda288d709 Finish v1.29.11(315) 2022-10-19 18:40:07 +02:00
f6fdc45e1a -> v1.29.11 (315) 2022-10-19 18:40:01 +02:00
5e88833039 bugfix ConcurrentModificationException in aggiunta articoli atumatica in nuovo ordine acquisto 2022-10-19 18:39:12 +02:00
2c521c5f96 Merge branch 'release/v1.29.10(314)'
# Conflicts:
#	app/build.gradle
2022-10-12 15:27:31 +02:00
8530309244 -> v1.29.10 (314) 2022-10-12 15:27:00 +02:00
57dd0cef76 Rimossa troncatura barcode da itf14 a ean13 2022-10-12 15:25:25 +02:00
8df31407ac Merge remote-tracking branch 'origin/develop' into develop 2022-10-12 12:13:24 +02:00
8134a64a43 in rettifica cerca per codice articolo se code128 2022-10-12 12:13:16 +02:00
0c2fd117d5 Merge branch 'release/v1.29.9(313)' 2022-10-07 15:23:56 +02:00
d2b5fe917d -> v1.29.9 (313) 2022-10-07 15:23:44 +02:00
3de49545b7 Merge branch 'feature/InternalLogger' into develop 2022-10-07 15:22:59 +02:00
7163d91c53 Revert "Rimossa troncatura dell'ITF-14"
This reverts commit 7555e3d90f.
2022-10-07 15:22:43 +02:00
b8b3d2f2bb Implementato log su file 2022-10-07 15:22:32 +02:00
7555e3d90f Rimossa troncatura dell'ITF-14 2022-10-07 10:53:35 +02:00
46e438e0e9 Merge branch 'release/v1.29.8(312)' 2022-10-06 17:00:08 +02:00
439eada61b -> v1.29.8 (312) 2022-10-06 16:59:09 +02:00
48548b7c92 Prova fix su dialog progress 2022-10-06 16:56:35 +02:00
79afe0155b boh 2022-10-06 15:48:45 +02:00
730dabc2bb Finish v1.29.7(311) 2022-10-05 16:20:09 +02:00
44255f08b4 Finish v1.29.7(311) 2022-10-05 16:20:09 +02:00
fb23009fcc -> v1.29.7 (311) 2022-10-05 16:20:03 +02:00
c0310e492f Merge remote-tracking branch 'origin/develop' into develop 2022-10-05 15:58:13 +02:00
bf1fc455e1 fix su dialog vari 2022-10-05 15:58:09 +02:00
c7c2700dbe Finish v1.29.6(310) 2022-10-05 14:11:57 +02:00
c89e4869ef Finish v1.29.6(310) 2022-10-05 14:11:57 +02:00
5e147c9d96 -> v1.29.6 (310) 2022-10-05 14:11:52 +02:00
95fc680823 aggiunti controlli su lista ordini accettazione nulla 2022-10-05 14:11:11 +02:00
3cd1b8eb9f Finish v1.29.5(309) 2022-10-04 14:54:42 +02:00
61 changed files with 675 additions and 799 deletions

View File

@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android { android {
def appVersionCode = 309 def appVersionCode = 317
def appVersionName = '1.29.5' def appVersionName = '1.29.13'
signingConfigs { signingConfigs {
release { release {
@@ -94,7 +94,7 @@ dependencies {
exclude group: 'com.android.support', module: 'support-annotations' exclude group: 'com.android.support', module: 'support-annotations'
}) })
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.github.lupaulus:logger:2.3.2'
//Firebase //Firebase

View File

@@ -14,6 +14,7 @@ import java.util.List;
import it.integry.barcode_base_android_library.interfaces.BarcodeReaderInterface; import it.integry.barcode_base_android_library.interfaces.BarcodeReaderInterface;
import it.integry.barcode_base_android_library.model.BarcodeSetting; import it.integry.barcode_base_android_library.model.BarcodeSetting;
import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader; import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment; import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
import it.integry.keyobardemulatorscannerlibrary.KeyboardEmulatorBarcodeReader; import it.integry.keyobardemulatorscannerlibrary.KeyboardEmulatorBarcodeReader;
import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader; import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader;
@@ -135,10 +136,12 @@ public class BarcodeManager {
public static void disable() { public static void disable() {
mEnabled = false; mEnabled = false;
UtilityLogger.trace("Barcode reader disabled");
} }
public static void enable() { public static void enable() {
mEnabled = true; mEnabled = true;
UtilityLogger.trace("Barcode reader enabled");
} }
public static boolean isEnabled() { public static boolean isEnabled() {

View File

@@ -4,8 +4,11 @@ import android.content.Context;
import com.google.firebase.crashlytics.FirebaseCrashlytics; import com.google.firebase.crashlytics.FirebaseCrashlytics;
import com.orhanobut.logger.AndroidLogAdapter; import com.orhanobut.logger.AndroidLogAdapter;
import com.orhanobut.logger.DiskLogAdapter;
import com.orhanobut.logger.Logger; import com.orhanobut.logger.Logger;
import java.io.File;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
@@ -36,8 +39,6 @@ public class AppContext {
} }
@Inject @Inject
public void init() { public void init() {
this.initUtilities(); this.initUtilities();
@@ -56,10 +57,10 @@ public class AppContext {
} }
private void initCrashlytics() { private void initCrashlytics() {
if(!BuildConfig.DEBUG) { if (!BuildConfig.DEBUG) {
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();
if( SettingsManager.isInstanceAvailable() && if (SettingsManager.isInstanceAvailable() &&
(SettingsManager.i().getUserSession() != null && !UtilityString.isNullOrEmpty(SettingsManager.i().getUserSession().getProfileDB())) && (SettingsManager.i().getUserSession() != null && !UtilityString.isNullOrEmpty(SettingsManager.i().getUserSession().getProfileDB())) &&
(SettingsManager.i().getUser() != null && !UtilityString.isNullOrEmpty(SettingsManager.i().getUser().getFullname()))) { (SettingsManager.i().getUser() != null && !UtilityString.isNullOrEmpty(SettingsManager.i().getUser().getFullname()))) {
@@ -77,6 +78,11 @@ public class AppContext {
private void initLogger() { private void initLogger() {
Logger.addLogAdapter(new AndroidLogAdapter()); Logger.addLogAdapter(new AndroidLogAdapter());
File logsFolder = new File(mApplicationContext.getExternalFilesDir(null).getAbsolutePath());
int maxBytesSize = 5000;
Logger.addLogAdapter(new DiskLogAdapter(logsFolder, maxBytesSize));
} }
} }

View File

@@ -38,7 +38,7 @@ public class ExceptionsHandler implements Thread.UncaughtExceptionHandler {
@Override @Override
public void uncaughtException(final Thread thread, final Throwable ex) { public void uncaughtException(final Thread thread, final Throwable ex) {
try { try {
UtilityLogger.errorMe(new Exception(ex)); UtilityLogger.error(new Exception(ex));
} catch (Exception e) { } catch (Exception e) {
Log.e(TAG, "Exception Logger failed!", e); Log.e(TAG, "Exception Logger failed!", e);
MainApplication.exit(); MainApplication.exit();

View File

@@ -76,7 +76,7 @@ public abstract class BaseFragment extends Fragment {
if (progressOpened) { if (progressOpened) {
this.progressOpened = false; this.progressOpened = false;
requireActivity().runOnUiThread(() -> { requireActivity().runOnUiThread(() -> {
mCurrentProgress.dismiss(); mCurrentProgress.dismissAllowingStateLoss();
}); });
} }
} }

View File

@@ -1,122 +0,0 @@
package it.integry.integrywmsnative.core.model;
import java.util.Date;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
public class MtbCols extends EntityBase {
private String dataCollo;
private String gestione;
private Integer idRiga;
private Integer numCollo;
private String serCollo;
private String codMdep;
private String dataMove;
private String modificatoDa;
private String posizione;
private String causale;
public MtbCols() {
type = "mtb_cols";
setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep());
setModificatoDa(SettingsManager.i().getUser().getFullname());
//setDataMove(UtilityDate.getDateInstance());
}
public String getDataCollo() {
return dataCollo;
}
public MtbCols setDataCollo(String dataCollo) {
this.dataCollo = dataCollo;
return this;
}
public String getGestione() {
return gestione;
}
public MtbCols setGestione(String gestione) {
this.gestione = gestione;
return this;
}
public Integer getIdRiga() {
return idRiga;
}
public MtbCols setIdRiga(Integer idRiga) {
this.idRiga = idRiga;
return this;
}
public Integer getNumCollo() {
return numCollo;
}
public MtbCols setNumCollo(Integer numCollo) {
this.numCollo = numCollo;
return this;
}
public String getSerCollo() {
return serCollo;
}
public MtbCols setSerCollo(String serCollo) {
this.serCollo = serCollo;
return this;
}
public String getCodMdep() {
return codMdep;
}
public MtbCols setCodMdep(String codMdep) {
this.codMdep = codMdep;
return this;
}
public String getDataMove() {
return dataMove;
}
public MtbCols setDataMove(String dataMove) {
this.dataMove = dataMove;
return this;
}
public MtbCols setDataMove(Date dataMove) {
this.dataMove = UtilityDate.formatDate(dataMove, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH);
return this;
}
public String getModificatoDa() {
return modificatoDa;
}
public MtbCols setModificatoDa(String modificatoDa) {
this.modificatoDa = modificatoDa;
return this;
}
public String getPosizione() {
return posizione;
}
public MtbCols setPosizione(String posizione) {
this.posizione = posizione;
return this;
}
public String getCausale() {
return causale;
}
public MtbCols setCausale(String causale) {
this.causale = causale;
return this;
}
}

View File

@@ -63,7 +63,6 @@ public class MtbColt extends EntityBase {
private BigDecimal altezzaCm; private BigDecimal altezzaCm;
private String codJcom; private String codJcom;
private List<MtbCols> mtbCols;
private MtbTCol mtbTCol; private MtbTCol mtbTCol;
private Boolean disablePrint; private Boolean disablePrint;
@@ -175,7 +174,7 @@ public class MtbColt extends EntityBase {
try { try {
dataColloD = getDataColloD(); dataColloD = getDataColloD();
} catch (Exception ex) { } catch (Exception ex) {
UtilityLogger.errorMe(ex); UtilityLogger.error(ex);
} }
if (dataColloD != null) { if (dataColloD != null) {
@@ -526,16 +525,6 @@ public class MtbColt extends EntityBase {
return this; return this;
} }
public List<MtbCols> getMtbCols() {
return mtbCols;
}
public MtbColt setMtbCols(List<MtbCols> mtbCols) {
this.mtbCols = mtbCols;
return this;
}
public Boolean getDisablePrint() { public Boolean getDisablePrint() {
return disablePrint == null ? false : disablePrint; return disablePrint == null ? false : disablePrint;
} }

View File

@@ -1,6 +1,5 @@
package it.integry.integrywmsnative.core.model; package it.integry.integrywmsnative.core.model;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityLogger;
public class MtbDepoPosizione { public class MtbDepoPosizione {
@@ -19,7 +18,7 @@ public class MtbDepoPosizione {
return (MtbDepoPosizione) super.clone(); return (MtbDepoPosizione) super.clone();
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {
e.printStackTrace(); e.printStackTrace();
UtilityLogger.errorMe(e); UtilityLogger.error(e);
} }
return null; return null;

View File

@@ -20,7 +20,7 @@ public class BarcodeRESTConsumer extends _BaseRESTConsumer {
IBarcodeCustomization barcodeCustomization = ClassRouter.getInstance(ClassRouter.PATH.BARCODE_CUSTOMIZATION); IBarcodeCustomization barcodeCustomization = ClassRouter.getInstance(ClassRouter.PATH.BARCODE_CUSTOMIZATION);
if(barcodeCustomization != null && barcodeCustomization.shouldForceToEan13(barcodeObj.getStringValue())){ if (barcodeCustomization != null && barcodeCustomization.shouldForceToEan13(barcodeObj.getStringValue())) {
Ean128Model ean128Model = new Ean128Model(); Ean128Model ean128Model = new Ean128Model();
ean128Model.Gtin = barcodeObj.getStringValue(); ean128Model.Gtin = barcodeObj.getStringValue();
onComplete.run(ean128Model); onComplete.run(ean128Model);
@@ -30,7 +30,7 @@ public class BarcodeRESTConsumer extends _BaseRESTConsumer {
String ean128 = barcodeObj.getStringValue().replaceAll("" + ((char) 29), "|"); String ean128 = barcodeObj.getStringValue().replaceAll("" + ((char) 29), "|");
BarcodeRESTConsumerService barcodeRESTConsumerService = RESTBuilder.getService(BarcodeRESTConsumerService.class); BarcodeRESTConsumerService barcodeRESTConsumerService = RESTBuilder.getService(BarcodeRESTConsumerService.class);
barcodeRESTConsumerService.decodeEan128(ean128).enqueue(new Callback<ServiceRESTResponse<Ean128Model>>() { barcodeRESTConsumerService.decodeEan128(ean128).enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<Ean128Model>> call, Response<ServiceRESTResponse<Ean128Model>> response) { public void onResponse(Call<ServiceRESTResponse<Ean128Model>> call, Response<ServiceRESTResponse<Ean128Model>> response) {
analyzeAnswer(response, "DecodeEan128", onComplete, onFailed); analyzeAnswer(response, "DecodeEan128", onComplete, onFailed);

View File

@@ -89,8 +89,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
public void saveColli(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) { public void saveColli(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
for (MtbColt mtbColt : mtbColtsToSave) { for (MtbColt mtbColt : mtbColtsToSave) {
mtbColt.setMtbCols(null);
for (int i = 0; i < mtbColt.getMtbColr().size(); i++) { for (int i = 0; i < mtbColt.getMtbColr().size(); i++) {
mtbColt.getMtbColr().get(i) mtbColt.getMtbColr().get(i)
.setMtbAart(null) .setMtbAart(null)
@@ -700,6 +698,27 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
}); });
} }
public void confirmGiacenzaUL(MtbColt sourceMtbColt, Runnable onComplete, RunnableArgs<Exception> onFailed) {
MtbColt sourceMtbColtClone = (MtbColt) sourceMtbColt.clone();
sourceMtbColtClone.setMtbColr(new ObservableArrayList<>());
ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class);
colliMagazzinoRESTConsumerService.confirmGiacenzaUL(sourceMtbColtClone).enqueue(new Callback<>() {
@Override
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
analyzeAnswer(response, "confirmGiacenzaUL", data -> {
onComplete.run();
}, onFailed);
}
@Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
if (onFailed != null) onFailed.run(new Exception(t));
}
});
}
public void loadShipmentUlFromProductionUL(MtbColt mtbColt, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) { public void loadShipmentUlFromProductionUL(MtbColt mtbColt, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
HashMap<String, Object> params = new HashMap<>(); HashMap<String, Object> params = new HashMap<>();

View File

@@ -46,4 +46,7 @@ public interface ColliMagazzinoRESTConsumerService {
@POST("wms/versamentoAutomaticoUL") @POST("wms/versamentoAutomaticoUL")
Call<ServiceRESTResponse<VersamentoAutomaticoULResponseDTO>> versamentoAutomaticoUL(@Body MtbColt mtbColt); Call<ServiceRESTResponse<VersamentoAutomaticoULResponseDTO>> versamentoAutomaticoUL(@Body MtbColt mtbColt);
@POST("wms/confirmGiacenzaUL")
Call<ServiceRESTResponse<Object>> confirmGiacenzaUL(@Body MtbColt mtbColt);
} }

View File

@@ -61,7 +61,7 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) {
Log.e("PrintCollo", t.toString()); Log.e("PrintCollo", t.toString());
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
if (onFailed != null) onFailed.run(new Exception(t)); if (onFailed != null) onFailed.run(new Exception(t));
} }
}); });
@@ -88,7 +88,7 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<StbGestSetup>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<StbGestSetup>>> call, Throwable t) {
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
if (onFailed != null) onFailed.run(new Exception(t)); if (onFailed != null) onFailed.run(new Exception(t));
} }
}); });

View File

@@ -109,7 +109,7 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Throwable t) {
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });
@@ -174,7 +174,7 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });

View File

@@ -79,7 +79,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<GrigliaDTO>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<GrigliaDTO>> call, Throwable t) {
Log.e("getArticoliListino_pv", t.toString()); Log.e("getArticoliListino_pv", t.toString());
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });
@@ -130,7 +130,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Throwable t) { public void onFailure(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Throwable t) {
Log.e("saveOrdineTerminale_pv", t.toString()); Log.e("saveOrdineTerminale_pv", t.toString());
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });

View File

@@ -9,6 +9,7 @@ import java.util.List;
import javax.inject.Singleton; import javax.inject.Singleton;
import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException; import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
@@ -51,7 +52,7 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<String>>> call, Throwable t) {
Log.e("GetAvailablePrinters", t.toString()); Log.e("GetAvailablePrinters", t.toString());
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });
@@ -59,10 +60,10 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
public void printCollo(MtbColt testataColloToPrint, Runnable onComplete, RunnableArgs<Exception> onFailed) { public void printCollo(MtbColt testataColloToPrint, Runnable onComplete, RunnableArgs<Exception> onFailed) {
// if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
// onComplete.run(); onComplete.run();
// return; return;
// } }
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class); PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
Call<ServiceRESTResponse<Object>> callable = null; Call<ServiceRESTResponse<Object>> callable = null;
@@ -87,10 +88,10 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
public void printReport(String printerName, String reportName, HashMap<String, Object> params, int quantity, Runnable onComplete, RunnableArgs<Exception> onFailed) { public void printReport(String printerName, String reportName, HashMap<String, Object> params, int quantity, Runnable onComplete, RunnableArgs<Exception> onFailed) {
// if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
// onComplete.run(); onComplete.run();
// return; return;
// } }
JasperDTO jasperDTO = new JasperDTO(); JasperDTO jasperDTO = new JasperDTO();
jasperDTO.setReportName(reportName); jasperDTO.setReportName(reportName);

View File

@@ -115,7 +115,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
public void onFailure(Call<ServiceRESTResponse<List<String>>> call, final Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<String>>> call, final Throwable t) {
Log.e("ProfilesAvailable", t.toString()); Log.e("ProfilesAvailable", t.toString());
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
} }
}); });

View File

@@ -130,7 +130,7 @@ public class UtilityBarcode {
private static String getEAN13CheckDigit(String ean) { private static String getEAN13CheckDigit(String ean) {
if (ean.length() != 12) { if (ean.length() != 12) {
UtilityLogger.errorMe(new Exception("Please provide an input string of 12 chars. Current lenght: " + ean.length())); UtilityLogger.error(new Exception("Please provide an input string of 12 chars. Current lenght: " + ean.length()));
return null; return null;
} }
long tot = 0; long tot = 0;

View File

@@ -37,7 +37,7 @@ public class UtilityDate {
try{ try{
return UtilityDate.recognizeDate(dateString); return UtilityDate.recognizeDate(dateString);
} catch (ParseException | DateNotRecognizedException | TimeNotRecognizedException pex){ } catch (ParseException | DateNotRecognizedException | TimeNotRecognizedException pex){
UtilityLogger.errorMe(pex); UtilityLogger.error(pex);
return null; return null;
} }
} }

View File

@@ -61,7 +61,7 @@ public class UtilityExceptions {
Stream.of(FIREBASE_IGNORED_EXCEPTIONS).anyMatch(x -> x.isAssignableFrom(ex.getClass())); Stream.of(FIREBASE_IGNORED_EXCEPTIONS).anyMatch(x -> x.isAssignableFrom(ex.getClass()));
if (!BuildConfig.DEBUG && !toIgnore) { if (!BuildConfig.DEBUG && !toIgnore) {
if (sendEmail) UtilityLogger.errorMe(ex); if (sendEmail) UtilityLogger.error(ex);
FirebaseCrashlytics.getInstance().recordException(ex); FirebaseCrashlytics.getInstance().recordException(ex);
} }
} }

View File

@@ -3,48 +3,30 @@ package it.integry.integrywmsnative.core.utility;
import com.google.firebase.crashlytics.FirebaseCrashlytics; import com.google.firebase.crashlytics.FirebaseCrashlytics;
import com.orhanobut.logger.Logger; import com.orhanobut.logger.Logger;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.settings.SettingsManager;
public class UtilityLogger { public class UtilityLogger {
public static void logMe(String message) { public static void trace(String message) {
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); Logger.d(message, getPreviousStackTraceElement());
}
String caller = "UtilityLogger"; public static void info(String message) {
Logger.i(message);
for (int i = 0; i < stackTraceElements.length; i++) { }
if (stackTraceElements[i].getMethodName().equalsIgnoreCase("logMe")) {
caller = stackTraceElements[i + 1].getFileName() + "->" + stackTraceElements[i + 1].getMethodName();
}
}
public static void debug(String message) {
Logger.d(message); Logger.d(message);
} }
public static void errorMe(Exception ex) { public static void error(Exception ex) {
errorMe(ex, null, null, null); error(ex, "");
} }
public static void errorMe(Exception ex, String additionalText) { public static void error(Exception ex, String additionalText) {
errorMe(ex, additionalText, null, null); if (!BuildConfig.DEBUG) FirebaseCrashlytics.getInstance().recordException(ex);
}
public static void errorMe(Exception ex, String additionalText, Runnable onComplete, RunnableArgs<Exception> onFailed) { Logger.e(ex, additionalText);
if(!BuildConfig.DEBUG) FirebaseCrashlytics.getInstance().recordException(ex);
logMe(ex.getMessage());
// if ((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) || // if ((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) ||
// (!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) || // (!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) ||
@@ -82,4 +64,52 @@ public class UtilityLogger {
// } // }
} }
private static String getPreviousStackTraceElement() {
StackTraceElement[] stackTraceElementsArr = Thread.currentThread().getStackTrace();
String caller = "UtilityLogger";
StringBuilder callerNew = new StringBuilder();
int found = 0;
for (int i = 0; i < stackTraceElementsArr.length; i++) {
if(!stackTraceElementsArr[i].getClassName().startsWith("it.integry"))
continue;
if (stackTraceElementsArr[i].getMethodName().equalsIgnoreCase("getPreviousStackTraceElement")) {
found = i;
}
if (found > 0 && i >= found + 2) {
callerNew
.append(stackTraceElementsArr[i].getClassName())
.append("->")
.append(stackTraceElementsArr[i].getMethodName())
.append(":")
.append(stackTraceElementsArr[i].getLineNumber())
.append("\n");
}
}
return callerNew.length() > 0 ? callerNew.toString() : caller;
}
// public static void logMe(String message) {
// StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
//
// String caller = "UtilityLogger";
//
// for (int i = 0; i < stackTraceElements.length; i++) {
//
// if (stackTraceElements[i].getMethodName().equalsIgnoreCase("logMe")) {
// caller = stackTraceElements[i + 1].getFileName() + "->" + stackTraceElements[i + 1].getMethodName();
// }
//
// }
//
// Logger.d(message);
// }
} }

View File

@@ -55,7 +55,7 @@ public class OrdiniAccettazioneRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });

View File

@@ -319,17 +319,12 @@ public class AccettazionePickingViewModel {
} }
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) { private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
if (barcodeProd.length() == 14) {
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
}
String finalBarcodeProd = barcodeProd;
this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
if (mtbAartList != null && mtbAartList.size() > 0) { if (mtbAartList != null && mtbAartList.size() > 0) {
this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete); this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
} else { } else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
} }
}, this::sendError); }, this::sendError);

View File

@@ -43,7 +43,7 @@ public class AccettazionePickingRESTConsumer {
whereCondListMap.add(whereCondMap); whereCondListMap.add(whereCondMap);
} catch (Exception ex) { } catch (Exception ex) {
UtilityLogger.errorMe(ex); UtilityLogger.error(ex);
} }
}); });

View File

@@ -200,12 +200,6 @@ public class PickingLiberoViewModel {
} }
private void loadArticolo(String barcodeProd, Ean128Model ean128Model, Runnable onComplete) { private void loadArticolo(String barcodeProd, Ean128Model ean128Model, Runnable onComplete) {
if (barcodeProd.length() == 14) {
// barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd);
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
}
String finalBarcodeProd = barcodeProd;
mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
if (mtbAartList != null && mtbAartList.size() > 0) { if (mtbAartList != null && mtbAartList.size() > 0) {
MtbAart articolo = mtbAartList.get(0); MtbAart articolo = mtbAartList.get(0);
@@ -217,11 +211,11 @@ public class PickingLiberoViewModel {
this.dispatchArt(articolo, ean128Model); this.dispatchArt(articolo, ean128Model);
onComplete.run(); onComplete.run();
} else { } else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
} }
} else { } else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
} }
}, this::sendError); }, this::sendError);

View File

@@ -18,6 +18,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -291,9 +292,10 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
} else { } else {
tmpList = mViewModel.getOrderList().getValue(); tmpList = mViewModel.getOrderList().getValue();
} }
this.mOrdiniInevasiMutableData.clear(); this.mOrdiniInevasiMutableData.clear();
this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(tmpList)); if (tmpList != null) {
this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(tmpList));
}
} }
private List<MainListProdOrdineProduzioneElencoListModel> convertDataModelToListModel(List<OrdineAccettazioneInevasoDTO> dataList) { private List<MainListProdOrdineProduzioneElencoListModel> convertDataModelToListModel(List<OrdineAccettazioneInevasoDTO> dataList) {
@@ -384,6 +386,11 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
private void initJtbComtCache(Runnable onComplete) { private void initJtbComtCache(Runnable onComplete) {
if (this.mViewModel.getOrderList().getValue() == null) {
this.jtbComtCache = new ArrayList<>();
onComplete.run();
return;
}
var jtbComts = Stream.of(Objects.requireNonNull(this.mViewModel.getOrderList().getValue())) var jtbComts = Stream.of(Objects.requireNonNull(this.mViewModel.getOrderList().getValue()))
.flatMap(x -> Stream.of(x.getCodJcom())) .flatMap(x -> Stream.of(x.getCodJcom()))
.toList(); .toList();

View File

@@ -55,7 +55,7 @@ public class ProdOrdineProduzioneRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
UtilityLogger.errorMe(new Exception(t)); UtilityLogger.error(new Exception(t));
onFailed.run(new Exception(t)); onFailed.run(new Exception(t));
} }
}); });

View File

@@ -42,7 +42,7 @@ import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.Versamento
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ui.ChooseOrdsLavFromListAdapter; import it.integry.integrywmsnative.gest.prod_versamento_materiale.ui.ChooseOrdsLavFromListAdapter;
import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.DialogCommon;
import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU; import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLUView;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUView; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUView;
@@ -197,7 +197,7 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
} }
private void choosePosition() { private void choosePosition() {
DialogAskPositionOfLU.makeBase(requireActivity(), true, (status, mtbDepoPosizione) -> { DialogAskPositionOfLUView.makeBase(true, (status, mtbDepoPosizione) -> {
if (status == DialogConsts.Results.ABORT) { if (status == DialogConsts.Results.ABORT) {
popMe(); popMe();
@@ -205,7 +205,7 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
mViewModel.setPosizione(mtbDepoPosizione); mViewModel.setPosizione(mtbDepoPosizione);
} }
}, this::onError).show(); }, this::onError).show(requireActivity().getSupportFragmentManager(), "tag");
} }

View File

@@ -10,7 +10,6 @@ import android.widget.Toast;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import com.ravikoradiya.liveadapter.LiveAdapter; import com.ravikoradiya.liveadapter.LiveAdapter;
@@ -34,7 +33,6 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding; import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding;
import it.integry.integrywmsnative.databinding.FragmentPvArticoliOrdineAcquistoListSingleItemBinding; import it.integry.integrywmsnative.databinding.FragmentPvArticoliOrdineAcquistoListSingleItemBinding;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEditArticoloView; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEditArticoloView;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.ui.OrdineAcquistoArtListModel;
import it.integry.integrywmsnative.ui.FabMenuCustomAnimations; import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration; import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
import it.integry.integrywmsnative.view.dialogs.DialogAskAction; import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
@@ -53,8 +51,6 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
@Inject @Inject
PVOrdineAcquistoEditViewModel mViewModel; PVOrdineAcquistoEditViewModel mViewModel;
private final ObservableArrayList<OrdineAcquistoArtListModel> mArticoliMutableData = new ObservableArrayList<>();
public static Intent newInstance(Context context, Ordine ordine) { public static Intent newInstance(Context context, Ordine ordine) {
Intent myIntent = new Intent(context, PVOrdineAcquistoEditActivity.class); Intent myIntent = new Intent(context, PVOrdineAcquistoEditActivity.class);

View File

@@ -117,6 +117,27 @@ public class PVOrdineAcquistoEditViewModel {
this.mArticoli.postValue(newList); this.mArticoli.postValue(newList);
} }
public void saveArticoli(List<ArticoloOrdine> articoli) {
var newList = this.mArticoli.getValue();
if (newList == null) {
newList = new ArrayList<>();
}
for (ArticoloOrdine articolo : articoli) {
setBgTint(articolo);
var alreadySavedItem = Stream.of(newList)
.filter(x -> Objects.equals(x.getCodMart(), articolo.getCodMart()))
.findFirst();
if (alreadySavedItem.isPresent()) newList.remove(alreadySavedItem.get());
newList.add(articolo);
}
this.mArticoli.postValue(newList);
}
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
this.checkArticolo( this.checkArticolo(
@@ -225,8 +246,7 @@ public class PVOrdineAcquistoEditViewModel {
}); });
if (!articoliToSave.isEmpty()) { if (!articoliToSave.isEmpty()) {
mArticoliOrdineRepository.saveArticoliToOrdine(articoliToSave, () -> { mArticoliOrdineRepository.saveArticoliToOrdine(articoliToSave, () -> {
Stream.of(articoliToSave).forEach(this::saveArticolo); this.saveArticoli(articoliToSave);
this.sendOnLoadingEnded(); this.sendOnLoadingEnded();
}, this::sendError); }, this::sendError);

View File

@@ -53,9 +53,7 @@ public class OrdineAcquistoPvHelper {
mGrigliaRepository.saveGriglia(griglia, id -> { mGrigliaRepository.saveGriglia(griglia, id -> {
saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, grigliaResult -> { saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSaved, onFail);
onSaved.run(grigliaResult);
}, onFail);
}, onFail); }, onFail);
}); });
}, onFail); }, onFail);

View File

@@ -57,9 +57,9 @@ import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView; import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView;
import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView; import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU; import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLUView;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts; import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUView; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUView;
@@ -157,8 +157,8 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
mBinding.rettificaGiacenzeMainList.setHasFixedSize(true); mBinding.rettificaGiacenzeMainList.setHasFixedSize(true);
mBinding.rettificaGiacenzeMainList.setLayoutManager(new LinearLayoutManager(getActivity())); mBinding.rettificaGiacenzeMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(getActivity(), SimpleDividerItemDecoration.VERTICAL); SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireActivity(), SimpleDividerItemDecoration.VERTICAL);
itemDecorator.setDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.divider)); itemDecorator.setDrawable(ContextCompat.getDrawable(requireActivity(), R.drawable.divider));
mBinding.rettificaGiacenzeMainList.addItemDecoration(itemDecorator); mBinding.rettificaGiacenzeMainList.addItemDecoration(itemDecorator);
} }
@@ -215,9 +215,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> { private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
this.onLoadingStarted(); this.onLoadingStarted();
this.mViewModel.processBarcodeDTO(data, () -> { this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded);
this.onLoadingEnded();
});
}; };
@@ -289,7 +287,8 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
@Override @Override
public void onArtListLoaded(ArrayList<MtbAart> artList, RunnableArgs<MtbAart> onArtChoosed) { public void onArtListLoaded(ArrayList<MtbAart> artList, RunnableArgs<MtbAart> onArtChoosed) {
DialogChooseArtFromListaArts.make(getActivity(), artList, onArtChoosed).show(); new DialogChooseArtFromListaArtsView(artList, onArtChoosed)
.show(requireActivity().getSupportFragmentManager(), "tag");
} }
@Override @Override
@@ -300,7 +299,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
} else { } else {
onComplete.run(mtbColt, created); onComplete.run(mtbColt, created);
} }
}).show(getActivity().getSupportFragmentManager(), "tag"); }).show(requireActivity().getSupportFragmentManager(), "tag");
} }
@Override @Override
@@ -479,7 +478,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
new DialogYesNoView(null, "Vuoi cambiare la posizione della UL corrente?", result -> { new DialogYesNoView(null, "Vuoi cambiare la posizione della UL corrente?", result -> {
switch (result) { switch (result) {
case YES: case YES:
DialogAskPositionOfLU.makeBase(getActivity(), false, (status, mtbDepoPosizione) -> { DialogAskPositionOfLUView.makeBase(false, (status, mtbDepoPosizione) -> {
if (status == DialogConsts.Results.ABORT) { if (status == DialogConsts.Results.ABORT) {
onComplete.run(false, null); onComplete.run(false, null);
} else { } else {
@@ -489,7 +488,8 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
onComplete.run(true, null); onComplete.run(true, null);
} }
} }
}, this::onError).show(); }, this::onError)
.show(requireActivity().getSupportFragmentManager(), "tag");
break; break;
case NO: case NO:
@@ -501,7 +501,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
@Override @Override
public void onPreDestroy(Runnable onComplete) { public void onPreDestroy(Runnable onComplete) {
if(mViewModel.getCurrentMtbColt() != null) if (mViewModel.getCurrentMtbColt() != null)
mViewModel.closeLU(false); mViewModel.closeLU(false);
else { else {
BarcodeManager.removeCallback(barcodeScannerIstanceID); BarcodeManager.removeCallback(barcodeScannerIstanceID);

View File

@@ -21,7 +21,6 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPrintL
import it.integry.integrywmsnative.core.model.CommonModelConsts; import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColr;
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.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.dto.PickDataDTO; import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
@@ -77,7 +76,6 @@ public class RettificaGiacenzeViewModel {
this.mDefaultCausale = defaultCausale; this.mDefaultCausale = defaultCausale;
this.mCurrentCodMdep = currentCodMdep; this.mCurrentCodMdep = currentCodMdep;
this.sendOnLoadingStarted(); this.sendOnLoadingStarted();
this.mRettificaGiacenzeRESTConsumer.loadListaFornitori(fornitori -> { this.mRettificaGiacenzeRESTConsumer.loadListaFornitori(fornitori -> {
@@ -105,11 +103,6 @@ public class RettificaGiacenzeViewModel {
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
// if (UtilityBarcode.isEanPeso(barcodeScanDTO)) {
// //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
// this.executeEtichettaEanPeso(barcodeScanDTO, onComplete);
//
// } else
if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) { if (UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
//Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL)
this.executeEtichettaEan128(barcodeScanDTO, onComplete); this.executeEtichettaEan128(barcodeScanDTO, onComplete);
@@ -126,21 +119,26 @@ public class RettificaGiacenzeViewModel {
mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> { mBarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
String barcodeProd = null; String barcodeProd = null;
String codMart = null;
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc; if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin; if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
if (!UtilityString.isNullOrEmpty(ean128Model.Content)) if (!UtilityString.isNullOrEmpty(ean128Model.Content))
barcodeProd = ean128Model.Content; barcodeProd = ean128Model.Content;
if (!UtilityString.isNullOrEmpty(ean128Model.Internal1))
codMart = ean128Model.Internal1;
if (!UtilityString.isNullOrEmpty(barcodeProd)) { if (!UtilityString.isNullOrEmpty(barcodeProd)) {
if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) { if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
barcodeProd = barcodeProd.substring(1); barcodeProd = barcodeProd.substring(1);
} }
PickDataDTO pickDataDTO = PickDataDTO.fromEan128(ean128Model); PickDataDTO pickDataDTO = PickDataDTO.fromEan128(ean128Model);
this.loadArticolo(barcodeProd, pickDataDTO, onComplete); this.loadArticolo(barcodeProd, pickDataDTO, onComplete);
} else if (!UtilityString.isNullOrEmpty(codMart)) {
this.searchArtInt(codMart, onComplete);
} else { } else {
//EAN 128 non completo o comunque mancano i riferimenti al prodotto //EAN 128 non completo o comunque mancano i riferimenti al prodotto
onComplete.run(); onComplete.run();
@@ -149,18 +147,13 @@ public class RettificaGiacenzeViewModel {
} }
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) { private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
if (barcodeProd.length() == 14) {
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
}
String finalBarcodeProd = barcodeProd;
this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
if (onComplete != null) onComplete.run(); if (onComplete != null) onComplete.run();
if (mtbAartList != null && mtbAartList.size() > 0) { if (mtbAartList != null && mtbAartList.size() > 0) {
this.dispatchArt(mtbAartList.get(0), pickData); this.dispatchArt(mtbAartList.get(0), pickData);
} else { } else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
} }
}, this::sendError); }, this::sendError);
@@ -462,18 +455,7 @@ public class RettificaGiacenzeViewModel {
private void saveCausaleRettificaGiacenze(Runnable onComplete) { private void saveCausaleRettificaGiacenze(Runnable onComplete) {
final MtbCols mtbCols = new MtbCols() this.mColliMagazzinoRESTConsumer.confirmGiacenzaUL(mCurrentMtbColt, onComplete, this::sendError);
.setCausale(this.mDefaultCausale);
mtbCols.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
cloneMtbColt.setMtbColr(null);
cloneMtbColt.setMtbCols(new ArrayList<>());
cloneMtbColt.getMtbCols().add(mtbCols);
this.mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, mtbColt -> onComplete.run(), this::sendError);
} }
private void savePosizione(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) { private void savePosizione(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {

View File

@@ -68,11 +68,11 @@ import it.integry.integrywmsnative.gest.spedizione.ui.SpedizioneListModel;
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView; import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView;
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel; import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU; import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLUView;
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.base.DialogSimpleInputHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts; import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView; import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView;
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.InfoAggiuntiveLUDialog; import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.InfoAggiuntiveLUDialog;
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLuView; import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLuView;
@@ -865,13 +865,13 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
new DialogYesNoView(null, "Vuoi cambiare la posizione della UL corrente?", result -> { new DialogYesNoView(null, "Vuoi cambiare la posizione della UL corrente?", result -> {
switch (result) { switch (result) {
case YES: case YES:
DialogAskPositionOfLU.makeBase(this, false, (status, mtbDepoPosizione) -> { DialogAskPositionOfLUView.makeBase(false, (status, mtbDepoPosizione) -> {
if (status == DialogConsts.Results.ABORT) { if (status == DialogConsts.Results.ABORT) {
onComplete.run(false, null); onComplete.run(false, null);
} else { } else {
onComplete.run(true, mtbDepoPosizione); onComplete.run(true, mtbDepoPosizione);
} }
}, this::onError).show(); }, this::onError).show(getSupportFragmentManager(), "tag");
break; break;
case NO: case NO:
@@ -936,7 +936,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override @Override
public void onChooseArtRequest(List<MtbAart> artsList, RunnableArgs<MtbAart> onComplete) { public void onChooseArtRequest(List<MtbAart> artsList, RunnableArgs<MtbAart> onComplete) {
DialogChooseArtFromListaArts.make(this, artsList, onComplete).show(); new DialogChooseArtFromListaArtsView(artsList, onComplete)
.show(getSupportFragmentManager(), "tag");
} }
@Override @Override

View File

@@ -143,7 +143,9 @@ public class SpedizioneViewModel {
this.mDefaultCausaleOfUL = defaultCausaleUL; this.mDefaultCausaleOfUL = defaultCausaleUL;
this.mEnableQuantityReset = enableQuantityReset; this.mEnableQuantityReset = enableQuantityReset;
this.mUseQtaOrd = useQtaOrd; this.mUseQtaOrd = useQtaOrd;
this.mIsOrdTrasf = Stream.of(testateOrdini).map(OrdineUscitaInevasoDTO::isOrdTrasf).withoutNulls().distinctBy(x -> x).findFirst().get(); if (testateOrdini != null) {
this.mIsOrdTrasf = Stream.of(testateOrdini).map(OrdineUscitaInevasoDTO::isOrdTrasf).withoutNulls().distinctBy(x -> x).findFirst().get();
}
if (enableGiacenza) { if (enableGiacenza) {
mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> { mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> {
@@ -564,11 +566,6 @@ public class SpedizioneViewModel {
} }
private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) { private void loadArticolo(String barcodeProd, PickDataDTO pickData, Runnable onComplete) {
if (barcodeProd.length() == 14) {
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
}
String finalBarcodeProd = barcodeProd;
this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
if (mtbAartList != null && mtbAartList.size() > 0) { if (mtbAartList != null && mtbAartList.size() > 0) {
@@ -578,7 +575,7 @@ public class SpedizioneViewModel {
mListener.onChooseArtRequest(mtbAartList, art -> this.searchArtFromAnag(art, pickData, onComplete)); mListener.onChooseArtRequest(mtbAartList, art -> this.searchArtFromAnag(art, pickData, onComplete));
} }
} else { } else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
} }
}, this::sendError); }, this::sendError);

View File

@@ -64,7 +64,7 @@ public abstract class BottomSheetFragmentBaseView extends ConstraintLayout {
public void expand() { public void expand() {
if(this.mBottomSheetBehavior == null) { if(this.mBottomSheetBehavior == null) {
UtilityLogger.errorMe(new BottomSheetFragmentViewNotInitializedException()); UtilityLogger.error(new BottomSheetFragmentViewNotInitializedException());
return; return;
} }
@@ -73,7 +73,7 @@ public abstract class BottomSheetFragmentBaseView extends ConstraintLayout {
public void collapse() { public void collapse() {
if(this.mBottomSheetBehavior == null) { if(this.mBottomSheetBehavior == null) {
UtilityLogger.errorMe(new BottomSheetFragmentViewNotInitializedException()); UtilityLogger.error(new BottomSheetFragmentViewNotInitializedException());
return; return;
} }
@@ -91,7 +91,7 @@ public abstract class BottomSheetFragmentBaseView extends ConstraintLayout {
public State getState() { public State getState() {
if(this.mBottomSheetBehavior == null) { if(this.mBottomSheetBehavior == null) {
UtilityLogger.errorMe(new BottomSheetFragmentViewNotInitializedException()); UtilityLogger.error(new BottomSheetFragmentViewNotInitializedException());
return null; return null;
} }

View File

@@ -61,7 +61,7 @@ public class BottomSheetMtbColrEditView extends BottomSheetFragmentBaseView {
@Override @Override
public void expand() { public void expand() {
if(this.mViewModel.getMtbColr() == null) { if(this.mViewModel.getMtbColr() == null) {
UtilityLogger.errorMe(new NullMtbColrException()); UtilityLogger.error(new NullMtbColrException());
return; return;
} }

View File

@@ -51,10 +51,12 @@ public class DialogProgressView extends DialogFragment {
mBindings.progressBar.setIndeterminate(isIndeterminateProgress()); mBindings.progressBar.setIndeterminate(isIndeterminateProgress());
if (!isIndeterminateProgress()) mBindings.progressBar.setMax(100); if (!isIndeterminateProgress()) mBindings.progressBar.setMax(100);
return new MaterialAlertDialogBuilder(requireContext()) var alertDialog = new MaterialAlertDialogBuilder(requireContext())
.setView(mBindings.getRoot()) .setView(mBindings.getRoot())
.setCancelable(false) .setCancelable(false)
.create(); .create();
alertDialog.setCanceledOnTouchOutside(false);
return alertDialog;
} }
public String getTitle() { public String getTitle() {

View File

@@ -1,223 +0,0 @@
package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.widget.TextView;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
import com.google.android.material.textfield.TextInputLayout;
import java.util.ArrayList;
import java.util.List;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityDialog;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
import it.integry.integrywmsnative.databinding.DialogAskPositionOfLuBinding;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
public class DialogAskPositionOfLU {
private Context mContext;
private DialogAskPositionOfLuBinding mBinding;
private boolean mCheckForLineaProd;
private MtbDepoPosizione currentMtbDepoPosizione;
private Dialog mDialog;
private RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete;
private RunnableArgs<Exception> onFailed;
private TextInputLayout livelloTextInputLayout;
private boolean completedFlow = false;
public static Dialog makeBase(final Context context, boolean checkForLineaProd, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
return new DialogAskPositionOfLU(context, checkForLineaProd, onComplete, onFailed).mDialog;
}
private DialogAskPositionOfLU(Context context, boolean checkForLineaProd, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
mContext = context;
mCheckForLineaProd = checkForLineaProd;
this.onComplete = onComplete;
this.onFailed = onFailed;
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_position_of_lu, null, false);
mBinding.setMContext(mContext);
List<Integer> views = new ArrayList<>();
views.add(R.layout.dialog_ask_position_of_lu__page1);
views.add(R.layout.dialog_ask_position_of_lu__page2);
DialogAskPositionOfLUAdapter adapter = new DialogAskPositionOfLUAdapter(mContext, views);
mBinding.viewpager.setAdapter(adapter);
mBinding.viewpager.beginFakeDrag();
mDialog = new Dialog(mContext);
mDialog.setContentView(mBinding.getRoot());
mDialog.setCanceledOnTouchOutside(false);
// mDialog.setCancelable(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
UtilityDialog.setTo90PercentWidth(mContext, mDialog);
mDialog.setOnShowListener(dialog -> {
((AppCompatTextView) adapter.getPage(0).findViewById(R.id.description_text)).setText(mCheckForLineaProd ? R.string.ask_production_line_of_lu_message : R.string.ask_position_of_lu_message);
adapter.getPage(1).findViewById(R.id.button_confirm).setOnClickListener(v -> {
String levelNumber = ((TextView)adapter.getPage(1).findViewById(R.id.level_number)).getText().toString();
onLevelConfirm(levelNumber);
});
adapter.getPage(1).findViewById(R.id.button_abort).setOnClickListener(v -> {
onLevelAbort();
});
livelloTextInputLayout = adapter.getPage(1).findViewById(R.id.level_number_layout);
livelloTextInputLayout.getEditText().addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(livelloTextInputLayout.getEditText().getText() != null) {
validateLevel(livelloTextInputLayout.getEditText().getText().toString());
} else resetLevelError();
}
@Override
public void afterTextChanged(Editable s) {
}
});
});
setupBarcode();
}
private void askLivello() {
mBinding.viewpager.setCurrentItem(1, true);
}
private boolean isOnLivelloPage() {
return mBinding.viewpager.getCurrentItem() == 1;
}
private void setupBarcode() {
int barcodeIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessful(onScanSuccessfull)
.setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false)));
mDialog.setOnDismissListener(dialog -> {
BarcodeManager.removeCallback(barcodeIstanceID);
if(!completedFlow) onComplete.run(DialogConsts.Results.ABORT, null);
});
BarcodeManager.enable();
}
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
BarcodeManager.disable();
if(!isOnLivelloPage()) {
if (UtilityBarcode.isEtichettaPosizione(data)) {
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(data.getStringValue());
currentMtbDepoPosizione = foundPosizione;
if (!mCheckForLineaProd && !currentMtbDepoPosizione.isFlagLineaProduzione() && UtilityPosizione.isPosizioneWithLivello(foundPosizione)) {
askLivello();
BarcodeManager.enable();
} else {
completedFlow = true;
if(onComplete != null) onComplete.run(DialogConsts.Results.YES, foundPosizione);
mDialog.dismiss();
BarcodeManager.enable();
}
} else {
BarcodeManager.enable();
}
} else {
BarcodeManager.enable();
}
};
private void onLevelConfirm(String levelString) {
String newPosizione = currentMtbDepoPosizione.getPosizione().substring(0, currentMtbDepoPosizione.getPosizione().length()-1);
newPosizione += levelString;
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(newPosizione);
if(foundPosizione != null) {
resetLevelError();
completedFlow = true;
if(onComplete != null) onComplete.run(DialogConsts.Results.YES, foundPosizione);
mDialog.dismiss();
} else {
setLevelError(mContext.getResources().getString(R.string.not_valid));
}
}
private void validateLevel(String levelString) {
String newPosizione = currentMtbDepoPosizione.getPosizione().substring(0, currentMtbDepoPosizione.getPosizione().length()-1);
newPosizione += levelString;
if(UtilityPosizione.getFromCache(newPosizione) != null) {
resetLevelError();
} else setLevelError(mContext.getResources().getString(R.string.not_valid));
}
private void setLevelError(String message){
livelloTextInputLayout.setErrorEnabled(true);
livelloTextInputLayout.setError(message);
livelloTextInputLayout.setErrorIconDrawable(null);
}
private void resetLevelError() {
livelloTextInputLayout.setError(null);
}
private void onLevelAbort() {
completedFlow = true;
onComplete.run(DialogConsts.Results.ABORT, null);
mDialog.dismiss();
}
}

View File

@@ -0,0 +1,234 @@
package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.WindowManager;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputLayout;
import java.util.ArrayList;
import java.util.List;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
import it.integry.integrywmsnative.databinding.DialogAskPositionOfLuBinding;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
public class DialogAskPositionOfLUView extends BaseDialogFragment implements DialogInterface.OnShowListener {
private DialogAskPositionOfLuBinding mBindings;
private DialogAskPositionOfLUAdapter viewpagerAdapter;
private int mBarcodeScannerIstanceID;
private boolean mCheckForLineaProd;
private MtbDepoPosizione currentMtbDepoPosizione;
private RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete;
private RunnableArgs<Exception> onFailed;
private TextInputLayout livelloTextInputLayout;
private boolean completedFlow = false;
public static DialogAskPositionOfLUView makeBase(boolean checkForLineaProd, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
return new DialogAskPositionOfLUView(checkForLineaProd, onComplete, onFailed);
}
private DialogAskPositionOfLUView(boolean checkForLineaProd, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
super();
this.mCheckForLineaProd = checkForLineaProd;
this.onComplete = onComplete;
this.onFailed = onFailed;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
this.initBarcode();
mBindings = DialogAskPositionOfLuBinding.inflate(LayoutInflater.from(requireActivity()), null, false);
mBindings.setLifecycleOwner(this);
List<Integer> views = new ArrayList<>();
views.add(R.layout.dialog_ask_position_of_lu__page1);
views.add(R.layout.dialog_ask_position_of_lu__page2);
viewpagerAdapter = new DialogAskPositionOfLUAdapter(requireContext(), views);
mBindings.viewpager.setAdapter(viewpagerAdapter);
mBindings.viewpager.beginFakeDrag();
var alertDialog = new MaterialAlertDialogBuilder(requireContext())
.setView(mBindings.getRoot())
.setCancelable(false)
.create();
alertDialog.setCanceledOnTouchOutside(false);
alertDialog.setOnShowListener(this);
return alertDialog;
}
@Override
public void onStart() {
super.onStart();
if(getDialog() != null) {
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}
}
@Override
public void onShow(DialogInterface dialog) {
((AppCompatTextView) viewpagerAdapter.getPage(0)
.findViewById(R.id.description_text))
.setText(mCheckForLineaProd ? R.string.ask_production_line_of_lu_message : R.string.ask_position_of_lu_message);
viewpagerAdapter.getPage(1).findViewById(R.id.button_confirm).setOnClickListener(v -> {
String levelNumber = ((TextView) viewpagerAdapter.getPage(1).findViewById(R.id.level_number)).getText().toString();
onLevelConfirm(levelNumber);
});
viewpagerAdapter.getPage(1).findViewById(R.id.button_abort).setOnClickListener(v -> {
onLevelAbort();
});
livelloTextInputLayout = viewpagerAdapter.getPage(1).findViewById(R.id.level_number_layout);
livelloTextInputLayout.getEditText().addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (livelloTextInputLayout.getEditText().getText() != null) {
validateLevel(livelloTextInputLayout.getEditText().getText().toString());
} else resetLevelError();
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
private void askLivello() {
mBindings.viewpager.setCurrentItem(1, true);
}
private boolean isOnLivelloPage() {
return mBindings.viewpager.getCurrentItem() == 1;
}
private void initBarcode() {
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessful(onScanSuccessfull)
.setOnScanFailed(this::onError));
BarcodeManager.enable();
}
@Override
public void onDismiss(@NonNull DialogInterface dialog) {
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
if (!completedFlow) onComplete.run(DialogConsts.Results.ABORT, null);
super.onDismiss(dialog);
}
private final RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
BarcodeManager.disable();
if (!isOnLivelloPage()) {
if (UtilityBarcode.isEtichettaPosizione(data)) {
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(data.getStringValue());
currentMtbDepoPosizione = foundPosizione;
if (!mCheckForLineaProd && !currentMtbDepoPosizione.isFlagLineaProduzione() && UtilityPosizione.isPosizioneWithLivello(foundPosizione)) {
askLivello();
BarcodeManager.enable();
} else {
completedFlow = true;
if (onComplete != null)
onComplete.run(DialogConsts.Results.YES, foundPosizione);
dismiss();
BarcodeManager.enable();
}
} else {
BarcodeManager.enable();
}
} else {
BarcodeManager.enable();
}
};
private void onLevelConfirm(String levelString) {
String newPosizione = currentMtbDepoPosizione.getPosizione().substring(0, currentMtbDepoPosizione.getPosizione().length() - 1);
newPosizione += levelString;
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(newPosizione);
if (foundPosizione != null) {
resetLevelError();
completedFlow = true;
if (onComplete != null) onComplete.run(DialogConsts.Results.YES, foundPosizione);
dismiss();
} else {
setLevelError(requireContext().getResources().getString(R.string.not_valid));
}
}
private void validateLevel(String levelString) {
String newPosizione = currentMtbDepoPosizione.getPosizione().substring(0, currentMtbDepoPosizione.getPosizione().length() - 1);
newPosizione += levelString;
if (UtilityPosizione.getFromCache(newPosizione) != null) {
resetLevelError();
} else setLevelError(requireContext().getResources().getString(R.string.not_valid));
}
private void setLevelError(String message) {
livelloTextInputLayout.setErrorEnabled(true);
livelloTextInputLayout.setError(message);
livelloTextInputLayout.setErrorIconDrawable(null);
}
private void resetLevelError() {
livelloTextInputLayout.setError(null);
}
private void onLevelAbort() {
completedFlow = true;
onComplete.run(DialogConsts.Results.ABORT, null);
dismiss();
}
}

View File

@@ -116,7 +116,7 @@ public class DialogSimpleMessageView extends BaseDialogFragment {
if (isPositiveVisible()) if (isPositiveVisible())
alertDialogBuilder.setPositiveButton(getPositiveButtonText(), (dialog, which) -> { alertDialogBuilder.setPositiveButton(getPositiveButtonText(), (dialog, which) -> {
this.mOnPositiveClick.run(); if(this.mOnPositiveClick != null) this.mOnPositiveClick.run();
}); });
if (isNeutralVisible()) if (isNeutralVisible())
@@ -194,7 +194,7 @@ public class DialogSimpleMessageView extends BaseDialogFragment {
public boolean isPositiveVisible() { public boolean isPositiveVisible() {
return mOnPositiveClick != null; return mOnPositiveClick != null || (!isNeutralVisible() && !isNegativeVisible());
} }
public boolean isNeutralVisible() { public boolean isNeutralVisible() {

View File

@@ -1,80 +0,0 @@
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.LinearLayoutManager;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.utility.UtilityDialog;
import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
public class DialogChooseArtFromListaArts {
private Context currentContext;
private Dialog mDialog;
private DialogChooseArtFromListaArtsAdapter currentAdapter;
private RunnableArgs<MtbAart> mOnItemChoosed;
public static Dialog make(final Context context, List<MtbAart> listaArts, RunnableArgs<MtbAart> onItemChoosed) {
return new DialogChooseArtFromListaArts(context, listaArts, onItemChoosed).mDialog;
}
private DialogChooseArtFromListaArts(Context context, List<MtbAart> listaArts, RunnableArgs<MtbAart> onItemChoosed) {
currentContext = context;
mOnItemChoosed = onItemChoosed;
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
DialogChooseArtFromListaArtBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_choose_art_from_lista_art, null, false);
mDialog = new Dialog(context);
mDialog.setContentView(bindings.getRoot());
mDialog.setCanceledOnTouchOutside(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
UtilityDialog.setTo90PercentWidth(context, mDialog);
initRecyclerView(bindings, listaArts);
}
private void initRecyclerView(DialogChooseArtFromListaArtBinding binding, List<MtbAart> dataset) {
binding.dialogChooseArtFromListaArtMainList.setNestedScrollingEnabled(false);
binding.dialogChooseArtFromListaArtMainList.setHasFixedSize(true);
binding.dialogChooseArtFromListaArtMainList.setLayoutManager(new LinearLayoutManager(currentContext));
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(currentContext, SimpleDividerItemDecoration.VERTICAL);
itemDecorator.setDrawable(ContextCompat.getDrawable(currentContext, R.drawable.divider));
binding.dialogChooseArtFromListaArtMainList.addItemDecoration(itemDecorator);
currentAdapter = new DialogChooseArtFromListaArtsAdapter(currentContext, dataset, onItemClicked);
binding.dialogChooseArtFromListaArtMainList.setAdapter(currentAdapter);
}
private IRecyclerItemClicked<MtbAart> onItemClicked = (item, position) -> {
if(mOnItemChoosed != null) {
mOnItemChoosed.run(item);
}
mDialog.dismiss();
};
}

View File

@@ -0,0 +1,73 @@
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
import android.app.Dialog;
import android.os.Bundle;
import android.view.LayoutInflater;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
public class DialogChooseArtFromListaArtsView extends DialogFragment {
private final List<MtbAart> mListaArts;
private final RunnableArgs<MtbAart> mOnItemChoosed;
public DialogChooseArtFromListaArtsView(List<MtbAart> listaArts, RunnableArgs<MtbAart> onItemChoosed) {
super();
this.mListaArts = listaArts;
this.mOnItemChoosed = onItemChoosed;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
var binding = DialogChooseArtFromListaArtBinding.inflate(LayoutInflater.from(requireContext()));
initRecyclerView(binding, mListaArts);
var alertDialog = new MaterialAlertDialogBuilder(requireContext())
.setView(binding.getRoot())
.setCancelable(false)
.create();
alertDialog.setCanceledOnTouchOutside(false);
return alertDialog;
}
private void initRecyclerView(DialogChooseArtFromListaArtBinding binding, List<MtbAart> dataset) {
binding.dialogChooseArtFromListaArtMainList.setNestedScrollingEnabled(false);
binding.dialogChooseArtFromListaArtMainList.setHasFixedSize(true);
binding.dialogChooseArtFromListaArtMainList.setLayoutManager(new LinearLayoutManager(requireContext()));
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireContext(), SimpleDividerItemDecoration.VERTICAL);
itemDecorator.setDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.divider));
binding.dialogChooseArtFromListaArtMainList.addItemDecoration(itemDecorator);
DialogChooseArtFromListaArtsAdapter mCurrentAdapter = new DialogChooseArtFromListaArtsAdapter(requireContext(), dataset,
((item, position) -> {
if (mOnItemChoosed != null) {
mOnItemChoosed.run(item);
}
dismiss();
}));
binding.dialogChooseArtFromListaArtMainList.setAdapter(mCurrentAdapter);
}
}

View File

@@ -308,15 +308,10 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
private void loadArticolo(String barcodeProd, Ean128Model ean128Model) { private void loadArticolo(String barcodeProd, Ean128Model ean128Model) {
if (barcodeProd.length() == 14) {
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
}
String finalBarcodeProd = barcodeProd;
this.articoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { this.articoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
if (mtbAartList != null && mtbAartList.size() > 0) { if (mtbAartList != null && mtbAartList.size() > 0) {
this.mBindings.mainSearch.setQuery(finalBarcodeProd, false); this.mBindings.mainSearch.setQuery(barcodeProd, false);
this.searchArtInList(mtbAartList.get(0), ean128Model); this.searchArtInList(mtbAartList.get(0), ean128Model);

View File

@@ -1,4 +1,4 @@
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr; package it.integry.integrywmsnative.view.dialogs.choose_batch_lot.choose_art_from_lista_mtb_colr;
import android.content.Context; import android.content.Context;
import android.view.LayoutInflater; import android.view.LayoutInflater;

View File

@@ -1,4 +1,4 @@
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr; package it.integry.integrywmsnative.view.dialogs.choose_batch_lot.choose_art_from_lista_mtb_colr;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;

View File

@@ -1,5 +1,6 @@
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2; package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import android.os.Bundle; import android.os.Bundle;
@@ -10,6 +11,7 @@ import android.text.SpannableString;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@@ -123,6 +125,14 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
this.initBarcode(); this.initBarcode();
} }
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
var dialog = super.onCreateDialog(savedInstanceState);
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
return dialog;
}
@Nullable @Nullable
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

View File

@@ -31,7 +31,7 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.rest.model.Ean128Model; import it.integry.integrywmsnative.core.rest.model.Ean128Model;
import it.integry.integrywmsnative.databinding.DialogScanArtBinding; import it.integry.integrywmsnative.databinding.DialogScanArtBinding;
import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_mtb_colr.DialogChooseArtFromListaMtbColrView; import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.choose_art_from_lista_mtb_colr.DialogChooseArtFromListaMtbColrView;
public class DialogScanArtView extends BaseDialogFragment implements DialogScanArtViewModel.Listener { public class DialogScanArtView extends BaseDialogFragment implements DialogScanArtViewModel.Listener {

View File

@@ -149,11 +149,6 @@ public class DialogScanArtViewModel {
private void loadArticolo(@NotNull String barcodeProd, Ean128Model ean128Model, RunnableArgssss<DialogConsts.Results, MtbAart, Ean128Model, List<MtbColr>> onComplete) { private void loadArticolo(@NotNull String barcodeProd, Ean128Model ean128Model, RunnableArgssss<DialogConsts.Results, MtbAart, Ean128Model, List<MtbColr>> onComplete) {
if (barcodeProd.length() == 14) {
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
}
String finalBarcodeProd = barcodeProd;
this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { this.mArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
if (mtbAartList != null && mtbAartList.size() > 0) { if (mtbAartList != null && mtbAartList.size() > 0) {
@@ -165,11 +160,11 @@ public class DialogScanArtViewModel {
} else if (!mForceOnlyUL) { } else if (!mForceOnlyUL) {
onComplete.run(DialogConsts.Results.YES, mtbAartList.get(0), ean128Model, null); onComplete.run(DialogConsts.Results.YES, mtbAartList.get(0), ean128Model, null);
} else { } else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
} }
} else { } else {
this.sendError(new NoResultFromBarcodeException(finalBarcodeProd)); this.sendError(new NoResultFromBarcodeException(barcodeProd));
} }
}, this::sendError); }, this::sendError);
} }

View File

@@ -93,8 +93,8 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
this.mViewModel.init(mShouldCheckResiduo, mShouldCheckIfExistDoc, mEnableCreation); this.mViewModel.init(mShouldCheckResiduo, mShouldCheckIfExistDoc, mEnableCreation);
mBindings.createNewLuButton.setOnClickListener(v -> { mBindings.createNewLuButton.setOnClickListener(v -> {
dismiss();
this.mViewModel.createNewLU(); this.mViewModel.createNewLU();
// dismiss();
}); });
mBindings.viewBasket.setOnClickListener(v -> { mBindings.viewBasket.setOnClickListener(v -> {

View File

@@ -8,5 +8,5 @@
android:right="6dp" android:right="6dp"
android:top="1dp" /> android:top="1dp" />
<corners android:radius="5dp" /> <corners android:radius="12dp" />
</shape> </shape>

View File

@@ -295,6 +295,7 @@
android:backgroundTint="@color/light_blue_100" android:backgroundTint="@color/light_blue_100"
android:orientation="vertical" android:orientation="vertical"
android:paddingHorizontal="8dp" android:paddingHorizontal="8dp"
android:paddingVertical="4dp"
android:visibility="@{viewmodel.totalNumCnfInWarehouse != null || viewmodel.totalQtaInWarehouse != null ? View.VISIBLE : View.GONE}"> android:visibility="@{viewmodel.totalNumCnfInWarehouse != null || viewmodel.totalQtaInWarehouse != null ? View.VISIBLE : View.GONE}">
@@ -394,6 +395,7 @@
android:backgroundTint="@color/light_blue_100" android:backgroundTint="@color/light_blue_100"
android:orientation="vertical" android:orientation="vertical"
android:paddingHorizontal="8dp" android:paddingHorizontal="8dp"
android:paddingVertical="4dp"
android:visibility="@{viewmodel.totalNumCnfCommitted != null || viewmodel.totalQtaCommitted != null ? View.VISIBLE : View.GONE}"> android:visibility="@{viewmodel.totalNumCnfCommitted != null || viewmodel.totalQtaCommitted != null ? View.VISIBLE : View.GONE}">

View File

@@ -26,7 +26,7 @@
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:cardCornerRadius="8dp" app:cardCornerRadius="16dp"
app:cardElevation="4dp" app:cardElevation="4dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

@@ -4,9 +4,6 @@
<data> <data>
<import type="android.text.Html" /> <import type="android.text.Html" />
<import type="it.integry.integrywmsnative.R" /> <import type="it.integry.integrywmsnative.R" />
<variable
name="mContext"
type="android.content.Context" />
</data> </data>
@@ -14,57 +11,44 @@
android:orientation="vertical" android:layout_width="match_parent" android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp" app:cardCornerRadius="16dp"
app:cardElevation="0dp"> app:cardElevation="0dp">
<LinearLayout
<androidx.appcompat.widget.LinearLayoutCompat
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:paddingHorizontal="16dp"
android:paddingVertical="16dp">
<RelativeLayout <androidx.appcompat.widget.AppCompatImageView
style="@style/MaterialAlertDialog.Material3.Title.Icon.CenterStacked"
android:layout_width="36dp"
android:layout_height="36dp"
android:src="@drawable/ic_error_white_24dp"
app:tint="?colorPrimary" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/light_blue_300" android:gravity="center_horizontal"
android:gravity="center_horizontal"> android:layout_marginBottom="16dp"
android:text="@string/placement" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp"
android:layout_margin="24dp"/>
</RelativeLayout>
<it.integry.integrywmsnative.ui.DeactivatableViewPager
<LinearLayout android:id="@+id/viewpager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:orientation="vertical"
android:paddingTop="24dp"
android:paddingLeft="24dp"
android:paddingRight="24dp">
<TextView </it.integry.integrywmsnative.ui.DeactivatableViewPager>
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.Dialog.HeadlineText"
android:text="@string/placement"
android:gravity="center_horizontal"/>
<it.integry.integrywmsnative.ui.DeactivatableViewPager </androidx.appcompat.widget.LinearLayoutCompat>
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</it.integry.integrywmsnative.ui.DeactivatableViewPager>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
</layout> </layout>

View File

@@ -1,17 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:layout_margin="16dp"> android:layout_margin="16dp"
android:weightSum="10">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="10">
<ProgressBar <ProgressBar
@@ -31,6 +27,5 @@
android:gravity="center_horizontal" android:gravity="center_horizontal"
style="@style/TextViewMaterial" style="@style/TextViewMaterial"
tools:text="Scansiona il codice a barre di uno Scaffale"/> tools:text="Scansiona il codice a barre di uno Scaffale"/>
</LinearLayout>
</LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat>

View File

@@ -40,7 +40,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline" style="@style/Button.PrimaryOutline"
app:icon="@drawable/ic_clear_24dp"
app:strokeColor="@color/colorPrimary" app:strokeColor="@color/colorPrimary"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:text="@string/abort"/> android:text="@string/abort"/>
@@ -51,7 +50,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Button.PrimaryFull" style="@style/Button.PrimaryFull"
app:icon="@drawable/ic_save_24dp"
android:text="@string/confirm"/> android:text="@string/confirm"/>
</LinearLayout> </LinearLayout>

View File

@@ -2,61 +2,44 @@
<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: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" android:layout_gravity="center_horizontal"
android:orientation="vertical"
app:cardCornerRadius="12dp" app:cardCornerRadius="12dp"
app:cardElevation="0dp"> 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">
<RelativeLayout <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/title_container" style="@style/MaterialAlertDialog.Material3.Title.Icon.CenterStacked"
android:layout_width="36dp"
android:layout_height="36dp"
android:src="@drawable/ic_error_white_24dp"
app:tint="?colorPrimary" />
<TextView
android:id="@+id/title_text"
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/light_blue_300" android:layout_marginBottom="16dp"
android:gravity="center_horizontal"> android:text="@string/dialog_choose_art_from_lista_art" />
<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>
<androidx.recyclerview.widget.RecyclerView
<LinearLayout android:id="@+id/dialog_choose_art_from_lista_art__main_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:orientation="vertical" tools:listitem="@layout/dialog_choose_art_from_lista_art__item_model"
android:padding="24dp"> tools:itemCount="5"/>
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.Dialog.HeadlineText"
android:text="@string/dialog_choose_art_from_lista_art"
android:gravity="center_horizontal"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/dialog_choose_art_from_lista_art__main_list"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout> </LinearLayout>

View File

@@ -1,74 +1,72 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto" <layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"> xmlns:tools="http://schemas.android.com/tools">
<data> <data>
<import type="android.view.View" /> <import type="android.view.View" />
<import type="it.integry.integrywmsnative.core.utility.UtilityString" /> <import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" /> <import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<variable <variable
name="mtbAart" name="mtbAart"
type="it.integry.integrywmsnative.core.model.MtbAart"/> type="it.integry.integrywmsnative.core.model.MtbAart" />
</data> </data>
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/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:paddingTop="8dp" android:paddingTop="8dp"
android:paddingBottom="8dp"> android:paddingBottom="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:background="?android:attr/selectableItemBackground">
<androidx.appcompat.widget.LinearLayoutCompat <RelativeLayout
android:id="@+id/linearLayout" android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{mtbAart.codMart}"
android:textColor="@color/colorPrimary"
android:textSize="14sp"
android:textStyle="bold"
tools:text="COD MART" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:text="@{mtbAart.diacod}"
android:textColor="@color/red_600"
android:textSize="14sp"
android:textStyle="bold"
android:visibility="@{UtilityString.isNullOrEmpty(mtbAart.diacod) ? View.GONE : View.VISIBLE}"
tools:text="DIACOD" />
</RelativeLayout>
<TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:ellipsize="end"
app:layout_constraintEnd_toEndOf="parent" android:text="@{mtbAart.descrizioneEstesa}"
app:layout_constraintStart_toStartOf="parent"> android:textColor="@android:color/black"
android:textSize="16sp"
tools:text="Descrizione lunga articolo" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{mtbAart.codMart}"
android:textColor="@color/colorPrimary"
android:textSize="14sp"
android:textStyle="bold"
tools:text="COD MART" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{mtbAart.diacod}"
android:textColor="@color/red_600"
android:textSize="14sp"
android:textStyle="bold"
android:visibility="@{UtilityString.isNullOrEmpty(mtbAart.diacod) ? View.GONE : View.VISIBLE}"
android:layout_alignParentEnd="true"
tools:text="DIACOD"/>
</RelativeLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:text="@{mtbAart.descrizioneEstesa}"
android:textColor="@android:color/black"
android:textSize="16sp"
tools:text="Descrizione lunga articolo" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</layout> </layout>

View File

@@ -306,6 +306,7 @@
android:backgroundTint="@color/light_blue_100" android:backgroundTint="@color/light_blue_100"
android:orientation="vertical" android:orientation="vertical"
android:paddingHorizontal="8dp" android:paddingHorizontal="8dp"
android:paddingVertical="4dp"
android:visibility="@{viewmodel.totalNumCnfInWarehouse != null || viewmodel.totalQtaInWarehouse != null ? View.VISIBLE : View.GONE}"> android:visibility="@{viewmodel.totalNumCnfInWarehouse != null || viewmodel.totalQtaInWarehouse != null ? View.VISIBLE : View.GONE}">
@@ -405,6 +406,7 @@
android:backgroundTint="@color/light_blue_100" android:backgroundTint="@color/light_blue_100"
android:orientation="vertical" android:orientation="vertical"
android:paddingHorizontal="8dp" android:paddingHorizontal="8dp"
android:paddingVertical="4dp"
android:visibility="@{viewmodel.totalNumCnfCommitted != null || viewmodel.totalQtaCommitted != null ? View.VISIBLE : View.GONE}"> android:visibility="@{viewmodel.totalNumCnfCommitted != null || viewmodel.totalQtaCommitted != null ? View.VISIBLE : View.GONE}">

View File

@@ -5,7 +5,7 @@
android:orientation="vertical" android:layout_width="match_parent" android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp" app:cardCornerRadius="16dp"
app:cardElevation="0dp"> app:cardElevation="0dp">

View File

@@ -31,12 +31,12 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<LinearLayout <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/full_white" android:background="@color/full_white"
@@ -48,12 +48,12 @@
android:padding="8dp" android:padding="8dp"
app:el_expanded_bind="@{view.thereIsAnOpenedUL}"> app:el_expanded_bind="@{view.thereIsAnOpenedUL}">
<LinearLayout <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/badge_round_corner" android:background="@drawable/badge_round_corner"
android:backgroundTint="@color/colorPrimary"> android:backgroundTint="@color/colorPrimary"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Medium" style="@style/AppTheme.NewMaterial.Text.Medium"
@@ -63,8 +63,8 @@
android:paddingTop="8dp" android:paddingTop="8dp"
android:paddingEnd="2dp" android:paddingEnd="2dp"
android:paddingBottom="8dp" android:paddingBottom="8dp"
android:textColor="@android:color/white" android:text="num:"
android:text="num:" /> android:textColor="@android:color/white" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.Medium" style="@style/AppTheme.NewMaterial.Text.Medium"
@@ -87,8 +87,8 @@
android:paddingTop="8dp" android:paddingTop="8dp"
android:paddingEnd="2dp" android:paddingEnd="2dp"
android:paddingBottom="8dp" android:paddingBottom="8dp"
android:textColor="@android:color/white"
android:text="pos:" android:text="pos:"
android:textColor="@android:color/white"
android:visibility="@{!UtilityString.isNullOrEmpty(viewmodel.currentMtbColt.posizione) ? View.VISIBLE : View.GONE}" /> android:visibility="@{!UtilityString.isNullOrEmpty(viewmodel.currentMtbColt.posizione) ? View.VISIBLE : View.GONE}" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@@ -102,11 +102,11 @@
tools:text="ME1FS032" /> tools:text="ME1FS032" />
</LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat>
</net.cachapa.expandablelayout.ExpandableLayout> </net.cachapa.expandablelayout.ExpandableLayout>
<LinearLayout <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/rettifica_giacenze_forn_layout" android:id="@+id/rettifica_giacenze_forn_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -114,40 +114,29 @@
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:layout_marginBottom="4dp" android:layout_marginBottom="4dp"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingStart="8dp" android:padding="8dp">
android:paddingTop="6dp"
android:paddingEnd="6dp"
android:paddingBottom="6dp">
<RadioButton <RadioButton
android:id="@+id/rettifica_giacenze_forn_check_box" android:id="@+id/rettifica_giacenze_forn_check_box"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="end|center_vertical"
android:onClick="@{() -> view.setUIToForn()}" /> android:onClick="@{() -> view.setUIToForn()}" />
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:orientation="horizontal"
<androidx.constraintlayout.widget.Guideline android:weightSum="10">
android:id="@+id/guide_line_fornitore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.40" />
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/auto_complete_fornitori_layout" android:id="@+id/auto_complete_fornitori_layout"
style="@style/TextInputLayout.NoLine" style="@style/TextInputLayout.NoLine"
android:layout_width="0dp" android:layout_width="wrap_content"
android:layout_height="0dp" android:layout_height="match_parent"
app:hintTextAppearance="@style/hint_text" android:layout_weight="3"
app:layout_constraintBottom_toBottomOf="parent" app:hintTextAppearance="@style/hint_text">
app:layout_constraintEnd_toStartOf="@id/guide_line_fornitore"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView <androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:id="@+id/auto_complete_fornitori" android:id="@+id/auto_complete_fornitori"
@@ -164,13 +153,11 @@
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
android:id="@+id/layout_cod_art_descr_forn" android:id="@+id/layout_cod_art_descr_forn"
style="@style/TextInputLayout.NoLine" style="@style/TextInputLayout.NoLine"
android:layout_width="0dp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
app:hintTextAppearance="@style/hint_text" android:layout_weight="7"
app:layout_constraintEnd_toEndOf="parent" app:hintTextAppearance="@style/hint_text">
app:layout_constraintStart_toEndOf="@id/guide_line_fornitore"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/input_cod_art_descr_forn" android:id="@+id/input_cod_art_descr_forn"
@@ -184,9 +171,8 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.appcompat.widget.LinearLayoutCompat>
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/rettifica_giacenze_art_int_layout" android:id="@+id/rettifica_giacenze_art_int_layout"
@@ -240,7 +226,7 @@
</LinearLayout> </LinearLayout>
</LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat>
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -307,7 +293,8 @@
android:clipToPadding="false" android:clipToPadding="false"
android:paddingTop="16dp" android:paddingTop="16dp"
android:paddingBottom="80dp" android:paddingBottom="80dp"
android:scrollbarStyle="outsideOverlay" /> android:scrollbarStyle="outsideOverlay"
tools:listitem="@layout/lista_rettifica_giacenze_model" />
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/rettifica_giacenze_main_fab" android:id="@+id/rettifica_giacenze_main_fab"
@@ -320,21 +307,21 @@
android:layout_margin="@dimen/fab_margin" android:layout_margin="@dimen/fab_margin"
android:onClick="@{() -> viewmodel.closeLU(true)}" android:onClick="@{() -> viewmodel.closeLU(true)}"
android:tint="@android:color/white" android:tint="@android:color/white"
app:visibility="@{view.thereIsAnOpenedUL}" app:srcCompat="@drawable/ic_check_black_24dp"
app:srcCompat="@drawable/ic_check_black_24dp" /> app:visibility="@{view.thereIsAnOpenedUL}" />
</RelativeLayout> </RelativeLayout>
</LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat>
<View <View
android:id="@+id/bottom_sheet__mtb_colr_edit__background" android:id="@+id/bottom_sheet__mtb_colr_edit__background"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#99000000" android:background="#99000000"
android:visibility="gone"
android:clickable="true" android:clickable="true"
android:focusable="true" /> android:focusable="true"
android:visibility="gone" />
<it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView <it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView
android:id="@+id/bottom_sheet__mtb_colr_edit" android:id="@+id/bottom_sheet__mtb_colr_edit"

View File

@@ -104,6 +104,9 @@
<item name="android:statusBarColor">@android:color/white</item> <item name="android:statusBarColor">@android:color/white</item>
<item name="windowNoTitle">true</item> <item name="windowNoTitle">true</item>
<item name="android:windowAnimationStyle">@style/Animation.AppCompat.Dialog</item> <item name="android:windowAnimationStyle">@style/Animation.AppCompat.Dialog</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowCloseOnTouchOutside">false</item>
</style> </style>