diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java index acf7be79..4b1fc0b4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java @@ -22,7 +22,7 @@ public class DBSettingsModel { private String defaultCausaleRettificaGiacenze; private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione; private boolean flagAskClienteInPickingLibero; - private boolean flagAllowEmptyClienteInPickingLibero; + private boolean flagPickLiberoAllowEmptyCliente; private boolean flagCanAddExtraItemSpedizione; private boolean flagCanAutoOpenNewULAccettazione; @@ -42,6 +42,7 @@ public class DBSettingsModel { private String reportNameSpedizionChiudiOrdine; private int onNumCnfInputChanged = 1; private boolean flagAccettazioneUseQtaOrd = false; + private boolean flagPickLiberoAllowEmptyDest = false; public boolean isFlagSpedizioneEnableFakeGiacenza() { return flagSpedizioneEnableFakeGiacenza; @@ -141,12 +142,12 @@ public class DBSettingsModel { return this; } - public boolean isFlagAllowEmptyClienteInPickingLibero() { - return flagAllowEmptyClienteInPickingLibero; + public boolean isFlagPickLiberoAllowEmptyCliente() { + return flagPickLiberoAllowEmptyCliente; } - public DBSettingsModel setFlagAllowEmptyClienteInPickingLibero(boolean flagAllowEmptyClienteInPickingLibero) { - this.flagAllowEmptyClienteInPickingLibero = flagAllowEmptyClienteInPickingLibero; + public DBSettingsModel setFlagPickLiberoAllowEmptyCliente(boolean flagPickLiberoAllowEmptyCliente) { + this.flagPickLiberoAllowEmptyCliente = flagPickLiberoAllowEmptyCliente; return this; } @@ -312,4 +313,13 @@ public class DBSettingsModel { this.flagAccettazioneUseQtaOrd = flagAccettazioneUseQtaOrd; return this; } + + public boolean isFlagPickLiberoAllowEmptyDest() { + return flagPickLiberoAllowEmptyDest; + } + + public DBSettingsModel setFlagPickLiberoAllowEmptyDest(boolean flagPickLiberoAllowEmptyDest) { + this.flagPickLiberoAllowEmptyDest = flagPickLiberoAllowEmptyDest; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index a9e8466b..1613d2f3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -282,6 +282,10 @@ public class SettingsManager { .setGestName("PICKING") .setSection("ACCETTAZIONE") .setKeySection("FLAG_USE_QTA_ORD")); + stbGestSetupList.add(new StbGestSetup() + .setGestName("PICKING") + .setSection("PICKING_LIBERO") + .setKeySection("FLAG_ALLOW_EMPTY_DEST")); GestSetupRESTConsumer.getValues(stbGestSetupList, list -> { @@ -291,7 +295,7 @@ public class SettingsManager { dbSettingsModelIstance.setDefaultCodAnag(getValueFromList(list, "SETUP", "COD_ANAG_DEFAULT", String.class)); dbSettingsModelIstance.setDefaultCriterioDistribuzione(getValueFromList(list, "SETUP", "DEFAULT_CRITERIO_DISTRIBUZIONE", String.class)); dbSettingsModelIstance.setFlagAskClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ASK_CLIENTE", Boolean.class)); - dbSettingsModelIstance.setFlagAllowEmptyClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_CLIENTE", Boolean.class)); + dbSettingsModelIstance.setFlagPickLiberoAllowEmptyCliente(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_CLIENTE", Boolean.class)); dbSettingsModelIstance.setFlagCanAddExtraItemSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_ITEMS", Boolean.class)); dbSettingsModelIstance.setFlagCanAutoOpenNewULAccettazione(getValueFromList(list, "ACCETTAZIONE", "FLAG_AUTO_OPEN_NEW_UL", Boolean.class)); dbSettingsModelIstance.setFlagCanAddExtraQuantitySpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_QUANTITY", Boolean.class)); @@ -309,6 +313,7 @@ public class SettingsManager { dbSettingsModelIstance.setFlagOrdinaNuoviArticoliInGriglia(getValueFromList(list, "ORDINI_A", "ORDINA_NUOVI_ARTICOLI", Boolean.class)); dbSettingsModelIstance.setDocInterniCheckFornitore(getValueFromList(list, "DOC_INTERNI", "CHECK_FORNITORE", String.class)); dbSettingsModelIstance.setFlagAccettazioneUseQtaOrd(getValueFromList(list, "ACCETTAZIONE", "FLAG_USE_QTA_ORD", Boolean.class)); + dbSettingsModelIstance.setFlagPickLiberoAllowEmptyDest(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_DEST", Boolean.class)); String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class); if (notePerdita != null) { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/dto/DialogAskClienteDestinatarioDTO.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/dto/DialogAskClienteDestinatarioDTO.java index 7ada1130..0df9a241 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/dto/DialogAskClienteDestinatarioDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/dto/DialogAskClienteDestinatarioDTO.java @@ -94,7 +94,7 @@ public class DialogAskClienteDestinatarioDTO { @Override public String toString() { - return String.format("%s (%s)", getDestinatario(), getCodVdes()); + return getDestinatario() + (getCodVdes() != null ? (" (" + getCodVdes() + ")") : ""); } public VtbDest toVtbDestModel() { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1ViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1ViewModel.java index 691b8d63..905cdc43 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1ViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1ViewModel.java @@ -145,7 +145,12 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod private void initializeAdapter(ArrayList items) { - DialogAskCliente_Page1_Cliente_ArrayAdapter adapter = new DialogAskCliente_Page1_Cliente_ArrayAdapter(mContext, items); + + var orderedList = Stream.of(items) + .sortBy(x -> x.getRagSoc() != null ? x.getRagSoc() : "") + .toList(); + + DialogAskCliente_Page1_Cliente_ArrayAdapter adapter = new DialogAskCliente_Page1_Cliente_ArrayAdapter(mContext, orderedList); AutoCompleteTextView editTextDropdownCliente = mBinding.dropdownCliente; editTextDropdownCliente.setThreshold(0); @@ -177,7 +182,7 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod private boolean validateCliente() { - if (SettingsManager.iDB().isFlagAllowEmptyClienteInPickingLibero() && mBinding.inputCliente.getEditText().getText().toString().trim().length() == 0) { + if (SettingsManager.iDB().isFlagPickLiberoAllowEmptyCliente() && mBinding.inputCliente.getEditText().getText().toString().trim().length() == 0) { return true; } else return getCurrentCliente() != null; } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Cliente_ArrayAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Cliente_ArrayAdapter.java index 6689e854..6d7f1218 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Cliente_ArrayAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Cliente_ArrayAdapter.java @@ -20,13 +20,13 @@ import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskCliente public class DialogAskCliente_Page1_Cliente_ArrayAdapter extends ArrayAdapter implements Filterable { - private Context mContext; - private List mDataset; + private final Context mContext; + private final List mDataset; private List mDatasetAllItems; - private ListFilter listFilter = new ListFilter(); + private final ListFilter listFilter = new ListFilter(); - public DialogAskCliente_Page1_Cliente_ArrayAdapter(@NonNull Context context, @NonNull ArrayList list) { + public DialogAskCliente_Page1_Cliente_ArrayAdapter(@NonNull Context context, @NonNull List list) { super(context, 0 , list); mContext = context; mDataset = list; @@ -37,13 +37,15 @@ public class DialogAskCliente_Page1_Cliente_ArrayAdapter extends ArrayAdapter matchValues = new ArrayList<>(); for (DialogAskClienteClienteDTO dataItem : mDatasetAllItems) { - if (dataItem.getRagSoc().toLowerCase().startsWith(searchStrLowerCase)) { + if (dataItem.getRagSoc().toLowerCase().contains(searchStrLowerCase)) { matchValues.add(dataItem); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Commessa_ArrayAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Commessa_ArrayAdapter.java index afa48566..93031215 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Commessa_ArrayAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1_Commessa_ArrayAdapter.java @@ -23,7 +23,7 @@ public class DialogAskCliente_Page1_Commessa_ArrayAdapter extends ArrayAdapter mDataset = new ArrayList<>(); private List mDatasetAllItems; - private DialogAskCliente_Page1_Commessa_ArrayAdapter.ListFilter listFilter = new DialogAskCliente_Page1_Commessa_ArrayAdapter.ListFilter(); + private final DialogAskCliente_Page1_Commessa_ArrayAdapter.ListFilter listFilter = new DialogAskCliente_Page1_Commessa_ArrayAdapter.ListFilter(); public DialogAskCliente_Page1_Commessa_ArrayAdapter(@NonNull Context context) { super(context, 0); @@ -56,7 +56,7 @@ public class DialogAskCliente_Page1_Commessa_ArrayAdapter extends ArrayAdapter matchValues = new ArrayList<>(); for (String dataItem : mDatasetAllItems) { - if (dataItem.toLowerCase().startsWith(searchStrLowerCase)) { + if (dataItem.toLowerCase().contains(searchStrLowerCase)) { matchValues.add(dataItem); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2ViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2ViewModel.java index a486ac0d..6c08204f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2ViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2ViewModel.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.List; import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.databinding.DialogAskClientePage2Binding; import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteDestinatarioDTO; @@ -57,6 +58,12 @@ public class DialogAskCliente_Page2ViewModel implements IDialogAskClienteViewMod return; } + if(SettingsManager.iDB().isFlagPickLiberoAllowEmptyDest()) { + filteredDestinatari.add(new DialogAskClienteDestinatarioDTO() + .setCodAnag(null) + .setDestinatario("Nessuno")); + } + initializeAdapter(filteredDestinatari); @@ -95,7 +102,11 @@ public class DialogAskCliente_Page2ViewModel implements IDialogAskClienteViewMod private void initializeAdapter(List items) { - DialogAskCliente_Page2_ArrayAdapter adapter = new DialogAskCliente_Page2_ArrayAdapter(mContext, items); + var orderedList = Stream.of(items) + .sortBy(x -> x.getCodAnag() != null ? x.getCodAnag() : "") + .toList(); + + DialogAskCliente_Page2_ArrayAdapter adapter = new DialogAskCliente_Page2_ArrayAdapter(mContext, orderedList); AutoCompleteTextView editTextFilledExposedDropdown = mBinding.dropdownDestinatario; @@ -105,7 +116,9 @@ public class DialogAskCliente_Page2ViewModel implements IDialogAskClienteViewMod private boolean validateDestinatario() { - return getCurrentDestinatario() != null; + if (SettingsManager.iDB().isFlagPickLiberoAllowEmptyDest() && getCurrentDestinatario() == null) { + return true; + } else return getCurrentDestinatario() != null; } public DialogAskClienteDestinatarioDTO getCurrentDestinatario() { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2_ArrayAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2_ArrayAdapter.java index caf7ea52..0e4d9e51 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2_ArrayAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2_ArrayAdapter.java @@ -11,6 +11,7 @@ import android.widget.Filterable; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatTextView; +import androidx.core.content.ContextCompat; import java.util.ArrayList; import java.util.List; @@ -21,14 +22,15 @@ import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskCliente public class DialogAskCliente_Page2_ArrayAdapter extends ArrayAdapter implements Filterable { - private Context mContext; - private List mDataset; + private final Context mContext; + private final List mDataset; private List mDatasetAllItems; - private ListFilter listFilter = new ListFilter(); + private final ListFilter listFilter = new ListFilter(); public DialogAskCliente_Page2_ArrayAdapter(@NonNull Context context, @NonNull List list) { super(context, 0 , list); + mContext = context; mDataset = list; } @@ -43,18 +45,21 @@ public class DialogAskCliente_Page2_ArrayAdapter extends ArrayAdapter matchValues = new ArrayList<>(); for (DialogAskClienteDestinatarioDTO dataItem : mDatasetAllItems) { - if (dataItem.toString().toLowerCase().startsWith(searchStrLowerCase)) { + if (dataItem.toString().toLowerCase().contains(searchStrLowerCase)) { matchValues.add(dataItem); } } diff --git a/app/src/main/res/layout/dialog_ask_cliente__dropdown_item_destinatario.xml b/app/src/main/res/layout/dialog_ask_cliente__dropdown_item_destinatario.xml index e384cfd4..ac5fabc5 100644 --- a/app/src/main/res/layout/dialog_ask_cliente__dropdown_item_destinatario.xml +++ b/app/src/main/res/layout/dialog_ask_cliente__dropdown_item_destinatario.xml @@ -1,38 +1,33 @@ - + tools:text="Destinatario" /> - + android:maxLines="1" + android:textAppearance="?attr/textAppearanceSubtitle1" + android:textColor="@color/gray_800" + tools:text="Città" /> - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/dropdown_simple_item_w_subtitle.xml b/app/src/main/res/layout/dropdown_simple_item_w_subtitle.xml new file mode 100644 index 00000000..8937eda4 --- /dev/null +++ b/app/src/main/res/layout/dropdown_simple_item_w_subtitle.xml @@ -0,0 +1,33 @@ + + + + + + + + + \ No newline at end of file