Compare commits
19 Commits
v1.19.1(24
...
v1.19.5(24
| Author | SHA1 | Date | |
|---|---|---|---|
| 9de6dcce80 | |||
| fc403ec419 | |||
| 4968f2f4fa | |||
| a7ea9b9022 | |||
| 28a034f0d6 | |||
| ca3f1f5962 | |||
| 4117e69278 | |||
| 18ff1e2345 | |||
| 37e3024220 | |||
| ed35ea6894 | |||
| bd28db7422 | |||
| 9beea9f2e9 | |||
| 205af60edb | |||
| 21f9a9819a | |||
| 4059335e61 | |||
| 14252f0f4b | |||
| c13eee355e | |||
| 51528fda6f | |||
| 1486d39eb8 |
@@ -6,8 +6,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 242
|
def appVersionCode = 246
|
||||||
def appVersionName = '1.19.1'
|
def appVersionName = '1.19.5'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import it.integry.integrywmsnative.core.menu.MenuService;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.CommessaRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.EntityRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.EntityRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
|
||||||
@@ -85,6 +86,12 @@ public class MainApplicationModule {
|
|||||||
return new ArticoloRESTConsumer(systemRESTConsumer);
|
return new ArticoloRESTConsumer(systemRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
CommessaRESTConsumer provideCommessaRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
|
return new CommessaRESTConsumer(systemRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
DepositoRESTConsumer provideDepositoRESTConsumer(EntityRESTConsumer entityRESTConsumer, SystemRESTConsumer systemRESTConsumer) {
|
DepositoRESTConsumer provideDepositoRESTConsumer(EntityRESTConsumer entityRESTConsumer, SystemRESTConsumer systemRESTConsumer) {
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package it.integry.integrywmsnative.core.class_router;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
|
|
||||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityHashMap;
|
import it.integry.integrywmsnative.core.utility.UtilityHashMap;
|
||||||
|
|
||||||
@@ -10,14 +9,12 @@ public class BaseCustomConfiguration implements ICustomConfiguration {
|
|||||||
|
|
||||||
|
|
||||||
public static class Keys {
|
public static class Keys {
|
||||||
public static int MENU_CONFIGURATION = 0;
|
|
||||||
public static int FLAG_SHOW_COD_FORN_IN_SPEDIZIONE = 1;
|
public static int FLAG_SHOW_COD_FORN_IN_SPEDIZIONE = 1;
|
||||||
public static int CUSTOM_DYNAMIC_VERSION_PATH = 2;
|
public static int CUSTOM_DYNAMIC_VERSION_PATH = 2;
|
||||||
public static int FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC = 3;
|
public static int FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected HashMap<Integer, Object> configurations = new HashMap<Integer, Object>() {{
|
protected HashMap<Integer, Object> configurations = new HashMap<>() {{
|
||||||
put(Keys.MENU_CONFIGURATION, new MenuConfiguration());
|
|
||||||
put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, true);
|
put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, true);
|
||||||
put(Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC, false);
|
put(Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC, false);
|
||||||
}};
|
}};
|
||||||
|
|||||||
@@ -106,6 +106,9 @@ public class DtbOrdt extends EntityBase {
|
|||||||
private String noteConferma;
|
private String noteConferma;
|
||||||
private String codJflav;
|
private String codJflav;
|
||||||
|
|
||||||
|
public DtbOrdt() {
|
||||||
|
this.type = "dtb_ordt";
|
||||||
|
}
|
||||||
|
|
||||||
public String getDataOrd() {
|
public String getDataOrd() {
|
||||||
return dataOrd;
|
return dataOrd;
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package it.integry.integrywmsnative.core.model;
|
||||||
|
|
||||||
|
public class JtbComt extends EntityBase {
|
||||||
|
|
||||||
|
private String codJcom;
|
||||||
|
private String codJfas;
|
||||||
|
private String codJflav;
|
||||||
|
private String descrizione;
|
||||||
|
|
||||||
|
public JtbComt() {
|
||||||
|
this.type = "jtb_comt";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodJcom() {
|
||||||
|
return codJcom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JtbComt setCodJcom(String codJcom) {
|
||||||
|
this.codJcom = codJcom;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodJfas() {
|
||||||
|
return codJfas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JtbComt setCodJfas(String codJfas) {
|
||||||
|
this.codJfas = codJfas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodJflav() {
|
||||||
|
return codJflav;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JtbComt setCodJflav(String codJflav) {
|
||||||
|
this.codJflav = codJflav;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizione() {
|
||||||
|
return descrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JtbComt setDescrizione(String descrizione) {
|
||||||
|
this.descrizione = descrizione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.JtbComt;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class CommessaRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
|
private final SystemRESTConsumer systemRESTConsumer;
|
||||||
|
|
||||||
|
public CommessaRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
|
this.systemRESTConsumer = systemRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void getJtbComts(List<String> itemsToFind, RunnableArgs<List<JtbComt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
var whereCondMap = Stream.of(itemsToFind)
|
||||||
|
.map(x -> {
|
||||||
|
HashMap<String, Object> vars = new HashMap<>();
|
||||||
|
vars.put("cod_jcom", x);
|
||||||
|
return vars;
|
||||||
|
})
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
var whereCond = " WHERE " + UtilityQuery.concatFieldListInWhereCond(whereCondMap);
|
||||||
|
|
||||||
|
Type typeOfObjectsList = new TypeToken<ArrayList<JtbComt>>() {}.getType();
|
||||||
|
this.systemRESTConsumer.processSql("SELECT * FROM jtb_comt " + whereCond, typeOfObjectsList, onComplete, onFailed);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -53,6 +53,7 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearcable
|
|||||||
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
|
private String mTextFilter;
|
||||||
private FragmentMainAccettazioneBinding mBinding;
|
private FragmentMainAccettazioneBinding mBinding;
|
||||||
|
|
||||||
private final ObservableArrayList<MainListAccettazioneListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
|
private final ObservableArrayList<MainListAccettazioneListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
|
||||||
@@ -65,10 +66,7 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearcable
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static MainAccettazioneFragment newInstance() {
|
public static MainAccettazioneFragment newInstance() {
|
||||||
MainAccettazioneFragment fragment = new MainAccettazioneFragment();
|
return new MainAccettazioneFragment();
|
||||||
Bundle args = new Bundle();
|
|
||||||
fragment.setArguments(args);
|
|
||||||
return fragment;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -122,7 +120,9 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearcable
|
|||||||
|
|
||||||
|
|
||||||
private void initRecyclerView() {
|
private void initRecyclerView() {
|
||||||
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), this::refreshList);
|
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), x->{
|
||||||
|
this.refreshList(getFilteredList(mTextFilter));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
MainListAccettazioneAdapter adapter = new MainListAccettazioneAdapter(getActivity(), mOrdiniInevasiMutableData)
|
MainListAccettazioneAdapter adapter = new MainListAccettazioneAdapter(getActivity(), mOrdiniInevasiMutableData)
|
||||||
@@ -228,20 +228,25 @@ public class MainAccettazioneFragment extends BaseFragment implements ISearcable
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onQueryTextChange(String newText) {
|
public boolean onQueryTextChange(String newText) {
|
||||||
|
List<OrdineAccettazioneInevasoDTO> originalList = this.mViewModel.getOrderList().getValue();
|
||||||
|
if(originalList == null || originalList.isEmpty()) return false;
|
||||||
|
mTextFilter = newText;
|
||||||
|
List<OrdineAccettazioneInevasoDTO> filteredOrders = getFilteredList(newText);
|
||||||
|
|
||||||
|
refreshList(filteredOrders);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<OrdineAccettazioneInevasoDTO> getFilteredList(String newText) {
|
||||||
List<OrdineAccettazioneInevasoDTO> filteredOrders = new ArrayList<>();
|
List<OrdineAccettazioneInevasoDTO> filteredOrders = new ArrayList<>();
|
||||||
List<OrdineAccettazioneInevasoDTO> originalList = this.mViewModel.getOrderList().getValue();
|
List<OrdineAccettazioneInevasoDTO> originalList = this.mViewModel.getOrderList().getValue();
|
||||||
|
if(originalList == null || originalList.isEmpty() || newText == null) return originalList;
|
||||||
if(originalList == null || originalList.isEmpty()) return false;
|
|
||||||
|
|
||||||
for(int i = 0; i < originalList.size(); i++){
|
for(int i = 0; i < originalList.size(); i++){
|
||||||
|
|
||||||
if(originalList.get(i).getRagSocOrd().toLowerCase().contains(newText.toLowerCase())){
|
if(originalList.get(i).getRagSocOrd().toLowerCase().contains(newText.toLowerCase())){
|
||||||
filteredOrders.add(originalList.get(i));
|
filteredOrders.add(originalList.get(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return filteredOrders;
|
||||||
refreshList(filteredOrders);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -786,9 +786,12 @@ public class AccettazionePickingViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void printCollo(Runnable onComplete) {
|
private void printCollo(Runnable onComplete) {
|
||||||
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
|
cloneMtbColt.setGestione(cloneMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE ? GestioneEnum.PRODUZIONE : cloneMtbColt.getGestioneEnum());
|
||||||
|
|
||||||
this.mPrinterRESTConsumer.printCollo(
|
this.mPrinterRESTConsumer.printCollo(
|
||||||
PrinterRESTConsumer.Type.SECONDARIA,
|
PrinterRESTConsumer.Type.SECONDARIA,
|
||||||
mCurrentMtbColt,
|
cloneMtbColt,
|
||||||
() -> {
|
() -> {
|
||||||
this.sendLUSuccessfullyPrinted();
|
this.sendLUSuccessfullyPrinted();
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ import javax.inject.Inject;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.MainApplication;
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
|
|
||||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||||
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
|
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
|
||||||
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
|
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
|
||||||
@@ -242,7 +241,7 @@ public class MainActivity extends BaseActivity
|
|||||||
|
|
||||||
private MenuConfiguration.MenuItem getMenuItem(@IdRes int menuId) {
|
private MenuConfiguration.MenuItem getMenuItem(@IdRes int menuId) {
|
||||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||||
BaseMenuConfiguration menuConfiguration = customConfiguration.getConfig(BaseCustomConfiguration.Keys.MENU_CONFIGURATION);
|
BaseMenuConfiguration menuConfiguration = new MenuConfiguration();
|
||||||
List<MenuConfiguration.MenuGroup> menuGroups = menuConfiguration.getGroups();
|
List<MenuConfiguration.MenuGroup> menuGroups = menuConfiguration.getGroups();
|
||||||
|
|
||||||
BaseMenuConfiguration.MenuItem menuItemToReturn = null;
|
BaseMenuConfiguration.MenuItem menuItemToReturn = null;
|
||||||
|
|||||||
@@ -276,9 +276,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
|
|||||||
groupBinding.mainList.setAdapter(menuListAdapter);
|
groupBinding.mainList.setAdapter(menuListAdapter);
|
||||||
groupBinding.mainList.setNestedScrollingEnabled(false);
|
groupBinding.mainList.setNestedScrollingEnabled(false);
|
||||||
|
|
||||||
menuListAdapter.setClickListener((view, position) -> {
|
menuListAdapter.setClickListener(this::onMenuClick);
|
||||||
onMenuClick(menuGroup.getItems().get(position));
|
|
||||||
});
|
|
||||||
|
|
||||||
mBindings.menuContainer.addView(groupBinding.getRoot());
|
mBindings.menuContainer.addView(groupBinding.getRoot());
|
||||||
|
|
||||||
|
|||||||
@@ -14,14 +14,15 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
|
||||||
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
|
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
|
||||||
|
|
||||||
public class MenuListAdapter extends RecyclerView.Adapter<MenuListAdapter.ViewHolder> {
|
public class MenuListAdapter extends RecyclerView.Adapter<MenuListAdapter.ViewHolder> {
|
||||||
|
|
||||||
private Context mContext;
|
private final Context mContext;
|
||||||
|
|
||||||
private List<MenuConfiguration.MenuItem> mDataset;
|
private final List<MenuConfiguration.MenuItem> mDataset;
|
||||||
private LayoutInflater mInflater;
|
private final LayoutInflater mInflater;
|
||||||
private ItemClickListener mClickListener;
|
private ItemClickListener mClickListener;
|
||||||
|
|
||||||
// data is passed into the constructor
|
// data is passed into the constructor
|
||||||
@@ -44,6 +45,10 @@ public class MenuListAdapter extends RecyclerView.Adapter<MenuListAdapter.ViewHo
|
|||||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||||
holder.mIcon.setImageDrawable(ResourcesCompat.getDrawable(mContext.getResources(), mDataset.get(position).getTitleIcon(), null));
|
holder.mIcon.setImageDrawable(ResourcesCompat.getDrawable(mContext.getResources(), mDataset.get(position).getTitleIcon(), null));
|
||||||
holder.mTitle.setText(mContext.getResources().getString(mDataset.get(position).getTitleText()));
|
holder.mTitle.setText(mContext.getResources().getString(mDataset.get(position).getTitleText()));
|
||||||
|
|
||||||
|
holder.itemView.setOnClickListener(v -> {
|
||||||
|
if (mClickListener != null) mClickListener.onItemClick(mDataset.get(position));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// total number of cells
|
// total number of cells
|
||||||
@@ -54,20 +59,14 @@ public class MenuListAdapter extends RecyclerView.Adapter<MenuListAdapter.ViewHo
|
|||||||
|
|
||||||
|
|
||||||
// stores and recycles views as they are scrolled off screen
|
// stores and recycles views as they are scrolled off screen
|
||||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
private TextView mTitle;
|
private final TextView mTitle;
|
||||||
private ImageView mIcon;
|
private final ImageView mIcon;
|
||||||
|
|
||||||
ViewHolder(View itemView) {
|
ViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
mTitle = itemView.findViewById(R.id.menu_title);
|
mTitle = itemView.findViewById(R.id.menu_title);
|
||||||
mIcon = itemView.findViewById(R.id.menu_icon);
|
mIcon = itemView.findViewById(R.id.menu_icon);
|
||||||
itemView.setOnClickListener(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
if (mClickListener != null) mClickListener.onItemClick(view, getAdapterPosition());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,6 +78,6 @@ public class MenuListAdapter extends RecyclerView.Adapter<MenuListAdapter.ViewHo
|
|||||||
|
|
||||||
// parent activity will implement this method to respond to click events
|
// parent activity will implement this method to respond to click events
|
||||||
public interface ItemClickListener {
|
public interface ItemClickListener {
|
||||||
void onItemClick(View view, int position);
|
void onItemClick(BaseMenuConfiguration.MenuItem menuItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,55 +32,66 @@ public class OrdiniUscitaElencoBindings {
|
|||||||
public static final HashMap<Integer, FilterChipDTO> AVAILABLE_FILTERS = new HashMap<>() {{
|
public static final HashMap<Integer, FilterChipDTO> AVAILABLE_FILTERS = new HashMap<>() {{
|
||||||
put(DEPOSITO_FILTER_ID, new FilterChipDTO()
|
put(DEPOSITO_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(DEPOSITO_FILTER_ID)
|
.setID(DEPOSITO_FILTER_ID)
|
||||||
|
.setPosizione(9)
|
||||||
.setFilterChipText("Deposito")
|
.setFilterChipText("Deposito")
|
||||||
.setFilterLayoutView(new FilterDepositoLayoutView()));
|
.setFilterLayoutView(new FilterDepositoLayoutView()));
|
||||||
|
|
||||||
put(VIAGGIO_FILTER_ID, new FilterChipDTO()
|
put(VIAGGIO_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(VIAGGIO_FILTER_ID)
|
.setID(VIAGGIO_FILTER_ID)
|
||||||
|
.setPosizione(2)
|
||||||
.setFilterChipText("Viaggio")
|
.setFilterChipText("Viaggio")
|
||||||
.setFilterLayoutView(new FilterViaggioLayoutView()));
|
.setFilterLayoutView(new FilterViaggioLayoutView()));
|
||||||
|
|
||||||
put(NUM_ORD_FILTER_ID, new FilterChipDTO()
|
put(NUM_ORD_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(NUM_ORD_FILTER_ID)
|
.setID(NUM_ORD_FILTER_ID)
|
||||||
|
.setPosizione(0)
|
||||||
.setFilterChipText("Numero ordine")
|
.setFilterChipText("Numero ordine")
|
||||||
.setFilterLayoutView(new FilterNumeroOrdineLayoutView()));
|
.setFilterLayoutView(new FilterNumeroOrdineLayoutView()));
|
||||||
|
|
||||||
put(CLIENTE_FILTER_ID, new FilterChipDTO()
|
put(CLIENTE_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(CLIENTE_FILTER_ID)
|
.setID(CLIENTE_FILTER_ID)
|
||||||
|
.setPosizione(1)
|
||||||
.setFilterChipText("Cliente")
|
.setFilterChipText("Cliente")
|
||||||
.setFilterLayoutView(new FilterClienteLayoutView()));
|
.setFilterLayoutView(new FilterClienteLayoutView()));
|
||||||
|
|
||||||
put(VETTORE_FILTER_ID, new FilterChipDTO()
|
put(VETTORE_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(VETTORE_FILTER_ID)
|
.setID(VETTORE_FILTER_ID)
|
||||||
|
.setPosizione(4)
|
||||||
.setFilterChipText("Vettore")
|
.setFilterChipText("Vettore")
|
||||||
.setFilterLayoutView(new FilterVettoreLayoutView()));
|
.setFilterLayoutView(new FilterVettoreLayoutView()));
|
||||||
|
|
||||||
put(AUTOMEZZO_FILTER_ID, new FilterChipDTO()
|
put(AUTOMEZZO_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(AUTOMEZZO_FILTER_ID)
|
.setID(AUTOMEZZO_FILTER_ID)
|
||||||
|
.setPosizione(6)
|
||||||
.setFilterChipText("Automezzo")
|
.setFilterChipText("Automezzo")
|
||||||
.setFilterLayoutView(new FilterAutomezzoLayoutView()));
|
.setFilterLayoutView(new FilterAutomezzoLayoutView()));
|
||||||
|
|
||||||
put(PAESE_FILTER_ID, new FilterChipDTO()
|
put(PAESE_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(PAESE_FILTER_ID)
|
.setID(PAESE_FILTER_ID)
|
||||||
|
.setPosizione(8)
|
||||||
.setFilterChipText("Paese")
|
.setFilterChipText("Paese")
|
||||||
.setFilterLayoutView(new FilterPaeseLayoutView()));
|
.setFilterLayoutView(new FilterPaeseLayoutView()));
|
||||||
|
|
||||||
put(AGENTE_FILTER_ID, new FilterChipDTO()
|
put(AGENTE_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(AGENTE_FILTER_ID)
|
.setID(AGENTE_FILTER_ID)
|
||||||
|
.setPosizione(10)
|
||||||
.setFilterChipText("Agente")
|
.setFilterChipText("Agente")
|
||||||
.setFilterLayoutView(new FilterAgenteLayoutView()));
|
.setFilterLayoutView(new FilterAgenteLayoutView()));
|
||||||
|
|
||||||
put(TERM_CONS_FILTER_ID, new FilterChipDTO()
|
put(TERM_CONS_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(TERM_CONS_FILTER_ID)
|
.setID(TERM_CONS_FILTER_ID)
|
||||||
|
.setPosizione(5)
|
||||||
.setFilterChipText("Termini consegna")
|
.setFilterChipText("Termini consegna")
|
||||||
.setFilterLayoutView(new FilterTermConsLayoutView()));
|
.setFilterLayoutView(new FilterTermConsLayoutView()));
|
||||||
|
|
||||||
put(DATA_CONS_FILTER_ID, new FilterChipDTO()
|
put(DATA_CONS_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(DATA_CONS_FILTER_ID)
|
.setID(DATA_CONS_FILTER_ID)
|
||||||
|
.setPosizione(3)
|
||||||
.setFilterChipText("Data consegna"));
|
.setFilterChipText("Data consegna"));
|
||||||
|
|
||||||
put(GRUPPO_MERC_FILTER_ID, new FilterChipDTO()
|
put(GRUPPO_MERC_FILTER_ID, new FilterChipDTO()
|
||||||
.setID(GRUPPO_MERC_FILTER_ID)
|
.setID(GRUPPO_MERC_FILTER_ID)
|
||||||
|
.setPosizione(7)
|
||||||
.setFilterChipText("Gruppo merceologico")
|
.setFilterChipText("Gruppo merceologico")
|
||||||
.setFilterLayoutView(new FilterGruppoMercLayoutView()));
|
.setFilterLayoutView(new FilterGruppoMercLayoutView()));
|
||||||
}};
|
}};
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import com.google.android.material.datepicker.MaterialDatePicker;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -84,6 +85,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
@Inject
|
@Inject
|
||||||
OrdiniUscitaElencoViewModel mViewModel;
|
OrdiniUscitaElencoViewModel mViewModel;
|
||||||
|
|
||||||
|
private final VenditaFiltroOrdiniViewModel mAppliedFilterViewModel = new VenditaFiltroOrdiniViewModel();
|
||||||
|
|
||||||
private FragmentMainOrdiniUscitaBinding mBindings = null;
|
private FragmentMainOrdiniUscitaBinding mBindings = null;
|
||||||
|
|
||||||
private final ObservableArrayList<OrdiniUscitaElencoListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
|
private final ObservableArrayList<OrdiniUscitaElencoListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
|
||||||
@@ -188,6 +191,8 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
this.initMtbGrupsCache(this::onLoadingEnded);
|
this.initMtbGrupsCache(this::onLoadingEnded);
|
||||||
|
|
||||||
|
mAppliedFilterViewModel.init(mViewModel.getOrderList().getValue());
|
||||||
|
|
||||||
this.refreshList(null);
|
this.refreshList(null);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -257,14 +262,16 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
mAppliedFilterViewModel.getCurrentDataConsPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
mAppliedFilterViewModel.getCurrentDataConsPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
||||||
mAppliedFilterViewModel.getCurrentGruppoMercPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
mAppliedFilterViewModel.getCurrentGruppoMercPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
||||||
|
|
||||||
for (var filterChipDTO : OrdiniUscitaElencoBindings.AVAILABLE_FILTERS.entrySet()) {
|
List<FilterChipDTO> filterList = Stream.of(OrdiniUscitaElencoBindings.AVAILABLE_FILTERS.entrySet()).map(Map.Entry::getValue).sortBy(FilterChipDTO::getPosizione).toList();
|
||||||
|
|
||||||
|
for (FilterChipDTO filterChipDTO : filterList){
|
||||||
|
|
||||||
FilterChipView filterChipView = new FilterChipView(
|
FilterChipView filterChipView = new FilterChipView(
|
||||||
requireActivity(),
|
requireActivity(),
|
||||||
filterChipDTO.getValue().getFilterChipText(),
|
filterChipDTO.getFilterChipText(),
|
||||||
v -> initBottomSheetDialogFilter(filterChipDTO.getValue()));
|
v -> initBottomSheetDialogFilter(filterChipDTO));
|
||||||
|
|
||||||
switch (filterChipDTO.getKey()) {
|
switch (filterChipDTO.getID()) {
|
||||||
case OrdiniUscitaElencoBindings.DEPOSITO_FILTER_ID:
|
case OrdiniUscitaElencoBindings.DEPOSITO_FILTER_ID:
|
||||||
mAppliedFilterViewModel.getCurrentDepositoPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
|
mAppliedFilterViewModel.getCurrentDepositoPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
|
||||||
@Override
|
@Override
|
||||||
@@ -696,7 +703,6 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
if (filteredList != null) {
|
if (filteredList != null) {
|
||||||
tmpList = filteredList;
|
tmpList = filteredList;
|
||||||
} else if (mAppliedFilterViewModel != null) {
|
} else if (mAppliedFilterViewModel != null) {
|
||||||
mAppliedFilterViewModel.init(mViewModel.getOrderList().getValue());
|
|
||||||
mAppliedFilterViewModel.applyAllTests();
|
mAppliedFilterViewModel.applyAllTests();
|
||||||
tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue();
|
tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue();
|
||||||
} else {
|
} else {
|
||||||
@@ -825,22 +831,6 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private final VenditaFiltroOrdiniViewModel mAppliedFilterViewModel = new VenditaFiltroOrdiniViewModel();
|
|
||||||
|
|
||||||
// @Override
|
|
||||||
// public void onFilterClick() {
|
|
||||||
// DialogVenditaFiltroAvanzatoView.make(
|
|
||||||
// getActivity(),
|
|
||||||
// this.mViewModel.getOrderList().getValue(),
|
|
||||||
// mAppliedFilterViewModel,
|
|
||||||
//
|
|
||||||
// filter -> {
|
|
||||||
//
|
|
||||||
// mAppliedFilterViewModel = filter;
|
|
||||||
// refreshList(null);
|
|
||||||
//
|
|
||||||
// }).show();
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addOnPreDestroy(Runnable onPreDestroy) {
|
public void addOnPreDestroy(Runnable onPreDestroy) {
|
||||||
|
|||||||
@@ -73,10 +73,18 @@ public class FilterAgenteLayoutView extends FilterLayoutView {
|
|||||||
|
|
||||||
listModel.setValue(Stream.of(getAllAgenti())
|
listModel.setValue(Stream.of(getAllAgenti())
|
||||||
.filter(x -> !hiddenAgenti.contains(x))
|
.filter(x -> !hiddenAgenti.contains(x))
|
||||||
.map(x -> new ListModel()
|
.map(x -> {
|
||||||
.setSelected(new BindableBoolean(preSelectedAgenti.contains(x)))
|
var selectedBoolean = new BindableBoolean(preSelectedAgenti.contains(x));
|
||||||
.setEnabled(new BindableBoolean(availableAgenti.contains(x)))
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
.setOriginalModel(x))
|
if (selectedBoolean.get()) preSelectedAgenti.add(x);
|
||||||
|
else preSelectedAgenti.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(selectedBoolean)
|
||||||
|
.setEnabled(new BindableBoolean(availableAgenti.contains(x)))
|
||||||
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
.sorted(c)
|
.sorted(c)
|
||||||
.toList());
|
.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,10 +72,18 @@ public class FilterAutomezzoLayoutView extends FilterLayoutView {
|
|||||||
|
|
||||||
listModel.setValue(Stream.of(getAllAutomezzi())
|
listModel.setValue(Stream.of(getAllAutomezzi())
|
||||||
.filter(x -> !hiddenAutomezzi.contains(x))
|
.filter(x -> !hiddenAutomezzi.contains(x))
|
||||||
.map(x -> new ListModel()
|
.map(x -> {
|
||||||
.setSelected(new BindableBoolean(preSelectedAutomezzi.contains(x)))
|
var selectedBoolean = new BindableBoolean(preSelectedAutomezzi.contains(x));
|
||||||
.setEnabled(new BindableBoolean(availableAutomezzi.contains(x)))
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
.setOriginalModel(x))
|
if (selectedBoolean.get()) preSelectedAutomezzi.add(x);
|
||||||
|
else preSelectedAutomezzi.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(selectedBoolean)
|
||||||
|
.setEnabled(new BindableBoolean(availableAutomezzi.contains(x)))
|
||||||
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
.sorted(c)
|
.sorted(c)
|
||||||
.toList());
|
.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,10 +72,18 @@ public class FilterClienteLayoutView extends FilterLayoutView {
|
|||||||
|
|
||||||
listModel.setValue(Stream.of(getAllClienti())
|
listModel.setValue(Stream.of(getAllClienti())
|
||||||
.filter(x -> !hiddenClienti.contains(x))
|
.filter(x -> !hiddenClienti.contains(x))
|
||||||
.map(x -> new ListModel()
|
.map(x -> {
|
||||||
.setSelected(new BindableBoolean(preSelectedClienti.contains(x)))
|
var selectedBoolean = new BindableBoolean(preSelectedClienti.contains(x));
|
||||||
.setEnabled(new BindableBoolean(availableClienti.contains(x)))
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
.setOriginalModel(x))
|
if (selectedBoolean.get()) preSelectedClienti.add(x);
|
||||||
|
else preSelectedClienti.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(selectedBoolean)
|
||||||
|
.setEnabled(new BindableBoolean(availableClienti.contains(x)))
|
||||||
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
.sorted(c)
|
.sorted(c)
|
||||||
.toList());
|
.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,10 +88,18 @@ public class FilterDepositoLayoutView extends FilterLayoutView {
|
|||||||
|
|
||||||
listModel.setValue(Stream.of(getAllCodMdeps())
|
listModel.setValue(Stream.of(getAllCodMdeps())
|
||||||
.filter(x -> !hiddenDepos.contains(x))
|
.filter(x -> !hiddenDepos.contains(x))
|
||||||
.map(x -> new ListModel()
|
.map(x -> {
|
||||||
.setSelected(new BindableBoolean(preSelectedCodMdeps.contains(x)))
|
var selectedBoolean = new BindableBoolean(preSelectedCodMdeps.contains(x));
|
||||||
.setEnabled(new BindableBoolean(availableCodMdeps.contains(x)))
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
.setOriginalModel(x))
|
if (selectedBoolean.get()) preSelectedCodMdeps.add(x);
|
||||||
|
else preSelectedCodMdeps.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(selectedBoolean)
|
||||||
|
.setEnabled(new BindableBoolean(availableCodMdeps.contains(x)))
|
||||||
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
.sorted(c)
|
.sorted(c)
|
||||||
.toList());
|
.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,10 +76,18 @@ public class FilterGruppoMercLayoutView extends FilterLayoutView {
|
|||||||
|
|
||||||
listModel.setValue(Stream.of(getAllGroupMerc())
|
listModel.setValue(Stream.of(getAllGroupMerc())
|
||||||
.filter(x -> !hiddenGroupMerc.contains(x))
|
.filter(x -> !hiddenGroupMerc.contains(x))
|
||||||
.map(x -> new ListModel()
|
.map(x -> {
|
||||||
.setSelected(new BindableBoolean(preSelectedGroupMerc.contains(x)))
|
var selectedBoolean = new BindableBoolean(preSelectedGroupMerc.contains(x));
|
||||||
.setEnabled(new BindableBoolean(availableGroupMerc.contains(x)))
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
.setOriginalModel(x))
|
if (selectedBoolean.get()) preSelectedGroupMerc.add(x);
|
||||||
|
else preSelectedGroupMerc.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(new BindableBoolean(preSelectedGroupMerc.contains(x)))
|
||||||
|
.setEnabled(new BindableBoolean(availableGroupMerc.contains(x)))
|
||||||
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
.sorted(c)
|
.sorted(c)
|
||||||
.toList());
|
.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,10 +73,18 @@ public class FilterNumeroOrdineLayoutView extends FilterLayoutView {
|
|||||||
|
|
||||||
listModel.setValue(Stream.of(getAllNumOrds())
|
listModel.setValue(Stream.of(getAllNumOrds())
|
||||||
.filter(x -> !hiddenNumOrds.contains(x))
|
.filter(x -> !hiddenNumOrds.contains(x))
|
||||||
.map(x -> new ListModel()
|
.map(x -> {
|
||||||
.setSelected(new BindableBoolean(preSelectedNumOrds.contains(x)))
|
var selectedBoolean = new BindableBoolean(preSelectedNumOrds.contains(x));
|
||||||
.setEnabled(new BindableBoolean(availableNumOrds.contains(x)))
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
.setOriginalModel(x))
|
if(selectedBoolean.get()) preSelectedNumOrds.add(x);
|
||||||
|
else preSelectedNumOrds.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(selectedBoolean)
|
||||||
|
.setEnabled(new BindableBoolean(availableNumOrds.contains(x)))
|
||||||
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
.sorted(c)
|
.sorted(c)
|
||||||
.toList());
|
.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,10 +73,18 @@ public class FilterPaeseLayoutView extends FilterLayoutView {
|
|||||||
|
|
||||||
listModel.setValue(Stream.of(getAllPaesi())
|
listModel.setValue(Stream.of(getAllPaesi())
|
||||||
.filter(x -> !hiddenPaesi.contains(x))
|
.filter(x -> !hiddenPaesi.contains(x))
|
||||||
.map(x -> new ListModel()
|
.map(x -> {
|
||||||
.setSelected(new BindableBoolean(preSelectedPaesi.contains(x)))
|
var selectedBoolean = new BindableBoolean(preSelectedPaesi.contains(x));
|
||||||
.setEnabled(new BindableBoolean(availablePaesi.contains(x)))
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
.setOriginalModel(x))
|
if (selectedBoolean.get()) preSelectedPaesi.add(x);
|
||||||
|
else preSelectedPaesi.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(selectedBoolean)
|
||||||
|
.setEnabled(new BindableBoolean(availablePaesi.contains(x)))
|
||||||
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
.sorted(c)
|
.sorted(c)
|
||||||
.toList());
|
.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,10 +73,18 @@ public class FilterTermConsLayoutView extends FilterLayoutView {
|
|||||||
|
|
||||||
listModel.setValue(Stream.of(getAllTermCons())
|
listModel.setValue(Stream.of(getAllTermCons())
|
||||||
.filter(x -> !hiddenSelectedTermCons.contains(x))
|
.filter(x -> !hiddenSelectedTermCons.contains(x))
|
||||||
.map(x -> new ListModel()
|
.map(x -> {
|
||||||
.setSelected(new BindableBoolean(preSelectedTermCons.contains(x)))
|
var selectedBoolean = new BindableBoolean(preSelectedTermCons.contains(x));
|
||||||
.setEnabled(new BindableBoolean(availableTermCons.contains(x)))
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
.setOriginalModel(x))
|
if (selectedBoolean.get()) preSelectedTermCons.add(x);
|
||||||
|
else preSelectedTermCons.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(selectedBoolean)
|
||||||
|
.setEnabled(new BindableBoolean(availableTermCons.contains(x)))
|
||||||
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
.sorted(c)
|
.sorted(c)
|
||||||
.toList());
|
.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,10 +74,18 @@ public class FilterVettoreLayoutView extends FilterLayoutView {
|
|||||||
|
|
||||||
listModel.setValue(Stream.of(getAllVettori())
|
listModel.setValue(Stream.of(getAllVettori())
|
||||||
.filter(x -> !hiddenSelectedVettori.contains(x))
|
.filter(x -> !hiddenSelectedVettori.contains(x))
|
||||||
.map(x -> new ListModel()
|
.map(x -> {
|
||||||
.setSelected(new BindableBoolean(preSelectedVettori.contains(x)))
|
var selectedBoolean = new BindableBoolean(preSelectedVettori.contains(x));
|
||||||
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
|
if (selectedBoolean.get()) preSelectedVettori.add(x);
|
||||||
|
else preSelectedVettori.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(selectedBoolean)
|
||||||
.setEnabled(new BindableBoolean(availableVettori.contains(x)))
|
.setEnabled(new BindableBoolean(availableVettori.contains(x)))
|
||||||
.setOriginalModel(x))
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
.sorted(c)
|
.sorted(c)
|
||||||
.toList());
|
.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,10 +73,18 @@ public class FilterViaggioLayoutView extends FilterLayoutView {
|
|||||||
|
|
||||||
listModel.setValue(Stream.of(getAllIDViaggio())
|
listModel.setValue(Stream.of(getAllIDViaggio())
|
||||||
.filter(x -> !hiddenIDViaggio.contains(x))
|
.filter(x -> !hiddenIDViaggio.contains(x))
|
||||||
.map(x -> new ListModel()
|
.map(x -> {
|
||||||
.setSelected(new BindableBoolean(preSelectedIDViaggio.contains(x)))
|
var selectedBoolean = new BindableBoolean(preSelectedIDViaggio.contains(x));
|
||||||
.setEnabled(new BindableBoolean(availableIDViaggio.contains(x)))
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
.setOriginalModel(x))
|
if (selectedBoolean.get()) preSelectedIDViaggio.add(x);
|
||||||
|
else preSelectedIDViaggio.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(selectedBoolean)
|
||||||
|
.setEnabled(new BindableBoolean(availableIDViaggio.contains(x)))
|
||||||
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
.sorted(c)
|
.sorted(c)
|
||||||
.toList());
|
.toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public class OrdiniUscitaElencoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<DtbOrdt>>> call, Response<ServiceRESTResponse<List<DtbOrdt>>> response) {
|
public void onResponse(Call<ServiceRESTResponse<List<DtbOrdt>>> call, Response<ServiceRESTResponse<List<DtbOrdt>>> response) {
|
||||||
analyzeAnswer(response, "getOrdiniFromCommessaCollo", (m) -> {
|
analyzeAnswer(response, "getOrdiniFromCommessaCollo", (m) -> {
|
||||||
onComplete.run(response.body().getEntity());
|
onComplete.run(response.body().getDto());
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterNumeroOrdineLayoutView;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.filters.FilterCommessaLayoutView;
|
||||||
|
import it.integry.integrywmsnative.ui.filter_chips.FilterChipDTO;
|
||||||
|
|
||||||
|
public class ProdOrdineProduzioneElencoBindings {
|
||||||
|
|
||||||
|
public static final int NUM_ORD_FILTER_ID = 0;
|
||||||
|
public static final int COMMESSA_FILTER_ID = 1;
|
||||||
|
|
||||||
|
public static final HashMap<Integer, FilterChipDTO> AVAILABLE_FILTERS = new HashMap<>() {{
|
||||||
|
|
||||||
|
put(NUM_ORD_FILTER_ID, new FilterChipDTO()
|
||||||
|
.setID(NUM_ORD_FILTER_ID)
|
||||||
|
.setFilterChipText("Numero ordine")
|
||||||
|
.setFilterLayoutView(new FilterNumeroOrdineLayoutView()));
|
||||||
|
|
||||||
|
put(COMMESSA_FILTER_ID, new FilterChipDTO()
|
||||||
|
.setID(COMMESSA_FILTER_ID)
|
||||||
|
.setFilterChipText("Commessa")
|
||||||
|
.setFilterLayoutView(new FilterCommessaLayoutView()));
|
||||||
|
|
||||||
|
}};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -19,6 +19,7 @@ import com.annimon.stream.Stream;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -27,9 +28,11 @@ import it.integry.integrywmsnative.R;
|
|||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
import it.integry.integrywmsnative.core.expansion.OnGeneralChangedCallback;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
|
import it.integry.integrywmsnative.core.model.JtbComt;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.CommessaRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
@@ -37,31 +40,38 @@ import it.integry.integrywmsnative.databinding.FragmentProdOrdineProduzioneElenc
|
|||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingActivity;
|
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingActivity;
|
||||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzatoView;
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterNumeroOrdineLayoutView;
|
||||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzatoViewModel;
|
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.filters.FilterCommessaLayoutView;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.filters.OrdineProduzioneFilterViewModel;
|
||||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ui.MainListProdOrdineProduzioneElencoClienteListModel;
|
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ui.MainListProdOrdineProduzioneElencoClienteListModel;
|
||||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ui.MainListProdOrdineProduzioneElencoListModel;
|
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ui.MainListProdOrdineProduzioneElencoListModel;
|
||||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ui.OrdineProduzioneListAdapter;
|
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ui.OrdineProduzioneListAdapter;
|
||||||
|
import it.integry.integrywmsnative.ui.filter_chips.FilterChipDTO;
|
||||||
|
import it.integry.integrywmsnative.ui.filter_chips.FilterChipView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A simple {@link Fragment} subclass.
|
* A simple {@link Fragment} subclass.
|
||||||
*/
|
*/
|
||||||
public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements ProdOrdineProduzioneElencoViewModel.Listener, ITitledFragment, IScrollableFragment, IFilterableFragment {
|
public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements ProdOrdineProduzioneElencoViewModel.Listener, ITitledFragment, IScrollableFragment {
|
||||||
|
|
||||||
public BindableBoolean fabVisible = new BindableBoolean(false);
|
public BindableBoolean fabVisible = new BindableBoolean(false);
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ProdOrdineProduzioneElencoViewModel mViewModel;
|
ProdOrdineProduzioneElencoViewModel mViewModel;
|
||||||
|
|
||||||
private FragmentProdOrdineProduzioneElencoBinding mBinding;
|
@Inject
|
||||||
|
CommessaRESTConsumer mCommessaRESTConsumer;
|
||||||
|
|
||||||
|
private FragmentProdOrdineProduzioneElencoBinding mBindings;
|
||||||
|
|
||||||
private final ObservableArrayList<MainListProdOrdineProduzioneElencoListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
|
private final ObservableArrayList<MainListProdOrdineProduzioneElencoListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
|
||||||
|
|
||||||
private AppCompatTextView mAppBarTitle;
|
private AppCompatTextView mAppBarTitle;
|
||||||
|
|
||||||
private DialogOrdineProduzioneFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
// private DialogOrdineProduzioneFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
||||||
|
private OrdineProduzioneFilterViewModel mFilterViewModel = new OrdineProduzioneFilterViewModel();
|
||||||
|
private List<JtbComt> jtbComtCache;
|
||||||
|
|
||||||
public ProdOrdineProduzioneElencoFragment() {
|
public ProdOrdineProduzioneElencoFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
@@ -84,7 +94,7 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
|
|||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_ordine_produzione_elenco, container, false);
|
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_ordine_produzione_elenco, container, false);
|
||||||
|
|
||||||
MainApplication.appComponent
|
MainApplication.appComponent
|
||||||
.prodOrdineProduzioneElencoComponent()
|
.prodOrdineProduzioneElencoComponent()
|
||||||
@@ -93,12 +103,13 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
|
|||||||
|
|
||||||
mViewModel.setListener(this);
|
mViewModel.setListener(this);
|
||||||
|
|
||||||
mBinding.setLifecycleOwner(this);
|
mBindings.setLifecycleOwner(this);
|
||||||
mBinding.setView(this);
|
mBindings.setView(this);
|
||||||
|
|
||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
|
this.initFilters();
|
||||||
|
|
||||||
return mBinding.getRoot();
|
return mBindings.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -119,9 +130,16 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initRecyclerView() {
|
private void initRecyclerView() {
|
||||||
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), this::refreshList);
|
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), v -> {
|
||||||
|
this.onLoadingStarted();
|
||||||
|
this.initJtbComtCache(this::onLoadingEnded);
|
||||||
|
|
||||||
mBinding.ordineProduzioneMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
mFilterViewModel.init(mViewModel.getOrderList().getValue());
|
||||||
|
|
||||||
|
this.refreshList(null);
|
||||||
|
});
|
||||||
|
|
||||||
|
mBindings.ordineProduzioneMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
|
|
||||||
OrdineProduzioneListAdapter adapter = new OrdineProduzioneListAdapter(getActivity(), mOrdiniInevasiMutableData)
|
OrdineProduzioneListAdapter adapter = new OrdineProduzioneListAdapter(getActivity(), mOrdiniInevasiMutableData)
|
||||||
.setOnGroupItemClicked(x -> {
|
.setOnGroupItemClicked(x -> {
|
||||||
@@ -146,23 +164,129 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
|
|||||||
.anyMatch(y -> y.getSelectedObservable().get()));
|
.anyMatch(y -> y.getSelectedObservable().get()));
|
||||||
});
|
});
|
||||||
|
|
||||||
adapter.setEmptyView(mBinding.ordiniProduzioneEmptyView);
|
adapter.setEmptyView(mBindings.ordiniProduzioneEmptyView);
|
||||||
|
|
||||||
mBinding.ordineProduzioneMainList.setAdapter(adapter);
|
mBindings.ordineProduzioneMainList.setAdapter(adapter);
|
||||||
|
|
||||||
|
// mToolbar.setRecyclerView(mBindings.ordineProduzioneMainList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initFilters() {
|
||||||
|
var onPredicateChanged = new OnGeneralChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
refreshList(null);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
mFilterViewModel.getCurrentNumOrdsPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
||||||
|
mFilterViewModel.getCurrentCommPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
||||||
|
|
||||||
|
|
||||||
|
for (var filterChipDTO : ProdOrdineProduzioneElencoBindings.AVAILABLE_FILTERS.entrySet()) {
|
||||||
|
|
||||||
|
FilterChipView filterChipView = new FilterChipView(
|
||||||
|
requireActivity(),
|
||||||
|
filterChipDTO.getValue().getFilterChipText(),
|
||||||
|
v -> initBottomSheetDialogFilter(filterChipDTO.getValue()));
|
||||||
|
|
||||||
|
switch (filterChipDTO.getKey()) {
|
||||||
|
case ProdOrdineProduzioneElencoBindings.COMMESSA_FILTER_ID:
|
||||||
|
mFilterViewModel.getCurrentCommPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if (mFilterViewModel.getCurrentCommPredicate().get() == null) {
|
||||||
|
filterChipView.disableCloseIcon();
|
||||||
|
|
||||||
|
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||||
|
mBindings.filterChipsGroup.addView(filterChipView);
|
||||||
|
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||||
|
} else {
|
||||||
|
filterChipView.enableCloseIcon();
|
||||||
|
|
||||||
|
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||||
|
mBindings.filterChipsGroup.addView(filterChipView, 0);
|
||||||
|
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
filterChipView.setOnResetClicked(() -> mFilterViewModel.getCurrentCommPredicate().set(null));
|
||||||
|
break;
|
||||||
|
case ProdOrdineProduzioneElencoBindings.NUM_ORD_FILTER_ID:
|
||||||
|
mFilterViewModel.getCurrentNumOrdsPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if (mFilterViewModel.getCurrentNumOrdsPredicate().get() == null) {
|
||||||
|
filterChipView.disableCloseIcon();
|
||||||
|
|
||||||
|
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||||
|
mBindings.filterChipsGroup.addView(filterChipView);
|
||||||
|
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||||
|
} else {
|
||||||
|
filterChipView.enableCloseIcon();
|
||||||
|
|
||||||
|
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||||
|
mBindings.filterChipsGroup.addView(filterChipView, 0);
|
||||||
|
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
filterChipView.setOnResetClicked(() -> mFilterViewModel.getCurrentNumOrdsPredicate().set(null));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
this.mBindings.filterChipsGroup.addView(filterChipView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initBottomSheetDialogFilter(FilterChipDTO filterChipDTO) {
|
||||||
|
filterChipDTO
|
||||||
|
.getFilterLayoutView()
|
||||||
|
.setFilterName(filterChipDTO.getFilterChipText())
|
||||||
|
.setContext(requireActivity());
|
||||||
|
|
||||||
|
var filterLayoutView = filterChipDTO
|
||||||
|
.getFilterLayoutView();
|
||||||
|
|
||||||
|
switch (filterChipDTO.getID()) {
|
||||||
|
case ProdOrdineProduzioneElencoBindings.COMMESSA_FILTER_ID:
|
||||||
|
((FilterCommessaLayoutView) filterLayoutView)
|
||||||
|
.setAllCommesse(mFilterViewModel.getAllCommesse(jtbComtCache))
|
||||||
|
.setAvailableCommesse(mFilterViewModel.getAvailableCommesse(jtbComtCache))
|
||||||
|
.setOnFilterApplied(mFilterViewModel::setCommessaFilter)
|
||||||
|
.setPreSelectedCommesse(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
|
||||||
|
.filter(mFilterViewModel.getCurrentCommPredicate().get() == null ?
|
||||||
|
x -> false :
|
||||||
|
mFilterViewModel.getCurrentCommPredicate().get())
|
||||||
|
.map(x -> Stream.of(jtbComtCache).filter(y -> x.getCodJcom().equalsIgnoreCase(y.getCodJcom())).findFirst().get())
|
||||||
|
.toList());
|
||||||
|
break;
|
||||||
|
case ProdOrdineProduzioneElencoBindings.NUM_ORD_FILTER_ID:
|
||||||
|
((FilterNumeroOrdineLayoutView) filterLayoutView)
|
||||||
|
.setAllNumOrds(mFilterViewModel.getAllNumOrds())
|
||||||
|
.setAvailableNumOrds(mFilterViewModel.getAvailableNumOrds())
|
||||||
|
.setOnFilterApplied(mFilterViewModel::setNumOrdFilter)
|
||||||
|
.setPreSelectedNumOrds(Stream.of(Objects.requireNonNull(mViewModel.getOrderList().getValue()))
|
||||||
|
.filter(mFilterViewModel.getCurrentNumOrdsPredicate().get() == null ?
|
||||||
|
x -> false :
|
||||||
|
mFilterViewModel.getCurrentNumOrdsPredicate().get())
|
||||||
|
.map(OrdineAccettazioneInevasoDTO::getNumero)
|
||||||
|
.toList());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
filterLayoutView.show(requireActivity().getSupportFragmentManager(), "TAG");
|
||||||
|
|
||||||
mToolbar.setRecyclerView(mBinding.ordineProduzioneMainList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshList(List<OrdineAccettazioneInevasoDTO> filteredList) {
|
private void refreshList(List<OrdineAccettazioneInevasoDTO> filteredList) {
|
||||||
|
|
||||||
List<OrdineAccettazioneInevasoDTO> tmpList = null;
|
List<OrdineAccettazioneInevasoDTO> tmpList = null;
|
||||||
|
|
||||||
if(filteredList != null) {
|
if (filteredList != null) {
|
||||||
tmpList = filteredList;
|
tmpList = filteredList;
|
||||||
} else if (mAppliedFilterViewModel != null) {
|
} else if (mFilterViewModel != null) {
|
||||||
mAppliedFilterViewModel.init(mViewModel.getOrderList().getValue());
|
mFilterViewModel.applyAllTests();
|
||||||
mAppliedFilterViewModel.applyAllTests();
|
tmpList = mFilterViewModel.getMutableFilteredOrderList().getValue();
|
||||||
tmpList = mAppliedFilterViewModel.getMutableFilteredOrderList().getValue();
|
|
||||||
} else {
|
} else {
|
||||||
tmpList = mViewModel.getOrderList().getValue();
|
tmpList = mViewModel.getOrderList().getValue();
|
||||||
}
|
}
|
||||||
@@ -210,20 +334,20 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
|
|||||||
this.mViewModel.loadPicking(selectedOrders);
|
this.mViewModel.loadPicking(selectedOrders);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
// @Override
|
||||||
public void onFilterClick() {
|
// public void onFilterClick() {
|
||||||
DialogOrdineProduzioneFiltroAvanzatoView.make(
|
// DialogOrdineProduzioneFiltroAvanzatoView.make(
|
||||||
getActivity(),
|
// getActivity(),
|
||||||
this.mViewModel.getOrderList().getValue(),
|
// this.mViewModel.getOrderList().getValue(),
|
||||||
mAppliedFilterViewModel,
|
// mAppliedFilterViewModel,
|
||||||
|
//
|
||||||
filter -> {
|
// filter -> {
|
||||||
|
//
|
||||||
mAppliedFilterViewModel = filter;
|
// mAppliedFilterViewModel = filter;
|
||||||
refreshList(null);
|
// refreshList(null);
|
||||||
|
//
|
||||||
}).show();
|
// }).show();
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -256,4 +380,18 @@ public class ProdOrdineProduzioneElencoFragment extends BaseFragment implements
|
|||||||
|
|
||||||
}).show(getActivity().getSupportFragmentManager(), "tag");
|
}).show(getActivity().getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void initJtbComtCache(Runnable onComplete) {
|
||||||
|
var jtbComts = Stream.of(Objects.requireNonNull(this.mViewModel.getOrderList().getValue()))
|
||||||
|
.flatMap(x -> Stream.of(x.getCodJcom()))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
this.mCommessaRESTConsumer.getJtbComts(jtbComts, jtbComtCache -> {
|
||||||
|
this.jtbComtCache = jtbComtCache;
|
||||||
|
onComplete.run();
|
||||||
|
}, this::onError);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,175 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.filters;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import com.annimon.stream.ComparatorCompat;
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.BR;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.JtbComt;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBoolean;
|
||||||
|
import it.integry.integrywmsnative.databinding.LayoutFilterCommessaBinding;
|
||||||
|
import it.integry.integrywmsnative.ui.filter_chips.FilterLayoutView;
|
||||||
|
|
||||||
|
public class FilterCommessaLayoutView extends FilterLayoutView {
|
||||||
|
|
||||||
|
protected LayoutFilterCommessaBinding mBindings;
|
||||||
|
|
||||||
|
private List<JtbComt> allCommesse;
|
||||||
|
private List<JtbComt> availableCommesse;
|
||||||
|
private List<JtbComt> preSelectedCommesse = new ArrayList<>();
|
||||||
|
private List<JtbComt> hiddenCommesse = new ArrayList<>();
|
||||||
|
private final MutableLiveData<List<ListModel>> listModel = new MutableLiveData<>();
|
||||||
|
|
||||||
|
private RunnableArgs<List<JtbComt>> onFilterApplied;
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
|
mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_commessa, container, false);
|
||||||
|
this.mBindings.setView(this);
|
||||||
|
|
||||||
|
refreshList();
|
||||||
|
|
||||||
|
this.setSearchView(this.mBindings.searchView, newFilter -> {
|
||||||
|
hiddenCommesse = Stream.of(allCommesse)
|
||||||
|
.filter(x -> !x.getCodJcom().toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT)) &&
|
||||||
|
!x.getDescrizione().toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT)))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
refreshList();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item)
|
||||||
|
.map(ListModel.class, R.layout.layout_filter_commessa__list_item)
|
||||||
|
.into(this.mBindings.recyclerview);
|
||||||
|
|
||||||
|
return mBindings.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshList() {
|
||||||
|
ComparatorCompat<ListModel> c =
|
||||||
|
ComparatorCompat
|
||||||
|
.chain(new ComparatorCompat<ListModel>((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get())))
|
||||||
|
.thenComparing(new ComparatorCompat<>((x, y) -> UtilityBoolean.toInt(x.getEnabled().get()) - UtilityBoolean.toInt(y.getEnabled().get())))
|
||||||
|
.thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().getCodJcom().compareTo(x.getOriginalModel().getCodJcom())))
|
||||||
|
.reversed();
|
||||||
|
|
||||||
|
listModel.setValue(Stream.of(getAllCommesse())
|
||||||
|
.filter(x -> !hiddenCommesse.contains(x))
|
||||||
|
.map(x -> {
|
||||||
|
var selectedBoolean = new BindableBoolean(preSelectedCommesse.contains(x));
|
||||||
|
selectedBoolean.addOnPropertyChangedCallback(() -> {
|
||||||
|
if (selectedBoolean.get()) preSelectedCommesse.add(x);
|
||||||
|
else preSelectedCommesse.remove(x);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new ListModel()
|
||||||
|
.setSelected(selectedBoolean)
|
||||||
|
.setEnabled(new BindableBoolean(availableCommesse.contains(x)))
|
||||||
|
.setOriginalModel(x);
|
||||||
|
})
|
||||||
|
.sorted(c)
|
||||||
|
.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void onConfirm() {
|
||||||
|
if (onFilterApplied == null) return;
|
||||||
|
|
||||||
|
this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue()))
|
||||||
|
.filter(x -> x.selected.get())
|
||||||
|
.map(x -> x.originalModel)
|
||||||
|
.toList());
|
||||||
|
|
||||||
|
dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<JtbComt> getAllCommesse() {
|
||||||
|
return allCommesse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FilterCommessaLayoutView setAllCommesse(List<JtbComt> allCommesse) {
|
||||||
|
this.allCommesse = allCommesse;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<JtbComt> getAvailableCommesse() {
|
||||||
|
return availableCommesse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FilterCommessaLayoutView setAvailableCommesse(List<JtbComt> availableCommesse) {
|
||||||
|
this.availableCommesse = availableCommesse;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<JtbComt> getPreSelectedCommesse() {
|
||||||
|
return preSelectedCommesse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FilterCommessaLayoutView setPreSelectedCommesse(List<JtbComt> preSelectedCommesse) {
|
||||||
|
this.preSelectedCommesse = preSelectedCommesse;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RunnableArgs<List<JtbComt>> getOnFilterApplied() {
|
||||||
|
return onFilterApplied;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FilterCommessaLayoutView setOnFilterApplied(RunnableArgs<List<JtbComt>> onFilterApplied) {
|
||||||
|
this.onFilterApplied = onFilterApplied;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ListModel {
|
||||||
|
private BindableBoolean selected = new BindableBoolean();
|
||||||
|
private BindableBoolean enabled = new BindableBoolean();
|
||||||
|
private JtbComt originalModel;
|
||||||
|
|
||||||
|
public BindableBoolean getSelected() {
|
||||||
|
return selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListModel setSelected(BindableBoolean selected) {
|
||||||
|
this.selected = selected;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BindableBoolean getEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListModel setEnabled(BindableBoolean enabled) {
|
||||||
|
this.enabled = enabled;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JtbComt getOriginalModel() {
|
||||||
|
return originalModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListModel setOriginalModel(JtbComt originalModel) {
|
||||||
|
this.originalModel = originalModel;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.filters;
|
||||||
|
|
||||||
|
import androidx.databinding.ObservableField;
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
import com.annimon.stream.function.Predicate;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.JtbComt;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
|
|
||||||
|
public class OrdineProduzioneFilterViewModel {
|
||||||
|
private final ObservableField<Predicate<OrdineAccettazioneInevasoDTO>> currentNumOrdsPredicate = new ObservableField<>();
|
||||||
|
private final ObservableField<Predicate<OrdineAccettazioneInevasoDTO>> currentCommPredicate = new ObservableField<>();
|
||||||
|
|
||||||
|
|
||||||
|
private List<OrdineAccettazioneInevasoDTO> initialOrderList;
|
||||||
|
private final MutableLiveData<List<OrdineAccettazioneInevasoDTO>> currentFilteredOrderList = new MutableLiveData<>();
|
||||||
|
|
||||||
|
public void init(List<OrdineAccettazioneInevasoDTO> initialList) {
|
||||||
|
this.initialOrderList = initialList;
|
||||||
|
this.currentFilteredOrderList.setValue(this.initialOrderList);
|
||||||
|
}
|
||||||
|
public MutableLiveData<List<OrdineAccettazioneInevasoDTO>> getMutableFilteredOrderList() {
|
||||||
|
return this.currentFilteredOrderList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumOrdFilter(List<Integer> numOrds) {
|
||||||
|
if (numOrds == null || numOrds.isEmpty()) currentNumOrdsPredicate.set(null);
|
||||||
|
else {
|
||||||
|
currentNumOrdsPredicate.set(o -> numOrds.contains(o.getNumero()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCommessaFilter(List<JtbComt> jtbComtList) {
|
||||||
|
if (jtbComtList == null || jtbComtList.isEmpty()) currentCommPredicate.set(null);
|
||||||
|
else {
|
||||||
|
List<String> codMdeps = Stream.of(jtbComtList).map(JtbComt::getCodJcom).toList();
|
||||||
|
currentCommPredicate.set(o -> codMdeps.contains(o.getCodJcom()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void applyAllTests() {
|
||||||
|
List<OrdineAccettazioneInevasoDTO> returnList = null;
|
||||||
|
|
||||||
|
if (currentNumOrdsPredicate.get() == null &&
|
||||||
|
currentCommPredicate.get() == null
|
||||||
|
) {
|
||||||
|
returnList = this.initialOrderList;
|
||||||
|
} else {
|
||||||
|
Stream<OrdineAccettazioneInevasoDTO> tmpStream = Stream.of(this.initialOrderList)
|
||||||
|
.filter(x ->
|
||||||
|
(currentNumOrdsPredicate.get() == null || (currentNumOrdsPredicate.get().test(x))) &&
|
||||||
|
(currentCommPredicate.get() == null || (currentCommPredicate.get().test(x))));
|
||||||
|
|
||||||
|
returnList = tmpStream.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.currentFilteredOrderList.setValue(returnList);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ObservableField<Predicate<OrdineAccettazioneInevasoDTO>> getCurrentNumOrdsPredicate() {
|
||||||
|
return currentNumOrdsPredicate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ObservableField<Predicate<OrdineAccettazioneInevasoDTO>> getCurrentCommPredicate() {
|
||||||
|
return currentCommPredicate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<JtbComt> getAllCommesse(List<JtbComt> commesseFullList) {
|
||||||
|
List<String> codJcom = Stream.of(initialOrderList)
|
||||||
|
.map(OrdineAccettazioneInevasoDTO::getCodJcom)
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
return Stream.of(Objects.requireNonNull(commesseFullList))
|
||||||
|
.filter(x -> codJcom.contains(x.getCodJcom()))
|
||||||
|
.distinct()
|
||||||
|
.withoutNulls()
|
||||||
|
.sortBy(JtbComt::getCodJcom)
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<JtbComt> getAvailableCommesse(List<JtbComt> commesseFullList) {
|
||||||
|
|
||||||
|
if (currentNumOrdsPredicate.get() == null) {
|
||||||
|
return getAllCommesse(commesseFullList);
|
||||||
|
} else {
|
||||||
|
List<String> availableCodMdeps = Stream.of(this.initialOrderList)
|
||||||
|
.filter(x ->
|
||||||
|
(currentNumOrdsPredicate.get() == null || (currentNumOrdsPredicate.get().test(x)))
|
||||||
|
)
|
||||||
|
.map(OrdineAccettazioneInevasoDTO::getCodJcom)
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
return Stream.of(Objects.requireNonNull(commesseFullList))
|
||||||
|
.filter(x -> availableCodMdeps.contains(x.getCodJcom()))
|
||||||
|
.distinct()
|
||||||
|
.withoutNulls()
|
||||||
|
.sortBy(JtbComt::getCodJcom)
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Integer> getAllNumOrds() {
|
||||||
|
return Stream
|
||||||
|
.of(Objects.requireNonNull(initialOrderList))
|
||||||
|
.filter(x -> x.getNumero() != null)
|
||||||
|
.sortBy(x -> -x.getNumero())
|
||||||
|
.map(x -> x.getNumero() != null ? x.getNumero() : null)
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Integer> getAvailableNumOrds() {
|
||||||
|
|
||||||
|
if (currentCommPredicate.get() == null
|
||||||
|
) {
|
||||||
|
return getAllNumOrds();
|
||||||
|
} else {
|
||||||
|
return Stream.of(this.initialOrderList)
|
||||||
|
.filter(x ->
|
||||||
|
(currentCommPredicate.get() == null || (currentCommPredicate.get().test(x)))
|
||||||
|
)
|
||||||
|
.map(OrdineAccettazioneInevasoDTO::getNumero)
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package it.integry.integrywmsnative.ui.filter_chips;
|
|||||||
public class FilterChipDTO {
|
public class FilterChipDTO {
|
||||||
|
|
||||||
private int ID;
|
private int ID;
|
||||||
|
private int posizione;
|
||||||
private String filterChipText;
|
private String filterChipText;
|
||||||
private FilterLayoutView filterLayoutView;
|
private FilterLayoutView filterLayoutView;
|
||||||
|
|
||||||
@@ -32,4 +33,13 @@ public class FilterChipDTO {
|
|||||||
this.filterLayoutView = filterLayoutView;
|
this.filterLayoutView = filterLayoutView;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getPosizione() {
|
||||||
|
return posizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FilterChipDTO setPosizione(int posizione) {
|
||||||
|
this.posizione = posizione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,60 +37,12 @@
|
|||||||
|
|
||||||
<com.google.android.material.chip.ChipGroup
|
<com.google.android.material.chip.ChipGroup
|
||||||
android:id="@+id/filter_chips_group"
|
android:id="@+id/filter_chips_group"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="8dp"
|
android:paddingStart="8dp"
|
||||||
android:paddingEnd="8dp"
|
android:paddingEnd="8dp"
|
||||||
app:chipSpacing="8dp"
|
app:chipSpacing="8dp"
|
||||||
app:singleSelection="true">
|
app:singleSelection="true" />
|
||||||
|
|
||||||
<!-- <com.google.android.material.chip.Chip-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- app:chipBackgroundColor="@color/colorPrimary"-->
|
|
||||||
<!-- android:textColor="@android:color/white"-->
|
|
||||||
<!-- app:closeIconEnabled="true"-->
|
|
||||||
<!-- app:closeIconTint="@android:color/white"-->
|
|
||||||
<!-- app:chipCornerRadius="4dp"-->
|
|
||||||
<!-- android:text="Deposito" />-->
|
|
||||||
|
|
||||||
<!-- <com.google.android.material.chip.Chip-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- app:chipCornerRadius="4dp"-->
|
|
||||||
<!-- android:text="Numero" />-->
|
|
||||||
|
|
||||||
<!-- <com.google.android.material.chip.Chip-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- app:chipCornerRadius="4dp"-->
|
|
||||||
<!-- android:text="Viaggio" />-->
|
|
||||||
|
|
||||||
<!-- <com.google.android.material.chip.Chip-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- app:chipCornerRadius="4dp"-->
|
|
||||||
<!-- android:text="Cliente" />-->
|
|
||||||
|
|
||||||
<!-- <com.google.android.material.chip.Chip-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- app:chipCornerRadius="4dp"-->
|
|
||||||
<!-- android:text="Vettore" />-->
|
|
||||||
|
|
||||||
<!-- <com.google.android.material.chip.Chip-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- app:chipCornerRadius="4dp"-->
|
|
||||||
<!-- android:text="Automezzo" />-->
|
|
||||||
|
|
||||||
<!-- <com.google.android.material.chip.Chip-->
|
|
||||||
<!-- android:layout_width="wrap_content"-->
|
|
||||||
<!-- android:layout_height="wrap_content"-->
|
|
||||||
<!-- app:chipCornerRadius="4dp"-->
|
|
||||||
<!-- android:text="Paese" />-->
|
|
||||||
|
|
||||||
</com.google.android.material.chip.ChipGroup>
|
|
||||||
</HorizontalScrollView>
|
</HorizontalScrollView>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,11 +19,29 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<HorizontalScrollView
|
||||||
|
android:id="@+id/filter_chips"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:scrollbars="none"
|
||||||
|
android:background="@color/gray_050">
|
||||||
|
|
||||||
|
<com.google.android.material.chip.ChipGroup
|
||||||
|
android:id="@+id/filter_chips_group"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingStart="8dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
app:chipSpacing="8dp"
|
||||||
|
app:singleSelection="true" />
|
||||||
|
</HorizontalScrollView>
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/ordine_produzione_main_list"
|
android:id="@+id/ordine_produzione_main_list"
|
||||||
android:scrollbars="vertical"
|
android:scrollbars="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"/>
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@id/filter_chips"/>
|
||||||
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
|||||||
114
app/src/main/res/layout/layout_filter_commessa.xml
Normal file
114
app/src/main/res/layout/layout_filter_commessa.xml
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="dto"
|
||||||
|
type="it.integry.integrywmsnative.ui.filter_chips.FilterChipDTO" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="view"
|
||||||
|
type="it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.filters.FilterCommessaLayoutView" />
|
||||||
|
</data>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:layout_marginEnd="16dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:layout_toStartOf="@id/search_view"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:reverse_visibility="@{view.enabledSearch}">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/bottom_sheet_actions_title"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:paddingStart="0dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
android:text="@{view.filterName}"
|
||||||
|
android:textColor="#444"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="Nome filtro" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:paddingStart="0dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
android:text="Seleziona la commessa che vuoi filtrare"
|
||||||
|
android:textColor="#444" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.SearchView
|
||||||
|
android:id="@+id/search_view"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:backgroundTint="@android:color/white" />
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/title_layout">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/recyclerview"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:focusableInTouchMode="true"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHeight_max="270dp"
|
||||||
|
app:layout_constraintHeight_min="200dp"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/save_btn"
|
||||||
|
style="@style/Button.PrimaryFull"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:text="@string/confirm"
|
||||||
|
app:singleClick="@{() -> view.onConfirm()}" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</layout>
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||||
|
<import type="android.view.View" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="item"
|
||||||
|
type="it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.filters.FilterCommessaLayoutView.ListModel" />
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="8dp"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
android:clickable="@{item.enabled}"
|
||||||
|
android:onClick="@{() -> item.selected.toggle()}">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatCheckBox
|
||||||
|
android:id="@+id/checkbox"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
|
android:enabled="@{item.enabled}"
|
||||||
|
app:checked="@{item.selected}"
|
||||||
|
android:clickable="false"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:enabled="@{item.enabled}"
|
||||||
|
android:clickable="false">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:enabled="@{item.enabled}"
|
||||||
|
android:text="@{item.originalModel.codJcom}"
|
||||||
|
tools:text="01"
|
||||||
|
android:clickable="false" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text=" - "
|
||||||
|
android:enabled="@{item.enabled}"
|
||||||
|
android:visibility="@{UtilityString.isNullOrEmpty(item.originalModel.descrizione) ? View.GONE : View.VISIBLE}"
|
||||||
|
tools:text=" - "
|
||||||
|
android:clickable="false" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:enabled="@{item.enabled}"
|
||||||
|
android:text="@{item.originalModel.descrizione}"
|
||||||
|
android:visibility="@{UtilityString.isNullOrEmpty(item.originalModel.descrizione) ? View.GONE : View.VISIBLE}"
|
||||||
|
tools:text="Descrizione deposito"
|
||||||
|
android:clickable="false" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</layout>
|
||||||
@@ -7,7 +7,6 @@ public class CustomConfiguration extends BaseCustomConfiguration implements ICus
|
|||||||
|
|
||||||
public CustomConfiguration() {
|
public CustomConfiguration() {
|
||||||
configurations.put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, false);
|
configurations.put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, false);
|
||||||
configurations.put(Keys.MENU_CONFIGURATION, new MenuConfigurationVG());
|
|
||||||
configurations.put(Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC, true);
|
configurations.put(Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,70 +0,0 @@
|
|||||||
package it.integry.wms.dynamic_customization.extensions;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
|
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
|
||||||
|
|
||||||
public class MenuConfigurationVG extends BaseMenuConfiguration {
|
|
||||||
|
|
||||||
public MenuConfigurationVG() {
|
|
||||||
|
|
||||||
this
|
|
||||||
.addGroup(
|
|
||||||
new MenuGroup()
|
|
||||||
.setGroupText(it.integry.integrywmsnative.R.string.purchase)
|
|
||||||
.setGroupId(it.integry.integrywmsnative.R.id.nav_group_acquisto)
|
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
|
||||||
.setID(it.integry.integrywmsnative.R.id.nav_accettazione)
|
|
||||||
.setTitleText(it.integry.integrywmsnative.R.string.accettazione_title_fragment)
|
|
||||||
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_accettazione)
|
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_download)
|
|
||||||
.setFragmentFactory(MainAccettazioneFragment::newInstance))
|
|
||||||
).addGroup(
|
|
||||||
new MenuGroup()
|
|
||||||
.setGroupText(it.integry.integrywmsnative.R.string.checkout)
|
|
||||||
.setGroupId(it.integry.integrywmsnative.R.id.nav_group_spedizione)
|
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
|
||||||
.setID(it.integry.integrywmsnative.R.id.nav_spedizione)
|
|
||||||
.setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment)
|
|
||||||
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione)
|
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_upload)
|
|
||||||
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, null)))
|
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
|
||||||
.setID(it.integry.integrywmsnative.R.id.nav_free_picking)
|
|
||||||
.setTitleText(it.integry.integrywmsnative.R.string.free_picking)
|
|
||||||
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_picking_libero)
|
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_barcode_scanner)
|
|
||||||
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA)))
|
|
||||||
)
|
|
||||||
.addGroup(
|
|
||||||
new MenuGroup()
|
|
||||||
.setGroupText(it.integry.integrywmsnative.R.string.internal_handling)
|
|
||||||
.setGroupId(it.integry.integrywmsnative.R.id.nav_group_movimentazione_interna)
|
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
|
||||||
.setID(it.integry.integrywmsnative.R.id.nav_versamento_merce)
|
|
||||||
.setTitleText(it.integry.integrywmsnative.R.string.versamento_merce_fragment_title)
|
|
||||||
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_versamento_merce)
|
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_load_shelf)
|
|
||||||
.setFragmentFactory(VersamentoMerceFragment::newInstance))
|
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
|
||||||
.setID(it.integry.integrywmsnative.R.id.nav_rettifica_giacenze)
|
|
||||||
.setTitleText(it.integry.integrywmsnative.R.string.rettifica_giacenze_fragment_title)
|
|
||||||
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_rettifica_giacenze)
|
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_empty_box)
|
|
||||||
.setFragmentFactory(RettificaGiacenzeFragment::newInstance))
|
|
||||||
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user