rimosse eccezioni generiche da documenti interni e ordini di acquisto PV

This commit is contained in:
Valerio Castellana 2022-12-14 11:14:18 +01:00
parent 4634f2ce9c
commit 356b146e3d
18 changed files with 115 additions and 24 deletions

View File

@ -0,0 +1,12 @@
package it.integry.integrywmsnative.core.exception;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityResources;
public class ArtNotFoundInGridException extends Exception {
public ArtNotFoundInGridException() {
super(UtilityResources.getString(R.string.lu_already_attache_to_doc));
}
}

View File

@ -0,0 +1,16 @@
package it.integry.integrywmsnative.core.exception;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityResources;
public class GridNotFoundException extends Exception {
public GridNotFoundException() {
super(UtilityResources.getString(R.string.grid_not_found));
}
public GridNotFoundException(String codAlis) {
super(UtilityResources.getString(R.string.grid_not_found) + " (" + codAlis + ")");
}
}

View File

@ -0,0 +1,11 @@
package it.integry.integrywmsnative.core.exception;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityResources;
public class InvalidLicenseException extends Exception {
public InvalidLicenseException() {
super(UtilityResources.getString(R.string.invalid_license));
}
}

View File

@ -0,0 +1,12 @@
package it.integry.integrywmsnative.core.exception;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityResources;
public class InvalidOrderedQtyException extends Exception {
public InvalidOrderedQtyException() {
super(UtilityResources.getString(R.string.invalid_quantity_ordered));
}
}

View File

@ -0,0 +1,12 @@
package it.integry.integrywmsnative.core.exception;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityResources;
public class NoArtsInGridException extends Exception {
public NoArtsInGridException() {
super(UtilityResources.getString(R.string.no_arts_in_grid));
}
}

View File

@ -0,0 +1,11 @@
package it.integry.integrywmsnative.core.exception;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityResources;
public final class NoDocTypeSelectedException extends Exception {
public NoDocTypeSelectedException() {
super(UtilityResources.getString(R.string.no_doc_type_selected));
}
}

View File

@ -1,8 +0,0 @@
package it.integry.integrywmsnative.core.exception;
public class NotValidLicenseException extends Exception {
public NotValidLicenseException() {
super("Licenza non valida");
}
}

View File

@ -0,0 +1,9 @@
package it.integry.integrywmsnative.core.exception;
public class RestException extends Exception {
public RestException(String message) {
super(message);
}
}

View File

@ -5,7 +5,7 @@ import android.util.Log;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.core.exception.NotValidLicenseException; import it.integry.integrywmsnative.core.exception.InvalidLicenseException;
import it.integry.integrywmsnative.core.rest.CommonRESTException; import it.integry.integrywmsnative.core.rest.CommonRESTException;
import it.integry.integrywmsnative.core.rest.model.EsitoType; import it.integry.integrywmsnative.core.rest.model.EsitoType;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
@ -42,7 +42,7 @@ public abstract class _BaseRESTConsumer {
Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata (" + response.raw().request().url().toString() + ")"); Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata (" + response.raw().request().url().toString() + ")");
onFailed.run(new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")")); onFailed.run(new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")"));
} else if (response.code() == 550) } else if (response.code() == 550)
onFailed.run(new NotValidLicenseException()); onFailed.run(new InvalidLicenseException());
else { else {
Log.e(logTitle, "Status " + response.code() + ": " + response.message()); Log.e(logTitle, "Status " + response.code() + ": " + response.message());
onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
@ -77,7 +77,7 @@ public abstract class _BaseRESTConsumer {
Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata"); Log.e(logTitle, "Errore " + response.code() + ": risorsa non trovata");
onFailed.run(new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")")); onFailed.run(new Exception("Errore " + response.code() + ": risorsa non trovata (" + logTitle + ")"));
} else if (response.code() == 550) } else if (response.code() == 550)
onFailed.run(new NotValidLicenseException()); onFailed.run(new InvalidLicenseException());
else { else {
Log.e(logTitle, "Status " + response.code() + ": " + response.message()); Log.e(logTitle, "Status " + response.code() + ": " + response.message());
onFailed.run(new Exception("Status " + response.code() + ": " + response.message())); onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
@ -116,7 +116,7 @@ public abstract class _BaseRESTConsumer {
Log.e(logTitle, "Errore " + responseList.code() + ": risorsa non trovata"); Log.e(logTitle, "Errore " + responseList.code() + ": risorsa non trovata");
onFailed.run(new Exception("Errore " + responseList.code() + ": risorsa non trovata (" + logTitle + ")")); onFailed.run(new Exception("Errore " + responseList.code() + ": risorsa non trovata (" + logTitle + ")"));
} else if (responseList.code() == 550) } else if (responseList.code() == 550)
onFailed.run(new NotValidLicenseException()); onFailed.run(new InvalidLicenseException());
else { else {
Log.e(logTitle, "Status " + responseList.code() + ": " + responseList.message()); Log.e(logTitle, "Status " + responseList.code() + ": " + responseList.message());
onFailed.run(new Exception("Status " + responseList.code() + ": " + responseList.message())); onFailed.run(new Exception("Status " + responseList.code() + ": " + responseList.message()));

View File

@ -5,7 +5,7 @@ import java.net.InetSocketAddress;
import java.net.Socket; import java.net.Socket;
import java.net.SocketAddress; import java.net.SocketAddress;
import it.integry.integrywmsnative.core.exception.NotValidLicenseException; import it.integry.integrywmsnative.core.exception.InvalidLicenseException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.gest.login.exception.ServerNotReachableException; import it.integry.integrywmsnative.gest.login.exception.ServerNotReachableException;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
@ -54,7 +54,7 @@ public class UtilityServer {
else if (response.code() == 404) else if (response.code() == 404)
onFailed.run(new ServerNotReachableException(serverAddress, serverTCPport, null)); onFailed.run(new ServerNotReachableException(serverAddress, serverTCPport, null));
else if (response.code() == 550) else if (response.code() == 550)
onFailed.run(new NotValidLicenseException()); onFailed.run(new InvalidLicenseException());
else onFailed.run(new Exception("Errore non identificato (STATUS: " + response.code() + ")")); else onFailed.run(new Exception("Errore non identificato (STATUS: " + response.code() + ")"));
} catch (IOException e) { } catch (IOException e) {
onFailed.run(new ServerNotReachableException(serverAddress, serverTCPport, e)); onFailed.run(new ServerNotReachableException(serverAddress, serverTCPport, e));

View File

@ -12,6 +12,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository; import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper; import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper;
import it.integry.integrywmsnative.core.di.BindableInteger; import it.integry.integrywmsnative.core.di.BindableInteger;
import it.integry.integrywmsnative.core.exception.NoDocTypeSelectedException;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoViewModel; import it.integry.integrywmsnative.gest.contab_doc_interni.dialog.DialogSelectDocInfoViewModel;
@ -160,7 +161,7 @@ public class DocInterniViewModel {
public void newDocument() { public void newDocument() {
SqlMtbColt document = new SqlMtbColt(); SqlMtbColt document = new SqlMtbColt();
if (this.dtbTipi.getValue() == null) { if (this.dtbTipi.getValue() == null) {
this.sendError(new Exception("Nessun tipo documento selezionato!")); this.sendError(new NoDocTypeSelectedException());
return; return;
} }
document.setCodDtipProvv(this.getCodDtip()); document.setCodDtipProvv(this.getCodDtip());

View File

@ -19,6 +19,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSource; import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSource;
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository; import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
@ -129,12 +130,12 @@ public class DocInterniEditFormViewModel {
public void onSearch(String search) { public void onSearch(String search) {
GrigliaAcquistiChildDTO articolo = this.searchArticolo(search); GrigliaAcquistiChildDTO articolo = this.searchArticolo(search);
if (articolo == null) { if (articolo == null) {
this.sendError(new Exception("Nessun articolo corrispondente al codice fornito!")); this.sendError(new NoResultFromBarcodeException());
return; return;
} }
List<SqlMtbColr> rows = this.getRowsForArticolo(articolo); List<SqlMtbColr> rows = this.getRowsForArticolo(articolo);
if (rows.isEmpty()) { if (rows.isEmpty()) {
this.sendError(new Exception("Nessun articolo corrispondente al codice fornito!")); this.sendError(new NoResultFromBarcodeException());
} }
if (rows.size() > 1) { if (rows.size() > 1) {
this.listener.onMultipleRowsFound(rows, articolo); this.listener.onMultipleRowsFound(rows, articolo);

View File

@ -4,6 +4,7 @@ import com.google.gson.JsonObject;
import javax.inject.Singleton; import javax.inject.Singleton;
import it.integry.integrywmsnative.core.exception.RestException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
@ -35,7 +36,7 @@ public class DocInterniRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<DocInterniSetupDTO>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<DocInterniSetupDTO>> call, Throwable t) {
onFailed.run(new Exception(t)); onFailed.run(new RestException(t.getMessage()));
} }
}); });
} }
@ -50,7 +51,7 @@ public class DocInterniRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<GrigliaArticoliDTO>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<GrigliaArticoliDTO>> call, Throwable t) {
onFailed.run(new Exception(t)); onFailed.run(new RestException(t.getMessage()));
} }
}); });
} }

View File

@ -21,6 +21,8 @@ import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGriglia
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository; import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository; import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO; import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
import it.integry.integrywmsnative.core.exception.NoArtsInGridException;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
@ -131,7 +133,7 @@ public class PVOrdineAcquistoEditViewModel {
public void checkArticolo(String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) { public void checkArticolo(String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
try { try {
if (mArticoliGriglia == null || mArticoliGriglia.isEmpty()) { if (mArticoliGriglia == null || mArticoliGriglia.isEmpty()) {
onFail.run(new Exception("Nessun articolo è presente nella griglia")); onFail.run(new NoArtsInGridException());
return; return;
} }
ArticoloDTO art = Stream.of(mArticoliGriglia).filter(articolo -> ArticoloDTO art = Stream.of(mArticoliGriglia).filter(articolo ->
@ -141,7 +143,7 @@ public class PVOrdineAcquistoEditViewModel {
).sortBy(x -> x.getSortByBarcodeCondition(barcode)).findFirst().orElse(null); ).sortBy(x -> x.getSortByBarcodeCondition(barcode)).findFirst().orElse(null);
if (art == null) { if (art == null) {
onFail.run(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia")); onFail.run(new NoResultFromBarcodeException(barcode));
return; return;
} }

View File

@ -7,6 +7,7 @@ import javax.inject.Inject;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine; import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
import it.integry.integrywmsnative.core.exception.InvalidOrderedQtyException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
@ -105,7 +106,7 @@ public class DialogEditArticoloViewModel {
public void save(RunnableArgs<ArticoloOrdine> onComplete) { public void save(RunnableArgs<ArticoloOrdine> onComplete) {
if (UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO)) { if (UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO)) {
this.mListener.onError(new Exception("La quantità ordinata deve essere maggiore di 0")); this.mListener.onError(new InvalidOrderedQtyException());
return; return;
} }

View File

@ -22,6 +22,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO; import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
import it.integry.integrywmsnative.core.exception.GridNotFoundException;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.expansion.RunnableArgss;
@ -106,7 +107,7 @@ public class DialogScanGrigliaAcquistoView extends BaseDialogFragment {
pvOrdiniAcquistoRESTConsumer.getArticoliListino(codAlis, dto -> { pvOrdiniAcquistoRESTConsumer.getArticoliListino(codAlis, dto -> {
this.onLoadingEnded(); this.onLoadingEnded();
if (dto.getGrigliaAcquistiChild().size() <= 0) { if (dto.getGrigliaAcquistiChild().size() <= 0) {
onFailed.run(new Exception("La griglia selezionata (" + codAlis + ") non esiste o non presenta articoli")); onFailed.run(new GridNotFoundException(codAlis));
return; return;
} }

View File

@ -213,6 +213,7 @@
<string name="already_used_anonymous_barcode"><![CDATA[L\'etichetta scansionata è stata già utilizzata]]></string> <string name="already_used_anonymous_barcode"><![CDATA[L\'etichetta scansionata è stata già utilizzata]]></string>
<string name="no_result_from_barcode">Il barcode scansionato non ha fornito alcun risultato</string> <string name="no_result_from_barcode">Il barcode scansionato non ha fornito alcun risultato</string>
<string name="multiple_results_from_barcode">Il barcode scansionato ha fornito multipli risultati</string> <string name="multiple_results_from_barcode">Il barcode scansionato ha fornito multipli risultati</string>
<string name="no_doc_type_selected">Nessun tipo documento selezionato</string>
<string name="filtered_arts_in_list">Filtro articoli applicato</string> <string name="filtered_arts_in_list">Filtro articoli applicato</string>
<string name="remove_filter_button">Rimuovi filtro</string> <string name="remove_filter_button">Rimuovi filtro</string>
@ -431,4 +432,8 @@
<string name="activity_picking_inventario_title">Inventario</string> <string name="activity_picking_inventario_title">Inventario</string>
<string name="not_synchronized">Non sincronizzato</string> <string name="not_synchronized">Non sincronizzato</string>
<string name="new_item">Nuovo</string> <string name="new_item">Nuovo</string>
<string name="invalid_license">Licenza non valida</string>
<string name="no_arts_in_grid">Nessun articolo presente in griglia</string>
<string name="invalid_quantity_ordered">La quantità ordinata non è valida</string>
<string name="grid_not_found">La griglia selezionata non esiste o non presenta articoli</string>
</resources> </resources>

View File

@ -212,6 +212,7 @@
<string name="no_available_order_on_line">no compatible orders found</string> <string name="no_available_order_on_line">no compatible orders found</string>
<string name="no_item_text">No items</string> <string name="no_item_text">No items</string>
<string name="no_item_in_recupera_materiale">No LU poured into production</string> <string name="no_item_in_recupera_materiale">No LU poured into production</string>
<string name="no_doc_type_selected">No document type selected</string>
<string name="already_used_anonymous_barcode">The scanned label has already been used</string> <string name="already_used_anonymous_barcode">The scanned label has already been used</string>
<string name="no_result_from_barcode">The scanned barcode did not produce any results</string> <string name="no_result_from_barcode">The scanned barcode did not produce any results</string>
@ -435,8 +436,11 @@
<string name="empty_lu">Empty LU</string> <string name="empty_lu">Empty LU</string>
<string name="ord_ven_qta_omaggio"><![CDATA[Free qty: <b>%s %s</b>]]></string> <string name="ord_ven_qta_omaggio"><![CDATA[Free qty: <b>%s %s</b>]]></string>
<!-- TODO: Remove or change this placeholder text --> <!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<string name="activity_picking_inventario_title">Inventory</string> <string name="activity_picking_inventario_title">Inventory</string>
<string name="not_synchronized">Not synchronized</string> <string name="not_synchronized">Not synchronized</string>
<string name="new_item">New</string> <string name="new_item">New</string>
<string name="invalid_license">Invalid license</string>
<string name="no_arts_in_grid">No product found in grid</string>
<string name="invalid_quantity_ordered">Invalid quantity ordered</string>
<string name="grid_not_found">The selected grid was not found or is empty</string>
</resources> </resources>