Migliorata gestione RettificaGiacenze

This commit is contained in:
Giuseppe Scorrano 2018-11-29 00:18:16 +01:00
parent 02d22ed99f
commit 07ae8fc605
15 changed files with 323 additions and 81 deletions

Binary file not shown.

2
.idea/modules.xml generated
View File

@ -5,8 +5,10 @@
<module fileurl="file://$PROJECT_DIR$/IntegryWMSNative.iml" filepath="$PROJECT_DIR$/IntegryWMSNative.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
<module fileurl="file://$PROJECT_DIR$/barcode_base_library/barcode_base_library.iml" filepath="$PROJECT_DIR$/barcode_base_library/barcode_base_library.iml" />
<module fileurl="file://$PROJECT_DIR$/barcode_base_library/barcode_base_library.iml" filepath="$PROJECT_DIR$/barcode_base_library/barcode_base_library.iml" />
<module fileurl="file://$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" filepath="$PROJECT_DIR$/pointmobilescannerlibrary/pointmobilescannerlibrary.iml" />
<module fileurl="file://$PROJECT_DIR$/waterfall_toolbar/waterfall_toolbar.iml" filepath="$PROJECT_DIR$/waterfall_toolbar/waterfall_toolbar.iml" />
<module fileurl="file://$PROJECT_DIR$/waterfall_toolbar/waterfall_toolbar.iml" filepath="$PROJECT_DIR$/waterfall_toolbar/waterfall_toolbar.iml" />
</modules>
</component>
</project>

View File

@ -1,11 +1,10 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze;
import android.content.Context;
import android.content.res.ColorStateList;
import android.databinding.DataBindingUtil;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -13,15 +12,14 @@ import android.view.ViewGroup;
import butterknife.ButterKnife;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.databinding.FragmentRettificaGiacenzeBinding;
import it.integry.integrywmsnative.databinding.FragmentMainRettificaGiacenzeBinding;
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeHelper;
import it.integry.integrywmsnative.gest.rettifica_giacenze.viewmodel.RettificaGiacenzeViewModel;
public class RettificaGiacenzeFragment extends Fragment implements ITitledFragment {
private RettificaGiacenzeHelper mHelper;
private FragmentRettificaGiacenzeBinding mBinding = null;
private FragmentMainRettificaGiacenzeBinding mBinding = null;
private RettificaGiacenzeViewModel mRettificaGiacenzeViewModel = null;
@ -44,9 +42,9 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_rettifica_giacenze, container, false);
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_rettifica_giacenze, container, false);
mRettificaGiacenzeViewModel = new RettificaGiacenzeViewModel();
mRettificaGiacenzeViewModel.init(getActivity(), mBinding);
mBinding.setView(this);
mBinding.setViewmodel(mRettificaGiacenzeViewModel);
@ -59,9 +57,19 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
private void init() {
mHelper = new RettificaGiacenzeHelper(getActivity());
mRettificaGiacenzeViewModel.init(getActivity(), mBinding, mHelper);
mHelper.loadListaFornitori(listaFornitori -> {
mRettificaGiacenzeViewModel.setupListaFornitori(listaFornitori);
mRettificaGiacenzeViewModel.setupSearchFornitori(listaFornitori);
});
mBinding.autoCompleteFornitori.setOnFocusChangeListener((v, hasFocus) -> {
setUIToForn();
});
mBinding.inputCodArtDescrInt.setOnFocusChangeListener((v, hasFocus) -> {
setUIToIntArt();
});
}
@ -83,4 +91,32 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
public String getTitle(Context context) {
return context.getResources().getString(R.string.rettifica_giacenze_fragment_title);
}
public void setUIToForn() {
mBinding.rettificaGiacenzeFornCheckBox.setChecked(true);
mBinding.rettificaGiacenzeFornLayout.setBackground(getActivity().getResources().getDrawable(R.drawable.circular_background_left));
mBinding.rettificaGiacenzeFornLayout.setBackgroundTintList(ColorStateList.valueOf(getActivity().getResources().getColor(R.color.alpha_blue_500)));
mBinding.rettificaGiacenzeArtIntCheckBox.setChecked(false);
mBinding.rettificaGiacenzeArtIntLayout.setBackground(null);
mBinding.rettificaGiacenzeArtIntLayout.setBackgroundTintList(null);
}
public void setUIToIntArt() {
mBinding.rettificaGiacenzeArtIntCheckBox.setChecked(true);
mBinding.rettificaGiacenzeArtIntLayout.setBackground(getActivity().getResources().getDrawable(R.drawable.circular_background_left));
mBinding.rettificaGiacenzeArtIntLayout.setBackgroundTintList(ColorStateList.valueOf(getActivity().getResources().getColor(R.color.alpha_blue_500)));
mBinding.rettificaGiacenzeFornCheckBox.setChecked(false);
mBinding.rettificaGiacenzeFornLayout.setBackground(null);
mBinding.rettificaGiacenzeFornLayout.setBackgroundTintList(null);
}
}

View File

@ -16,6 +16,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.ArticoloFornitoreDTO;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
public class RettificaGiacenzeHelper {
@ -47,6 +48,26 @@ public class RettificaGiacenzeHelper {
UtilityExceptions.defaultException(mContext, ex, progress);
}
});
}
public void searchArtForn(String codAlis, String codArtForOrDescr, RunnableArgs<ArrayList<ArticoloFornitoreDTO>> onComplete, RunnableArgs<Exception> onFailed) {
String sql = "SELECT mtb_aart.cod_mart, mtb_aart.descrizione_estesa, mtb_lisa.cod_art_for from mtb_lisa, mtb_aart " +
" WHERE cod_alis = " + UtilityDB.valueToString(codAlis) +
" AND mtb_lisa.cod_mart = mtb_aart.cod_mart " +
" AND (mtb_aart.descrizione_estesa LIKE '%" + codArtForOrDescr +"%' OR cod_art_for LIKE '%" + codArtForOrDescr + "%') " +
" ORDER BY mtb_aart.descrizione_estesa";
Type typeOfObjectsList = new TypeToken<ArrayList<ArticoloFornitoreDTO>>() {}.getType();
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<ArticoloFornitoreDTO>>() {
@Override
public void onSuccess(ArrayList<ArticoloFornitoreDTO> value) {
if(onComplete != null) onComplete.run(value);
}
@Override
public void onFailed(Exception ex) {
if(onFailed != null) onFailed.run(ex);
}
});
}
}

View File

@ -14,6 +14,7 @@ import android.widget.Filter;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import it.integry.integrywmsnative.R;
@ -80,10 +81,14 @@ public class AutoCompleteFornitoreAdapter extends ArrayAdapter<FornitoreDTO> {
ArrayList<FornitoreDTO> filteredList = (ArrayList<FornitoreDTO>) results.values;
if(results != null && results.count > 0) {
clear();
for (FornitoreDTO c : filteredList) {
add(c);
synchronized (filteredList) {
for (FornitoreDTO c : filteredList) {
add(c);
}
notifyDataSetChanged();
}
notifyDataSetChanged();
}
}

View File

@ -0,0 +1,32 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze.dto;
public class ArticoloFornitoreDTO {
private String codMart;
private String descrizioneEstesa;
private String codArtFor;
public String getCodMart() {
return codMart;
}
public void setCodMart(String codMart) {
this.codMart = codMart;
}
public String getDescrizioneEstesa() {
return descrizioneEstesa;
}
public void setDescrizioneEstesa(String descrizioneEstesa) {
this.descrizioneEstesa = descrizioneEstesa;
}
public String getCodArtFor() {
return codArtFor;
}
public void setCodArtFor(String codArtFor) {
this.codArtFor = codArtFor;
}
}

View File

@ -1,29 +1,73 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze.viewmodel;
import android.app.ProgressDialog;
import android.content.Context;
import android.databinding.ObservableArrayList;
import android.text.SpannableString;
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.databinding.FragmentRettificaGiacenzeBinding;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentMainRettificaGiacenzeBinding;
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeHelper;
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.AutoCompleteFornitoreAdapter;
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
public class RettificaGiacenzeViewModel {
private Context mContext;
private FragmentRettificaGiacenzeBinding mBinding;
private FragmentMainRettificaGiacenzeBinding mBinding;
public void init(Context context, FragmentRettificaGiacenzeBinding binding) {
private RettificaGiacenzeHelper mHelper;
public void init(Context context, FragmentMainRettificaGiacenzeBinding binding, RettificaGiacenzeHelper helper) {
mContext = context;
mBinding = binding;
mHelper = helper;
}
public void setupListaFornitori(ArrayList<FornitoreDTO> listaFornitori) {
public void setupSearchFornitori(ArrayList<FornitoreDTO> listaFornitori) {
AutoCompleteFornitoreAdapter autoCompleteFornitoreAdapter = new AutoCompleteFornitoreAdapter(mContext, listaFornitori);
mBinding.autoCompleteFornitori.setAdapter(autoCompleteFornitoreAdapter);
mBinding.autoCompleteFornitori.setDropDownWidth(mContext.getResources().getDisplayMetrics().widthPixels);
mBinding.inputCodArtDescrForn.setOnEditorActionListener((v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_DONE) {
if(UtilityString.isNullOrEmpty(mBinding.autoCompleteFornitori.getText().toString())) {
showNoFornSelected();
return true;
}
searchArtFor(
mBinding.autoCompleteFornitori.getText().toString(),
mBinding.inputCodArtDescrForn.getText().toString());
return true;
}
return false;
});
}
private void showNoFornSelected() {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(mContext.getResources().getText(R.string.no_supplier_selected)),
null, null).show();
}
private void searchArtFor(String codAlis, String queryText) {
final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
progressDialog.show();
mHelper.searchArtForn(codAlis, queryText, listaArts -> {
progressDialog.dismiss();
}, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog));
}
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="@android:color/white" />
<padding
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<corners android:topLeftRadius="500dp"
android:bottomLeftRadius="500dp" />
</shape>

View File

@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".gest.main.MainFragment">
tools:context=".gest.main.MainFragment"
android:background="@color/full_white">
<LinearLayout
android:layout_width="match_parent"

View File

@ -9,9 +9,10 @@
<FrameLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:background="@color/full_white"
tools:context="it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment">
<RelativeLayout

View File

@ -0,0 +1,146 @@
<?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="android.databinding.ObservableList"/>
<variable name="view" type="it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment" />
<variable
name="viewmodel"
type="it.integry.integrywmsnative.gest.rettifica_giacenze.viewmodel.RettificaGiacenzeViewModel" />
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/full_white"
tools:context=".gest.rettifica_giacenze.RettificaGiacenzeFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/rettifica_giacenze_forn_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="4dp"
android:layout_marginStart="4dp"
android:layout_marginBottom="4dp"
android:paddingStart="8dp"
android:paddingEnd="6dp"
android:paddingTop="6dp"
android:paddingBottom="6dp">
<RadioButton
android:id="@+id/rettifica_giacenze_forn_check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:onClick="@{() -> view.setUIToForn()}"/>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.constraint.Guideline
android:id="@+id/guide_line_fornitore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.40"/>
<android.support.design.widget.TextInputLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/hint_text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/guide_line_fornitore">
<AutoCompleteTextView
android:id="@+id/autoCompleteFornitori"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:completionThreshold="2"
android:hint="@string/supplier"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/hint_text"
app:layout_constraintStart_toEndOf="@id/guide_line_fornitore"
app:layout_constraintEnd_toEndOf="parent">
<android.support.design.widget.TextInputEditText
android:id="@+id/input_cod_art_descr_forn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:imeOptions="actionDone"
android:hint="@string/cod_art_or_description"/>
</android.support.design.widget.TextInputLayout>
</android.support.constraint.ConstraintLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/rettifica_giacenze_art_int_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="4dp"
android:layout_marginStart="4dp"
android:layout_marginBottom="4dp"
android:paddingStart="8dp"
android:paddingEnd="6dp"
android:paddingTop="6dp"
android:paddingBottom="6dp">
<RadioButton
android:id="@+id/rettifica_giacenze_art_int_check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:onClick="@{() -> view.setUIToIntArt()}"/>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/hint_text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<android.support.design.widget.TextInputEditText
android:id="@+id/input_cod_art_descr_int"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:imeOptions="actionDone"
android:hint="@string/cod_art_or_description"/>
</android.support.design.widget.TextInputLayout>
</android.support.constraint.ConstraintLayout>
</LinearLayout>
</LinearLayout>
</FrameLayout>
</layout>

View File

@ -1,64 +0,0 @@
<?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="android.databinding.ObservableList"/>
<variable name="view" type="it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment" />
<variable
name="viewmodel"
type="it.integry.integrywmsnative.gest.rettifica_giacenze.viewmodel.RettificaGiacenzeViewModel" />
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/full_white"
tools:context=".gest.rettifica_giacenze.RettificaGiacenzeFragment">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.constraint.Guideline
android:id="@+id/guide_line_fornitore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.40"/>
<AutoCompleteTextView
android:id="@+id/autoCompleteFornitori"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ems="10"
android:completionThreshold="2"
android:hint="@string/supplier"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/guide_line_fornitore"/>
<android.support.design.widget.TextInputLayout
android:id="@+id/input_cod_art_descr_forn"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:hintTextAppearance="@style/hint_text"
app:layout_constraintStart_toEndOf="@id/guide_line_fornitore"
app:layout_constraintEnd_toEndOf="parent">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:hint="@string/cod_art_or_description"/>
</android.support.design.widget.TextInputLayout>
</android.support.constraint.ConstraintLayout>
</FrameLayout>
</layout>

View File

@ -131,5 +131,6 @@
<string name="supplier">Fornitore</string>
<string name="cod_art_or_description">Cod art / Descrizione</string>
<string name="no_supplier_selected">Seleziona un fornitore prima</string>
</resources>

View File

@ -23,6 +23,8 @@
<color name="alpha_blue_500">#2d42a5f5</color>
<color name="blue_700">#1976D2</color>
@ -31,6 +33,7 @@
<color name="green_600">#43A047</color>
<color name="green_700">#388E3C</color>
<color name="alpha_indigo_500">#813f51b5</color>
<color name="indigo_400">#5C6BC0</color>
<color name="indigo_500">#3F51B5</color>

View File

@ -140,5 +140,6 @@
<string name="supplier">Supplier</string>
<string name="cod_art_or_description">Item code / Description</string>
<string name="no_supplier_selected">Please select a supplier first</string>
</resources>