diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 8df4dbec..c2fff895 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index ffdb7e6e..c807a461 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -37,6 +37,7 @@ import it.integry.integrywmsnative.gest.main.MainFragment; import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment; import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment; 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.versamento_merce.VersamentoMerceFragment; @@ -144,6 +145,9 @@ public class MainActivity extends AppCompatActivity } else if (id == R.id.nav_free_picking) { fragment = PickingLiberoFragment.newInstance(); this.adaptViewToFragment(fragment); + } else if (id == R.id.nav_resi_cliente) { + fragment = UltimeConsegneClienteFragment.newInstance(); + this.adaptViewToFragment(fragment); } else if(id == R.id.nav_settings){ diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java index 6bcd686e..9f7f9bca 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java @@ -4,11 +4,13 @@ import android.util.Log; import java.net.SocketException; import java.net.SocketTimeoutException; +import java.util.HashMap; import java.util.List; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.REST.model.EsitoType; import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.exception.printer.PrinterNotFoundException; import it.integry.integrywmsnative.core.utility.UtilityString; import retrofit2.Response; @@ -18,6 +20,18 @@ import retrofit2.Response; public class CommonRESTException { + private static String MESSAGE_KEY = "message"; + private static String EXCEPTION_KEY = "exception"; + + private static HashMap> bindingExceptions = new HashMap() {{ + put("Printer not found", new HashMap(){{ + put(MESSAGE_KEY, "Stampante non trovata"); + put(EXCEPTION_KEY, PrinterNotFoundException.class); + }}); + + + }}; + public static String tryRecognizeThenGetMessage(Exception ex){ @@ -25,12 +39,30 @@ public class CommonRESTException { return "Errore di comunicazione con il server remoto. Riprova."; } else if(ex instanceof SocketTimeoutException){ 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 { 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); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java index 900bdad9..3ddaf3ef 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java @@ -6,6 +6,7 @@ import java.util.List; import it.integry.integrywmsnative.core.REST.RESTBuilder; 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.model.MtbColt; import it.integry.integrywmsnative.core.utility.UtilityLogger; @@ -117,7 +118,9 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer { @Override public void onFailure(Call> 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)); } }); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/_BaseRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/_BaseRESTConsumer.java index 3fbe4344..18e96950 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/_BaseRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/_BaseRESTConsumer.java @@ -4,6 +4,7 @@ import android.util.Log; 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.ServiceRESTResponse; import it.integry.integrywmsnative.core.expansion.RunnableArgs; @@ -29,7 +30,8 @@ public class _BaseRESTConsumer { } } else { 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 { Log.e(logTitle, response.message()); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/exception/printer/PrinterNotFoundException.java b/app/src/main/java/it/integry/integrywmsnative/core/exception/printer/PrinterNotFoundException.java new file mode 100644 index 00000000..a967887c --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/exception/printer/PrinterNotFoundException.java @@ -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)); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/GestioneEnum.java b/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/GestioneEnum.java index 42e804eb..b063f094 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/GestioneEnum.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/secondary/GestioneEnum.java @@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.model.secondary; public enum GestioneEnum { ACQUISTO("A"), + PRODUZIONE("P"), LAVORAZIONE("L"), VENDITA("V"); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java index 8eca2b68..d7c109a6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java @@ -152,9 +152,9 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag private void groupOrdiniAndMakeRecycler(List ordini){ for(OrdineAccettazioneInevasoDTO ordine : ordini){ - if(UtilityString.isNullOrEmpty(ordine.codJcom) || ordine.codJcom.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){ - ordine.codJcom = CommonConst.Config.COMMESSA_MAG; - ordine.descrizioneCom = "MAGAZZINO"; + if(UtilityString.isNullOrEmpty(ordine.getCodJcom()) || ordine.getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){ + ordine.setCodJcom(CommonConst.Config.COMMESSA_MAG); + ordine.setDescrizioneCom("MAGAZZINO"); } } @@ -165,8 +165,8 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag .map(x -> { OrdineAccettazioneGroupedInevasoDTO groupedOrdine = new OrdineAccettazioneGroupedInevasoDTO(); - groupedOrdine.codAnagForn = x.codAnagOrd; - groupedOrdine.nomeFornitore = x.ragSocOrd; + groupedOrdine.codAnagForn = x.getCodAnagOrd(); + groupedOrdine.nomeFornitore = x.getRagSocOrd(); groupedOrdine.ordini = new ArrayList<>(); return groupedOrdine; @@ -181,20 +181,21 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag //Splitto gli ordini di ogni fornitore per data e numero List tmpOrd = Stream.of(ordini) - .filter(x -> x.codAnagOrd.equals(groupedOrdine.codAnagForn)) + .filter(x -> x.getCodAnagOrd().equals(groupedOrdine.codAnagForn)) .map(x -> { OrdineAccettazioneGroupedInevasoDTO.Ordine rigaOrdine = new OrdineAccettazioneGroupedInevasoDTO.Ordine(); - rigaOrdine.data = x.data; - rigaOrdine.numero = x.numero; - rigaOrdine.codAnagOrd = x.codAnagOrd; - rigaOrdine.ragSocOrd = x.ragSocOrd; - rigaOrdine.pesoTotale = x.pesoTotale; - rigaOrdine.barcode = x.barcode; - rigaOrdine.termCons = x.termCons; - rigaOrdine.dataCons = x.dataCons; - rigaOrdine.rifOrd = x.rifOrd; + rigaOrdine.data = x.getData(); + rigaOrdine.numero = x.getNumero(); + rigaOrdine.gestione = x.getGestione(); + rigaOrdine.codAnagOrd = x.getCodAnagOrd(); + rigaOrdine.ragSocOrd = x.getRagSocOrd(); + rigaOrdine.pesoTotale = x.getPesoTotale(); + rigaOrdine.barcode = x.getBarcode(); + rigaOrdine.termCons = x.getTermCons(); + rigaOrdine.dataCons = x.getDataCons(); + rigaOrdine.rifOrd = x.getRifOrd(); rigaOrdine.clienti = new ArrayList<>(); return rigaOrdine; @@ -208,18 +209,18 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag Stream.of(ordini) .filter(x -> - x.codAnagOrd.equals(rigaOrdine.codAnagOrd) && - x.numero == rigaOrdine.numero && - x.data.equals(rigaOrdine.data)) + x.getCodAnagOrd().equals(rigaOrdine.codAnagOrd) && + x.getNumero() == rigaOrdine.numero && + x.getData().equals(rigaOrdine.data)) .forEach(x -> { OrdineAccettazioneGroupedInevasoDTO.Cliente cliente = new OrdineAccettazioneGroupedInevasoDTO.Cliente(); - cliente.codJcom = x.codJcom; - cliente.ragSocCom = x.ragSocCom; - cliente.descrCom = x.descrizioneCom; - cliente.dataCons = x.dataCons; - cliente.numCnf = x.numCnf; - cliente.rifOrd = x.rifOrd; + cliente.codJcom = x.getCodJcom(); + cliente.ragSocCom = x.getRagSocCom(); + cliente.descrCom = x.getDescrizioneCom(); + cliente.dataCons = x.getDataCons(); + cliente.numCnf = x.getNumCnf(); + cliente.rifOrd = x.getRifOrd(); rigaOrdine.clienti.add(cliente); }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneGroupedInevasoDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneGroupedInevasoDTO.java index 9811f849..345e1992 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneGroupedInevasoDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneGroupedInevasoDTO.java @@ -36,6 +36,7 @@ public class OrdineAccettazioneGroupedInevasoDTO implements Cloneable, Serializa public String termCons; public String dataCons; public String rifOrd; + public String gestione; public boolean checkBox; public List checkBoxCallback = new ArrayList<>(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneInevasoDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneInevasoDTO.java index 27272dc4..41b68661 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneInevasoDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/dto/OrdineAccettazioneInevasoDTO.java @@ -6,23 +6,195 @@ package it.integry.integrywmsnative.gest.accettazione.dto; public class OrdineAccettazioneInevasoDTO { - public String data; - public int numero; - public String termCons; - public String codAuto; - public String descrizioneAuto; - public String rifOrd; - public String codVvet; - public String descrizioneVettore; - public String dataInizTrasp; - public String codJcom = ""; - public String descrizioneCom = ""; - public String codAnagOrd = ""; - public String ragSocOrd = ""; - public String ragSocCom = ""; - public Float pesoTotale; - public Integer numCnf; - public String dataCons; - public String barcode; + private String data; + private int numero; + private String termCons; + private String codAuto; + private String descrizioneAuto; + private String rifOrd; + private String codVvet; + private String descrizioneVettore; + private String dataInizTrasp; + private String codJcom = ""; + private String descrizioneCom = ""; + private String codAnagOrd = ""; + private String ragSocOrd = ""; + private String ragSocCom = ""; + private Float pesoTotale; + private Integer numCnf; + private String dataCons; + 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; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java index 84400e7d..9d80746b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java @@ -112,8 +112,21 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl .distinctBy(x -> x) .toList(); - if(foundGestioni != null && foundGestioni.size() == 1){ - defaultGestioneOfUL = foundGestioni.get(0); + if(foundGestioni != null) { + + 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; } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java index 78d39ee5..247cc912 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java @@ -217,6 +217,11 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab ((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 public void setScrollToolbar(ElevatedToolbar toolbar) { mToolbar = toolbar; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index 42da807a..622d9f7c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -698,8 +698,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked }, ex -> { UtilityLogger.errorMe(ex); progress.dismiss(); - String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex); - showPrintErrorDialog(errorMessage); + showPrintErrorDialog(ex.getMessage()); }); }, ex -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java new file mode 100644 index 00000000..d653b108 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java @@ -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()); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumerService.java new file mode 100644 index 00000000..5a5c7e3b --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumerService.java @@ -0,0 +1,4 @@ +package it.integry.integrywmsnative.gest.ultime_consegne_cliente.rest; + +public interface UltimeConsegneClienteRESTConsumerService { +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java new file mode 100644 index 00000000..e074a59a --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/viewmodel/UltimeConsegneClienteViewModel.java @@ -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); + }); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java index 67ce3198..182f2a7b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java @@ -439,7 +439,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS .toList(); 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(); }).show(); return; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/UltimeConsegneClienteRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/UltimeConsegneClienteRESTConsumer.java new file mode 100644 index 00000000..8e27b687 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/UltimeConsegneClienteRESTConsumer.java @@ -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> onComplete, RunnableArgs 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>() {}.getType(); + SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback>() { + @Override + public void onSuccess(List value) { + if(onComplete != null) onComplete.run(value); + } + + @Override + public void onFailed(Exception ex) { + if(onFailed != null) onFailed.run(ex); + } + }); + } + + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/model/ConsegnaClienteDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/model/ConsegnaClienteDTO.java new file mode 100644 index 00000000..70d8d9db --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/rest/model/ConsegnaClienteDTO.java @@ -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; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java index 3156d977..e4883d73 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java @@ -151,7 +151,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO .toList(); 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(); }).show(); return; diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index dda9c56a..8406d0d4 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -391,6 +391,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml new file mode 100644 index 00000000..5a3aeee8 --- /dev/null +++ b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index 7f15be9d..92ea3218 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -9,23 +9,27 @@ + android:title="@string/accettazione_title_fragment" /> + android:title="@string/vendita_title_fragment" /> + android:title="@string/rettifica_giacenze_fragment_title" /> + android:title="@string/versamento_merce_fragment_title" /> +