Finish v1_0_41(44)

This commit is contained in:
Giuseppe Scorrano 2019-04-02 13:23:30 +02:00
commit 3cc6ef6e80
29 changed files with 667 additions and 76 deletions

Binary file not shown.

View File

@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
android { android {
def appVersionCode = 43 def appVersionCode = 44
def appVersionName = '1.0.40' def appVersionName = '1.0.41'
signingConfigs { signingConfigs {
release { release {

View File

@ -37,6 +37,7 @@ import it.integry.integrywmsnative.gest.main.MainFragment;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment; import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment; import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment; import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment; import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment; import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
@ -144,6 +145,9 @@ public class MainActivity extends AppCompatActivity
} else if (id == R.id.nav_free_picking) { } else if (id == R.id.nav_free_picking) {
fragment = PickingLiberoFragment.newInstance(); fragment = PickingLiberoFragment.newInstance();
this.adaptViewToFragment(fragment); this.adaptViewToFragment(fragment);
} else if (id == R.id.nav_resi_cliente) {
fragment = UltimeConsegneClienteFragment.newInstance();
this.adaptViewToFragment(fragment);
} }
else if(id == R.id.nav_settings){ else if(id == R.id.nav_settings){

View File

@ -4,11 +4,13 @@ import android.util.Log;
import java.net.SocketException; import java.net.SocketException;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import java.util.HashMap;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.model.EsitoType; import it.integry.integrywmsnative.core.REST.model.EsitoType;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.exception.printer.PrinterNotFoundException;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import retrofit2.Response; import retrofit2.Response;
@ -18,6 +20,18 @@ import retrofit2.Response;
public class CommonRESTException { public class CommonRESTException {
private static String MESSAGE_KEY = "message";
private static String EXCEPTION_KEY = "exception";
private static HashMap<String, HashMap<String, Object>> bindingExceptions = new HashMap() {{
put("Printer not found", new HashMap<String, Object>(){{
put(MESSAGE_KEY, "Stampante non trovata");
put(EXCEPTION_KEY, PrinterNotFoundException.class);
}});
}};
public static String tryRecognizeThenGetMessage(Exception ex){ public static String tryRecognizeThenGetMessage(Exception ex){
@ -25,12 +39,30 @@ public class CommonRESTException {
return "Errore di comunicazione con il server remoto. Riprova."; return "Errore di comunicazione con il server remoto. Riprova.";
} else if(ex instanceof SocketTimeoutException){ } else if(ex instanceof SocketTimeoutException){
return "Errore di timeout durante la comunicazione con il server remoto. Riprova."; return "Errore di timeout durante la comunicazione con il server remoto. Riprova.";
} else if(ex.getMessage().startsWith("Printer not found")){
return "Stampante non trovata";
} else { } else {
return ex.getMessage(); return ex.getMessage();
} }
} }
public static Exception tryRecognizeException(String message) {
for(String key : bindingExceptions.keySet()) {
if(message.contains(key)) {
Class classType = (Class) bindingExceptions.get(key).get(EXCEPTION_KEY);
try {
return (Exception) classType.newInstance();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
}
return new Exception(message);
}
} }

View File

@ -6,6 +6,7 @@ import java.util.List;
import it.integry.integrywmsnative.core.REST.RESTBuilder; import it.integry.integrywmsnative.core.REST.RESTBuilder;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.exception.printer.PrinterNotFoundException;
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;
import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityLogger;
@ -117,7 +118,9 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) { public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
onFailed.run(new Exception(t)); if(t.getMessage().contains("Printer not found")) {
onFailed.run(new PrinterNotFoundException());
} else onFailed.run(new Exception(t));
} }
}); });

View File

@ -4,6 +4,7 @@ import android.util.Log;
import java.util.List; import java.util.List;
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;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@ -29,7 +30,8 @@ public class _BaseRESTConsumer {
} }
} else { } else {
Log.e(logTitle, response.body().getErrorMessage()); Log.e(logTitle, response.body().getErrorMessage());
callback.onFailed(new Exception(response.body().getErrorMessage())); // callback.onFailed(new Exception(response.body().getErrorMessage()));
callback.onFailed(CommonRESTException.tryRecognizeException(response.body().getErrorMessage()));
} }
} else { } else {
Log.e(logTitle, response.message()); Log.e(logTitle, response.message());

View File

@ -0,0 +1,12 @@
package it.integry.integrywmsnative.core.exception.printer;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
public class PrinterNotFoundException extends Exception{
public PrinterNotFoundException() {
super(MainApplication.res.getString(R.string.exception_printer_not_found));
}
}

View File

@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.model.secondary;
public enum GestioneEnum { public enum GestioneEnum {
ACQUISTO("A"), ACQUISTO("A"),
PRODUZIONE("P"),
LAVORAZIONE("L"), LAVORAZIONE("L"),
VENDITA("V"); VENDITA("V");

View File

@ -152,9 +152,9 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
private void groupOrdiniAndMakeRecycler(List<OrdineAccettazioneInevasoDTO> ordini){ private void groupOrdiniAndMakeRecycler(List<OrdineAccettazioneInevasoDTO> ordini){
for(OrdineAccettazioneInevasoDTO ordine : ordini){ for(OrdineAccettazioneInevasoDTO ordine : ordini){
if(UtilityString.isNullOrEmpty(ordine.codJcom) || ordine.codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){ if(UtilityString.isNullOrEmpty(ordine.getCodJcom()) || ordine.getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){
ordine.codJcom = CommonConst.Config.COMMESSA_MAG; ordine.setCodJcom(CommonConst.Config.COMMESSA_MAG);
ordine.descrizioneCom = "MAGAZZINO"; ordine.setDescrizioneCom("MAGAZZINO");
} }
} }
@ -165,8 +165,8 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
.map(x -> { .map(x -> {
OrdineAccettazioneGroupedInevasoDTO groupedOrdine = new OrdineAccettazioneGroupedInevasoDTO(); OrdineAccettazioneGroupedInevasoDTO groupedOrdine = new OrdineAccettazioneGroupedInevasoDTO();
groupedOrdine.codAnagForn = x.codAnagOrd; groupedOrdine.codAnagForn = x.getCodAnagOrd();
groupedOrdine.nomeFornitore = x.ragSocOrd; groupedOrdine.nomeFornitore = x.getRagSocOrd();
groupedOrdine.ordini = new ArrayList<>(); groupedOrdine.ordini = new ArrayList<>();
return groupedOrdine; return groupedOrdine;
@ -181,20 +181,21 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
//Splitto gli ordini di ogni fornitore per data e numero //Splitto gli ordini di ogni fornitore per data e numero
List<OrdineAccettazioneGroupedInevasoDTO.Ordine> tmpOrd = Stream.of(ordini) List<OrdineAccettazioneGroupedInevasoDTO.Ordine> tmpOrd = Stream.of(ordini)
.filter(x -> x.codAnagOrd.equals(groupedOrdine.codAnagForn)) .filter(x -> x.getCodAnagOrd().equals(groupedOrdine.codAnagForn))
.map(x -> { .map(x -> {
OrdineAccettazioneGroupedInevasoDTO.Ordine rigaOrdine = new OrdineAccettazioneGroupedInevasoDTO.Ordine(); OrdineAccettazioneGroupedInevasoDTO.Ordine rigaOrdine = new OrdineAccettazioneGroupedInevasoDTO.Ordine();
rigaOrdine.data = x.data; rigaOrdine.data = x.getData();
rigaOrdine.numero = x.numero; rigaOrdine.numero = x.getNumero();
rigaOrdine.codAnagOrd = x.codAnagOrd; rigaOrdine.gestione = x.getGestione();
rigaOrdine.ragSocOrd = x.ragSocOrd; rigaOrdine.codAnagOrd = x.getCodAnagOrd();
rigaOrdine.pesoTotale = x.pesoTotale; rigaOrdine.ragSocOrd = x.getRagSocOrd();
rigaOrdine.barcode = x.barcode; rigaOrdine.pesoTotale = x.getPesoTotale();
rigaOrdine.termCons = x.termCons; rigaOrdine.barcode = x.getBarcode();
rigaOrdine.dataCons = x.dataCons; rigaOrdine.termCons = x.getTermCons();
rigaOrdine.rifOrd = x.rifOrd; rigaOrdine.dataCons = x.getDataCons();
rigaOrdine.rifOrd = x.getRifOrd();
rigaOrdine.clienti = new ArrayList<>(); rigaOrdine.clienti = new ArrayList<>();
return rigaOrdine; return rigaOrdine;
@ -208,18 +209,18 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
Stream.of(ordini) Stream.of(ordini)
.filter(x -> .filter(x ->
x.codAnagOrd.equals(rigaOrdine.codAnagOrd) && x.getCodAnagOrd().equals(rigaOrdine.codAnagOrd) &&
x.numero == rigaOrdine.numero && x.getNumero() == rigaOrdine.numero &&
x.data.equals(rigaOrdine.data)) x.getData().equals(rigaOrdine.data))
.forEach(x -> { .forEach(x -> {
OrdineAccettazioneGroupedInevasoDTO.Cliente cliente = new OrdineAccettazioneGroupedInevasoDTO.Cliente(); OrdineAccettazioneGroupedInevasoDTO.Cliente cliente = new OrdineAccettazioneGroupedInevasoDTO.Cliente();
cliente.codJcom = x.codJcom; cliente.codJcom = x.getCodJcom();
cliente.ragSocCom = x.ragSocCom; cliente.ragSocCom = x.getRagSocCom();
cliente.descrCom = x.descrizioneCom; cliente.descrCom = x.getDescrizioneCom();
cliente.dataCons = x.dataCons; cliente.dataCons = x.getDataCons();
cliente.numCnf = x.numCnf; cliente.numCnf = x.getNumCnf();
cliente.rifOrd = x.rifOrd; cliente.rifOrd = x.getRifOrd();
rigaOrdine.clienti.add(cliente); rigaOrdine.clienti.add(cliente);
}); });

View File

@ -26,28 +26,28 @@ public class OrdineAccettazioneDTO implements Parcelable {
public String gestione; public String gestione;
public String codMdep; public String codMdep;
public String codAnag; public String codAnag;
public String codVdes; private String codVdes;
public String termCons; private String termCons;
public ArrayList<Riga> ordini; public ArrayList<Riga> ordini;
public String codAlis; public String codAlis;
public String rifOrd; public String rifOrd;
public static class Riga implements Parcelable { public static class Riga implements Parcelable {
public Float qtaOrd; //QTA ORDINATA (tutta la qta ordiata) private Float qtaOrd; //QTA ORDINATA (tutta la qta ordiata)
public Float qtaRiservate; //QTA COLLI (tutta la qta già accantonata nei colli public Float qtaRiservate; //QTA COLLI (tutta la qta già accantonata nei colli
public Float qtaEvasa; //QTA EVASA ORDINE (qta con documento) private Float qtaEvasa; //QTA EVASA ORDINE (qta con documento)
//public Float qtaDaEvadere; //qta_ord - qta_evasa - qta_colli //public Float qtaDaEvadere; //qta_ord - qta_evasa - qta_colli
public int rigaOrd; public int rigaOrd;
public String codJcom; public String codJcom;
public String ragSocCom; public String ragSocCom;
public String descrizioneCommessa; public String descrizioneCommessa;
public MtbAart mtbAart; public MtbAart mtbAart;
public PickingObjectDTO[] colliAssociati; private PickingObjectDTO[] colliAssociati;
public Boolean hidden = null; private Boolean hidden = null;
public Boolean tempHidden = null; private Boolean tempHidden = null;
public String partitaMag; private String partitaMag;
public String codArtFor; private String codArtFor;
public String descrizioneEstesa; public String descrizioneEstesa;
public String codAlis; public String codAlis;

View File

@ -36,6 +36,7 @@ public class OrdineAccettazioneGroupedInevasoDTO implements Cloneable, Serializa
public String termCons; public String termCons;
public String dataCons; public String dataCons;
public String rifOrd; public String rifOrd;
public String gestione;
public boolean checkBox; public boolean checkBox;
public List<ICheckBoxCallback> checkBoxCallback = new ArrayList<>(); public List<ICheckBoxCallback> checkBoxCallback = new ArrayList<>();

View File

@ -6,23 +6,195 @@ package it.integry.integrywmsnative.gest.accettazione.dto;
public class OrdineAccettazioneInevasoDTO { public class OrdineAccettazioneInevasoDTO {
public String data; private String data;
public int numero; private int numero;
public String termCons; private String termCons;
public String codAuto; private String codAuto;
public String descrizioneAuto; private String descrizioneAuto;
public String rifOrd; private String rifOrd;
public String codVvet; private String codVvet;
public String descrizioneVettore; private String descrizioneVettore;
public String dataInizTrasp; private String dataInizTrasp;
public String codJcom = ""; private String codJcom = "";
public String descrizioneCom = ""; private String descrizioneCom = "";
public String codAnagOrd = ""; private String codAnagOrd = "";
public String ragSocOrd = ""; private String ragSocOrd = "";
public String ragSocCom = ""; private String ragSocCom = "";
public Float pesoTotale; private Float pesoTotale;
public Integer numCnf; private Integer numCnf;
public String dataCons; private String dataCons;
public String barcode; private String barcode;
private String gestione;
public String getData() {
return data;
}
public OrdineAccettazioneInevasoDTO setData(String data) {
this.data = data;
return this;
}
public int getNumero() {
return numero;
}
public OrdineAccettazioneInevasoDTO setNumero(int numero) {
this.numero = numero;
return this;
}
public String getTermCons() {
return termCons;
}
public OrdineAccettazioneInevasoDTO setTermCons(String termCons) {
this.termCons = termCons;
return this;
}
public String getCodAuto() {
return codAuto;
}
public OrdineAccettazioneInevasoDTO setCodAuto(String codAuto) {
this.codAuto = codAuto;
return this;
}
public String getDescrizioneAuto() {
return descrizioneAuto;
}
public OrdineAccettazioneInevasoDTO setDescrizioneAuto(String descrizioneAuto) {
this.descrizioneAuto = descrizioneAuto;
return this;
}
public String getRifOrd() {
return rifOrd;
}
public OrdineAccettazioneInevasoDTO setRifOrd(String rifOrd) {
this.rifOrd = rifOrd;
return this;
}
public String getCodVvet() {
return codVvet;
}
public OrdineAccettazioneInevasoDTO setCodVvet(String codVvet) {
this.codVvet = codVvet;
return this;
}
public String getDescrizioneVettore() {
return descrizioneVettore;
}
public OrdineAccettazioneInevasoDTO setDescrizioneVettore(String descrizioneVettore) {
this.descrizioneVettore = descrizioneVettore;
return this;
}
public String getDataInizTrasp() {
return dataInizTrasp;
}
public OrdineAccettazioneInevasoDTO setDataInizTrasp(String dataInizTrasp) {
this.dataInizTrasp = dataInizTrasp;
return this;
}
public String getCodJcom() {
return codJcom;
}
public OrdineAccettazioneInevasoDTO setCodJcom(String codJcom) {
this.codJcom = codJcom;
return this;
}
public String getDescrizioneCom() {
return descrizioneCom;
}
public OrdineAccettazioneInevasoDTO setDescrizioneCom(String descrizioneCom) {
this.descrizioneCom = descrizioneCom;
return this;
}
public String getCodAnagOrd() {
return codAnagOrd;
}
public OrdineAccettazioneInevasoDTO setCodAnagOrd(String codAnagOrd) {
this.codAnagOrd = codAnagOrd;
return this;
}
public String getRagSocOrd() {
return ragSocOrd;
}
public OrdineAccettazioneInevasoDTO setRagSocOrd(String ragSocOrd) {
this.ragSocOrd = ragSocOrd;
return this;
}
public String getRagSocCom() {
return ragSocCom;
}
public OrdineAccettazioneInevasoDTO setRagSocCom(String ragSocCom) {
this.ragSocCom = ragSocCom;
return this;
}
public Float getPesoTotale() {
return pesoTotale;
}
public OrdineAccettazioneInevasoDTO setPesoTotale(Float pesoTotale) {
this.pesoTotale = pesoTotale;
return this;
}
public Integer getNumCnf() {
return numCnf;
}
public OrdineAccettazioneInevasoDTO setNumCnf(Integer numCnf) {
this.numCnf = numCnf;
return this;
}
public String getDataCons() {
return dataCons;
}
public OrdineAccettazioneInevasoDTO setDataCons(String dataCons) {
this.dataCons = dataCons;
return this;
}
public String getBarcode() {
return barcode;
}
public OrdineAccettazioneInevasoDTO setBarcode(String barcode) {
this.barcode = barcode;
return this;
}
public String getGestione() {
return gestione;
}
public OrdineAccettazioneInevasoDTO setGestione(String gestione) {
this.gestione = gestione;
return this;
}
} }

View File

@ -15,6 +15,7 @@ import java.util.List;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoListViewModel; import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoListViewModel;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy; import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.dto.AccettazioneOrdineInevasoOrderBy;
@ -62,8 +63,8 @@ public class AccettazioneOrdineInevasoHelper {
List<String> codArtForns = new ArrayList<>(); List<String> codArtForns = new ArrayList<>();
for(int i = 0; i < mDataset.size(); i++){ for(int i = 0; i < mDataset.size(); i++){
if(!codArtForns.contains(mDataset.get(i).codArtFor)){ if(!codArtForns.contains(mDataset.get(i).getCodArtFor())){
codArtForns.add(mDataset.get(i).codArtFor); codArtForns.add(mDataset.get(i).getCodArtFor());
} }
if(mDataset.get(i).codJcom == null) mDataset.get(i).codJcom = CommonConst.Config.COMMESSA_MAG; if(mDataset.get(i).codJcom == null) mDataset.get(i).codJcom = CommonConst.Config.COMMESSA_MAG;
@ -82,7 +83,7 @@ public class AccettazioneOrdineInevasoHelper {
List<List<OrdineAccettazioneDTO.Riga>> groupedRighe = new ArrayList<>(); List<List<OrdineAccettazioneDTO.Riga>> groupedRighe = new ArrayList<>();
for (String codArtForn : codArtForns) { for (String codArtForn : codArtForns) {
List<OrdineAccettazioneDTO.Riga> tmpList = Stream.of(mDataset).filter(x -> x.getCodArtFor() != null && x.getCodArtFor().equalsIgnoreCase(codArtForn)).toList(); List<OrdineAccettazioneDTO.Riga> tmpList = Stream.of(mDataset).filter(x -> (x.getCodArtFor() != null && x.getCodArtFor().equalsIgnoreCase(codArtForn)) || (x.getCodArtFor() == null && codArtForn == null)).toList();
for(int i = 0; i < tmpList.size(); i++){ for(int i = 0; i < tmpList.size(); i++){
if(tmpList.get(i).isHidden() == null || forceHiddenCheck) { if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
@ -221,7 +222,9 @@ public class AccettazioneOrdineInevasoHelper {
for(int i = 0; i < groupedRighe.size(); i++){ for(int i = 0; i < groupedRighe.size(); i++){
AccettazioneOrdineInevasoListViewModel itemModel = new AccettazioneOrdineInevasoListViewModel(); AccettazioneOrdineInevasoListViewModel itemModel = new AccettazioneOrdineInevasoListViewModel();
itemModel.descrizioneGroup = groupedRighe.get(i).get(0).codArtFor + " - " + groupedRighe.get(i).get(0).descrizioneEstesa; itemModel.descrizioneGroup = "";
itemModel.descrizioneGroup += !UtilityString.isNullOrEmpty(groupedRighe.get(i).get(0).getCodArtFor()) ? (groupedRighe.get(i).get(0).getCodArtFor() + " - ") : "";
itemModel.descrizioneGroup += groupedRighe.get(i).get(0).descrizioneEstesa;
itemModel.rows = new ArrayList<>(); itemModel.rows = new ArrayList<>();
@ -271,7 +274,7 @@ public class AccettazioneOrdineInevasoHelper {
final OrdineAccettazioneDTO.Riga rowItem = groupedRighe.get(i).get(k); final OrdineAccettazioneDTO.Riga rowItem = groupedRighe.get(i).get(k);
final AccettazioneOrdineInevasoListViewModel.SubItem rowModel = new AccettazioneOrdineInevasoListViewModel.SubItem(); final AccettazioneOrdineInevasoListViewModel.SubItem rowModel = new AccettazioneOrdineInevasoListViewModel.SubItem();
rowModel.setBadge1(rowItem.codArtFor); rowModel.setBadge1(rowItem.getCodArtFor());
rowModel.setBadge2(String.valueOf(rowItem.numOrd)); rowModel.setBadge2(String.valueOf(rowItem.numOrd));
rowModel.setDescrizione(rowItem.mtbAart.getDescrizioneEstesa()); rowModel.setDescrizione(rowItem.mtbAart.getDescrizioneEstesa());

View File

@ -173,9 +173,11 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter<Main
final TextView badge1 = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_badge1); final TextView badge1 = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_badge1);
badge1.setText(rowItem.getBadge1()); badge1.setText(rowItem.getBadge1());
badge1.setVisibility(UtilityString.isNullOrEmpty(rowItem.getBadge1()) ? View.GONE : View.VISIBLE);
final TextView badge2 = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_badge2); final TextView badge2 = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_badge2);
badge2.setText(rowItem.getBadge2()); badge2.setText(rowItem.getBadge2());
badge2.setVisibility(UtilityString.isNullOrEmpty(rowItem.getBadge2()) ? View.GONE : View.VISIBLE);
final TextView descrizione = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_descrizione); final TextView descrizione = groupModelView.findViewById(R.id.accettazione_ordine_inevaso_main_list_group_item_descrizione);

View File

@ -112,8 +112,21 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
.distinctBy(x -> x) .distinctBy(x -> x)
.toList(); .toList();
if(foundGestioni != null && foundGestioni.size() == 1){ if(foundGestioni != null) {
defaultGestioneOfUL = foundGestioni.get(0);
if(foundGestioni.size() == 1) {
defaultGestioneOfUL = foundGestioni.get(0) == GestioneEnum.PRODUZIONE ? GestioneEnum.LAVORAZIONE : foundGestioni.get(0);
} else {
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(mActivity.getString(R.string.error_multiple_gest)), null, () -> {
mActivity.finish();
}).show();
return;
}
} else {
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(mActivity.getString(R.string.error_no_gest_found)), null, () -> {
mActivity.finish();
}).show();
return;
} }
} }

View File

@ -217,6 +217,11 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
((MainActivity) getActivity()).setItem(R.id.nav_free_picking); ((MainActivity) getActivity()).setItem(R.id.nav_free_picking);
} }
@OnClick(R.id.fast_button_resi_clienti)
public void onClickResiClientio(View view) {
((MainActivity) getActivity()).setItem(R.id.nav_resi_cliente);
}
@Override @Override
public void setScrollToolbar(ElevatedToolbar toolbar) { public void setScrollToolbar(ElevatedToolbar toolbar) {
mToolbar = toolbar; mToolbar = toolbar;

View File

@ -698,8 +698,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
}, ex -> { }, ex -> {
UtilityLogger.errorMe(ex); UtilityLogger.errorMe(ex);
progress.dismiss(); progress.dismiss();
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex); showPrintErrorDialog(ex.getMessage());
showPrintErrorDialog(errorMessage);
}); });
}, ex -> { }, ex -> {

View File

@ -0,0 +1,55 @@
package it.integry.integrywmsnative.gest.ultime_consegne_cliente;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.Fragment;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel.UltimeConsegneClienteViewModel;
import it.integry.integrywmsnative.gest.vendita.rest.UltimeConsegneClienteRESTConsumer;
public class UltimeConsegneClienteFragment extends Fragment implements ITitledFragment {
public UltimeConsegneClienteFragment() {
// Required empty public constructor
}
public static UltimeConsegneClienteFragment newInstance() {
UltimeConsegneClienteFragment fragment = new UltimeConsegneClienteFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
FragmentMainUltimeConsegneClienteBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), R.layout.fragment_main_ultime_consegne_cliente, container, false);
mBinding.setViewmodel(new UltimeConsegneClienteViewModel(getActivity()));
// Inflate the layout for this fragment
return mBinding.getRoot();
}
@Override
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
titleText.setText(context.getText(R.string.fragment_ultime_consegne_cliente_title).toString());
}
}

View File

@ -0,0 +1,4 @@
package it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest;
public interface UltimeConsegneClienteRESTConsumerService {
}

View File

@ -0,0 +1,36 @@
package it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel;
import android.app.ProgressDialog;
import android.content.Context;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.gest.vendita.rest.UltimeConsegneClienteRESTConsumer;
public class UltimeConsegneClienteViewModel {
private Context mContext;
public UltimeConsegneClienteViewModel(Context context) {
this.mContext = context;
this.initList();
}
private void initList() {
ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
UltimeConsegneClienteRESTConsumer.getUltimeConsegneClienti(
SettingsManager.i().userSession.depo.getCodMdep(),
null,
null,
consegne -> {
progressDialog.dismiss();
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
});
}
}

View File

@ -439,7 +439,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
.toList(); .toList();
if (foundGestioni != null && foundGestioni.size() > 1) { if (foundGestioni != null && foundGestioni.size() > 1) {
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_gest_ordv)), null, () -> { DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_gest)), null, () -> {
onFailed.run(); onFailed.run();
}).show(); }).show();
return; return;

View File

@ -0,0 +1,51 @@
package it.integry.integrywmsnative.gest.vendita.rest;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.vendita.rest.model.ConsegnaClienteDTO;
public class UltimeConsegneClienteRESTConsumer {
public static void getUltimeConsegneClienti(String codMdep, String codAnag, String codMart, RunnableArgs<List<ConsegnaClienteDTO>> onComplete, RunnableArgs<Exception> onFailed) {
int numberOfConsegnePerCli = 10;
int numberOfDayToAnalyze = 90;
String sql = "SELECT consegne.*, " +
" rag_soc " +
"FROM WMS_GetUltimeConsegneClienti(" +
UtilityDB.valueToString(numberOfConsegnePerCli) + ", " +
UtilityDB.valueToString(codAnag) + ", " +
UtilityDB.valueToString(codMart) + ", " +
UtilityDB.valueToString(codMdep) + ", " +
UtilityDB.valueToString(numberOfDayToAnalyze) + ") consegne " +
"LEFT OUTER JOIN gtb_anag ON consegne.cod_anag = gtb_anag.cod_anag " +
"ORDER BY consegne.cod_anag, " +
" counter_consegna ";
Type typeOfObjectsList = new TypeToken<ArrayList<ConsegnaClienteDTO>>() {}.getType();
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<List<ConsegnaClienteDTO>>() {
@Override
public void onSuccess(List<ConsegnaClienteDTO> value) {
if(onComplete != null) onComplete.run(value);
}
@Override
public void onFailed(Exception ex) {
if(onFailed != null) onFailed.run(ex);
}
});
}
}

View File

@ -0,0 +1,75 @@
package it.integry.integrywmsnative.gest.vendita.rest.model;
public class ConsegnaClienteDTO {
private String codAnag;
private int counterConsegna;
private String codDtip;
private String dataDoc;
private String serDoc;
private int numDoc;
private String ragSoc;
public String getCodAnag() {
return codAnag;
}
public ConsegnaClienteDTO setCodAnag(String codAnag) {
this.codAnag = codAnag;
return this;
}
public int getCounterConsegna() {
return counterConsegna;
}
public ConsegnaClienteDTO setCounterConsegna(int counterConsegna) {
this.counterConsegna = counterConsegna;
return this;
}
public String getCodDtip() {
return codDtip;
}
public ConsegnaClienteDTO setCodDtip(String codDtip) {
this.codDtip = codDtip;
return this;
}
public String getDataDoc() {
return dataDoc;
}
public ConsegnaClienteDTO setDataDoc(String dataDoc) {
this.dataDoc = dataDoc;
return this;
}
public String getSerDoc() {
return serDoc;
}
public ConsegnaClienteDTO setSerDoc(String serDoc) {
this.serDoc = serDoc;
return this;
}
public int getNumDoc() {
return numDoc;
}
public ConsegnaClienteDTO setNumDoc(int numDoc) {
this.numDoc = numDoc;
return this;
}
public String getRagSoc() {
return ragSoc;
}
public ConsegnaClienteDTO setRagSoc(String ragSoc) {
this.ragSoc = ragSoc;
return this;
}
}

View File

@ -151,7 +151,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
.toList(); .toList();
if(foundGestioni != null && foundGestioni.size() > 1){ if(foundGestioni != null && foundGestioni.size() > 1){
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(mActivity.getString(R.string.error_multiple_gest_ordv)), null, () -> { DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(mActivity.getString(R.string.error_multiple_gest)), null, () -> {
mActivity.finish(); mActivity.finish();
}).show(); }).show();
return; return;

View File

@ -391,6 +391,43 @@
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<!--<com.google.android.material.card.MaterialCardView-->
<!--android:id="@+id/fast_button_resi_clienti"-->
<!--style="@style/Widget.MaterialComponents.CardView"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_margin="8dp"-->
<!--app:cardBackgroundColor="@android:color/white"-->
<!--app:cardCornerRadius="4dp">-->
<!--<LinearLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:gravity="center_horizontal"-->
<!--android:orientation="vertical"-->
<!--android:padding="8dp">-->
<!--<ImageView-->
<!--android:layout_width="64sp"-->
<!--android:layout_height="wrap_content"-->
<!--android:adjustViewBounds="true"-->
<!--android:src="@drawable/ic_versamento_merce_96" />-->
<!--<androidx.appcompat.widget.AppCompatTextView-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginTop="16dp"-->
<!--android:gravity="center_horizontal"-->
<!--android:text="@string/fragment_ultime_consegne_cliente_title"-->
<!--android:textAllCaps="true"-->
<!--android:textColor="@color/grey_700"-->
<!--android:textStyle="bold" />-->
<!--</LinearLayout>-->
<!--</com.google.android.material.card.MaterialCardView>-->
</LinearLayout> </LinearLayout>

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<layout
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>
<variable
name="viewmodel"
type="it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel.UltimeConsegneClienteViewModel" />
</data>
<FrameLayout
android:background="@android:color/white"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".gest.ultime_consegne_cliente.UltimeConsegneClienteFragment">
<androidx.cardview.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardUseCompatPadding="true"
card_view:cardCornerRadius="4dp"
card_view:cardElevation="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:padding="8dp">
<TextView
android:id="@+id/cardview_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textStyle="bold"
style="@android:style/TextAppearance.Medium"
android:text="NOME GRUPPO"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/accettazione_main_list_group_item_container">
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</FrameLayout>
</layout>

View File

@ -9,23 +9,27 @@
<item <item
android:id="@+id/nav_accettazione" android:id="@+id/nav_accettazione"
android:icon="@drawable/ic_download_black_24dp" android:icon="@drawable/ic_download_black_24dp"
android:title="Accettazione" /> android:title="@string/accettazione_title_fragment" />
<item <item
android:id="@+id/nav_spedizione" android:id="@+id/nav_spedizione"
android:icon="@drawable/ic_upload_black_24dp" android:icon="@drawable/ic_upload_black_24dp"
android:title="Spedizione" /> android:title="@string/vendita_title_fragment" />
<item <item
android:id="@+id/nav_rettifica_giacenze" android:id="@+id/nav_rettifica_giacenze"
android:icon="@drawable/ic_empty_box_96" android:icon="@drawable/ic_empty_box_96"
android:title="Rettifica Giacenze" /> android:title="@string/rettifica_giacenze_fragment_title" />
<item <item
android:id="@+id/nav_versamento_merce" android:id="@+id/nav_versamento_merce"
android:icon="@drawable/ic_load_shelf_96" android:icon="@drawable/ic_load_shelf_96"
android:title="Versamento Merce" /> android:title="@string/versamento_merce_fragment_title" />
<item <item
android:id="@+id/nav_free_picking" android:id="@+id/nav_free_picking"
android:icon="@drawable/ic_barcode_96" android:icon="@drawable/ic_barcode_96"
android:title="@string/free_picking" /> android:title="@string/free_picking" />
<item
android:id="@+id/nav_resi_cliente"
android:icon="@drawable/ic_barcode_96"
android:title="@string/fragment_ultime_consegne_cliente_title" />
</group> </group>
<!-- <!--
<item android:title="Communicate"> <item android:title="Communicate">
@ -46,7 +50,7 @@
<item <item
android:id="@+id/nav_settings" android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings_24dp" android:icon="@drawable/ic_settings_24dp"
android:title="Impostazioni" /> android:title="@string/general_settings" />
<item <item
android:id="@+id/nav_logout" android:id="@+id/nav_logout"
android:icon="@drawable/ic_logout_24dp" android:icon="@drawable/ic_logout_24dp"

View File

@ -178,7 +178,8 @@
<string name="free_picking_suggestion_1">Per iniziare clicca sul + in basso a destra</string> <string name="free_picking_suggestion_1">Per iniziare clicca sul + in basso a destra</string>
<string name="free_picking_suggestion_2">Scansiona un articolo per iniziare</string> <string name="free_picking_suggestion_2">Scansiona un articolo per iniziare</string>
<string name="free_picking_title_fragment">Picking libero</string> <string name="free_picking_title_fragment">Picking libero</string>
<string name="error_multiple_gest_ordv">Impossibile caricare ordini di diverse <b>gestioni</b></string> <string name="error_multiple_gest">Impossibile caricare ordini di diverse <b>gestioni</b></string>
<string name="error_no_gest_found">Non è stato possibile identificare la <b>gestione</b> degli ordini selezionati</string>
<string name="error_multiple_cod_mdep_ordv">Impossibile caricare ordini di diversi <b>depositi</b></string> <string name="error_multiple_cod_mdep_ordv">Impossibile caricare ordini di diversi <b>depositi</b></string>
<string name="recovering_data">Recupero dati</string> <string name="recovering_data">Recupero dati</string>
@ -195,4 +196,7 @@
<string name="message_print_packing_list">Verrà stampata una %s</string> <string name="message_print_packing_list">Verrà stampata una %s</string>
<string name="button_create_new_ul">Crea nuova UL</string> <string name="button_create_new_ul">Crea nuova UL</string>
<string name="title_open_lu">Apri UL</string> <string name="title_open_lu">Apri UL</string>
<string name="fragment_ultime_consegne_cliente_title">Ultime consegne</string>
<string name="exception_printer_not_found">Stampante non trovata</string>
</resources> </resources>

View File

@ -180,7 +180,8 @@
<string name="free_picking">Free Picking</string> <string name="free_picking">Free Picking</string>
<string name="free_picking_suggestion_1">Please press + button to start with picking</string> <string name="free_picking_suggestion_1">Please press + button to start with picking</string>
<string name="free_picking_suggestion_2">Scan an item to start</string> <string name="free_picking_suggestion_2">Scan an item to start</string>
<string name="error_multiple_gest_ordv">Can\'t load orders of different type</string> <string name="error_multiple_gest">Can\'t load orders of different type</string>
<string name="error_no_gest_found">Can\'t load current order type</string>
<string name="error_multiple_cod_mdep_ordv">Can\'t load orders of different deposits</string> <string name="error_multiple_cod_mdep_ordv">Can\'t load orders of different deposits</string>
<string name="recovering_data">Recovering data</string> <string name="recovering_data">Recovering data</string>
@ -189,7 +190,6 @@
<string name="title_dynamic__base">Base customization</string> <string name="title_dynamic__base">Base customization</string>
<string name="check_in_printer">Check In printer</string> <string name="check_in_printer">Check In printer</string>
<string name="check_out_printer">Check Out printer</string> <string name="check_out_printer">Check Out printer</string>
<string name="yes">Yes</string> <string name="yes">Yes</string>
@ -200,4 +200,10 @@
<string name="button_create_new_ul">Create new LU</string> <string name="button_create_new_ul">Create new LU</string>
<string name="title_open_lu">Open LU</string> <string name="title_open_lu">Open LU</string>
<string name="fragment_ultime_consegne_cliente_title">Latest deliveries</string>
<string name="exception_printer_not_found">Printer not found</string>
</resources> </resources>